@atlasauth/emulator-core 0.1.0 → 0.3.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 (300) hide show
  1. package/dist/adopt.d.ts +50 -0
  2. package/dist/adopt.js +57 -0
  3. package/dist/adopt.js.map +1 -0
  4. package/dist/coverage.d.ts +15 -0
  5. package/dist/coverage.js +31 -0
  6. package/dist/coverage.js.map +1 -0
  7. package/dist/crypto-util.d.ts +10 -0
  8. package/dist/crypto-util.js +76 -0
  9. package/dist/crypto-util.js.map +1 -0
  10. package/dist/custom-html.d.ts +57 -0
  11. package/dist/custom-html.js +491 -0
  12. package/dist/custom-html.js.map +1 -0
  13. package/dist/engine.d.ts +34 -3
  14. package/dist/engine.js +57 -8
  15. package/dist/engine.js.map +1 -1
  16. package/dist/error-catalog.js +16 -0
  17. package/dist/error-catalog.js.map +1 -1
  18. package/dist/event-gate.d.ts +3 -0
  19. package/dist/event-gate.js +430 -0
  20. package/dist/event-gate.js.map +1 -0
  21. package/dist/generic.js +14 -2
  22. package/dist/generic.js.map +1 -1
  23. package/dist/handlers/access-signals.d.ts +48 -0
  24. package/dist/handlers/access-signals.js +76 -0
  25. package/dist/handlers/access-signals.js.map +1 -0
  26. package/dist/handlers/approvals.d.ts +2 -0
  27. package/dist/handlers/approvals.js +418 -0
  28. package/dist/handlers/approvals.js.map +1 -0
  29. package/dist/handlers/authz-data.d.ts +2 -0
  30. package/dist/handlers/authz-data.js +627 -0
  31. package/dist/handlers/authz-data.js.map +1 -0
  32. package/dist/handlers/authz-layers.d.ts +229 -0
  33. package/dist/handlers/authz-layers.js +786 -0
  34. package/dist/handlers/authz-layers.js.map +1 -0
  35. package/dist/handlers/authz-state.d.ts +80 -0
  36. package/dist/handlers/authz-state.js +175 -0
  37. package/dist/handlers/authz-state.js.map +1 -0
  38. package/dist/handlers/authz.d.ts +2 -0
  39. package/dist/handlers/authz.js +410 -0
  40. package/dist/handlers/authz.js.map +1 -0
  41. package/dist/handlers/billing.d.ts +100 -0
  42. package/dist/handlers/billing.js +877 -0
  43. package/dist/handlers/billing.js.map +1 -0
  44. package/dist/handlers/cedar-ext.d.ts +35 -0
  45. package/dist/handlers/cedar-ext.js +174 -0
  46. package/dist/handlers/cedar-ext.js.map +1 -0
  47. package/dist/handlers/cedar.d.ts +146 -0
  48. package/dist/handlers/cedar.js +689 -0
  49. package/dist/handlers/cedar.js.map +1 -0
  50. package/dist/handlers/connections.d.ts +5 -0
  51. package/dist/handlers/connections.js +561 -0
  52. package/dist/handlers/connections.js.map +1 -0
  53. package/dist/handlers/control.js +6 -1
  54. package/dist/handlers/control.js.map +1 -1
  55. package/dist/handlers/device.d.ts +47 -0
  56. package/dist/handlers/device.js +665 -0
  57. package/dist/handlers/device.js.map +1 -0
  58. package/dist/handlers/emu3-misc.d.ts +38 -0
  59. package/dist/handlers/emu3-misc.js +1056 -0
  60. package/dist/handlers/emu3-misc.js.map +1 -0
  61. package/dist/handlers/emu4-actions-access.d.ts +46 -0
  62. package/dist/handlers/emu4-actions-access.js +107 -0
  63. package/dist/handlers/emu4-actions-access.js.map +1 -0
  64. package/dist/handlers/emu4-actions-catalog-extra.d.ts +3 -0
  65. package/dist/handlers/emu4-actions-catalog-extra.js +204 -0
  66. package/dist/handlers/emu4-actions-catalog-extra.js.map +1 -0
  67. package/dist/handlers/emu4-actions-catalog.d.ts +3 -0
  68. package/dist/handlers/emu4-actions-catalog.js +143 -0
  69. package/dist/handlers/emu4-actions-catalog.js.map +1 -0
  70. package/dist/handlers/emu4-actions-def.d.ts +50 -0
  71. package/dist/handlers/emu4-actions-def.js +250 -0
  72. package/dist/handlers/emu4-actions-def.js.map +1 -0
  73. package/dist/handlers/emu4-actions-sandbox.d.ts +36 -0
  74. package/dist/handlers/emu4-actions-sandbox.js +318 -0
  75. package/dist/handlers/emu4-actions-sandbox.js.map +1 -0
  76. package/dist/handlers/emu4-actions-typegen.d.ts +5 -0
  77. package/dist/handlers/emu4-actions-typegen.js +73 -0
  78. package/dist/handlers/emu4-actions-typegen.js.map +1 -0
  79. package/dist/handlers/emu4-actions.d.ts +2 -0
  80. package/dist/handlers/emu4-actions.js +506 -0
  81. package/dist/handlers/emu4-actions.js.map +1 -0
  82. package/dist/handlers/emu4-authz-trust.d.ts +40 -0
  83. package/dist/handlers/emu4-authz-trust.js +488 -0
  84. package/dist/handlers/emu4-authz-trust.js.map +1 -0
  85. package/dist/handlers/emu4-authz.d.ts +2 -0
  86. package/dist/handlers/emu4-authz.js +752 -0
  87. package/dist/handlers/emu4-authz.js.map +1 -0
  88. package/dist/handlers/emu4-billing-core.d.ts +23 -0
  89. package/dist/handlers/emu4-billing-core.js +22 -0
  90. package/dist/handlers/emu4-billing-core.js.map +1 -0
  91. package/dist/handlers/emu4-billing-x.d.ts +2 -0
  92. package/dist/handlers/emu4-billing-x.js +489 -0
  93. package/dist/handlers/emu4-billing-x.js.map +1 -0
  94. package/dist/handlers/emu4-billing.d.ts +14 -0
  95. package/dist/handlers/emu4-billing.js +846 -0
  96. package/dist/handlers/emu4-billing.js.map +1 -0
  97. package/dist/handlers/emu4-clones.d.ts +2 -0
  98. package/dist/handlers/emu4-clones.js +322 -0
  99. package/dist/handlers/emu4-clones.js.map +1 -0
  100. package/dist/handlers/emu4-compliance.d.ts +8 -0
  101. package/dist/handlers/emu4-compliance.js +39 -0
  102. package/dist/handlers/emu4-compliance.js.map +1 -0
  103. package/dist/handlers/emu4-config.d.ts +14 -0
  104. package/dist/handlers/emu4-config.js +148 -0
  105. package/dist/handlers/emu4-config.js.map +1 -0
  106. package/dist/handlers/emu4-cookies.d.ts +8 -0
  107. package/dist/handlers/emu4-cookies.js +248 -0
  108. package/dist/handlers/emu4-cookies.js.map +1 -0
  109. package/dist/handlers/emu4-erasure.d.ts +2 -0
  110. package/dist/handlers/emu4-erasure.js +587 -0
  111. package/dist/handlers/emu4-erasure.js.map +1 -0
  112. package/dist/handlers/emu4-federation.d.ts +8 -0
  113. package/dist/handlers/emu4-federation.js +18 -0
  114. package/dist/handlers/emu4-federation.js.map +1 -0
  115. package/dist/handlers/emu4-journey-math.d.ts +42 -0
  116. package/dist/handlers/emu4-journey-math.js +99 -0
  117. package/dist/handlers/emu4-journey-math.js.map +1 -0
  118. package/dist/handlers/emu4-messaging.d.ts +21 -0
  119. package/dist/handlers/emu4-messaging.js +595 -0
  120. package/dist/handlers/emu4-messaging.js.map +1 -0
  121. package/dist/handlers/emu4-minors.d.ts +7 -0
  122. package/dist/handlers/emu4-minors.js +408 -0
  123. package/dist/handlers/emu4-minors.js.map +1 -0
  124. package/dist/handlers/emu4-oauth-audit.d.ts +5 -0
  125. package/dist/handlers/emu4-oauth-audit.js +17 -0
  126. package/dist/handlers/emu4-oauth-audit.js.map +1 -0
  127. package/dist/handlers/emu4-oauth-auth.d.ts +83 -0
  128. package/dist/handlers/emu4-oauth-auth.js +363 -0
  129. package/dist/handlers/emu4-oauth-auth.js.map +1 -0
  130. package/dist/handlers/emu4-oauth-delivery.d.ts +68 -0
  131. package/dist/handlers/emu4-oauth-delivery.js +207 -0
  132. package/dist/handlers/emu4-oauth-delivery.js.map +1 -0
  133. package/dist/handlers/emu4-oauth-keys.d.ts +11 -0
  134. package/dist/handlers/emu4-oauth-keys.js +268 -0
  135. package/dist/handlers/emu4-oauth-keys.js.map +1 -0
  136. package/dist/handlers/emu4-oauth-pub.d.ts +36 -0
  137. package/dist/handlers/emu4-oauth-pub.js +420 -0
  138. package/dist/handlers/emu4-oauth-pub.js.map +1 -0
  139. package/dist/handlers/emu4-oauth.d.ts +10 -0
  140. package/dist/handlers/emu4-oauth.js +23 -0
  141. package/dist/handlers/emu4-oauth.js.map +1 -0
  142. package/dist/handlers/emu4-policies.d.ts +2 -0
  143. package/dist/handlers/emu4-policies.js +408 -0
  144. package/dist/handlers/emu4-policies.js.map +1 -0
  145. package/dist/handlers/emu4-region.d.ts +2 -0
  146. package/dist/handlers/emu4-region.js +189 -0
  147. package/dist/handlers/emu4-region.js.map +1 -0
  148. package/dist/handlers/emu4-saml.d.ts +12 -0
  149. package/dist/handlers/emu4-saml.js +532 -0
  150. package/dist/handlers/emu4-saml.js.map +1 -0
  151. package/dist/handlers/emu4-shared.d.ts +44 -0
  152. package/dist/handlers/emu4-shared.js +90 -0
  153. package/dist/handlers/emu4-shared.js.map +1 -0
  154. package/dist/handlers/emu4-snapshots.d.ts +38 -0
  155. package/dist/handlers/emu4-snapshots.js +231 -0
  156. package/dist/handlers/emu4-snapshots.js.map +1 -0
  157. package/dist/handlers/emu4-sns.d.ts +9 -0
  158. package/dist/handlers/emu4-sns.js +21 -0
  159. package/dist/handlers/emu4-sns.js.map +1 -0
  160. package/dist/handlers/emu4-trust-binding.d.ts +27 -0
  161. package/dist/handlers/emu4-trust-binding.js +344 -0
  162. package/dist/handlers/emu4-trust-binding.js.map +1 -0
  163. package/dist/handlers/emu4-trust.d.ts +35 -0
  164. package/dist/handlers/emu4-trust.js +543 -0
  165. package/dist/handlers/emu4-trust.js.map +1 -0
  166. package/dist/handlers/federation.d.ts +2 -0
  167. package/dist/handlers/federation.js +481 -0
  168. package/dist/handlers/federation.js.map +1 -0
  169. package/dist/handlers/fga-engine.d.ts +78 -0
  170. package/dist/handlers/fga-engine.js +663 -0
  171. package/dist/handlers/fga-engine.js.map +1 -0
  172. package/dist/handlers/governance.d.ts +2 -0
  173. package/dist/handlers/governance.js +460 -0
  174. package/dist/handlers/governance.js.map +1 -0
  175. package/dist/handlers/hooks.js +17 -1
  176. package/dist/handlers/hooks.js.map +1 -1
  177. package/dist/handlers/index.d.ts +5 -1
  178. package/dist/handlers/index.js +45 -3
  179. package/dist/handlers/index.js.map +1 -1
  180. package/dist/handlers/keys.js +6 -1
  181. package/dist/handlers/keys.js.map +1 -1
  182. package/dist/handlers/machines.js +61 -8
  183. package/dist/handlers/machines.js.map +1 -1
  184. package/dist/handlers/messaging.d.ts +6 -0
  185. package/dist/handlers/messaging.js +893 -0
  186. package/dist/handlers/messaging.js.map +1 -0
  187. package/dist/handlers/oauth-adv.d.ts +191 -0
  188. package/dist/handlers/oauth-adv.js +1305 -0
  189. package/dist/handlers/oauth-adv.js.map +1 -0
  190. package/dist/handlers/oauth-flows.d.ts +52 -0
  191. package/dist/handlers/oauth-flows.js +480 -0
  192. package/dist/handlers/oauth-flows.js.map +1 -0
  193. package/dist/handlers/oauth.d.ts +96 -0
  194. package/dist/handlers/oauth.js +793 -0
  195. package/dist/handlers/oauth.js.map +1 -0
  196. package/dist/handlers/orgs.js +6 -0
  197. package/dist/handlers/orgs.js.map +1 -1
  198. package/dist/handlers/passkeys.d.ts +3 -0
  199. package/dist/handlers/passkeys.js +293 -0
  200. package/dist/handlers/passkeys.js.map +1 -0
  201. package/dist/handlers/platform.d.ts +20 -0
  202. package/dist/handlers/platform.js +472 -0
  203. package/dist/handlers/platform.js.map +1 -0
  204. package/dist/handlers/round2.d.ts +8 -0
  205. package/dist/handlers/round2.js +372 -0
  206. package/dist/handlers/round2.js.map +1 -0
  207. package/dist/handlers/scim.d.ts +4 -0
  208. package/dist/handlers/scim.js +595 -0
  209. package/dist/handlers/scim.js.map +1 -0
  210. package/dist/handlers/sessions.d.ts +9 -3
  211. package/dist/handlers/sessions.js +76 -38
  212. package/dist/handlers/sessions.js.map +1 -1
  213. package/dist/handlers/support.d.ts +20 -0
  214. package/dist/handlers/support.js +62 -0
  215. package/dist/handlers/support.js.map +1 -0
  216. package/dist/handlers/users.js +7 -0
  217. package/dist/handlers/users.js.map +1 -1
  218. package/dist/handlers/workflows.d.ts +2 -0
  219. package/dist/handlers/workflows.js +428 -0
  220. package/dist/handlers/workflows.js.map +1 -0
  221. package/dist/index.d.ts +8 -0
  222. package/dist/index.js +23 -1
  223. package/dist/index.js.map +1 -1
  224. package/dist/jwe.d.ts +18 -0
  225. package/dist/jwe.js +101 -0
  226. package/dist/jwe.js.map +1 -0
  227. package/dist/jws.d.ts +41 -0
  228. package/dist/jws.js +135 -0
  229. package/dist/jws.js.map +1 -0
  230. package/dist/messages.d.ts +7 -0
  231. package/dist/messages.js +8 -4
  232. package/dist/messages.js.map +1 -1
  233. package/dist/messaging-callbacks.d.ts +100 -0
  234. package/dist/messaging-callbacks.js +767 -0
  235. package/dist/messaging-callbacks.js.map +1 -0
  236. package/dist/openapi.js +41 -1
  237. package/dist/openapi.js.map +1 -1
  238. package/dist/parity-bin.js +3 -1
  239. package/dist/parity-bin.js.map +1 -1
  240. package/dist/parity-emu3-authz.d.ts +3 -0
  241. package/dist/parity-emu3-authz.js +61 -0
  242. package/dist/parity-emu3-authz.js.map +1 -0
  243. package/dist/parity-emu3-billing.d.ts +3 -0
  244. package/dist/parity-emu3-billing.js +25 -0
  245. package/dist/parity-emu3-billing.js.map +1 -0
  246. package/dist/parity-emu3-messaging.d.ts +3 -0
  247. package/dist/parity-emu3-messaging.js +27 -0
  248. package/dist/parity-emu3-messaging.js.map +1 -0
  249. package/dist/parity-emu3-misc.d.ts +2 -0
  250. package/dist/parity-emu3-misc.js +63 -0
  251. package/dist/parity-emu3-misc.js.map +1 -0
  252. package/dist/parity-emu3-oauth.d.ts +2 -0
  253. package/dist/parity-emu3-oauth.js +39 -0
  254. package/dist/parity-emu3-oauth.js.map +1 -0
  255. package/dist/parity-emu4-actions.d.ts +2 -0
  256. package/dist/parity-emu4-actions.js +38 -0
  257. package/dist/parity-emu4-actions.js.map +1 -0
  258. package/dist/parity-emu4-authz.d.ts +3 -0
  259. package/dist/parity-emu4-authz.js +68 -0
  260. package/dist/parity-emu4-authz.js.map +1 -0
  261. package/dist/parity-emu4-billing.d.ts +6 -0
  262. package/dist/parity-emu4-billing.js +44 -0
  263. package/dist/parity-emu4-billing.js.map +1 -0
  264. package/dist/parity-emu4-compliance.d.ts +2 -0
  265. package/dist/parity-emu4-compliance.js +92 -0
  266. package/dist/parity-emu4-compliance.js.map +1 -0
  267. package/dist/parity-emu4-federation.d.ts +2 -0
  268. package/dist/parity-emu4-federation.js +33 -0
  269. package/dist/parity-emu4-federation.js.map +1 -0
  270. package/dist/parity-emu4-messaging.d.ts +3 -0
  271. package/dist/parity-emu4-messaging.js +42 -0
  272. package/dist/parity-emu4-messaging.js.map +1 -0
  273. package/dist/parity-emu4-oauth.d.ts +2 -0
  274. package/dist/parity-emu4-oauth.js +55 -0
  275. package/dist/parity-emu4-oauth.js.map +1 -0
  276. package/dist/parity-emu4-trust.d.ts +2 -0
  277. package/dist/parity-emu4-trust.js +41 -0
  278. package/dist/parity-emu4-trust.js.map +1 -0
  279. package/dist/parity-routes.d.ts +14 -0
  280. package/dist/parity-routes.js +439 -0
  281. package/dist/parity-routes.js.map +1 -0
  282. package/dist/parity.d.ts +10 -3
  283. package/dist/parity.js +14 -5
  284. package/dist/parity.js.map +1 -1
  285. package/dist/sns-cert.d.ts +9 -0
  286. package/dist/sns-cert.js +101 -0
  287. package/dist/sns-cert.js.map +1 -0
  288. package/dist/tokens.d.ts +85 -3
  289. package/dist/tokens.js +196 -24
  290. package/dist/tokens.js.map +1 -1
  291. package/dist/webauthn-virtual.d.ts +70 -0
  292. package/dist/webauthn-virtual.js +186 -0
  293. package/dist/webauthn-virtual.js.map +1 -0
  294. package/dist/webhook-ext.d.ts +16 -0
  295. package/dist/webhook-ext.js +218 -0
  296. package/dist/webhook-ext.js.map +1 -0
  297. package/dist/webhooks.d.ts +3 -0
  298. package/dist/webhooks.js +37 -3
  299. package/dist/webhooks.js.map +1 -1
  300. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/handlers/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Cedar extension types: `decimal` and `ip`.
