@rayselfs/cf-rule-engine 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/adapters/cf-function.cjs +4 -4
  2. package/dist/adapters/cf-function.js +3 -3
  3. package/dist/adapters/lambda-edge.cjs +2 -2
  4. package/dist/adapters/lambda-edge.js +1 -1
  5. package/dist/adapters/viewer-request-async.cjs +26 -0
  6. package/dist/adapters/viewer-request-async.d.cts +5 -0
  7. package/dist/adapters/viewer-request-async.d.ts +5 -0
  8. package/dist/adapters/viewer-request-async.js +26 -0
  9. package/dist/adapters/viewer-request.cjs +3 -3
  10. package/dist/adapters/viewer-request.js +2 -2
  11. package/dist/behaviors/index.cjs +7 -6
  12. package/dist/behaviors/index.js +6 -5
  13. package/dist/behaviors/kvs.cjs +24 -0
  14. package/dist/behaviors/kvs.d.cts +6 -0
  15. package/dist/behaviors/kvs.d.ts +6 -0
  16. package/dist/behaviors/kvs.js +24 -0
  17. package/dist/behaviors/rewrite-uri.cjs +2 -2
  18. package/dist/behaviors/rewrite-uri.js +1 -1
  19. package/dist/behaviors/set-cors-headers.cjs +3 -2
  20. package/dist/behaviors/set-cors-headers.d.cts +0 -27
  21. package/dist/behaviors/set-cors-headers.d.ts +0 -27
  22. package/dist/behaviors/set-cors-headers.js +2 -1
  23. package/dist/{chunk-SYPOHDLN.cjs → chunk-5ZIB3AJ7.cjs} +2 -2
  24. package/dist/{chunk-CLDF6FM5.js → chunk-7EA7GFWX.js} +5 -8
  25. package/dist/{chunk-MRPTC74I.cjs → chunk-BSH5JZBL.cjs} +4 -2
  26. package/dist/{chunk-2DE6WPPL.js → chunk-EEZ7NUJG.js} +12 -1
  27. package/dist/{chunk-PW4FKMJ2.cjs → chunk-EMDI676G.cjs} +8 -11
  28. package/dist/{chunk-3BBLG4IX.cjs → chunk-G4JEAL6L.cjs} +11 -8
  29. package/dist/{chunk-PI7RKMGS.js → chunk-H3RK4USR.js} +5 -7
  30. package/dist/{chunk-RL7ZETZR.js → chunk-IHDSTTO2.js} +5 -5
  31. package/dist/{chunk-XWJEVLMZ.cjs → chunk-IHVOAORH.cjs} +7 -9
  32. package/dist/{chunk-T5EXFHVA.cjs → chunk-ISXKMJCN.cjs} +5 -5
  33. package/dist/{chunk-MVGYPBYB.cjs → chunk-LVOM5GJ6.cjs} +2 -2
  34. package/dist/{chunk-D47P7HVZ.cjs → chunk-MK4QBCD5.cjs} +2 -2
  35. package/dist/chunk-NWRGD3AH.js +71 -0
  36. package/dist/{chunk-MTZ35AIR.js → chunk-PR5UQJCC.js} +1 -1
  37. package/dist/{chunk-FTP7NLKX.js → chunk-QVY6REMD.js} +4 -2
  38. package/dist/{chunk-IBXAK2A4.cjs → chunk-ULICUDDH.cjs} +12 -1
  39. package/dist/{chunk-WEBU4R5C.js → chunk-ULR7EP5D.js} +11 -8
  40. package/dist/{chunk-S2AAATFN.js → chunk-VQGBRWJK.js} +1 -1
  41. package/dist/chunk-WZKRNMF2.cjs +71 -0
  42. package/dist/{chunk-LO2BO3RU.js → chunk-Y7TIDVVC.js} +1 -1
  43. package/dist/{chunk-KW5YBTSD.js → chunk-YHTUV2SA.js} +1 -1
  44. package/dist/{chunk-CF5PWWTF.cjs → chunk-ZEFLAOTL.cjs} +2 -2
  45. package/dist/criteria/index.cjs +14 -14
  46. package/dist/criteria/index.js +19 -19
  47. package/dist/criteria/ip-cidr.cjs +3 -3
  48. package/dist/criteria/ip-cidr.js +2 -2
  49. package/dist/criteria/kvs.cjs +14 -0
  50. package/dist/criteria/kvs.d.cts +6 -0
  51. package/dist/criteria/kvs.d.ts +6 -0
  52. package/dist/criteria/kvs.js +14 -0
  53. package/dist/criteria/path-matches.cjs +3 -3
  54. package/dist/criteria/path-matches.js +2 -2
  55. package/dist/criteria/user-agent-matches.cjs +3 -3
  56. package/dist/criteria/user-agent-matches.js +2 -2
  57. package/dist/helpers/index.cjs +12 -12
  58. package/dist/helpers/index.js +12 -12
  59. package/dist/helpers/preflight-request.cjs +4 -3
  60. package/dist/helpers/preflight-request.js +3 -2
  61. package/dist/helpers/whitelist.cjs +7 -7
  62. package/dist/helpers/whitelist.js +6 -6
  63. package/dist/index.cjs +8 -8
  64. package/dist/index.js +6 -6
  65. package/dist/shared/cidr.cjs +2 -2
  66. package/dist/shared/cidr.d.cts +2 -2
  67. package/dist/shared/cidr.d.ts +2 -2
  68. package/dist/shared/cidr.js +1 -1
  69. package/dist/shared/kvs.cjs +1 -0
  70. package/dist/shared/kvs.d.cts +5 -0
  71. package/dist/shared/kvs.d.ts +5 -0
  72. package/dist/shared/kvs.js +0 -0
  73. package/dist/shared/wildcard.cjs +4 -2
  74. package/dist/shared/wildcard.d.cts +10 -1
  75. package/dist/shared/wildcard.d.ts +10 -1
  76. package/dist/shared/wildcard.js +3 -1
  77. package/package.json +1 -1
  78. package/dist/chunk-LNQPYKGG.js +0 -20
  79. package/dist/chunk-YVUR35RN.cjs +0 -20
  80. package/dist/{chunk-I2GJR6LY.js → chunk-BJZPAQHW.js} +3 -3
  81. package/dist/{chunk-FK3B4SP5.cjs → chunk-SGN2N3WI.cjs} +2 -2
