@cloudflare/pages-shared 0.0.0-ship-js

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 (91) hide show
  1. package/README.md +5 -0
  2. package/asset-server/handler.ts +625 -0
  3. package/asset-server/metadata.ts +67 -0
  4. package/asset-server/patchUrl.ts +22 -0
  5. package/asset-server/responses.ts +196 -0
  6. package/asset-server/rulesEngine.ts +82 -0
  7. package/dist/__tests__/asset-server/handler.test.d.ts +2 -0
  8. package/dist/__tests__/asset-server/handler.test.d.ts.map +1 -0
  9. package/dist/__tests__/asset-server/handler.test.js +430 -0
  10. package/dist/__tests__/asset-server/responses.test.d.ts +2 -0
  11. package/dist/__tests__/asset-server/responses.test.d.ts.map +1 -0
  12. package/dist/__tests__/asset-server/responses.test.js +22 -0
  13. package/dist/__tests__/asset-server/rulesEngine.test.d.ts +2 -0
  14. package/dist/__tests__/asset-server/rulesEngine.test.d.ts.map +1 -0
  15. package/dist/__tests__/asset-server/rulesEngine.test.js +70 -0
  16. package/dist/__tests__/jest.setup.d.ts +2 -0
  17. package/dist/__tests__/jest.setup.d.ts.map +1 -0
  18. package/dist/__tests__/jest.setup.js +7 -0
  19. package/dist/__tests__/metadata-generator/createMetadataObject.test.d.ts +2 -0
  20. package/dist/__tests__/metadata-generator/createMetadataObject.test.d.ts.map +1 -0
  21. package/dist/__tests__/metadata-generator/createMetadataObject.test.js +293 -0
  22. package/dist/__tests__/metadata-generator/parseHeaders.invalid.test.d.ts +2 -0
  23. package/dist/__tests__/metadata-generator/parseHeaders.invalid.test.d.ts.map +1 -0
  24. package/dist/__tests__/metadata-generator/parseHeaders.invalid.test.js +194 -0
  25. package/dist/__tests__/metadata-generator/parseHeaders.valid.test.d.ts +2 -0
  26. package/dist/__tests__/metadata-generator/parseHeaders.valid.test.d.ts.map +1 -0
  27. package/dist/__tests__/metadata-generator/parseHeaders.valid.test.js +132 -0
  28. package/dist/__tests__/metadata-generator/parseRedirects.invalid.test.d.ts +2 -0
  29. package/dist/__tests__/metadata-generator/parseRedirects.invalid.test.d.ts.map +1 -0
  30. package/dist/__tests__/metadata-generator/parseRedirects.invalid.test.js +243 -0
  31. package/dist/__tests__/metadata-generator/parseRedirects.valid.test.d.ts +2 -0
  32. package/dist/__tests__/metadata-generator/parseRedirects.valid.test.d.ts.map +1 -0
  33. package/dist/__tests__/metadata-generator/parseRedirects.valid.test.js +88 -0
  34. package/dist/asset-server/handler.d.ts +44 -0
  35. package/dist/asset-server/handler.d.ts.map +1 -0
  36. package/dist/asset-server/handler.js +420 -0
  37. package/dist/asset-server/metadata.d.ts +52 -0
  38. package/dist/asset-server/metadata.d.ts.map +1 -0
  39. package/dist/asset-server/metadata.js +3 -0
  40. package/dist/asset-server/patchUrl.d.ts +2 -0
  41. package/dist/asset-server/patchUrl.d.ts.map +1 -0
  42. package/dist/asset-server/patchUrl.js +19 -0
  43. package/dist/asset-server/responses.d.ts +45 -0
  44. package/dist/asset-server/responses.d.ts.map +1 -0
  45. package/dist/asset-server/responses.js +165 -0
  46. package/dist/asset-server/rulesEngine.d.ts +7 -0
  47. package/dist/asset-server/rulesEngine.d.ts.map +1 -0
  48. package/dist/asset-server/rulesEngine.js +68 -0
  49. package/dist/environment-polyfills/index.d.ts +3 -0
  50. package/dist/environment-polyfills/index.d.ts.map +1 -0
  51. package/dist/environment-polyfills/index.js +14 -0
  52. package/dist/environment-polyfills/miniflare-tre.d.ts +3 -0
  53. package/dist/environment-polyfills/miniflare-tre.d.ts.map +1 -0
  54. package/dist/environment-polyfills/miniflare-tre.js +35 -0
  55. package/dist/environment-polyfills/miniflare.d.ts +3 -0
  56. package/dist/environment-polyfills/miniflare.d.ts.map +1 -0
  57. package/dist/environment-polyfills/miniflare.js +35 -0
  58. package/dist/environment-polyfills/types.d.ts +34 -0
  59. package/dist/environment-polyfills/types.d.ts.map +1 -0
  60. package/dist/environment-polyfills/types.js +5 -0
  61. package/dist/metadata-generator/constants.d.ts +14 -0
  62. package/dist/metadata-generator/constants.d.ts.map +1 -0
  63. package/dist/metadata-generator/constants.js +16 -0
  64. package/dist/metadata-generator/createMetadataObject.d.ts +10 -0
  65. package/dist/metadata-generator/createMetadataObject.d.ts.map +1 -0
  66. package/dist/metadata-generator/createMetadataObject.js +105 -0
  67. package/dist/metadata-generator/parseHeaders.d.ts +3 -0
  68. package/dist/metadata-generator/parseHeaders.d.ts.map +1 -0
  69. package/dist/metadata-generator/parseHeaders.js +146 -0
  70. package/dist/metadata-generator/parseRedirects.d.ts +3 -0
  71. package/dist/metadata-generator/parseRedirects.d.ts.map +1 -0
  72. package/dist/metadata-generator/parseRedirects.js +100 -0
  73. package/dist/metadata-generator/types.d.ts +74 -0
  74. package/dist/metadata-generator/types.d.ts.map +1 -0
  75. package/dist/metadata-generator/types.js +3 -0
  76. package/dist/metadata-generator/validateURL.d.ts +3 -0
  77. package/dist/metadata-generator/validateURL.d.ts.map +1 -0
  78. package/dist/metadata-generator/validateURL.js +46 -0
  79. package/dist/tsconfig.tsbuildinfo +1 -0
  80. package/environment-polyfills/index.ts +14 -0
  81. package/environment-polyfills/miniflare-tre.ts +12 -0
  82. package/environment-polyfills/miniflare.ts +12 -0
  83. package/environment-polyfills/types.ts +42 -0
  84. package/metadata-generator/constants.ts +15 -0
  85. package/metadata-generator/createMetadataObject.ts +164 -0
  86. package/metadata-generator/parseHeaders.ts +168 -0
  87. package/metadata-generator/parseRedirects.ts +129 -0
  88. package/metadata-generator/types.ts +90 -0
  89. package/metadata-generator/validateURL.ts +57 -0
  90. package/package.json +63 -0
  91. package/tsconfig.json +13 -0
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseHeaders = void 0;
4
+ const constants_1 = require("./constants");
5
+ const validateURL_1 = require("./validateURL");
6
+ // Not strictly necessary to check for all protocols-like beginnings, since _technically_ that could be a legit header (e.g. name=http, value=://I'm a value).
7
+ // But we're checking here since some people might be caught out and it'll help 99.9% of people who get it wrong.
8
+ // We do the proper validation in `validateUrl` anyway :)
9
+ const LINE_IS_PROBABLY_A_PATH = new RegExp(/^([^\s]+:\/\/|^\/)/);
10
+ function parseHeaders(input) {
11
+ const lines = input.split("\n");
12
+ const rules = [];
13
+ const invalid = [];
14
+ let rule = undefined;
15
+ for (let i = 0; i < lines.length; i++) {
16
+ const line = lines[i].trim();
17
+ if (line.length === 0 || line.startsWith("#"))
18
+ continue;
19
+ if (line.length > constants_1.MAX_LINE_LENGTH) {
20
+ invalid.push({
21
+ message: `Ignoring line ${i + 1} as it exceeds the maximum allowed length of ${constants_1.MAX_LINE_LENGTH}.`,
22
+ });
23
+ continue;
24
+ }
25
+ if (LINE_IS_PROBABLY_A_PATH.test(line)) {
26
+ if (rules.length >= constants_1.MAX_HEADER_RULES) {
27
+ invalid.push({
28
+ message: `Maximum number of rules supported is ${constants_1.MAX_HEADER_RULES}. Skipping remaining ${lines.length - i} lines of file.`,
29
+ });
30
+ break;
31
+ }
32
+ if (rule) {
33
+ if (isValidRule(rule)) {
34
+ rules.push({
35
+ path: rule.path,
36
+ headers: rule.headers,
37
+ unsetHeaders: rule.unsetHeaders,
38
+ });
39
+ }
40
+ else {
41
+ invalid.push({
42
+ line: rule.line,
43
+ lineNumber: i + 1,
44
+ message: "No headers specified",
45
+ });
46
+ }
47
+ }
48
+ const [path, pathError] = (0, validateURL_1.validateUrl)(line);
49
+ if (pathError) {
50
+ invalid.push({
51
+ line,
52
+ lineNumber: i + 1,
53
+ message: pathError,
54
+ });
55
+ rule = undefined;
56
+ continue;
57
+ }
58
+ rule = {
59
+ path: path,
60
+ line,
61
+ headers: {},
62
+ unsetHeaders: [],
63
+ };
64
+ continue;
65
+ }
66
+ if (!line.includes(constants_1.HEADER_SEPARATOR)) {
67
+ if (!rule) {
68
+ invalid.push({
69
+ line,
70
+ lineNumber: i + 1,
71
+ message: "Expected a path beginning with at least one forward-slash",
72
+ });
73
+ }
74
+ else {
75
+ if (line.trim().startsWith(constants_1.UNSET_OPERATOR)) {
76
+ rule.unsetHeaders.push(line.trim().replace(constants_1.UNSET_OPERATOR, ""));
77
+ }
78
+ else {
79
+ invalid.push({
80
+ line,
81
+ lineNumber: i + 1,
82
+ message: "Expected a colon-separated header pair (e.g. name: value)",
83
+ });
84
+ }
85
+ }
86
+ continue;
87
+ }
88
+ const [rawName, ...rawValue] = line.split(constants_1.HEADER_SEPARATOR);
89
+ const name = rawName.trim().toLowerCase();
90
+ if (name.includes(" ")) {
91
+ invalid.push({
92
+ line,
93
+ lineNumber: i + 1,
94
+ message: "Header name cannot include spaces",
95
+ });
96
+ continue;
97
+ }
98
+ const value = rawValue.join(constants_1.HEADER_SEPARATOR).trim();
99
+ if (name === "") {
100
+ invalid.push({
101
+ line,
102
+ lineNumber: i + 1,
103
+ message: "No header name specified",
104
+ });
105
+ continue;
106
+ }
107
+ if (value === "") {
108
+ invalid.push({
109
+ line,
110
+ lineNumber: i + 1,
111
+ message: "No header value specified",
112
+ });
113
+ continue;
114
+ }
115
+ if (!rule) {
116
+ invalid.push({
117
+ line,
118
+ lineNumber: i + 1,
119
+ message: `Path should come before header (${name}: ${value})`,
120
+ });
121
+ continue;
122
+ }
123
+ const existingValues = rule.headers[name];
124
+ rule.headers[name] = existingValues ? `${existingValues}, ${value}` : value;
125
+ }
126
+ if (rule) {
127
+ if (isValidRule(rule)) {
128
+ rules.push({
129
+ path: rule.path,
130
+ headers: rule.headers,
131
+ unsetHeaders: rule.unsetHeaders,
132
+ });
133
+ }
134
+ else {
135
+ invalid.push({ line: rule.line, message: "No headers specified" });
136
+ }
137
+ }
138
+ return {
139
+ rules,
140
+ invalid,
141
+ };
142
+ }
143
+ exports.parseHeaders = parseHeaders;
144
+ function isValidRule(rule) {
145
+ return Object.keys(rule.headers).length > 0 || rule.unsetHeaders.length > 0;
146
+ }
@@ -0,0 +1,3 @@
1
+ import type { ParsedRedirects } from "./types";
2
+ export declare function parseRedirects(input: string): ParsedRedirects;
3
+ //# sourceMappingURL=parseRedirects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseRedirects.d.ts","sourceRoot":"","sources":["../../metadata-generator/parseRedirects.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEX,eAAe,EAGf,MAAM,SAAS,CAAC;AAEjB,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAgH7D"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRedirects = void 0;
4
+ const constants_1 = require("./constants");
5
+ const validateURL_1 = require("./validateURL");
6
+ function parseRedirects(input) {
7
+ const lines = input.split("\n");
8
+ const rules = [];
9
+ const seen_paths = new Set();
10
+ const invalid = [];
11
+ let staticRules = 0;
12
+ let dynamicRules = 0;
13
+ let canCreateStaticRule = true;
14
+ for (let i = 0; i < lines.length; i++) {
15
+ const line = lines[i].trim();
16
+ if (line.length === 0 || line.startsWith("#"))
17
+ continue;
18
+ if (line.length > constants_1.MAX_LINE_LENGTH) {
19
+ invalid.push({
20
+ message: `Ignoring line ${i + 1} as it exceeds the maximum allowed length of ${constants_1.MAX_LINE_LENGTH}.`,
21
+ });
22
+ continue;
23
+ }
24
+ const tokens = line.split(/\s+/);
25
+ if (tokens.length < 2 || tokens.length > 3) {
26
+ invalid.push({
27
+ line,
28
+ lineNumber: i + 1,
29
+ message: `Expected exactly 2 or 3 whitespace-separated tokens. Got ${tokens.length}.`,
30
+ });
31
+ continue;
32
+ }
33
+ const [str_from, str_to, str_status = "302"] = tokens;
34
+ const fromResult = (0, validateURL_1.validateUrl)(str_from, true, false, false);
35
+ if (fromResult[0] === undefined) {
36
+ invalid.push({
37
+ line,
38
+ lineNumber: i + 1,
39
+ message: fromResult[1],
40
+ });
41
+ continue;
42
+ }
43
+ const from = fromResult[0];
44
+ if (canCreateStaticRule &&
45
+ !from.match(constants_1.SPLAT_REGEX) &&
46
+ !from.match(constants_1.PLACEHOLDER_REGEX)) {
47
+ staticRules += 1;
48
+ if (staticRules > constants_1.MAX_STATIC_REDIRECT_RULES) {
49
+ invalid.push({
50
+ message: `Maximum number of static rules supported is ${constants_1.MAX_STATIC_REDIRECT_RULES}. Skipping line.`,
51
+ });
52
+ continue;
53
+ }
54
+ }
55
+ else {
56
+ dynamicRules += 1;
57
+ canCreateStaticRule = false;
58
+ if (dynamicRules > constants_1.MAX_DYNAMIC_REDIRECT_RULES) {
59
+ invalid.push({
60
+ message: `Maximum number of dynamic rules supported is ${constants_1.MAX_DYNAMIC_REDIRECT_RULES}. Skipping remaining ${lines.length - i} lines of file.`,
61
+ });
62
+ break;
63
+ }
64
+ }
65
+ const toResult = (0, validateURL_1.validateUrl)(str_to, false, true, true);
66
+ if (toResult[0] === undefined) {
67
+ invalid.push({
68
+ line,
69
+ lineNumber: i + 1,
70
+ message: toResult[1],
71
+ });
72
+ continue;
73
+ }
74
+ const to = toResult[0];
75
+ const status = Number(str_status);
76
+ if (isNaN(status) || !constants_1.PERMITTED_STATUS_CODES.has(status)) {
77
+ invalid.push({
78
+ line,
79
+ lineNumber: i + 1,
80
+ message: `Valid status codes are 301, 302 (default), 303, 307, or 308. Got ${str_status}.`,
81
+ });
82
+ continue;
83
+ }
84
+ if (seen_paths.has(from)) {
85
+ invalid.push({
86
+ line,
87
+ lineNumber: i + 1,
88
+ message: `Ignoring duplicate rule for path ${from}.`,
89
+ });
90
+ continue;
91
+ }
92
+ seen_paths.add(from);
93
+ rules.push({ from, to, status, lineNumber: i + 1 });
94
+ }
95
+ return {
96
+ rules,
97
+ invalid,
98
+ };
99
+ }
100
+ exports.parseRedirects = parseRedirects;
@@ -0,0 +1,74 @@
1
+ export declare type RedirectLine = [from: string, to: string, status?: number];
2
+ export declare type RedirectRule = {
3
+ from: string;
4
+ to: string;
5
+ status: number;
6
+ lineNumber: number;
7
+ };
8
+ export declare type Headers = Record<string, string>;
9
+ export declare type HeadersRule = {
10
+ path: string;
11
+ headers: Headers;
12
+ unsetHeaders: string[];
13
+ };
14
+ export declare type InvalidRedirectRule = {
15
+ line?: string;
16
+ lineNumber?: number;
17
+ message: string;
18
+ };
19
+ export declare type InvalidHeadersRule = {
20
+ line?: string;
21
+ lineNumber?: number;
22
+ message: string;
23
+ };
24
+ export declare type ParsedRedirects = {
25
+ invalid: InvalidRedirectRule[];
26
+ rules: RedirectRule[];
27
+ };
28
+ /** Parsed redirects and input file */
29
+ export declare type ParsedRedirectsWithFile = {
30
+ parsedRedirects?: ParsedRedirects;
31
+ file?: string;
32
+ };
33
+ export declare type ParsedHeaders = {
34
+ invalid: InvalidHeadersRule[];
35
+ rules: HeadersRule[];
36
+ };
37
+ /** Parsed headers and input file */
38
+ export declare type ParsedHeadersWithFile = {
39
+ parsedHeaders?: ParsedHeaders;
40
+ file?: string;
41
+ };
42
+ export declare type MetadataRedirectEntry = {
43
+ status: number;
44
+ to: string;
45
+ };
46
+ export declare type MetadataRedirects = {
47
+ [path: string]: MetadataRedirectEntry;
48
+ };
49
+ export declare type MetadataHeaders = {
50
+ [path: string]: MetadataHeaderEntry;
51
+ };
52
+ export declare type MetadataHeaderEntry = {
53
+ set?: Record<string, string>;
54
+ unset?: Array<string>;
55
+ };
56
+ export declare type Metadata = {
57
+ redirects?: {
58
+ version: number;
59
+ staticRules: MetadataRedirects;
60
+ rules: MetadataRedirects;
61
+ };
62
+ headers?: {
63
+ version: number;
64
+ rules: MetadataHeaders;
65
+ };
66
+ analytics?: {
67
+ version: number;
68
+ token: string;
69
+ };
70
+ deploymentId?: string;
71
+ failOpen?: boolean;
72
+ };
73
+ export declare type Logger = (message: string) => void;
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../metadata-generator/types.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AACvE,oBAAY,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,oBAAY,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAC;CACtB,CAAC;AAEF,sCAAsC;AACtC,oBAAY,uBAAuB,GAAG;IACrC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC3B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAEF,oCAAoC;AACpC,oBAAY,qBAAqB,GAAG;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,oBAAY,qBAAqB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtC,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACpC,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC;AAEF,oBAAY,QAAQ,GAAG;IACtB,SAAS,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,KAAK,EAAE,iBAAiB,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,eAAe,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* REDIRECT PARSING TYPES */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export declare const extractPathname: (path: string | undefined, includeSearch: boolean, includeHash: boolean) => string;
2
+ export declare const validateUrl: (token: string, onlyRelative?: boolean, includeSearch?: boolean, includeHash?: boolean) => [undefined, string] | [string, undefined];
3
+ //# sourceMappingURL=validateURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateURL.d.ts","sourceRoot":"","sources":["../../metadata-generator/validateURL.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,4CAEZ,OAAO,eACT,OAAO,KAClB,MAMF,CAAC;AAKF,eAAO,MAAM,WAAW,UAChB,MAAM,6EAIX,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAoC1C,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateUrl = exports.extractPathname = void 0;
4
+ const extractPathname = (path = "/", includeSearch, includeHash) => {
5
+ if (!path.startsWith("/"))
6
+ path = `/${path}`;
7
+ const url = new URL(`//${path}`, "relative://");
8
+ return `${url.pathname}${includeSearch ? url.search : ""}${includeHash ? url.hash : ""}`;
9
+ };
10
+ exports.extractPathname = extractPathname;
11
+ const URL_REGEX = /^https:\/\/+(?<host>[^/]+)\/?(?<path>.*)/;
12
+ const PATH_REGEX = /^\//;
13
+ const validateUrl = (token, onlyRelative = false, includeSearch = false, includeHash = false) => {
14
+ const host = URL_REGEX.exec(token);
15
+ if (host && host.groups && host.groups.host) {
16
+ if (onlyRelative)
17
+ return [
18
+ undefined,
19
+ `Only relative URLs are allowed. Skipping absolute URL ${token}.`,
20
+ ];
21
+ return [
22
+ `https://${host.groups.host}${(0, exports.extractPathname)(host.groups.path, includeSearch, includeHash)}`,
23
+ undefined,
24
+ ];
25
+ }
26
+ else {
27
+ if (!token.startsWith("/") && onlyRelative)
28
+ token = `/${token}`;
29
+ const path = PATH_REGEX.exec(token);
30
+ if (path) {
31
+ try {
32
+ return [(0, exports.extractPathname)(token, includeSearch, includeHash), undefined];
33
+ }
34
+ catch {
35
+ return [undefined, `Error parsing URL segment ${token}. Skipping.`];
36
+ }
37
+ }
38
+ }
39
+ return [
40
+ undefined,
41
+ onlyRelative
42
+ ? "URLs should begin with a forward-slash."
43
+ : 'URLs should either be relative (e.g. begin with a forward-slash), or use HTTPS (e.g. begin with "https://").',
44
+ ];
45
+ };
46
+ exports.validateUrl = validateUrl;
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/service-worker-mock/index.d.ts","../__tests__/jest.setup.ts","../asset-server/responses.ts","../asset-server/rulesengine.ts","../asset-server/metadata.ts","../asset-server/handler.ts","../metadata-generator/constants.ts","../metadata-generator/types.ts","../metadata-generator/createmetadataobject.ts","../__tests__/asset-server/handler.test.ts","../__tests__/asset-server/responses.test.ts","../__tests__/asset-server/rulesengine.test.ts","../__tests__/metadata-generator/createmetadataobject.test.ts","../metadata-generator/validateurl.ts","../metadata-generator/parseheaders.ts","../__tests__/metadata-generator/parseheaders.invalid.test.ts","../__tests__/metadata-generator/parseheaders.valid.test.ts","../metadata-generator/parseredirects.ts","../__tests__/metadata-generator/parseredirects.invalid.test.ts","../__tests__/metadata-generator/parseredirects.valid.test.ts","../asset-server/patchurl.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici/types/header.d.ts","../../../node_modules/undici/types/readable.d.ts","../../../node_modules/undici/types/file.d.ts","../../../node_modules/undici/types/fetch.d.ts","../../../node_modules/undici/types/formdata.d.ts","../../../node_modules/undici/types/connector.d.ts","../../../node_modules/undici/types/client.d.ts","../../../node_modules/undici/types/errors.d.ts","../../../node_modules/undici/types/dispatcher.d.ts","../../../node_modules/undici/types/global-dispatcher.d.ts","../../../node_modules/undici/types/global-origin.d.ts","../../../node_modules/undici/types/pool-stats.d.ts","../../../node_modules/undici/types/pool.d.ts","../../../node_modules/undici/types/handlers.d.ts","../../../node_modules/undici/types/balanced-pool.d.ts","../../../node_modules/undici/types/agent.d.ts","../../../node_modules/undici/types/mock-interceptor.d.ts","../../../node_modules/undici/types/mock-agent.d.ts","../../../node_modules/undici/types/mock-client.d.ts","../../../node_modules/undici/types/mock-pool.d.ts","../../../node_modules/undici/types/mock-errors.d.ts","../../../node_modules/undici/types/proxy-agent.d.ts","../../../node_modules/undici/types/api.d.ts","../../../node_modules/undici/types/cookies.d.ts","../../../node_modules/undici/types/patch.d.ts","../../../node_modules/undici/types/filereader.d.ts","../../../node_modules/undici/types/diagnostics-channel.d.ts","../../../node_modules/undici/types/websocket.d.ts","../../../node_modules/undici/types/content-type.d.ts","../../../node_modules/undici/types/interceptors.d.ts","../../../node_modules/undici/index.d.ts","../../../node_modules/@types/better-sqlite3/index.d.ts","../../../node_modules/@miniflare/shared/dist/src/index.d.ts","../../../node_modules/@miniflare/queues/dist/src/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@miniflare/web-sockets/dist/src/index.d.ts","../../../node_modules/@miniflare/core/dist/src/index.d.ts","../../../node_modules/html-rewriter-wasm/dist/html_rewriter.d.ts","../../../node_modules/@miniflare/html-rewriter/dist/src/index.d.ts","../../../node_modules/@miniflare/cache/dist/src/index.d.ts","../environment-polyfills/types.ts","../environment-polyfills/index.ts","../../../node_modules/@cloudflare/workers-types/experimental/index.ts","../../../node_modules/zod/lib/helpers/typealiases.d.ts","../../../node_modules/zod/lib/helpers/util.d.ts","../../../node_modules/zod/lib/zoderror.d.ts","../../../node_modules/zod/lib/locales/en.d.ts","../../../node_modules/zod/lib/errors.d.ts","../../../node_modules/zod/lib/helpers/parseutil.d.ts","../../../node_modules/zod/lib/helpers/enumutil.d.ts","../../../node_modules/zod/lib/helpers/errorutil.d.ts","../../../node_modules/zod/lib/helpers/partialutil.d.ts","../../../node_modules/zod/lib/types.d.ts","../../../node_modules/zod/lib/external.d.ts","../../../node_modules/zod/lib/index.d.ts","../../../node_modules/zod/index.d.ts","../../../node_modules/@miniflare/tre/dist/src/index.d.ts","../environment-polyfills/miniflare-tre.ts","../environment-polyfills/miniflare.ts","../../../node_modules/@types/jest/node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../node_modules/@types/jest/node_modules/jest-diff/build/index.d.ts","../../../node_modules/@types/jest/node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"d09e7e71a4f55adf20d2c2636074e5558905ff8b7336057c674f3df963de690f","affectsGlobalScope":true},{"version":"108a78c37edb77f250386413bfa98240b11c616ab8d28d250d9eddbee660629f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3dee407313f3cc02223fc4dc2b964912de5d2ff7b97cfc7bb31f81866fffdfe3","signature":"aac74518a5a355d3f1ab0a000de206f1ed96fbc01b54d1264c66db379c5a009f"},{"version":"d1a62621df744be36150eedc3ab8e0b51644124ff8cdbbe4bda8bad88d571c80","signature":"cdefcc7fffa70944410125dac81364ec9e7cf660a6025a97f3f39a3921655983"},{"version":"def7b5d1ab0fa0066484b30711e74e57ecc670086979a6c8cca27d562df673a8","signature":"11ef34919bc3b5a8d62591276a77b29d8fc4bbbace2d9298abec7efe82f7f751"},{"version":"2d4d8764bc50a237e6deefcc9cd472506159b8f5eb66fbce64659a4635609acb","signature":"d837eb252b8223ba2643fa6b7ac688707d6b4a09621199b2e5303b4ef1cc543f"},{"version":"2960cbcc4b0351c460086aaa9564c4d736f9e79ea4f5c7dfe739d410c3ef6cd6","signature":"c1901c363b19a37104bb72abcdb7565f29c3a5b75cf72963e68f38f1673ce5bd"},{"version":"78147e236d9bc0fa67ee714509096a3ae12b61585e7c9c677d2db13bfad1dfd1","signature":"c187b7b2c06f9b498e8faf047b800114fb8a49eb285fe82712606347c54b4af9"},{"version":"fbd2911c6e78b8dfb461c56faf961addd29b4c703862899e981f5ac51adcc50f","signature":"1f9ff5bb691cc78c97fda90c7937731888eac362cb11b1b56d5d06cafc0807f3"},{"version":"3d566a9a514cd2dcac09163aa69c068df35d15f3c4184d594b5c93087e792445","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b22a856c965469021c0623bd4a564f44ddba2e394f13b0641e246765b3610846","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c131df908d5ea035b2a79969b3d881d368870e8564beb1b66c467b2850fe510e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fd413ec77e593c98b78d042ca7bab2a40ad8922f0b5c6d3d006b9298b507f1ac","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e6810fe972f338c46e739bd468228555dbc1ce26c1f935a3b630ae5c9a708c26","signature":"7ddc65a8fa8644e9f4902766c6da5f9f88de193611a4590b29c796f3c4e9ba13"},{"version":"31215562f58f4a3f12e16b024c2f103a237a7e0fe3a26a01ea1769794709ed4c","signature":"e1f76e2b50a7e7ec2cded29d6fe1f2e03595fdeff3ea3cabab1abddcd548baf7"},{"version":"8e86d24ad3720e005a551c3ae3b07b304af44078eb675028729907eb7c0a2fd0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e567796b04e176d923dad8439cd810b7607b60575f5262696cd38ca2901010d1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d8863d3810f11874fb7f3fa134fade1c951504ce534a196ff8e12d37430c1ca2","signature":"d611f6df0b27aee209fde3d8cd62c9745b122e712732311dd8aec38825fa1984"},{"version":"8f40b638662b09694bd7e6dfb6da4d76027382a0ad813138c4a261123f0ede82","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"9453d2e69e33c86e07cab1d99ec2f41017752d69a9d1e87d0157b9e403075b91","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ae879e501d6c1258b2c98bab122b253016fae1a92ea48da13b4a2c543e93f7ff","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","196fee5541bfd59699dab615fee2ae7a6f5fe0a6337bcbbfd656ebf1ae329a63","160cc6e3d06938535bc887754afe5798c22d81ce83a9792ebfe2371a70f2ffc2","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"eecd493fc62c4dba3d988e2d7dff63299bf12ab49f5c9021dfef8dcc1ff2089e","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a7971f9fb2a32ec7788ec6cda9d7a33c02023dfe9a62db2030ad1359649d8050","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"daa2956e185fbca0591cb8cbe075c115301cbac7863092103f2aed6078dfb612","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","0589c85b507c2b90458bf7f87c2aebb0879a251fa119f2464350113d93113a32","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","db6c2d64e5c642b4e08a136a15ef7155452fc7072513ac5b18a03b8e8107fe45","d9bf99a360cb3dfdc87b7e4988d63115cb30bf180f2bcfd56f425d2aee49925f","2e98c8d346012b9ac4f372d5a0ba7930ec413e45822d52a833dcde4a1cca91eb","85b5d54fc8586dc83c99934f02df83954282725ffcbd6631d4aa0ec81afb8671","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","8b23b832eb8547e6ef837f2c86a2354bcc4a52f5a51b6f0c82da48dd71961bf1","80ad053918e96087d9da8d092ff9f90520c9fc199c8bfd9340266dd8f38f364e","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","cf01820a6625d372b406150fc8bbaaf82326dad57088a09d546df4619fcf4d2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","f436b69387a990543d96787d1671b601a1ca624c420edc53560cb3d742f132fb","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","e4da0dc0982bc3ecaed637009f74a847b8d3fe06cbcf9f5e83b8ce8b0ed5d393","3938877ee9772bc01aab80426060c1f0120e9ac5615a3c716ed86d91f5afad9b","358379536fce96a63ff1a2006a8f415c93dc188cda73b6b47b25cd836c069b4d","35a0729250cbbfe6d3d40ee93fd73b6f0fb529163ef867b9a3b145826b99a00b","77c5c7f8578d139c74102a29384f5f4f0792a12d819ddcdcaf8307185ff2d45d","b37d42b0e3eaf9ecf801fac68a0ab608612b1eac7f2ff5961b82b7e50c2567e7","76dc95032e67f4c9ff21789567416de1547755c17037084729750265bb9b39bd","fca196a63dcdda993cc0767c1d8038e0fea130723b6349256aec6f0dc6afeee6","e1b9a037e8bbf12c413c1a6b18ea985e09202fe3dbbf3da593568a91a7dc0ebf","44b9c28d716a2c6ae4054091485be97edd6d4e7f02eea3efbcb9afa4cea40e6e",{"version":"ec35e4acced0edca4b3f807597b61bca0e322a5404135a937ac11ca2958c7410","signature":"c43a4b744b5d1634565b69d19751a233dfbf77fce1710b3c133b5734205b273e","affectsGlobalScope":true},{"version":"d6e12bebdaf02b4e069bdb5d8733b6ca4d897c92067df5fdf863a65b826cb054","signature":"f2c10f3f670a114baf275c46887cb167f4b4bdb115b9d9ec733c4a8551552edc"},"e012b7e0f704f7f90f576f14d01f53b7840457f925b32490a56aae9d66e91487","5487b97cfa28b26b4a9ef0770f872bdbebd4c46124858de00f242c3eed7519f4","7a01f546ace66019156e4232a1bee2fabc2f8eabeb052473d926ee1693956265","fb53b1c6a6c799b7e3cc2de3fb5c9a1c04a1c60d4380a37792d84c5f8b33933b","8485b6da53ec35637d072e516631d25dae53984500de70a6989058f24354666f","ebe80346928736532e4a822154eb77f57ef3389dbe2b3ba4e571366a15448ef2","c2cb3c8ff388781258ea9ddbcd8a947f751bddd6886e1d3b3ea09ddaa895df80","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","98a9cc18f661d28e6bd31c436e1984f3980f35e0f0aa9cf795c54f8ccb667ffe","c76b0c5727302341d0bdfa2cc2cee4b19ff185b554edb6e8543f0661d8487116","19903057d0249e45c579bef2b771c37609e4853a8b88adbb0b6b63f9e1d1f372","f5ef066942e4f0bd98200aa6a6694b831e73200c9b3ade77ad0aa2409e8fe1b1","b9e99cd94f4166a245f5158f7286c05406e2a4c694619bceb7a4f3519d1d768e","5568d7c32e5cf5f35e092649f4e5e168c3114c800b1d7545b7ae5e0415704802","01f9ca5ebd237fbdee10a3aa7552af1df038a0594b39352515c89994909a7e88",{"version":"ab0d2c81d176bada32f9d00a2eeb2cc11b15c3db09642c6c5b389b652d51a89f","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},{"version":"9ed04a7dcb3f2e0de2fa41e8be03534796040c3344724348843fa2c8480952f9","signature":"fefaf643ad02c05059e06244a8291c4cb3a2693ec928c843599c25d00ee9f574"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"1de1ad6a1929317171d8cfcd55bb2732257680c1bf89bcd53e1d46a4d8dbda22","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"alwaysStrict":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":1,"outDir":"./","skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[118],[118,187],[118,157,159,163],[79,84,93,110,117,118,125,157,159,160,162],[118,157,159,163,164],[118,159],[118,122,125,157,158,159],[117,118,125,157,158,161,169,182],[118,125,157,159,161,163],[118,125],[118,189,191],[118,189],[118,186,190],[118,188],[75,118],[78,118],[79,84,118],[80,90,91,98,107,117,118],[80,81,90,98,118],[82,118],[83,84,91,99,118],[84,107,114,118],[85,87,90,98,118],[86,118],[87,88,118],[89,90,118],[90,118],[90,91,92,107,117,118],[90,91,92,107,118],[93,98,107,117,118],[90,91,93,94,98,107,114,117,118],[93,95,107,114,117,118],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124],[90,96,118],[97,117,118],[87,90,98,107,118],[99,118],[100,118],[78,101,118],[102,116,118,122],[103,118],[104,118],[90,105,118],[105,106,118,120],[90,107,108,109,118],[107,109,118],[107,108,118],[110,118],[111,118],[90,112,113,118],[112,113,118],[84,98,114,118],[115,118],[98,116,118],[79,93,104,117,118],[84,118],[107,118,119],[118,120],[118,121],[79,84,90,92,101,107,117,118,120,122],[107,118,123],[90,93,95,107,114,117,118,123,125],[118,129,130,131,132,133,134,135,136,137,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156],[117,118,135,139],[107,117,118,135],[114,117,118,132,135],[98,114,118],[118,125,130],[98,117,118,132,135],[79,90,107,117,118,127,128,131,134],[118,127,133],[79,110,117,118,125,131,135],[79,118,125],[79,118,125,151],[118,125,129,130],[118,135],[118,135,142,143],[118,133,135,143,144],[118,134],[118,127,130,135],[118,135,139,143,144],[118,139],[117,118,133,135,138],[118,127,132,135,142],[79,107,118],[118,125,151],[118,181],[118,172,173],[118,170,171,172,174,175,179],[118,171,172],[118,180],[118,172],[118,170,171,172,175,176,177,178],[118,170,171,181],[58,59,61,62,118],[56,118],[57,118],[54,118],[61,62,118],[68,118],[71,118],[56,57,58,118],[118,167],[118,168,183],[118,163,168],[110,118,163,165,166],[58,60,61,118],[60,61,67,118],[58],[167],[110,163,165,166],[61]],"referencedMap":[[169,1],[188,2],[166,3],[163,4],[165,5],[160,6],[159,7],[183,8],[162,9],[187,1],[158,10],[192,11],[186,1],[190,12],[191,13],[189,14],[75,15],[76,15],[78,16],[79,17],[80,18],[81,19],[82,20],[83,21],[84,22],[85,23],[86,24],[87,25],[88,25],[89,26],[90,27],[91,28],[92,29],[77,1],[124,1],[93,30],[94,31],[95,32],[125,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[109,46],[108,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[122,60],[123,61],[54,1],[161,62],[126,1],[164,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1],[157,63],[142,64],[149,65],[141,64],[133,66],[132,67],[155,10],[150,68],[153,69],[135,70],[134,71],[130,72],[129,73],[152,74],[131,75],[136,76],[137,1],[140,76],[127,1],[156,76],[144,77],[145,78],[147,79],[143,80],[146,81],[151,10],[138,82],[139,83],[148,84],[128,85],[154,86],[182,87],[174,88],[180,89],[176,1],[177,1],[175,90],[178,87],[170,1],[171,1],[181,91],[173,92],[179,93],[172,94],[63,95],[64,96],[65,97],[55,98],[66,99],[69,100],[70,100],[72,101],[73,101],[59,102],[58,1],[74,1],[56,1],[57,1],[168,103],[184,104],[185,105],[167,106],[60,1],[62,107],[68,108],[71,108],[61,1],[67,1]],"exportedModulesMap":[[169,1],[188,2],[166,3],[163,4],[165,5],[160,6],[159,7],[183,8],[162,9],[187,1],[158,10],[192,11],[186,1],[190,12],[191,13],[189,14],[75,15],[76,15],[78,16],[79,17],[80,18],[81,19],[82,20],[83,21],[84,22],[85,23],[86,24],[87,25],[88,25],[89,26],[90,27],[91,28],[92,29],[77,1],[124,1],[93,30],[94,31],[95,32],[125,33],[96,34],[97,35],[98,36],[99,37],[100,38],[101,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[109,46],[108,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[116,54],[117,55],[118,56],[119,57],[120,58],[121,59],[122,60],[123,61],[54,1],[161,62],[126,1],[164,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[36,1],[41,1],[42,1],[37,1],[38,1],[39,1],[40,1],[8,1],[46,1],[43,1],[44,1],[45,1],[47,1],[9,1],[48,1],[49,1],[50,1],[51,1],[52,1],[1,1],[10,1],[53,1],[157,63],[142,64],[149,65],[141,64],[133,66],[132,67],[155,10],[150,68],[153,69],[135,70],[134,71],[130,72],[129,73],[152,74],[131,75],[136,76],[137,1],[140,76],[127,1],[156,76],[144,77],[145,78],[147,79],[143,80],[146,81],[151,10],[138,82],[139,83],[148,84],[128,85],[154,86],[182,87],[174,88],[180,89],[176,1],[177,1],[175,90],[178,87],[170,1],[171,1],[181,91],[173,92],[179,93],[172,94],[59,109],[168,110],[167,111],[62,112],[68,112],[71,112]],"semanticDiagnosticsPerFile":[169,188,166,163,165,160,159,183,162,187,158,192,186,190,191,189,75,76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,77,124,93,94,95,125,96,97,98,99,100,101,102,103,104,105,106,107,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,54,161,126,164,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,52,1,10,53,157,142,149,141,133,132,155,150,153,135,134,130,129,152,131,136,137,140,127,156,144,145,147,143,146,151,138,139,148,128,154,182,174,180,176,177,175,178,170,171,181,173,179,172,63,64,65,55,66,69,70,72,73,59,58,74,56,57,168,184,185,167,60,62,68,71,61,67]},"version":"4.8.4"}
@@ -0,0 +1,14 @@
1
+ import type { PolyfilledRuntimeEnvironment } from "./types";
2
+
3
+ export const polyfill = (
4
+ environment: Record<keyof PolyfilledRuntimeEnvironment, unknown>
5
+ ) => {
6
+ Object.entries(environment).map(([name, value]) => {
7
+ Object.defineProperty(globalThis, name, {
8
+ value,
9
+ configurable: true,
10
+ enumerable: true,
11
+ writable: true,
12
+ });
13
+ });
14
+ };
@@ -0,0 +1,12 @@
1
+ import { polyfill } from ".";
2
+
3
+ export default async () => {
4
+ const mf = await import("@miniflare/tre");
5
+
6
+ polyfill({
7
+ fetch: mf.fetch,
8
+ Headers: mf.Headers,
9
+ Request: mf.Request,
10
+ Response: mf.Response,
11
+ });
12
+ };
@@ -0,0 +1,12 @@
1
+ import { polyfill } from ".";
2
+
3
+ export default async () => {
4
+ const mf = await import("@miniflare/core");
5
+
6
+ polyfill({
7
+ fetch: mf.fetch,
8
+ Headers: mf.Headers,
9
+ Request: mf.Request,
10
+ Response: mf.Response,
11
+ });
12
+ };
@@ -0,0 +1,42 @@
1
+ import {
2
+ Headers as MiniflareHeaders,
3
+ Request as MiniflareRequest,
4
+ Response as MiniflareResponse,
5
+ } from "@miniflare/core";
6
+ import { HTMLRewriter as MiniflareHTMLRewriter } from "@miniflare/html-rewriter";
7
+ import type { CacheInterface as MiniflareCacheInterface } from "@miniflare/cache";
8
+ import type { fetch as miniflareFetch } from "@miniflare/core";
9
+ import type { ReadableStream as SimilarReadableStream } from "stream/web";
10
+
11
+ declare global {
12
+ const fetch: typeof miniflareFetch;
13
+ class Headers extends MiniflareHeaders {}
14
+ class Request extends MiniflareRequest {}
15
+ class Response extends MiniflareResponse {}
16
+
17
+ type CacheInterface = Omit<MiniflareCacheInterface, "match"> & {
18
+ match(
19
+ ...args: Parameters<MiniflareCacheInterface["match"]>
20
+ ): Promise<Response | undefined>;
21
+ };
22
+
23
+ class CacheStorage {
24
+ get default(): CacheInterface;
25
+ open(cacheName: string): Promise<CacheInterface>;
26
+ }
27
+
28
+ class HTMLRewriter extends MiniflareHTMLRewriter {
29
+ transform(response: Response): Response;
30
+ }
31
+
32
+ type ReadableStream = SimilarReadableStream;
33
+ }
34
+
35
+ export type PolyfilledRuntimeEnvironment = {
36
+ fetch: typeof fetch;
37
+ Headers: typeof Headers;
38
+ Request: typeof Request;
39
+ Response: typeof Response;
40
+ };
41
+
42
+ export { fetch, Headers, Request, Response };
@@ -0,0 +1,15 @@
1
+ export const REDIRECTS_VERSION = 1;
2
+ export const HEADERS_VERSION = 2;
3
+ export const ANALYTICS_VERSION = 1;
4
+ export const ROUTES_JSON_VERSION = 1;
5
+
6
+ export const PERMITTED_STATUS_CODES = new Set([301, 302, 303, 307, 308]);
7
+ export const HEADER_SEPARATOR = ":";
8
+ export const MAX_LINE_LENGTH = 2000;
9
+ export const MAX_HEADER_RULES = 100;
10
+ export const MAX_DYNAMIC_REDIRECT_RULES = 100;
11
+ export const MAX_STATIC_REDIRECT_RULES = 2000;
12
+ export const UNSET_OPERATOR = "! ";
13
+
14
+ export const SPLAT_REGEX = /\*/g;
15
+ export const PLACEHOLDER_REGEX = /:\w+/g;