3
+ * Spec: https://docs.cedarpolicy.com/policies/syntax-datatypes.html (decimal, ipaddr).
4
+ *
5
+ * decimal("1.23") at most 4 fractional digits, value * 10^4 must fit a signed 64-bit integer;
6
+ * methods lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual.
7
+ * ip("10.0.0.0/8") IPv4 or IPv6 address with an optional prefix length;
8
+ * methods isIpv4, isIpv6, isLoopback, isMulticast, isInRange.
9
+ */
10
+ export declare class AbacExtError extends Error {
11
+ }
12
+ export declare class AbacDecimal {
13
+ readonly scaled: bigint;
14
+ constructor(scaled: bigint);
15
+ toString(): string;
16
+ }
17
+ export declare class AbacIp {
18
+ readonly v6: boolean;
19
+ readonly addr: bigint;
20
+ readonly prefix: number;
21
+ /** The text it was written as (for re-printing). */
22
+ readonly text: string;
23
+ constructor(v6: boolean, addr: bigint, prefix: number,
24
+ /** The text it was written as (for re-printing). */
25
+ text?: string);
26
+ get bits(): number;
27
+ toString(): string;
28
+ }
29
+ export type AbacExt = AbacDecimal | AbacIp;
30
+ export declare function parseDecimal(s: string): AbacDecimal;
31
+ export declare function parseIp(s: string): AbacIp;
32
+ export declare function extConstructor(name: string, arg: unknown): AbacExt;
33
+ export declare function extEqual(a: AbacExt, b: AbacExt): boolean;
34
+ export declare const EXT_METHODS: readonly ["lessThan", "lessThanOrEqual", "greaterThan", "greaterThanOrEqual", "isIpv4", "isIpv6", "isLoopback", "isMulticast", "isInRange"];
35
+ export declare function extMethod(name: string, recv: AbacExt, args: unknown[]): boolean;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /**
3
+ * Cedar extension types: `decimal` and `ip`.
4
+ * Spec: https://docs.cedarpolicy.com/policies/syntax-datatypes.html (decimal, ipaddr).
5
+ *
6
+ * decimal("1.23") at most 4 fractional digits, value * 10^4 must fit a signed 64-bit integer;
7
+ * methods lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual.
8
+ * ip("10.0.0.0/8") IPv4 or IPv6 address with an optional prefix length;
9
+ * methods isIpv4, isIpv6, isLoopback, isMulticast, isInRange.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EXT_METHODS = exports.AbacIp = exports.AbacDecimal = exports.AbacExtError = void 0;
13
+ exports.parseDecimal = parseDecimal;
14
+ exports.parseIp = parseIp;
15
+ exports.extConstructor = extConstructor;
16
+ exports.extEqual = extEqual;
17
+ exports.extMethod = extMethod;
18
+ class AbacExtError extends Error {
19
+ }
20
+ exports.AbacExtError = AbacExtError;
21
+ class AbacDecimal {
22
+ scaled;
23
+ constructor(scaled) {
24
+ this.scaled = scaled;
25
+ }
26
+ toString() {
27
+ const neg = this.scaled < 0n;
28
+ const abs = neg ? -this.scaled : this.scaled;
29
+ return `${neg ? '-' : ''}${abs / 10000n}.${(abs % 10000n).toString().padStart(4, '0')}`;
30
+ }
31
+ }
32
+ exports.AbacDecimal = AbacDecimal;
33
+ class AbacIp {
34
+ v6;
35
+ addr;
36
+ prefix;
37
+ text;
38
+ constructor(v6, addr, prefix,
39
+ /** The text it was written as (for re-printing). */
40
+ text = '') {
41
+ this.v6 = v6;
42
+ this.addr = addr;
43
+ this.prefix = prefix;
44
+ this.text = text;
45
+ }
46
+ get bits() {
47
+ return this.v6 ? 128 : 32;
48
+ }
49
+ toString() {
50
+ return `${this.v6 ? 'v6' : 'v4'}:${this.addr.toString(16)}/${this.prefix}`;
51
+ }
52
+ }
53
+ exports.AbacIp = AbacIp;
54
+ const I64_MAX = (1n << 63n) - 1n;
55
+ const I64_MIN = -(1n << 63n);
56
+ function parseDecimal(s) {
57
+ const m = /^(-?)(\d+)\.(\d{1,4})$/.exec(s);
58
+ if (!m)
59
+ throw new AbacExtError(`"${s}" is not a valid decimal (digits, a point, then 1 to 4 fractional digits).`);
60
+ const scaled = (m[1] ? -1n : 1n) * (BigInt(m[2]) * 10000n + BigInt(m[3].padEnd(4, '0')));
61
+ if (scaled > I64_MAX || scaled < I64_MIN)
62
+ throw new AbacExtError(`"${s}" is out of range for a decimal.`);
63
+ return new AbacDecimal(scaled);
64
+ }
65
+ function parseV4(s) {
66
+ const parts = s.split('.');
67
+ if (parts.length !== 4)
68
+ return null;
69
+ let out = 0n;
70
+ for (const p of parts) {
71
+ if (!/^\d{1,3}$/.test(p) || (p.length > 1 && p.startsWith('0')) || Number(p) > 255)
72
+ return null;
73
+ out = (out << 8n) | BigInt(p);
74
+ }
75
+ return out;
76
+ }
77
+ function parseV6(s) {
78
+ if (s.includes('.')) {
79
+ // ::ffff:1.2.3.4 style tail
80
+ const i = s.lastIndexOf(':');
81
+ const v4 = parseV4(s.slice(i + 1));
82
+ if (v4 === null)
83
+ return null;
84
+ s = `${s.slice(0, i + 1)}${(v4 >> 16n).toString(16)}:${(v4 & 0xffffn).toString(16)}`;
85
+ }
86
+ const halves = s.split('::');
87
+ if (halves.length > 2)
88
+ return null;
89
+ const groups = (h) => (h === '' ? [] : h.split(':'));
90
+ const head = groups(halves[0]);
91
+ const tail = halves.length === 2 ? groups(halves[1]) : [];
92
+ if (halves.length === 1 ? head.length !== 8 : head.length + tail.length > 7)
93
+ return null;
94
+ const all = halves.length === 1 ? head : [...head, ...Array(8 - head.length - tail.length).fill('0'), ...tail];
95
+ let out = 0n;
96
+ for (const g of all) {
97
+ if (!/^[0-9a-fA-F]{1,4}$/.test(g))
98
+ return null;
99
+ out = (out << 16n) | BigInt(`0x${g}`);
100
+ }
101
+ return out;
102
+ }
103
+ function parseIp(s) {
104
+ const [a, p, ...rest] = s.split('/');
105
+ if (rest.length || a === undefined)
106
+ throw new AbacExtError(`"${s}" is not a valid IP address.`);
107
+ const v6 = a.includes(':');
108
+ const addr = v6 ? parseV6(a) : parseV4(a);
109
+ if (addr === null)
110
+ throw new AbacExtError(`"${s}" is not a valid IP address.`);
111
+ const bits = v6 ? 128 : 32;
112
+ let prefix = bits;
113
+ if (p !== undefined) {
114
+ if (!/^\d{1,3}$/.test(p) || Number(p) > bits)
115
+ throw new AbacExtError(`"${s}" has an invalid prefix length.`);
116
+ prefix = Number(p);
117
+ }
118
+ return new AbacIp(v6, addr, prefix, s);
119
+ }
120
+ function extConstructor(name, arg) {
121
+ if (typeof arg !== 'string')
122
+ throw new AbacExtError(`${name}() takes a string.`);
123
+ return name === 'decimal' ? parseDecimal(arg) : parseIp(arg);
124
+ }
125
+ function extEqual(a, b) {
126
+ if (a instanceof AbacDecimal)
127
+ return b instanceof AbacDecimal && a.scaled === b.scaled;
128
+ return b instanceof AbacIp && a.v6 === b.v6 && a.addr === b.addr && a.prefix === b.prefix;
129
+ }
130
+ /** The network a possibly-prefixed address denotes: [first, last]. */
131
+ function span(ip) {
132
+ const host = BigInt(ip.bits - ip.prefix);
133
+ const first = (ip.addr >> host) << host;
134
+ return [first, first | ((1n << host) - 1n)];
135
+ }
136
+ const inRange = (x, lo, hi, v6) => x.v6 === v6 && span(x)[0] >= lo && span(x)[1] <= hi;
137
+ exports.EXT_METHODS = ['lessThan', 'lessThanOrEqual', 'greaterThan', 'greaterThanOrEqual', 'isIpv4', 'isIpv6', 'isLoopback', 'isMulticast', 'isInRange'];
138
+ function extMethod(name, recv, args) {
139
+ if (recv instanceof AbacDecimal) {
140
+ const o = args[0];
141
+ if (args.length !== 1 || !(o instanceof AbacDecimal))
142
+ throw new AbacExtError(`.${name}() takes one decimal.`);
143
+ switch (name) {
144
+ case 'lessThan':
145
+ return recv.scaled < o.scaled;
146
+ case 'lessThanOrEqual':
147
+ return recv.scaled <= o.scaled;
148
+ case 'greaterThan':
149
+ return recv.scaled > o.scaled;
150
+ case 'greaterThanOrEqual':
151
+ return recv.scaled >= o.scaled;
152
+ }
153
+ throw new AbacExtError(`.${name}() is not a decimal method.`);
154
+ }
155
+ switch (name) {
156
+ case 'isIpv4':
157
+ return !recv.v6;
158
+ case 'isIpv6':
159
+ return recv.v6;
160
+ case 'isLoopback':
161
+ return recv.v6 ? inRange(recv, 1n, 1n, true) : inRange(recv, 0x7f000000n, 0x7fffffffn, false);
162
+ case 'isMulticast':
163
+ return recv.v6 ? inRange(recv, 0xffn << 120n, (1n << 128n) - 1n, true) : inRange(recv, 0xe0000000n, 0xefffffffn, false);
164
+ case 'isInRange': {
165
+ const r = args[0];
166
+ if (args.length !== 1 || !(r instanceof AbacIp))
167
+ throw new AbacExtError('.isInRange() takes one ip.');
168
+ const [lo, hi] = span(r);
169
+ return inRange(recv, lo, hi, r.v6);
170
+ }
171
+ }
172
+ throw new AbacExtError(`.${name}() is not an ip method.`);
173
+ }
174
+ //# sourceMappingURL=cedar-ext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cedar-ext.js","sourceRoot":"","sources":["../../src/handlers/cedar-ext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ export declare class CedarParseError extends Error {
2
+ readonly position: number;
3
+ constructor(message: string, position: number);
4
+ }
5
+ export interface EntityRef {
6
+ type: string;
7
+ id: string;
8
+ }
9
+ type Slot = '?principal' | '?resource';
10
+ type Scope = {
11
+ op: 'any';
12
+ } | {
13
+ op: '==';
14
+ e: EntityRef;
15
+ } | {
16
+ op: 'in';
17
+ es: EntityRef[];
18
+ } | {
19
+ op: 'is';
20
+ type: string;
21
+ in?: EntityRef;
22
+ } | {
23
+ op: 'slot==';
24
+ slot: Slot;
25
+ } | {
26
+ op: 'slot_in';
27
+ slot: Slot;
28
+ } | {
29
+ op: 'is_slot_in';
30
+ type: string;
31
+ slot: Slot;
32
+ };
33
+ type Expr = {
34
+ k: 'lit';
35
+ v: any;
36
+ } | {
37
+ k: 'ent';
38
+ e: EntityRef;
39
+ } | {
40
+ k: 'var';
41
+ name: string;
42
+ } | {
43
+ k: 'attr';
44
+ of: Expr;
45
+ name: string;
46
+ } | {
47
+ k: 'has';
48
+ of: Expr;
49
+ name: string;
50
+ } | {
51
+ k: 'not';
52
+ e: Expr;
53
+ } | {
54
+ k: 'neg';
55
+ e: Expr;
56
+ } | {
57
+ k: 'bin';
58
+ op: string;
59
+ l: Expr;
60
+ r: Expr;
61
+ } | {
62
+ k: 'like';
63
+ e: Expr;
64
+ pattern: string;
65
+ } | {
66
+ k: 'is';
67
+ e: Expr;
68
+ type: string;
69
+ in?: Expr;
70
+ } | {
71
+ k: 'if';
72
+ c: Expr;
73
+ t: Expr;
74
+ f: Expr;
75
+ } | {
76
+ k: 'set';
77
+ items: Expr[];
78
+ } | {
79
+ k: 'record';
80
+ fields: Array<[string, Expr]>;
81
+ } | {
82
+ k: 'call';
83
+ of: Expr;
84
+ name: string;
85
+ args: Expr[];
86
+ } | {
87
+ k: 'ext';
88
+ name: string;
89
+ arg: string;
90
+ };
91
+ export interface CedarPolicy {
92
+ effect: 'permit' | 'forbid';
93
+ principal: Scope;
94
+ action: Scope;
95
+ resource: Scope;
96
+ /** `when` clauses as written; an `unless` clause is stored negated. */
97
+ conditions: Expr[];
98
+ }
99
+ export interface CedarEntity {
100
+ type: string;
101
+ id: string;
102
+ attributes?: Record<string, unknown>;
103
+ parents?: string[];
104
+ }
105
+ export interface CedarRequest {
106
+ principal: CedarEntity;
107
+ action: {
108
+ id: string;
109
+ type?: string;
110
+ };
111
+ resource: CedarEntity;
112
+ context?: Record<string, unknown>;
113
+ entities?: CedarEntity[];
114
+ }
115
+ export interface CedarOutcome {
116
+ index: number;
117
+ effect: 'permit' | 'forbid';
118
+ matched: boolean;
119
+ scoped: boolean;
120
+ error?: string;
121
+ }
122
+ /** Parse a policy set; throws CedarParseError with the character position. */
123
+ export declare function parseCedar(source: string): CedarPolicy[];
124
+ /** Parse policy templates: like a policy set, but the principal and resource scopes may hold `?principal` / `?resource`. */
125
+ export declare function parseCedarTemplate(source: string): CedarPolicy[];
126
+ export declare class CedarLinkError extends Error {
127
+ }
128
+ /** The slots a template uses, sorted. */
129
+ export declare const cedarTemplateSlots: (policies: readonly CedarPolicy[]) => Slot[];
130
+ /** Fill a template's slots with entities, giving ordinary policies. A slot without an entity is an error. */
131
+ export declare function linkCedarTemplate(policies: readonly CedarPolicy[], values: {
132
+ principal?: EntityRef;
133
+ resource?: EntityRef;
134
+ }): CedarPolicy[];
135
+ /** Every policy's outcome for a request. A policy that errors is reported with `error` and never matches. */
136
+ export declare function traceCedar(policies: readonly CedarPolicy[], req: CedarRequest): CedarOutcome[];
137
+ /** Cedar's rule: a matching forbid denies, otherwise a matching permit allows, otherwise deny. `determining` are the policy indexes that decided. */
138
+ export declare function decideCedar(outcomes: readonly CedarOutcome[]): {
139
+ decision: 'allow' | 'deny';
140
+ determining: number[];
141
+ errors: Array<{
142
+ index: number;
143
+ message: string;
144
+ }>;
145
+ };
146
+ export {};