@aligent/cdk-prerender-proxy 0.2.4 → 0.2.5-beta

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 (150) hide show
  1. package/lib/handlers/cache-control.ts +7 -20
  2. package/lib/handlers/error-response.ts +8 -51
  3. package/lib/handlers/node_modules/.package-lock.json +32 -3
  4. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/index.d.ts +6 -0
  5. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/index.js +14 -0
  6. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/cache-control.d.ts +3 -0
  7. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/cache-control.js +24 -0
  8. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/error-response.d.ts +3 -0
  9. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/error-response.js +50 -0
  10. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/prerender-check.d.ts +3 -0
  11. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/prerender-check.js +28 -0
  12. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/prerender.d.ts +3 -0
  13. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/prerender.js +49 -0
  14. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/redirect.d.ts +3 -0
  15. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/lib/redirect.js +33 -0
  16. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/package.json +27 -0
  17. package/lib/handlers/node_modules/@aligent/cdk-lambda-at-edge-handlers/tsconfig.json +3 -0
  18. package/lib/handlers/node_modules/@middy/core/LICENSE +21 -0
  19. package/lib/handlers/node_modules/@middy/core/README.md +65 -0
  20. package/lib/handlers/node_modules/@middy/core/index.cjs +207 -0
  21. package/lib/handlers/node_modules/@middy/core/index.d.ts +91 -0
  22. package/lib/handlers/node_modules/@middy/core/index.js +199 -0
  23. package/lib/handlers/node_modules/@middy/core/package.json +65 -0
  24. package/lib/handlers/node_modules/@types/node/README.md +4 -4
  25. package/lib/handlers/node_modules/@types/node/assert/strict.d.ts +5 -1
  26. package/lib/handlers/node_modules/@types/node/assert.d.ts +904 -67
  27. package/lib/handlers/node_modules/@types/node/async_hooks.d.ts +371 -96
  28. package/lib/handlers/node_modules/@types/node/buffer.d.ts +2199 -25
  29. package/lib/handlers/node_modules/@types/node/child_process.d.ts +1151 -308
  30. package/lib/handlers/node_modules/@types/node/cluster.d.ts +356 -208
  31. package/lib/handlers/node_modules/@types/node/console.d.ts +324 -45
  32. package/lib/handlers/node_modules/@types/node/constants.d.ts +8 -3
  33. package/lib/handlers/node_modules/@types/node/crypto.d.ts +3230 -846
  34. package/lib/handlers/node_modules/@types/node/dgram.d.ts +478 -74
  35. package/lib/handlers/node_modules/@types/node/diagnostics_channel.d.ts +153 -0
  36. package/lib/handlers/node_modules/@types/node/dns/promises.d.ts +308 -35
  37. package/lib/handlers/node_modules/@types/node/dns.d.ts +444 -107
  38. package/lib/handlers/node_modules/@types/node/dom-events.d.ts +126 -0
  39. package/lib/handlers/node_modules/@types/node/domain.d.ts +162 -16
  40. package/lib/handlers/node_modules/@types/node/events.d.ts +624 -39
  41. package/lib/handlers/node_modules/@types/node/fs/promises.d.ts +911 -365
  42. package/lib/handlers/node_modules/@types/node/fs.d.ts +2611 -978
  43. package/lib/handlers/node_modules/@types/node/globals.d.ts +66 -421
  44. package/lib/handlers/node_modules/@types/node/globals.global.d.ts +1 -1
  45. package/lib/handlers/node_modules/@types/node/http.d.ts +1416 -199
  46. package/lib/handlers/node_modules/@types/node/http2.d.ts +1688 -530
  47. package/lib/handlers/node_modules/@types/node/https.d.ts +532 -26
  48. package/lib/handlers/node_modules/@types/node/index.d.ts +92 -16
  49. package/lib/handlers/node_modules/@types/node/inspector.d.ts +511 -811
  50. package/lib/handlers/node_modules/@types/node/module.d.ts +75 -13
  51. package/lib/handlers/node_modules/@types/node/net.d.ts +710 -167
  52. package/lib/handlers/node_modules/@types/node/os.d.ts +252 -25
  53. package/lib/handlers/node_modules/@types/node/package.json +30 -25
  54. package/lib/handlers/node_modules/@types/node/path.d.ts +59 -31
  55. package/lib/handlers/node_modules/@types/node/perf_hooks.d.ts +420 -105
  56. package/lib/handlers/node_modules/@types/node/process.d.ts +1249 -228
  57. package/lib/handlers/node_modules/@types/node/punycode.d.ts +67 -25
  58. package/lib/handlers/node_modules/@types/node/querystring.d.ts +113 -10
  59. package/lib/handlers/node_modules/@types/node/readline/promises.d.ts +143 -0
  60. package/lib/handlers/node_modules/@types/node/readline.d.ts +570 -109
  61. package/lib/handlers/node_modules/@types/node/repl.d.ts +154 -125
  62. package/lib/handlers/node_modules/@types/node/stream/consumers.d.ts +12 -0
  63. package/lib/handlers/node_modules/@types/node/stream/promises.d.ts +18 -43
  64. package/lib/handlers/node_modules/@types/node/stream/web.d.ts +330 -0
  65. package/lib/handlers/node_modules/@types/node/stream.d.ts +1117 -248
  66. package/lib/handlers/node_modules/@types/node/string_decoder.d.ts +60 -0
  67. package/lib/handlers/node_modules/@types/node/test.d.ts +446 -0
  68. package/lib/handlers/node_modules/@types/node/timers/promises.d.ts +81 -9
  69. package/lib/handlers/node_modules/@types/node/timers.d.ts +84 -17
  70. package/lib/handlers/node_modules/@types/node/tls.d.ts +510 -275
  71. package/lib/handlers/node_modules/@types/node/trace_events.d.ts +120 -10
  72. package/lib/handlers/node_modules/@types/node/ts4.8/assert/strict.d.ts +8 -0
  73. package/lib/handlers/node_modules/@types/node/ts4.8/assert.d.ts +961 -0
  74. package/lib/handlers/node_modules/@types/node/ts4.8/async_hooks.d.ts +501 -0
  75. package/lib/handlers/node_modules/@types/node/ts4.8/buffer.d.ts +2259 -0
  76. package/lib/handlers/node_modules/@types/node/ts4.8/child_process.d.ts +1369 -0
  77. package/lib/handlers/node_modules/@types/node/ts4.8/cluster.d.ts +410 -0
  78. package/lib/handlers/node_modules/@types/node/ts4.8/console.d.ts +412 -0
  79. package/lib/handlers/node_modules/@types/node/ts4.8/constants.d.ts +18 -0
  80. package/lib/handlers/node_modules/@types/node/ts4.8/crypto.d.ts +3964 -0
  81. package/lib/handlers/node_modules/@types/node/ts4.8/dgram.d.ts +545 -0
  82. package/lib/handlers/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts +153 -0
  83. package/lib/handlers/node_modules/@types/node/ts4.8/dns/promises.d.ts +370 -0
  84. package/lib/handlers/node_modules/@types/node/ts4.8/dns.d.ts +659 -0
  85. package/lib/handlers/node_modules/@types/node/ts4.8/dom-events.d.ts +126 -0
  86. package/lib/handlers/node_modules/@types/node/ts4.8/domain.d.ts +170 -0
  87. package/lib/handlers/node_modules/@types/node/ts4.8/events.d.ts +678 -0
  88. package/lib/handlers/node_modules/@types/node/ts4.8/fs/promises.d.ts +1138 -0
  89. package/lib/handlers/node_modules/@types/node/ts4.8/fs.d.ts +3872 -0
  90. package/lib/handlers/node_modules/@types/node/ts4.8/globals.d.ts +294 -0
  91. package/lib/handlers/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  92. package/lib/handlers/node_modules/@types/node/ts4.8/http.d.ts +1651 -0
  93. package/lib/handlers/node_modules/@types/node/ts4.8/http2.d.ts +2134 -0
  94. package/lib/handlers/node_modules/@types/node/ts4.8/https.d.ts +542 -0
  95. package/lib/handlers/node_modules/@types/node/ts4.8/index.d.ts +88 -0
  96. package/lib/handlers/node_modules/@types/node/ts4.8/inspector.d.ts +2741 -0
  97. package/lib/handlers/node_modules/@types/node/ts4.8/module.d.ts +114 -0
  98. package/lib/handlers/node_modules/@types/node/ts4.8/net.d.ts +869 -0
  99. package/lib/handlers/node_modules/@types/node/ts4.8/os.d.ts +466 -0
  100. package/lib/handlers/node_modules/@types/node/ts4.8/path.d.ts +191 -0
  101. package/lib/handlers/node_modules/@types/node/ts4.8/perf_hooks.d.ts +625 -0
  102. package/lib/handlers/node_modules/@types/node/ts4.8/process.d.ts +1482 -0
  103. package/lib/handlers/node_modules/@types/node/ts4.8/punycode.d.ts +117 -0
  104. package/lib/handlers/node_modules/@types/node/ts4.8/querystring.d.ts +131 -0
  105. package/lib/handlers/node_modules/@types/node/ts4.8/readline/promises.d.ts +143 -0
  106. package/lib/handlers/node_modules/@types/node/ts4.8/readline.d.ts +653 -0
  107. package/lib/handlers/node_modules/@types/node/ts4.8/repl.d.ts +424 -0
  108. package/lib/handlers/node_modules/@types/node/ts4.8/stream/consumers.d.ts +12 -0
  109. package/lib/handlers/node_modules/@types/node/ts4.8/stream/promises.d.ts +42 -0
  110. package/lib/handlers/node_modules/@types/node/ts4.8/stream/web.d.ts +330 -0
  111. package/lib/handlers/node_modules/@types/node/ts4.8/stream.d.ts +1340 -0
  112. package/lib/handlers/node_modules/@types/node/ts4.8/string_decoder.d.ts +67 -0
  113. package/lib/handlers/node_modules/@types/node/ts4.8/test.d.ts +446 -0
  114. package/lib/handlers/node_modules/@types/node/ts4.8/timers/promises.d.ts +93 -0
  115. package/lib/handlers/node_modules/@types/node/ts4.8/timers.d.ts +94 -0
  116. package/lib/handlers/node_modules/@types/node/ts4.8/tls.d.ts +1028 -0
  117. package/lib/handlers/node_modules/@types/node/ts4.8/trace_events.d.ts +171 -0
  118. package/lib/handlers/node_modules/@types/node/ts4.8/tty.d.ts +206 -0
  119. package/lib/handlers/node_modules/@types/node/ts4.8/url.d.ts +897 -0
  120. package/lib/handlers/node_modules/@types/node/ts4.8/util.d.ts +1926 -0
  121. package/lib/handlers/node_modules/@types/node/ts4.8/v8.d.ts +396 -0
  122. package/lib/handlers/node_modules/@types/node/ts4.8/vm.d.ts +509 -0
  123. package/lib/handlers/node_modules/@types/node/ts4.8/wasi.d.ts +158 -0
  124. package/lib/handlers/node_modules/@types/node/ts4.8/worker_threads.d.ts +689 -0
  125. package/lib/handlers/node_modules/@types/node/ts4.8/zlib.d.ts +517 -0
  126. package/lib/handlers/node_modules/@types/node/tty.d.ts +163 -23
  127. package/lib/handlers/node_modules/@types/node/url.d.ts +825 -44
  128. package/lib/handlers/node_modules/@types/node/util.d.ts +1842 -72
  129. package/lib/handlers/node_modules/@types/node/v8.d.ts +276 -78
  130. package/lib/handlers/node_modules/@types/node/vm.d.ts +410 -53
  131. package/lib/handlers/node_modules/@types/node/wasi.d.ts +102 -30
  132. package/lib/handlers/node_modules/@types/node/worker_threads.d.ts +559 -152
  133. package/lib/handlers/node_modules/@types/node/zlib.d.ts +234 -78
  134. package/lib/handlers/node_modules/esbuild/README.md +3 -0
  135. package/lib/handlers/node_modules/esbuild/bin/esbuild +0 -0
  136. package/lib/handlers/node_modules/esbuild/install.js +256 -0
  137. package/lib/handlers/node_modules/esbuild/lib/main.d.ts +397 -0
  138. package/lib/handlers/node_modules/esbuild/lib/main.js +1939 -0
  139. package/lib/handlers/node_modules/esbuild/package.json +15 -0
  140. package/lib/handlers/package-lock.json +62 -6
  141. package/lib/handlers/package.json +6 -1
  142. package/lib/handlers/prerender-check.ts +8 -27
  143. package/lib/handlers/prerender.ts +8 -43
  144. package/package.json +1 -1
  145. package/lib/handlers/node_modules/@types/node/base.d.ts +0 -19
  146. package/lib/handlers/node_modules/@types/node/diagnostic_channel.d.ts +0 -34
  147. package/lib/handlers/node_modules/@types/node/ts3.6/assert.d.ts +0 -98
  148. package/lib/handlers/node_modules/@types/node/ts3.6/base.d.ts +0 -68
  149. package/lib/handlers/node_modules/@types/node/ts3.6/index.d.ts +0 -7
  150. package/lib/handlers/node_modules/@types/node/util/types.d.ts +0 -53
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "esbuild",
3
+ "version": "0.12.15",
4
+ "description": "An extremely fast JavaScript bundler and minifier.",
5
+ "repository": "https://github.com/evanw/esbuild",
6
+ "scripts": {
7
+ "postinstall": "node install.js"
8
+ },
9
+ "main": "lib/main.js",
10
+ "types": "lib/main.d.ts",
11
+ "bin": {
12
+ "esbuild": "bin/esbuild"
13
+ },
14
+ "license": "MIT"
15
+ }
@@ -6,10 +6,34 @@
6
6
  "": {
7
7
  "license": "ISC",
8
8
  "dependencies": {
9
+ "@aligent/cdk-lambda-at-edge-handlers": "^0.1.0",
10
+ "@middy/core": "^3.6.2",
9
11
  "@types/aws-lambda": "^8.10.77",
10
12
  "@types/node": "^15.12.4",
11
13
  "axios": "^0.21.1",
12
14
  "source-map-support": "^0.5.19"
15
+ },
16
+ "devDependencies": {
17
+ "@types/node": "^18.11.9"
18
+ }
19
+ },
20
+ "node_modules/@aligent/cdk-lambda-at-edge-handlers": {
21
+ "version": "0.1.0",
22
+ "resolved": "https://registry.npmjs.org/@aligent/cdk-lambda-at-edge-handlers/-/cdk-lambda-at-edge-handlers-0.1.0.tgz",
23
+ "integrity": "sha512-5qZi5NWXDySDr6Djv+EuA4Y1+f3imQSkSI9sBFzizG/cqfTb5dHF96n3GERpwvNbo4xIuIB7GRLQ4xh3U9PcUA==",
24
+ "dependencies": {
25
+ "@types/aws-lambda": "^8.10.77",
26
+ "axios": "^0.21.1",
27
+ "esbuild": "0.12.15",
28
+ "source-map-support": "^0.5.16"
29
+ }
30
+ },
31
+ "node_modules/@middy/core": {
32
+ "version": "3.6.2",
33
+ "resolved": "https://registry.npmjs.org/@middy/core/-/core-3.6.2.tgz",
34
+ "integrity": "sha512-/vyvG34RIt7CTmuB/jksGkk9vs6RCoOlRFPfdQq11dHkiKlT2mm8j/jZx7gSpEhXXh9LeaEMuKPnsgWBIlGS1g==",
35
+ "engines": {
36
+ "node": ">=14"
13
37
  }
14
38
  },
