@rayselfs/cf-rule-engine 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/adapters/cf-function.cjs +7 -3
- package/dist/adapters/cf-function.d.cts +2 -1
- package/dist/adapters/cf-function.d.ts +2 -1
- package/dist/adapters/cf-function.js +7 -3
- package/dist/adapters/viewer-request.cjs +3 -2
- package/dist/adapters/viewer-request.d.cts +31 -2
- package/dist/adapters/viewer-request.d.ts +31 -2
- package/dist/adapters/viewer-request.js +2 -1
- package/dist/adapters/viewer-response.cjs +3 -3
- package/dist/adapters/viewer-response.d.cts +37 -2
- package/dist/adapters/viewer-response.d.ts +37 -2
- package/dist/adapters/viewer-response.js +2 -2
- package/dist/behaviors/index.cjs +2 -2
- package/dist/behaviors/index.js +1 -1
- package/dist/behaviors/set-security-headers.cjs +2 -2
- package/dist/behaviors/set-security-headers.d.cts +35 -19
- package/dist/behaviors/set-security-headers.d.ts +35 -19
- package/dist/behaviors/set-security-headers.js +1 -1
- package/dist/cf-function-BkfWpTfl.d.cts +10 -0
- package/dist/cf-function-CZwCWch-.d.ts +10 -0
- package/dist/chunk-3UXNXJ6N.cjs +21 -0
- package/dist/chunk-5ZIB3AJ7.cjs +20 -0
- package/dist/chunk-6NFAPLQ7.cjs +39 -0
- package/dist/chunk-BJZPAQHW.js +25 -0
- package/dist/chunk-CQ7YZ3AR.js +39 -0
- package/dist/chunk-N6QAQALU.cjs +36 -0
- package/dist/chunk-O4SOSGAP.js +21 -0
- package/dist/chunk-PR5UQJCC.js +20 -0
- package/dist/chunk-SGN2N3WI.cjs +25 -0
- package/dist/chunk-TURH5IFN.js +36 -0
- package/dist/criteria/index.cjs +12 -12
- package/dist/criteria/index.js +12 -12
- package/dist/helpers/index.cjs +6 -6
- package/dist/helpers/index.js +5 -5
- package/dist/helpers/whitelist.cjs +3 -3
- package/dist/helpers/whitelist.js +2 -2
- package/dist/index.cjs +6 -3
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +6 -3
- package/package.json +1 -1
- package/dist/chunk-NPMGSPNL.js +0 -88
- package/dist/chunk-SAXDN5NS.cjs +0 -88
- package/dist/chunk-UI6LKDJI.cjs +0 -19
- package/dist/chunk-VQCRSBWL.js +0 -19
- package/dist/viewer-response-C9eF2O9s.d.ts +0 -70
- package/dist/viewer-response-DIQHy8L7.d.cts +0 -70
- package/dist/{chunk-RL7ZETZR.js → chunk-ER2YEZZO.js} +3 -3
- package/dist/{chunk-T5EXFHVA.cjs → chunk-MO7HW25R.cjs} +3 -3
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/adapters/_normalize.ts
|
|
2
|
+
function normalizeRequest(event) {
|
|
3
|
+
const ev = event;
|
|
4
|
+
const req = ev.request;
|
|
5
|
+
const viewer = ev.viewer;
|
|
6
|
+
const headers = req.headers ?? {};
|
|
7
|
+
return {
|
|
8
|
+
uri: req.uri,
|
|
9
|
+
method: req.method,
|
|
10
|
+
protocol: "https",
|
|
11
|
+
querystring: req.querystring ?? {},
|
|
12
|
+
headers,
|
|
13
|
+
clientIp: viewer?.ip ?? "",
|
|
14
|
+
country: headers["cloudfront-viewer-country"]?.value
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function denormalizeRequest(req, cookies) {
|
|
18
|
+
return {
|
|
19
|
+
method: req.method,
|
|
20
|
+
uri: req.uri,
|
|
21
|
+
querystring: req.querystring,
|
|
22
|
+
headers: req.headers,
|
|
23
|
+
cookies
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function denormalizeResponse(res) {
|
|
27
|
+
return {
|
|
28
|
+
statusCode: res.statusCode,
|
|
29
|
+
statusDescription: res.statusDescription,
|
|
30
|
+
headers: res.headers,
|
|
31
|
+
body: res.body ?? ""
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
normalizeRequest,
|
|
37
|
+
denormalizeRequest,
|
|
38
|
+
denormalizeResponse
|
|
39
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk6NFAPLQ7cjs = require('./chunk-6NFAPLQ7.cjs');
|
|
5
|
+
|
|
6
|
+
// src/adapters/viewer-response.ts
|
|
7
|
+
function defineViewerResponse(responseBehaviors) {
|
|
8
|
+
return (event) => {
|
|
9
|
+
const ev = event;
|
|
10
|
+
const evRes = ev.response;
|
|
11
|
+
const req = _chunk6NFAPLQ7cjs.normalizeRequest.call(void 0, event);
|
|
12
|
+
let response = {
|
|
13
|
+
statusCode: _nullishCoalesce(_optionalChain([evRes, 'optionalAccess', _ => _.statusCode]), () => ( 200)),
|
|
14
|
+
statusDescription: _optionalChain([evRes, 'optionalAccess', _2 => _2.statusDescription]),
|
|
15
|
+
headers: _nullishCoalesce(_optionalChain([evRes, 'optionalAccess', _3 => _3.headers]), () => ( {})),
|
|
16
|
+
body: _optionalChain([evRes, 'optionalAccess', _4 => _4.body])
|
|
17
|
+
};
|
|
18
|
+
for (let i = 0; i < responseBehaviors.length; i++) {
|
|
19
|
+
const entry = responseBehaviors[i];
|
|
20
|
+
if (typeof entry === "function") {
|
|
21
|
+
response = entry(req, response);
|
|
22
|
+
} else if (!entry.criteria || entry.criteria(req)) {
|
|
23
|
+
response = entry.behavior(req, response);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const normalized = _chunk6NFAPLQ7cjs.denormalizeResponse.call(void 0, response);
|
|
27
|
+
if (!response.body) {
|
|
28
|
+
delete normalized.body;
|
|
29
|
+
}
|
|
30
|
+
return Object.assign({}, evRes, normalized);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
exports.defineViewerResponse = defineViewerResponse;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/behaviors/set-security-headers.ts
|
|
2
|
+
function setSecurityHeaders(options) {
|
|
3
|
+
return (_request, response) => {
|
|
4
|
+
const extra = {};
|
|
5
|
+
if (options.hsts !== void 0)
|
|
6
|
+
extra["strict-transport-security"] = { value: options.hsts };
|
|
7
|
+
if (options.xFrameOptions !== void 0)
|
|
8
|
+
extra["x-frame-options"] = { value: options.xFrameOptions };
|
|
9
|
+
if (options.xContentTypeOptions !== void 0)
|
|
10
|
+
extra["x-content-type-options"] = { value: options.xContentTypeOptions };
|
|
11
|
+
if (options.xXssProtection !== void 0)
|
|
12
|
+
extra["x-xss-protection"] = { value: options.xXssProtection };
|
|
13
|
+
return Object.assign({}, response, {
|
|
14
|
+
headers: Object.assign({}, response.headers, extra)
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
setSecurityHeaders
|
|
21
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defineViewerRequest
|
|
3
|
+
} from "./chunk-BJZPAQHW.js";
|
|
4
|
+
import {
|
|
5
|
+
defineViewerResponse
|
|
6
|
+
} from "./chunk-TURH5IFN.js";
|
|
7
|
+
import {
|
|
8
|
+
__export
|
|
9
|
+
} from "./chunk-MLKGABMK.js";
|
|
10
|
+
|
|
11
|
+
// src/adapters/cf-function.ts
|
|
12
|
+
var cf_function_exports = {};
|
|
13
|
+
__export(cf_function_exports, {
|
|
14
|
+
defineViewerRequest: () => defineViewerRequest,
|
|
15
|
+
defineViewerResponse: () => defineViewerResponse
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
cf_function_exports
|
|
20
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunk6NFAPLQ7cjs = require('./chunk-6NFAPLQ7.cjs');
|
|
9
|
+
|
|
10
|
+
// src/adapters/viewer-request.ts
|
|
11
|
+
function defineViewerRequest(rules) {
|
|
12
|
+
return (event) => {
|
|
13
|
+
const ev = event;
|
|
14
|
+
const evReq = ev.request;
|
|
15
|
+
const originalCookies = _nullishCoalesce(evReq.cookies, () => ( {}));
|
|
16
|
+
const req = _chunk6NFAPLQ7cjs.normalizeRequest.call(void 0, event);
|
|
17
|
+
const result = _chunkWKYMSRCDcjs.runRules.call(void 0, rules, req);
|
|
18
|
+
if (result.action === "respond") return _chunk6NFAPLQ7cjs.denormalizeResponse.call(void 0, result.response);
|
|
19
|
+
return _chunk6NFAPLQ7cjs.denormalizeRequest.call(void 0, result.request, originalCookies);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
exports.defineViewerRequest = defineViewerRequest;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
denormalizeResponse,
|
|
3
|
+
normalizeRequest
|
|
4
|
+
} from "./chunk-CQ7YZ3AR.js";
|
|
5
|
+
|
|
6
|
+
// src/adapters/viewer-response.ts
|
|
7
|
+
function defineViewerResponse(responseBehaviors) {
|
|
8
|
+
return (event) => {
|
|
9
|
+
const ev = event;
|
|
10
|
+
const evRes = ev.response;
|
|
11
|
+
const req = normalizeRequest(event);
|
|
12
|
+
let response = {
|
|
13
|
+
statusCode: evRes?.statusCode ?? 200,
|
|
14
|
+
statusDescription: evRes?.statusDescription,
|
|
15
|
+
headers: evRes?.headers ?? {},
|
|
16
|
+
body: evRes?.body
|
|
17
|
+
};
|
|
18
|
+
for (let i = 0; i < responseBehaviors.length; i++) {
|
|
19
|
+
const entry = responseBehaviors[i];
|
|
20
|
+
if (typeof entry === "function") {
|
|
21
|
+
response = entry(req, response);
|
|
22
|
+
} else if (!entry.criteria || entry.criteria(req)) {
|
|
23
|
+
response = entry.behavior(req, response);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const normalized = denormalizeResponse(response);
|
|
27
|
+
if (!response.body) {
|
|
28
|
+
delete normalized.body;
|
|
29
|
+
}
|
|
30
|
+
return Object.assign({}, evRes, normalized);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
defineViewerResponse
|
|
36
|
+
};
|
package/dist/criteria/index.cjs
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var _chunkG7JGTBTTcjs = require('../chunk-G7JGTBTT.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkMVGYPBYBcjs = require('../chunk-MVGYPBYB.cjs');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _chunk32SMWYAFcjs = require('../chunk-32SMWYAF.cjs');
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _chunkL7NBJ4JAcjs = require('../chunk-L7NBJ4JA.cjs');
|
|
13
|
-
|
|
14
|
-
|
|
15
3
|
var _chunkJGJW7D2Ncjs = require('../chunk-JGJW7D2N.cjs');
|
|
16
4
|
|
|
17
5
|
|
|
@@ -26,6 +14,12 @@ var _chunkVEEOQ7TScjs = require('../chunk-VEEOQ7TS.cjs');
|
|
|
26
14
|
|
|
27
15
|
|
|
28
16
|
var _chunkCF5PWWTFcjs = require('../chunk-CF5PWWTF.cjs');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var _chunkG7JGTBTTcjs = require('../chunk-G7JGTBTT.cjs');
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
var _chunkMVGYPBYBcjs = require('../chunk-MVGYPBYB.cjs');
|
|
29
23
|
require('../chunk-IBXAK2A4.cjs');
|
|
30
24
|
|
|
31
25
|
|
|
@@ -33,6 +27,12 @@ var _chunkOSZWDCTScjs = require('../chunk-OSZWDCTS.cjs');
|
|
|
33
27
|
|
|
34
28
|
|
|
35
29
|
var _chunkU54FZCOHcjs = require('../chunk-U54FZCOH.cjs');
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
var _chunk32SMWYAFcjs = require('../chunk-32SMWYAF.cjs');
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
var _chunkL7NBJ4JAcjs = require('../chunk-L7NBJ4JA.cjs');
|
|
36
36
|
require('../chunk-75ZPJI57.cjs');
|
|
37
37
|
|
|
38
38
|
|
package/dist/criteria/index.js
CHANGED
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
pathPrefix
|
|
3
|
-
} from "../chunk-XLSZ5RB7.js";
|
|
4
|
-
import {
|
|
5
|
-
userAgentMatches
|
|
6
|
-
} from "../chunk-S2AAATFN.js";
|
|
7
|
-
import {
|
|
8
|
-
headerContains
|
|
9
|
-
} from "../chunk-SRQF5UEJ.js";
|
|
10
|
-
import {
|
|
11
|
-
headerEquals
|
|
12
|
-
} from "../chunk-BZQJYOU2.js";
|
|
13
1
|
import {
|
|
14
2
|
hostnameIs
|
|
15
3
|
} from "../chunk-3PVDUC5M.js";
|
|
@@ -26,6 +14,12 @@ import {
|
|
|
26
14
|
import {
|
|
27
15
|
pathMatches
|
|
28
16
|
} from "../chunk-LO2BO3RU.js";
|
|
17
|
+
import {
|
|
18
|
+
pathPrefix
|
|
19
|
+
} from "../chunk-XLSZ5RB7.js";
|
|
20
|
+
import {
|
|
21
|
+
userAgentMatches
|
|
22
|
+
} from "../chunk-S2AAATFN.js";
|
|
29
23
|
import "../chunk-2DE6WPPL.js";
|
|
30
24
|
import {
|
|
31
25
|
countryIs
|
|
@@ -33,6 +27,12 @@ import {
|
|
|
33
27
|
import {
|
|
34
28
|
fileExtension
|
|
35
29
|
} from "../chunk-LBJUCJF2.js";
|
|
30
|
+
import {
|
|
31
|
+
headerContains
|
|
32
|
+
} from "../chunk-SRQF5UEJ.js";
|
|
33
|
+
import {
|
|
34
|
+
headerEquals
|
|
35
|
+
} from "../chunk-BZQJYOU2.js";
|
|
36
36
|
import "../chunk-MLKGABMK.js";
|
|
37
37
|
export {
|
|
38
38
|
countryIs,
|
package/dist/helpers/index.cjs
CHANGED
|
@@ -6,18 +6,18 @@ var _chunk63WIEBQBcjs = require('../chunk-63WIEBQB.cjs');
|
|
|
6
6
|
var _chunkLSCC62CZcjs = require('../chunk-LSCC62CZ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
require('../chunk-MVGYPBYB.cjs');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var _chunkL7NBJ4JAcjs = require('../chunk-L7NBJ4JA.cjs');
|
|
9
|
+
var _chunkMO7HW25Rcjs = require('../chunk-MO7HW25R.cjs');
|
|
14
10
|
require('../chunk-D47P7HVZ.cjs');
|
|
15
11
|
require('../chunk-YVUR35RN.cjs');
|
|
16
12
|
require('../chunk-OTFDML3K.cjs');
|
|
17
13
|
require('../chunk-CF5PWWTF.cjs');
|
|
14
|
+
require('../chunk-MVGYPBYB.cjs');
|
|
18
15
|
require('../chunk-IBXAK2A4.cjs');
|
|
19
16
|
|
|
20
17
|
|
|
18
|
+
var _chunkL7NBJ4JAcjs = require('../chunk-L7NBJ4JA.cjs');
|
|
19
|
+
|
|
20
|
+
|
|
21
21
|
var _chunkB4WEJSEZcjs = require('../chunk-B4WEJSEZ.cjs');
|
|
22
22
|
require('../chunk-WWSRNCUP.cjs');
|
|
23
23
|
require('../chunk-WKYMSRCD.cjs');
|
|
@@ -39,4 +39,4 @@ function stagingIndicator() {
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
exports.preflightRequest = _chunk63WIEBQBcjs.preflightRequest; exports.sendCountryCode = _chunkLSCC62CZcjs.sendCountryCode; exports.stagingIndicator = stagingIndicator; exports.whitelist =
|
|
42
|
+
exports.preflightRequest = _chunk63WIEBQBcjs.preflightRequest; exports.sendCountryCode = _chunkLSCC62CZcjs.sendCountryCode; exports.stagingIndicator = stagingIndicator; exports.whitelist = _chunkMO7HW25Rcjs.whitelist;
|
package/dist/helpers/index.js
CHANGED
|
@@ -6,16 +6,16 @@ import {
|
|
|
6
6
|
} from "../chunk-C32DL3EP.js";
|
|
7
7
|
import {
|
|
8
8
|
whitelist
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-S2AAATFN.js";
|
|
11
|
-
import {
|
|
12
|
-
headerEquals
|
|
13
|
-
} from "../chunk-BZQJYOU2.js";
|
|
9
|
+
} from "../chunk-ER2YEZZO.js";
|
|
14
10
|
import "../chunk-KW5YBTSD.js";
|
|
15
11
|
import "../chunk-LNQPYKGG.js";
|
|
16
12
|
import "../chunk-PY3JMRDG.js";
|
|
17
13
|
import "../chunk-LO2BO3RU.js";
|
|
14
|
+
import "../chunk-S2AAATFN.js";
|
|
18
15
|
import "../chunk-2DE6WPPL.js";
|
|
16
|
+
import {
|
|
17
|
+
headerEquals
|
|
18
|
+
} from "../chunk-BZQJYOU2.js";
|
|
19
19
|
import {
|
|
20
20
|
setResponseHeader
|
|
21
21
|
} from "../chunk-RBBKFG5J.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-MVGYPBYB.cjs');
|
|
3
|
+
var _chunkMO7HW25Rcjs = require('../chunk-MO7HW25R.cjs');
|
|
5
4
|
require('../chunk-D47P7HVZ.cjs');
|
|
6
5
|
require('../chunk-YVUR35RN.cjs');
|
|
7
6
|
require('../chunk-CF5PWWTF.cjs');
|
|
7
|
+
require('../chunk-MVGYPBYB.cjs');
|
|
8
8
|
require('../chunk-IBXAK2A4.cjs');
|
|
9
9
|
require('../chunk-WWSRNCUP.cjs');
|
|
10
10
|
require('../chunk-WKYMSRCD.cjs');
|
|
11
11
|
require('../chunk-75ZPJI57.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
exports.whitelist =
|
|
14
|
+
exports.whitelist = _chunkMO7HW25Rcjs.whitelist;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
whitelist
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-S2AAATFN.js";
|
|
3
|
+
} from "../chunk-ER2YEZZO.js";
|
|
5
4
|
import "../chunk-KW5YBTSD.js";
|
|
6
5
|
import "../chunk-LNQPYKGG.js";
|
|
7
6
|
import "../chunk-LO2BO3RU.js";
|
|
7
|
+
import "../chunk-S2AAATFN.js";
|
|
8
8
|
import "../chunk-2DE6WPPL.js";
|
|
9
9
|
import "../chunk-DSSFFJWL.js";
|
|
10
10
|
import "../chunk-Q4NP4C3B.js";
|
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-MEHWLQLR.cjs');
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk5ZIB3AJ7cjs = require('./chunk-5ZIB3AJ7.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunk3BBLG4IXcjs = require('./chunk-3BBLG4IX.cjs');
|
|
8
|
+
require('./chunk-SGN2N3WI.cjs');
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
@@ -13,6 +14,8 @@ var _chunkSAXDN5NScjs = require('./chunk-SAXDN5NS.cjs');
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
|
|
17
|
+
require('./chunk-N6QAQALU.cjs');
|
|
18
|
+
require('./chunk-6NFAPLQ7.cjs');
|
|
16
19
|
require('./chunk-75ZPJI57.cjs');
|
|
17
20
|
|
|
18
21
|
|
|
@@ -23,4 +26,4 @@ require('./chunk-75ZPJI57.cjs');
|
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
|
|
26
|
-
exports.all = _chunkWKYMSRCDcjs.all; exports.any = _chunkWKYMSRCDcjs.any; exports.cfFunction =
|
|
29
|
+
exports.all = _chunkWKYMSRCDcjs.all; exports.any = _chunkWKYMSRCDcjs.any; exports.cfFunction = _chunk5ZIB3AJ7cjs.cf_function_exports; exports.chain = _chunkWKYMSRCDcjs.chain; exports.lambdaEdge = _chunk3BBLG4IXcjs.lambda_edge_exports; exports.not = _chunkWKYMSRCDcjs.not; exports.rule = _chunkWKYMSRCDcjs.rule; exports.runRules = _chunkWKYMSRCDcjs.runRules;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { BehaviorFn, BehaviorResult, CriteriaFn, HttpRequest, HttpResponse, ResponseBehaviorFn, ResponseRule, Rule, ViewerRequestHandler, ViewerResponseHandler } from './core/types.cjs';
|
|
2
2
|
export { all, any, chain, not, rule, runRules } from './core/rule.cjs';
|
|
3
|
-
export { c as cfFunction } from './
|
|
3
|
+
export { c as cfFunction } from './cf-function-BkfWpTfl.cjs';
|
|
4
4
|
export { l as lambdaEdge } from './lambda-edge-9xiONGmR.cjs';
|
|
5
|
+
import './adapters/viewer-request.cjs';
|
|
6
|
+
import './adapters/viewer-response.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { BehaviorFn, BehaviorResult, CriteriaFn, HttpRequest, HttpResponse, ResponseBehaviorFn, ResponseRule, Rule, ViewerRequestHandler, ViewerResponseHandler } from './core/types.js';
|
|
2
2
|
export { all, any, chain, not, rule, runRules } from './core/rule.js';
|
|
3
|
-
export { c as cfFunction } from './
|
|
3
|
+
export { c as cfFunction } from './cf-function-CZwCWch-.js';
|
|
4
4
|
export { l as lambdaEdge } from './lambda-edge-BK3-bFx8.js';
|
|
5
|
+
import './adapters/viewer-request.js';
|
|
6
|
+
import './adapters/viewer-response.js';
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import "./chunk-KZ72PI2A.js";
|
|
2
|
+
import {
|
|
3
|
+
cf_function_exports
|
|
4
|
+
} from "./chunk-PR5UQJCC.js";
|
|
2
5
|
import {
|
|
3
6
|
lambda_edge_exports
|
|
4
7
|
} from "./chunk-WEBU4R5C.js";
|
|
5
|
-
import
|
|
6
|
-
cf_function_exports
|
|
7
|
-
} from "./chunk-NPMGSPNL.js";
|
|
8
|
+
import "./chunk-BJZPAQHW.js";
|
|
8
9
|
import {
|
|
9
10
|
all,
|
|
10
11
|
any,
|
|
@@ -13,6 +14,8 @@ import {
|
|
|
13
14
|
rule,
|
|
14
15
|
runRules
|
|
15
16
|
} from "./chunk-Q4NP4C3B.js";
|
|
17
|
+
import "./chunk-TURH5IFN.js";
|
|
18
|
+
import "./chunk-CQ7YZ3AR.js";
|
|
16
19
|
import "./chunk-MLKGABMK.js";
|
|
17
20
|
export {
|
|
18
21
|
all,
|
package/package.json
CHANGED
package/dist/chunk-NPMGSPNL.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
runRules
|
|
3
|
-
} from "./chunk-Q4NP4C3B.js";
|
|
4
|
-
import {
|
|
5
|
-
__export
|
|
6
|
-
} from "./chunk-MLKGABMK.js";
|
|
7
|
-
|
|
8
|
-
// src/adapters/cf-function.ts
|
|
9
|
-
var cf_function_exports = {};
|
|
10
|
-
__export(cf_function_exports, {
|
|
11
|
-
defineViewerRequest: () => defineViewerRequest,
|
|
12
|
-
defineViewerResponse: () => defineViewerResponse
|
|
13
|
-
});
|
|
14
|
-
function normalizeRequest(event) {
|
|
15
|
-
const ev = event;
|
|
16
|
-
const req = ev.request;
|
|
17
|
-
const viewer = ev.viewer;
|
|
18
|
-
const headers = req.headers ?? {};
|
|
19
|
-
return {
|
|
20
|
-
uri: req.uri,
|
|
21
|
-
method: req.method,
|
|
22
|
-
protocol: "https",
|
|
23
|
-
querystring: req.querystring ?? {},
|
|
24
|
-
headers,
|
|
25
|
-
clientIp: viewer?.ip ?? "",
|
|
26
|
-
country: headers["cloudfront-viewer-country"]?.value
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function denormalizeRequest(req, cookies) {
|
|
30
|
-
return {
|
|
31
|
-
method: req.method,
|
|
32
|
-
uri: req.uri,
|
|
33
|
-
querystring: req.querystring,
|
|
34
|
-
headers: req.headers,
|
|
35
|
-
cookies
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function denormalizeResponse(res) {
|
|
39
|
-
return {
|
|
40
|
-
statusCode: res.statusCode,
|
|
41
|
-
statusDescription: res.statusDescription,
|
|
42
|
-
headers: res.headers,
|
|
43
|
-
body: res.body ?? ""
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function defineViewerRequest(rules) {
|
|
47
|
-
return (event) => {
|
|
48
|
-
const ev = event;
|
|
49
|
-
const evReq = ev.request;
|
|
50
|
-
const originalCookies = evReq.cookies ?? {};
|
|
51
|
-
const req = normalizeRequest(event);
|
|
52
|
-
const result = runRules(rules, req);
|
|
53
|
-
if (result.action === "respond") return denormalizeResponse(result.response);
|
|
54
|
-
return denormalizeRequest(result.request, originalCookies);
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function defineViewerResponse(responseBehaviors) {
|
|
58
|
-
return (event) => {
|
|
59
|
-
const ev = event;
|
|
60
|
-
const evRes = ev.response;
|
|
61
|
-
const req = normalizeRequest(event);
|
|
62
|
-
let response = {
|
|
63
|
-
statusCode: evRes?.statusCode ?? 200,
|
|
64
|
-
statusDescription: evRes?.statusDescription,
|
|
65
|
-
headers: evRes?.headers ?? {},
|
|
66
|
-
body: evRes?.body
|
|
67
|
-
};
|
|
68
|
-
for (let i = 0; i < responseBehaviors.length; i++) {
|
|
69
|
-
const entry = responseBehaviors[i];
|
|
70
|
-
if (typeof entry === "function") {
|
|
71
|
-
response = entry(req, response);
|
|
72
|
-
} else if (!entry.criteria || entry.criteria(req)) {
|
|
73
|
-
response = entry.behavior(req, response);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const normalized = denormalizeResponse(response);
|
|
77
|
-
if (!response.body) {
|
|
78
|
-
delete normalized.body;
|
|
79
|
-
}
|
|
80
|
-
return Object.assign({}, evRes, normalized);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export {
|
|
85
|
-
defineViewerRequest,
|
|
86
|
-
defineViewerResponse,
|
|
87
|
-
cf_function_exports
|
|
88
|
-
};
|
package/dist/chunk-SAXDN5NS.cjs
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunk75ZPJI57cjs = require('./chunk-75ZPJI57.cjs');
|
|
7
|
-
|
|
8
|
-
// src/adapters/cf-function.ts
|
|
9
|
-
var cf_function_exports = {};
|
|
10
|
-
_chunk75ZPJI57cjs.__export.call(void 0, cf_function_exports, {
|
|
11
|
-
defineViewerRequest: () => defineViewerRequest,
|
|
12
|
-
defineViewerResponse: () => defineViewerResponse
|
|
13
|
-
});
|
|
14
|
-
function normalizeRequest(event) {
|
|
15
|
-
const ev = event;
|
|
16
|
-
const req = ev.request;
|
|
17
|
-
const viewer = ev.viewer;
|
|
18
|
-
const headers = _nullishCoalesce(req.headers, () => ( {}));
|
|
19
|
-
return {
|
|
20
|
-
uri: req.uri,
|
|
21
|
-
method: req.method,
|
|
22
|
-
protocol: "https",
|
|
23
|
-
querystring: _nullishCoalesce(req.querystring, () => ( {})),
|
|
24
|
-
headers,
|
|
25
|
-
clientIp: _nullishCoalesce(_optionalChain([viewer, 'optionalAccess', _ => _.ip]), () => ( "")),
|
|
26
|
-
country: _optionalChain([headers, 'access', _2 => _2["cloudfront-viewer-country"], 'optionalAccess', _3 => _3.value])
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function denormalizeRequest(req, cookies) {
|
|
30
|
-
return {
|
|
31
|
-
method: req.method,
|
|
32
|
-
uri: req.uri,
|
|
33
|
-
querystring: req.querystring,
|
|
34
|
-
headers: req.headers,
|
|
35
|
-
cookies
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function denormalizeResponse(res) {
|
|
39
|
-
return {
|
|
40
|
-
statusCode: res.statusCode,
|
|
41
|
-
statusDescription: res.statusDescription,
|
|
42
|
-
headers: res.headers,
|
|
43
|
-
body: _nullishCoalesce(res.body, () => ( ""))
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function defineViewerRequest(rules) {
|
|
47
|
-
return (event) => {
|
|
48
|
-
const ev = event;
|
|
49
|
-
const evReq = ev.request;
|
|
50
|
-
const originalCookies = _nullishCoalesce(evReq.cookies, () => ( {}));
|
|
51
|
-
const req = normalizeRequest(event);
|
|
52
|
-
const result = _chunkWKYMSRCDcjs.runRules.call(void 0, rules, req);
|
|
53
|
-
if (result.action === "respond") return denormalizeResponse(result.response);
|
|
54
|
-
return denormalizeRequest(result.request, originalCookies);
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function defineViewerResponse(responseBehaviors) {
|
|
58
|
-
return (event) => {
|
|
59
|
-
const ev = event;
|
|
60
|
-
const evRes = ev.response;
|
|
61
|
-
const req = normalizeRequest(event);
|
|
62
|
-
let response = {
|
|
63
|
-
statusCode: _nullishCoalesce(_optionalChain([evRes, 'optionalAccess', _4 => _4.statusCode]), () => ( 200)),
|
|
64
|
-
statusDescription: _optionalChain([evRes, 'optionalAccess', _5 => _5.statusDescription]),
|
|
65
|
-
headers: _nullishCoalesce(_optionalChain([evRes, 'optionalAccess', _6 => _6.headers]), () => ( {})),
|
|
66
|
-
body: _optionalChain([evRes, 'optionalAccess', _7 => _7.body])
|
|
67
|
-
};
|
|
68
|
-
for (let i = 0; i < responseBehaviors.length; i++) {
|
|
69
|
-
const entry = responseBehaviors[i];
|
|
70
|
-
if (typeof entry === "function") {
|
|
71
|
-
response = entry(req, response);
|
|
72
|
-
} else if (!entry.criteria || entry.criteria(req)) {
|
|
73
|
-
response = entry.behavior(req, response);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const normalized = denormalizeResponse(response);
|
|
77
|
-
if (!response.body) {
|
|
78
|
-
delete normalized.body;
|
|
79
|
-
}
|
|
80
|
-
return Object.assign({}, evRes, normalized);
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
exports.defineViewerRequest = defineViewerRequest; exports.defineViewerResponse = defineViewerResponse; exports.cf_function_exports = cf_function_exports;
|
package/dist/chunk-UI6LKDJI.cjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/behaviors/set-security-headers.ts
|
|
2
|
-
function setSecurityHeaders(options) {
|
|
3
|
-
const hsts = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _ => _.hsts]), () => ( "max-age=31536000; includeSubDomains"));
|
|
4
|
-
const xFrameOptions = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _2 => _2.xFrameOptions]), () => ( "SAMEORIGIN"));
|
|
5
|
-
const xContentTypeOptions = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _3 => _3.xContentTypeOptions]), () => ( "nosniff"));
|
|
6
|
-
return (_request, response) => {
|
|
7
|
-
return Object.assign({}, response, {
|
|
8
|
-
headers: Object.assign({}, response.headers, {
|
|
9
|
-
"strict-transport-security": { value: hsts },
|
|
10
|
-
"x-frame-options": { value: xFrameOptions },
|
|
11
|
-
"x-content-type-options": { value: xContentTypeOptions }
|
|
12
|
-
})
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
exports.setSecurityHeaders = setSecurityHeaders;
|
package/dist/chunk-VQCRSBWL.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// src/behaviors/set-security-headers.ts
|
|
2
|
-
function setSecurityHeaders(options) {
|
|
3
|
-
const hsts = options?.hsts ?? "max-age=31536000; includeSubDomains";
|
|
4
|
-
const xFrameOptions = options?.xFrameOptions ?? "SAMEORIGIN";
|
|
5
|
-
const xContentTypeOptions = options?.xContentTypeOptions ?? "nosniff";
|
|
6
|
-
return (_request, response) => {
|
|
7
|
-
return Object.assign({}, response, {
|
|
8
|
-
headers: Object.assign({}, response.headers, {
|
|
9
|
-
"strict-transport-security": { value: hsts },
|
|
10
|
-
"x-frame-options": { value: xFrameOptions },
|
|
11
|
-
"x-content-type-options": { value: xContentTypeOptions }
|
|
12
|
-
})
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export {
|
|
18
|
-
setSecurityHeaders
|
|
19
|
-
};
|