@@ -1,9 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkPW4FKMJ2cjs = require('../chunk-PW4FKMJ2.cjs');
3
+ var _chunkEMDI676Gcjs = require('../chunk-EMDI676G.cjs');
4
4
  require('../chunk-OTFDML3K.cjs');
5
- require('../chunk-XWJEVLMZ.cjs');
5
+ require('../chunk-IHVOAORH.cjs');
6
+ require('../chunk-ULICUDDH.cjs');
6
7
  require('../chunk-75ZPJI57.cjs');
7
8
 
8
9
 
9
- exports.preflightRequest = _chunkPW4FKMJ2cjs.preflightRequest;
10
+ exports.preflightRequest = _chunkEMDI676Gcjs.preflightRequest;
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  preflightRequest
3
- } from "../chunk-CLDF6FM5.js";
3
+ } from "../chunk-7EA7GFWX.js";
4
4
  import "../chunk-PY3JMRDG.js";
5
- import "../chunk-PI7RKMGS.js";
5
+ import "../chunk-H3RK4USR.js";
6
+ import "../chunk-EEZ7NUJG.js";
6
7
  import "../chunk-MLKGABMK.js";
7
8
  export {
8
9
  preflightRequest
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkT5EXFHVAcjs = require('../chunk-T5EXFHVA.cjs');
4
- require('../chunk-MVGYPBYB.cjs');
5
- require('../chunk-D47P7HVZ.cjs');
6
- require('../chunk-YVUR35RN.cjs');
7
- require('../chunk-CF5PWWTF.cjs');
8
- require('../chunk-IBXAK2A4.cjs');
3
+ var _chunkISXKMJCNcjs = require('../chunk-ISXKMJCN.cjs');
4
+ require('../chunk-ZEFLAOTL.cjs');
5
+ require('../chunk-LVOM5GJ6.cjs');
6
+ require('../chunk-MK4QBCD5.cjs');
7
+ require('../chunk-WZKRNMF2.cjs');
8
+ require('../chunk-ULICUDDH.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 = _chunkT5EXFHVAcjs.whitelist;
14
+ exports.whitelist = _chunkISXKMJCNcjs.whitelist;
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  whitelist
3
- } from "../chunk-RL7ZETZR.js";
4
- import "../chunk-S2AAATFN.js";
5
- import "../chunk-KW5YBTSD.js";
6
- import "../chunk-LNQPYKGG.js";
7
- import "../chunk-LO2BO3RU.js";
8
- import "../chunk-2DE6WPPL.js";
3
+ } from "../chunk-IHDSTTO2.js";
4
+ import "../chunk-Y7TIDVVC.js";
5
+ import "../chunk-VQGBRWJK.js";
6
+ import "../chunk-YHTUV2SA.js";
7
+ import "../chunk-NWRGD3AH.js";
8
+ import "../chunk-EEZ7NUJG.js";
9
9
  import "../chunk-DSSFFJWL.js";