15
39
  "node_modules/@types/aws-lambda": {
@@ -18,9 +42,10 @@
18
42
  "integrity": "sha512-n0EMFJU/7u3KvHrR83l/zrKOVURXl5pUJPNED/Bzjah89QKCHwCiKCBoVUXRwTGRfCYGIDdinJaAlKDHZdp/Ng=="
19
43
  },
20
44
  "node_modules/@types/node": {
21
- "version": "15.12.4",
22
- "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz",
23
- "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA=="
45
+ "version": "18.11.18",
46
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
47
+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
48
+ "dev": true
24
49
  },
25
50
  "node_modules/axios": {
26
51
  "version": "0.21.1",
@@ -35,6 +60,15 @@
35
60
  "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
36
61
  "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
37
62
  },
63
+ "node_modules/esbuild": {
64
+ "version": "0.12.15",
65
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.15.tgz",
66
+ "integrity": "sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==",
67
+ "hasInstallScript": true,
68
+ "bin": {
69
+ "esbuild": "bin/esbuild"
70
+ }
71
+ },
38
72
  "node_modules/follow-redirects": {
39
73
  "version": "1.14.1",
40
74
  "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
@@ -62,15 +96,32 @@
62
96
  }
63
97
  },
64
98
  "dependencies": {
99
+ "@aligent/cdk-lambda-at-edge-handlers": {
100
+ "version": "0.1.0",
101
+ "resolved": "https://registry.npmjs.org/@aligent/cdk-lambda-at-edge-handlers/-/cdk-lambda-at-edge-handlers-0.1.0.tgz",
102
+ "integrity": "sha512-5qZi5NWXDySDr6Djv+EuA4Y1+f3imQSkSI9sBFzizG/cqfTb5dHF96n3GERpwvNbo4xIuIB7GRLQ4xh3U9PcUA==",
103
+ "requires": {
104
+ "@types/aws-lambda": "^8.10.77",
105
+ "axios": "^0.21.1",
106
+ "esbuild": "0.12.15",
107
+ "source-map-support": "^0.5.16"
108
+ }
109
+ },
110
+ "@middy/core": {
111
+ "version": "3.6.2",
112
+ "resolved": "https://registry.npmjs.org/@middy/core/-/core-3.6.2.tgz",
113
+ "integrity": "sha512-/vyvG34RIt7CTmuB/jksGkk9vs6RCoOlRFPfdQq11dHkiKlT2mm8j/jZx7gSpEhXXh9LeaEMuKPnsgWBIlGS1g=="
114
+ },
65
115
  "@types/aws-lambda": {
66
116
  "version": "8.10.77",
67
117
  "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.77.tgz",
68
118
  "integrity": "sha512-n0EMFJU/7u3KvHrR83l/zrKOVURXl5pUJPNED/Bzjah89QKCHwCiKCBoVUXRwTGRfCYGIDdinJaAlKDHZdp/Ng=="
69
119
  },
70
120
  "@types/node": {
71
- "version": "15.12.4",
72
- "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz",
73
- "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA=="
121
+ "version": "18.11.18",
122
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
123
+ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==",
124
+ "dev": true
74
125
  },
75
126
  "axios": {
76
127
  "version": "0.21.1",
@@ -85,6 +136,11 @@
85
136
  "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
86
137
  "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
87
138
  },
139
+ "esbuild": {
140
+ "version": "0.12.15",
141
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.15.tgz",
142
+ "integrity": "sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw=="
143
+ },
88
144
  "follow-redirects": {
89
145
  "version": "1.14.1",
90
146
  "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
@@ -8,6 +8,11 @@
8
8
  "@types/aws-lambda": "^8.10.77",
9
9
  "@types/node": "^15.12.4",
10
10
  "axios": "^0.21.1",
11
- "source-map-support": "^0.5.19"
11
+ "source-map-support": "^0.5.19",
12
+ "@middy/core": "^3.6.2",
13
+ "@aligent/cdk-lambda-at-edge-handlers": "^0.1.0"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^18.11.9"
12
17
  }
13
18
  }
@@ -1,27 +1,8 @@
1
- import 'source-map-support/register';
2
- import { CloudFrontRequest, CloudFrontRequestEvent } from 'aws-lambda';
3
-
4
- const IS_BOT = /googlebot|chrome-lighthouse|lighthouse|adsbot\-google|Feedfetcher\-Google|bingbot|yandex|baiduspider|Facebot|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator/i;
5
- const IS_FILE = /\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)$/i;
6
-
7
- export const handler = async (event: CloudFrontRequestEvent): Promise<CloudFrontRequest> => {
8
- let request = event.Records[0].cf.request;
9
-
10
- // If the request is from a bot, is not a file and is not from prerender
11
- // then set the x-request-prerender header so the origin-request lambda function
12
- // alters the origin to prerender.io
13
- if (!IS_FILE.test(request.uri)
14
- && IS_BOT.test(request.headers['user-agent'][0].value)
15
- && !request.headers['x-prerender']) {
16
- request.headers['x-request-prerender'] = [
17
- {
18
- key: 'x-request-prerender',
19
- value: 'true'
20
- }
21
- ];
22
-
23
- request.headers['x-prerender-host'] = [{ key: 'X-Prerender-Host', value: request.headers.host[0].value}];
24
- }
25
-
26
- return request;
27
- }
1
+ import middy from "@middy/core";
2
+ import { PrerenderCheckHandler } from "@aligent/cdk-lambda-at-edge-handlers";
3
+
4
+ /**
5
+ * Prerender Check Handler
6
+ * @link https://github.com/aligent/cdk-constructs/blob/main/packages/lambda-at-edge-handlers/lib/prerender-check.ts
7
+ */
8
+ export const handler = middy(PrerenderCheckHandler);
@@ -1,43 +1,8 @@
1
- import 'source-map-support/register';
2
- import { CloudFrontRequest, CloudFrontRequestEvent, CloudFrontResponse } from '@aws-cdk/aws-lambda';
3
-
4
- const PRERENDER_TOKEN = process.env.PRERENDER_TOKEN;
5
- const PATH_PREFIX = process.env.PATH_PREFIX;
6
- const PRERENDER_URL = process.env.PRERENDER_URL;
7
-
8
- export const handler = async (event: CloudFrontRequestEvent): Promise<CloudFrontResponse|CloudFrontRequest> => {
9
- let request = event.Records[0].cf.request;
10
-
11
- // viewer-request function will determine whether we prerender or not
12
- // if we should we add prerender as our custom origin
13
- if (request.headers['x-request-prerender']) {
14
- // Cloudfront will alter the request for / to /index.html
15
- // since it is defined as the default root object
16
- // we do not want to do this when prerendering the homepage
17
- if (request.uri === `${PATH_PREFIX}/index.html`) {
18
- request.uri = `${PATH_PREFIX}/`;
19
- }
20
-
21
- request.origin = {
22
- custom: {
23
- domainName: PRERENDER_URL,
24
- port: 443,
25
- protocol: 'https',
26
- readTimeout: 20,
27
- keepaliveTimeout: 5,
28
- sslProtocols: ['TLSv1', 'TLSv1.1', 'TLSv1.2'],
29
- path: '/https%3A%2F%2F' + request.headers['x-prerender-host'][0].value,
30
- customHeaders: {
31
- 'x-prerender-token': [{
32
- key: 'x-prerender-token',
33
- value: PRERENDER_TOKEN
34
- }]
35
- }
36
- }
37
- };
38
- } else {
39
- request.uri = `${PATH_PREFIX}/index.html`;
40
- }
41
-
42
- return request;
43
- }
1
+ import middy from "@middy/core";
2
+ import { PrerenderHandler } from "@aligent/cdk-lambda-at-edge-handlers";
3
+
4
+ /**
5
+ * Prerender Handler
6
+ * @link https://github.com/aligent/cdk-constructs/blob/main/packages/lambda-at-edge-handlers/lib/prerender.ts
7
+ */
8
+ export const handler = middy(PrerenderHandler);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligent/cdk-prerender-proxy",
3
- "version": "0.2.4",
3
+ "version": "0.2.5-beta",
4
4
  "description": "A Cloudfront Lambda@Edge stack for integrating with prerender.io",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,19 +0,0 @@