10
10
  import "../chunk-Q4NP4C3B.js";
11
11
  import "../chunk-MLKGABMK.js";
package/dist/index.cjs CHANGED
@@ -1,12 +1,11 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-MEHWLQLR.cjs');
2
2
 
3
- var _chunkSYPOHDLNcjs = require('./chunk-SYPOHDLN.cjs');
4
3
 
4
+ var _chunk5ZIB3AJ7cjs = require('./chunk-5ZIB3AJ7.cjs');
5
5
 
6
- var _chunk3BBLG4IXcjs = require('./chunk-3BBLG4IX.cjs');
7
- require('./chunk-FK3B4SP5.cjs');
8
- require('./chunk-N6QAQALU.cjs');
9
- require('./chunk-6NFAPLQ7.cjs');
6
+
7
+ var _chunkG4JEAL6Lcjs = require('./chunk-G4JEAL6L.cjs');
8
+ require('./chunk-SGN2N3WI.cjs');
10
9
 
11
10
 
12
11
 
@@ -15,7 +14,8 @@ require('./chunk-6NFAPLQ7.cjs');
15
14
 
16
15
 
17
16
  var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
18
- require('./chunk-MEHWLQLR.cjs');
17
+ require('./chunk-N6QAQALU.cjs');
18
+ require('./chunk-6NFAPLQ7.cjs');
19
19
  require('./chunk-75ZPJI57.cjs');
20
20
 
21
21
 
@@ -26,4 +26,4 @@ require('./chunk-75ZPJI57.cjs');
26
26
 
27
27
 
28
28
 