1
- // NOTE: These definitions support NodeJS and TypeScript 3.7.
2
-
3
- // NOTE: TypeScript version-specific augmentations can be found in the following paths:
4
- // - ~/base.d.ts - Shared definitions common to all TypeScript versions
5
- // - ~/index.d.ts - Definitions specific to TypeScript 2.1
6
- // - ~/ts3.7/base.d.ts - Definitions specific to TypeScript 3.7
7
- // - ~/ts3.7/index.d.ts - Definitions specific to TypeScript 3.7 with assert pulled in
8
-
9
- // Reference required types from the default lib:
10
- /// <reference lib="es2018" />
11
- /// <reference lib="esnext.asynciterable" />
12
- /// <reference lib="esnext.intl" />
13
- /// <reference lib="esnext.bigint" />
14
-
15
- // Base definitions for all NodeJS modules that are not specific to any version of TypeScript:
16
- /// <reference path="ts3.6/base.d.ts" />
17
-
18
- // TypeScript 3.7-specific augmentations:
19
- /// <reference path="assert.d.ts" />
@@ -1,34 +0,0 @@
1
- /**
2
- * @experimental
3
- */
4
- declare module 'diagnostic_channel' {
5
- /**
6
- * Returns wether a named channel has subscribers or not.
7
- */
8
- function hasSubscribers(name: string): boolean;
9
-
10
- /**
11
- * Gets or create a diagnostic channel by name.
12
- */
13
- function channel(name: string): Channel;
14
-
15
- type ChannelListener = (name: string, message: unknown) => void;
16
-
17
- /**
18
- * Simple diagnostic channel that allows
19
- */
20
- class Channel {
21
- readonly name: string;
22
- readonly hashSubscribers: boolean;
23
- private constructor(name: string);
24
-
25
- /**
26
- * Add a listener to the message channel.
27
- */
28
- subscribe(listener: ChannelListener): void;
29
- /**
30
- * Removes a previously registered listener.
31
- */
32
- unsubscribe(listener: ChannelListener): void;
33
- }
34
- }
@@ -1,98 +0,0 @@
1
- declare module 'assert' {
2
- /** An alias of `assert.ok()`. */
3
- function assert(value: any, message?: string | Error): void;
4
- namespace assert {
5
- class AssertionError extends Error {
6
- actual: any;
7
- expected: any;
8
- operator: string;
9
- generatedMessage: boolean;
10
- code: 'ERR_ASSERTION';
11
-
12
- constructor(options?: {
13
- /** If provided, the error message is set to this value. */
14
- message?: string;
15
- /** The `actual` property on the error instance. */
16
- actual?: any;
17
- /** The `expected` property on the error instance. */
18
- expected?: any;
19
- /** The `operator` property on the error instance. */
20
- operator?: string;
21
- /** If provided, the generated stack trace omits frames before this function. */
22
- // tslint:disable-next-line:ban-types
23
- stackStartFn?: Function;
24
- });
25
- }
26
-
27
- class CallTracker {
28
- calls(exact?: number): () => void;
29
- calls<Func extends (...args: any[]) => any>(fn?: Func, exact?: number): Func;
30
- report(): CallTrackerReportInformation[];
31
- verify(): void;
32
- }
33
- interface CallTrackerReportInformation {
34
- message: string;
35
- /** The actual number of times the function was called. */
36
- actual: number;
37
- /** The number of times the function was expected to be called. */
38
- expected: number;
39
- /** The name of the function that is wrapped. */
40
- operator: string;
41
- /** A stack trace of the function. */
42
- stack: object;
43
- }
44
-
45
- type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error;
46
-
47
- function fail(message?: string | Error): never;
48
- /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */
49
- function fail(
50
- actual: any,
51
- expected: any,
52
- message?: string | Error,
53
- operator?: string,
54
- // tslint:disable-next-line:ban-types
55
- stackStartFn?: Function,
56
- ): never;
57
- function ok(value: any, message?: string | Error): void;
58
- /** @deprecated since v9.9.0 - use strictEqual() instead. */
59
- function equal(actual: any, expected: any, message?: string | Error): void;
60
- /** @deprecated since v9.9.0 - use notStrictEqual() instead. */
61
- function notEqual(actual: any, expected: any, message?: string | Error): void;
62
- /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */
63
- function deepEqual(actual: any, expected: any, message?: string | Error): void;
64
- /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */
65
- function notDeepEqual(actual: any, expected: any, message?: string | Error): void;
66
- function strictEqual(actual: any, expected: any, message?: string | Error): void;
67
- function notStrictEqual(actual: any, expected: any, message?: string | Error): void;
68
- function deepStrictEqual(actual: any, expected: any, message?: string | Error): void;
69
- function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void;
70
-
71
- function throws(block: () => any, message?: string | Error): void;
72
- function throws(block: () => any, error: AssertPredicate, message?: string | Error): void;
73
- function doesNotThrow(block: () => any, message?: string | Error): void;
74
- function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void;
75
-
76
- function ifError(value: any): void;
77
-
78
- function rejects(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
79
- function rejects(
80
- block: (() => Promise<any>) | Promise<any>,
81
- error: AssertPredicate,
82
- message?: string | Error,
83
- ): Promise<void>;
84
- function doesNotReject(block: (() => Promise<any>) | Promise<any>, message?: string | Error): Promise<void>;
85
- function doesNotReject(
86
- block: (() => Promise<any>) | Promise<any>,
87
- error: AssertPredicate,
88
- message?: string | Error,
89
- ): Promise<void>;
90
-
91
- function match(value: string, regExp: RegExp, message?: string | Error): void;
92
- function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
93
-
94
- const strict: typeof assert;
95
- }
96
-
97
- export = assert;
98
- }
@@ -1,68 +0,0 @@
1
- // NOTE: These definitions support NodeJS and TypeScript 3.6 and earlier.
2
-
3
- // NOTE: TypeScript version-specific augmentations can be found in the following paths:
4
- // - ~/base.d.ts - Shared definitions common to all TypeScript versions
5
- // - ~/index.d.ts - Definitions specific to TypeScript 3.7 and above
6
- // - ~/ts3.6/base.d.ts - Definitions specific to TypeScript 3.6 and earlier
7
- // - ~/ts3.6/index.d.ts - Definitions specific to TypeScript 3.6 and earlier with assert pulled in
8
-
9
- // Reference required types from the default lib:
10
- /// <reference lib="es2018" />
11
- /// <reference lib="esnext.asynciterable" />
12
- /// <reference lib="esnext.intl" />
13
- /// <reference lib="esnext.bigint" />
14
-
15
- // Base definitions for all NodeJS modules that are not specific to any version of TypeScript:
16
- /// <reference path="../assert/strict.d.ts" />
17
- /// <reference path="../globals.d.ts" />
18
- /// <reference path="../async_hooks.d.ts" />
19
- /// <reference path="../buffer.d.ts" />
20
- /// <reference path="../child_process.d.ts" />
21
- /// <reference path="../cluster.d.ts" />
22
- /// <reference path="../console.d.ts" />
23
- /// <reference path="../constants.d.ts" />
24
- /// <reference path="../crypto.d.ts" />
25
- /// <reference path="../dgram.d.ts" />
26
- /// <reference path="../diagnostic_channel.d.ts" />
27
- /// <reference path="../dns.d.ts" />
28
- /// <reference path="../dns/promises.d.ts" />
29
- /// <reference path="../dns/promises.d.ts" />
30
- /// <reference path="../domain.d.ts" />
31
- /// <reference path="../events.d.ts" />
32
- /// <reference path="../fs.d.ts" />
33
- /// <reference path="../fs/promises.d.ts" />
34
- /// <reference path="../http.d.ts" />
35
- /// <reference path="../http2.d.ts" />
36
- /// <reference path="../https.d.ts" />
37
- /// <reference path="../inspector.d.ts" />
38
- /// <reference path="../module.d.ts" />
39
- /// <reference path="../net.d.ts" />
40
- /// <reference path="../os.d.ts" />
41
- /// <reference path="../path.d.ts" />
42
- /// <reference path="../perf_hooks.d.ts" />
43
- /// <reference path="../process.d.ts" />
44
- /// <reference path="../punycode.d.ts" />
45
- /// <reference path="../querystring.d.ts" />
46
- /// <reference path="../readline.d.ts" />
47
- /// <reference path="../repl.d.ts" />
48
- /// <reference path="../stream.d.ts" />
49
- /// <reference path="../stream/promises.d.ts" />
50
- /// <reference path="../string_decoder.d.ts" />
51
- /// <reference path="../timers.d.ts" />
52
- /// <reference path="../timers/promises.d.ts" />
53
- /// <reference path="../tls.d.ts" />
54
- /// <reference path="../trace_events.d.ts" />
55
- /// <reference path="../tty.d.ts" />
56
- /// <reference path="../url.d.ts" />
57
- /// <reference path="../util.d.ts" />
58
- /// <reference path="../util/types.d.ts" />
59
- /// <reference path="../v8.d.ts" />
60
- /// <reference path="../vm.d.ts" />
61
- /// <reference path="../worker_threads.d.ts" />
62
- /// <reference path="../zlib.d.ts" />
63
-
64
- // TypeScript 3.6-specific augmentations:
65
- /// <reference path="../globals.global.d.ts" />
66
-
67
- // TypeScript 3.6-specific augmentations:
68
- /// <reference path="../wasi.d.ts" />
@@ -1,7 +0,0 @@
1
- // NOTE: These definitions support NodeJS and TypeScript 3.6.
2
- // This is required to enable typing assert in ts3.7 without causing errors
3
- // Typically type modifications should be made in base.d.ts instead of here
4
-
5
- /// <reference path="base.d.ts" />
6
-
7
- /// <reference path="assert.d.ts" />
@@ -1,53 +0,0 @@
1
- declare module 'util/types' {
2
- function isAnyArrayBuffer(object: any): object is ArrayBufferLike;
3
- function isArgumentsObject(object: any): object is IArguments;
4
- function isArrayBuffer(object: any): object is ArrayBuffer;
5
- function isArrayBufferView(object: any): object is NodeJS.ArrayBufferView;
6
- function isAsyncFunction(object: any): boolean;
7
- function isBigInt64Array(value: any): value is BigInt64Array;
8
- function isBigUint64Array(value: any): value is BigUint64Array;
9
- function isBooleanObject(object: any): object is Boolean;
10
- function isBoxedPrimitive(object: any): object is String | Number | BigInt | Boolean | Symbol;
11
- function isDataView(object: any): object is DataView;
12
- function isDate(object: any): object is Date;
13
- function isExternal(object: any): boolean;
14
- function isFloat32Array(object: any): object is Float32Array;
15
- function isFloat64Array(object: any): object is Float64Array;
16
- function isGeneratorFunction(object: any): object is GeneratorFunction;
17
- function isGeneratorObject(object: any): object is Generator;
18
- function isInt8Array(object: any): object is Int8Array;
19
- function isInt16Array(object: any): object is Int16Array;
20
- function isInt32Array(object: any): object is Int32Array;
21
- function isMap<T>(
22
- object: T | {},
23
- ): object is T extends ReadonlyMap<any, any>
24
- ? unknown extends T
25
- ? never
26
- : ReadonlyMap<any, any>
27
- : Map<any, any>;
28
- function isMapIterator(object: any): boolean;
29
- function isModuleNamespaceObject(value: any): boolean;
30
- function isNativeError(object: any): object is Error;
31
- function isNumberObject(object: any): object is Number;
32
- function isPromise(object: any): object is Promise<any>;
33
- function isProxy(object: any): boolean;
34
- function isRegExp(object: any): object is RegExp;
35
- function isSet<T>(
36
- object: T | {},
37
- ): object is T extends ReadonlySet<any>
38
- ? unknown extends T
39
- ? never
40
- : ReadonlySet<any>
41
- : Set<any>;
42
- function isSetIterator(object: any): boolean;
43
- function isSharedArrayBuffer(object: any): object is SharedArrayBuffer;
44
- function isStringObject(object: any): object is String;
45
- function isSymbolObject(object: any): object is Symbol;
46
- function isTypedArray(object: any): object is NodeJS.TypedArray;
47
- function isUint8Array(object: any): object is Uint8Array;
48
- function isUint8ClampedArray(object: any): object is Uint8ClampedArray;
49
- function isUint16Array(object: any): object is Uint16Array;
50
- function isUint32Array(object: any): object is Uint32Array;
51
- function isWeakMap(object: any): object is WeakMap<any, any>;
52
- function isWeakSet(object: any): object is WeakSet<any>;
53
- }