29
- exports.all = _chunkWKYMSRCDcjs.all; exports.any = _chunkWKYMSRCDcjs.any; exports.cfFunction = _chunkSYPOHDLNcjs.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;
29
+ exports.all = _chunkWKYMSRCDcjs.all; exports.any = _chunkWKYMSRCDcjs.any; exports.cfFunction = _chunk5ZIB3AJ7cjs.cf_function_exports; exports.chain = _chunkWKYMSRCDcjs.chain; exports.lambdaEdge = _chunkG4JEAL6Lcjs.lambda_edge_exports; exports.not = _chunkWKYMSRCDcjs.not; exports.rule = _chunkWKYMSRCDcjs.rule; exports.runRules = _chunkWKYMSRCDcjs.runRules;
package/dist/index.js CHANGED
@@ -1,12 +1,11 @@
1
+ import "./chunk-KZ72PI2A.js";
1
2
  import {
2
3
  cf_function_exports
3
- } from "./chunk-MTZ35AIR.js";
4
+ } from "./chunk-PR5UQJCC.js";
4
5
  import {
5
6
  lambda_edge_exports
6
- } from "./chunk-WEBU4R5C.js";
7
- import "./chunk-I2GJR6LY.js";
8
- import "./chunk-TURH5IFN.js";
9
- import "./chunk-CQ7YZ3AR.js";
7
+ } from "./chunk-ULR7EP5D.js";
8
+ import "./chunk-BJZPAQHW.js";
10
9
  import {
11
10
  all,
12
11
  any,
@@ -15,7 +14,8 @@ import {
15
14
  rule,
16
15
  runRules
17
16
  } from "./chunk-Q4NP4C3B.js";
18
- import "./chunk-KZ72PI2A.js";
17
+ import "./chunk-TURH5IFN.js";
18
+ import "./chunk-CQ7YZ3AR.js";
19
19
  import "./chunk-MLKGABMK.js";
20
20
  export {
21
21
  all,
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkYVUR35RNcjs = require('../chunk-YVUR35RN.cjs');
5
+ var _chunkWZKRNMF2cjs = require('../chunk-WZKRNMF2.cjs');
6
6
  require('../chunk-75ZPJI57.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.inCidr = _chunkYVUR35RNcjs.inCidr; exports.ipToInt = _chunkYVUR35RNcjs.ipToInt; exports.matchesAnyCidr = _chunkYVUR35RNcjs.matchesAnyCidr;
11
+ exports.inCidr = _chunkWZKRNMF2cjs.inCidr; exports.ipToInt = _chunkWZKRNMF2cjs.ipToInt; exports.matchesAnyCidr = _chunkWZKRNMF2cjs.matchesAnyCidr;
@@ -1,8 +1,8 @@
1
1
  /** Convert IPv4 string to unsigned 32-bit integer */
2
2
  declare function ipToInt(ip: string): number;
3
- /** Returns true if `ip` falls within the `cidr` range (e.g. "10.0.0.0/8") */
3
+ /** Returns true if `ip` falls within the `cidr` range. Supports IPv4 and IPv6. */
4
4
  declare function inCidr(ip: string, cidr: string): boolean;
5
- /** Returns true if `ip` matches ANY of the given CIDR ranges */
5
+ /** Returns true if `ip` matches ANY of the given CIDR ranges. Supports IPv4 and IPv6. */
6
6
  declare function matchesAnyCidr(ip: string, cidrs: string[]): boolean;
7
7
 
8
8
  export { inCidr, ipToInt, matchesAnyCidr };
@@ -1,8 +1,8 @@
1
1
  /** Convert IPv4 string to unsigned 32-bit integer */
2
2
  declare function ipToInt(ip: string): number;
3
- /** Returns true if `ip` falls within the `cidr` range (e.g. "10.0.0.0/8") */
3
+ /** Returns true if `ip` falls within the `cidr` range. Supports IPv4 and IPv6. */
4
4
  declare function inCidr(ip: string, cidr: string): boolean;
5
- /** Returns true if `ip` matches ANY of the given CIDR ranges */
5
+ /** Returns true if `ip` matches ANY of the given CIDR ranges. Supports IPv4 and IPv6. */
6
6
  declare function matchesAnyCidr(ip: string, cidrs: string[]): boolean;
7
7
 
8
8
  export { inCidr, ipToInt, matchesAnyCidr };
@@ -2,7 +2,7 @@ import {
2
2
  inCidr,
3
3
  ipToInt,
4
4
  matchesAnyCidr
5
- } from "../chunk-LNQPYKGG.js";
5
+ } from "../chunk-NWRGD3AH.js";
6
6
  import "../chunk-MLKGABMK.js";
7
7
  export {
8
8
  inCidr,
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,5 @@
1
+ interface KvsHandle {
2
+ get(key: string): Promise<string | undefined>;
3
+ }
4
+
5
+ export type { KvsHandle };
@@ -0,0 +1,5 @@
1
+ interface KvsHandle {
2
+ get(key: string): Promise<string | undefined>;
3
+ }
4
+
5
+ export type { KvsHandle };
File without changes
@@ -2,10 +2,12 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkIBXAK2A4cjs = require('../chunk-IBXAK2A4.cjs');
5
+
6
+ var _chunkULICUDDHcjs = require('../chunk-ULICUDDH.cjs');
6
7
  require('../chunk-75ZPJI57.cjs');
7
8
 
8
9
 
9
10
 
10
11
 
11
- exports.matchesAnyWildcard = _chunkIBXAK2A4cjs.matchesAnyWildcard; exports.matchesWildcard = _chunkIBXAK2A4cjs.matchesWildcard; exports.wildcardToRegex = _chunkIBXAK2A4cjs.wildcardToRegex;
12
+
13
+ exports.matchesAnyWildcard = _chunkULICUDDHcjs.matchesAnyWildcard; exports.matchesOriginPattern = _chunkULICUDDHcjs.matchesOriginPattern; exports.matchesWildcard = _chunkULICUDDHcjs.matchesWildcard; exports.wildcardToRegex = _chunkULICUDDHcjs.wildcardToRegex;
@@ -4,5 +4,14 @@ declare function wildcardToRegex(pattern: string): RegExp;
4
4
  declare function matchesWildcard(str: string, pattern: string): boolean;
5
5
  /** Returns true if `str` matches ANY of the given wildcard patterns */
6
6
  declare function matchesAnyWildcard(str: string, patterns: string[]): boolean;
7
+ /**
8
+ * Returns true if `origin` matches the given origin pattern.
9
+ * - `'*'` matches any origin.
10
+ * - Patterns without `*` are exact-matched (case-sensitive).
11
+ * - Patterns with `*` are converted to a cached RegExp (case-sensitive, `*` maps to `.*`).
12
+ *
13
+ * Unlike `matchesWildcard`, this function is case-sensitive and does not support `?`.
14
+ */
15
+ declare function matchesOriginPattern(origin: string, pattern: string): boolean;
7
16
 
8
- export { matchesAnyWildcard, matchesWildcard, wildcardToRegex };
17
+ export { matchesAnyWildcard, matchesOriginPattern, matchesWildcard, wildcardToRegex };
@@ -4,5 +4,14 @@ declare function wildcardToRegex(pattern: string): RegExp;
4
4
  declare function matchesWildcard(str: string, pattern: string): boolean;
5
5
  /** Returns true if `str` matches ANY of the given wildcard patterns */
6
6
  declare function matchesAnyWildcard(str: string, patterns: string[]): boolean;
7
+ /**
8
+ * Returns true if `origin` matches the given origin pattern.
9
+ * - `'*'` matches any origin.
10
+ * - Patterns without `*` are exact-matched (case-sensitive).
11
+ * - Patterns with `*` are converted to a cached RegExp (case-sensitive, `*` maps to `.*`).
12
+ *
13
+ * Unlike `matchesWildcard`, this function is case-sensitive and does not support `?`.
14
+ */
15
+ declare function matchesOriginPattern(origin: string, pattern: string): boolean;
7
16
 
8
- export { matchesAnyWildcard, matchesWildcard, wildcardToRegex };
17
+ export { matchesAnyWildcard, matchesOriginPattern, matchesWildcard, wildcardToRegex };
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  matchesAnyWildcard,
3
+ matchesOriginPattern,
3
4
  matchesWildcard,
4
5
  wildcardToRegex
5
- } from "../chunk-2DE6WPPL.js";
6
+ } from "../chunk-EEZ7NUJG.js";
6
7
  import "../chunk-MLKGABMK.js";
7
8
  export {
8
9
  matchesAnyWildcard,
10
+ matchesOriginPattern,
9
11
  matchesWildcard,
10
12
  wildcardToRegex
11
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rayselfs/cf-rule-engine",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "Composable, tree-shakeable CloudFront Function rules",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -1,20 +0,0 @@
1
- // src/shared/cidr.ts
2
- function ipToInt(ip) {
3
- return ip.split(".").reduce((acc, octet) => (acc << 8) + parseInt(octet, 10) >>> 0, 0);
4
- }
5
- function inCidr(ip, cidr) {
6
- const parts = cidr.split("/");
7
- const range = parts[0];
8
- const bits = parts[1] || "32";
9
- const mask = bits === "0" ? 0 : ~0 << 32 - parseInt(bits, 10) >>> 0;
10
- return (ipToInt(ip) & mask) === (ipToInt(range) & mask);
11
- }
12
- function matchesAnyCidr(ip, cidrs) {
13
- return cidrs.some((cidr) => inCidr(ip, cidr));
14
- }
15
-
16
- export {
17
- ipToInt,
18
- inCidr,
19
- matchesAnyCidr
20
- };
@@ -1,20 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/shared/cidr.ts
2
- function ipToInt(ip) {
3
- return ip.split(".").reduce((acc, octet) => (acc << 8) + parseInt(octet, 10) >>> 0, 0);
4
- }
5
- function inCidr(ip, cidr) {
6
- const parts = cidr.split("/");
7
- const range = parts[0];
8
- const bits = parts[1] || "32";
9
- const mask = bits === "0" ? 0 : ~0 << 32 - parseInt(bits, 10) >>> 0;
10
- return (ipToInt(ip) & mask) === (ipToInt(range) & mask);
11
- }
12
- function matchesAnyCidr(ip, cidrs) {
13
- return cidrs.some((cidr) => inCidr(ip, cidr));
14
- }
15
-
16
-
17
-
18
-
19
-
20
- exports.ipToInt = ipToInt; exports.inCidr = inCidr; exports.matchesAnyCidr = matchesAnyCidr;
@@ -1,11 +1,11 @@
1
+ import {
2
+ runRules
3
+ } from "./chunk-Q4NP4C3B.js";
1
4
  import {
2
5
  denormalizeRequest,
3
6
  denormalizeResponse,
4
7
  normalizeRequest
5
8
  } from "./chunk-CQ7YZ3AR.js";
6
- import {
7
- runRules
8
- } from "./chunk-Q4NP4C3B.js";
9
9
 
10
10
  // src/adapters/viewer-request.ts
11
11
  function defineViewerRequest(rules) {
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
+ var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
3
4
 
4
5
 
5
- var _chunk6NFAPLQ7cjs = require('./chunk-6NFAPLQ7.cjs');
6
6
 
7
7
 
8
- var _chunkWKYMSRCDcjs = require('./chunk-WKYMSRCD.cjs');
8
+ var _chunk6NFAPLQ7cjs = require('./chunk-6NFAPLQ7.cjs');
9
9
 
10
10
  // src/adapters/viewer-request.ts
11
11
  function defineViewerRequest(rules) {