attenu-guard 0.13.0 → 0.13.2

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 (72) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/cjs/audit.d.ts +15 -1
  3. package/dist/cjs/audit.d.ts.map +1 -1
  4. package/dist/cjs/audit.js +26 -3
  5. package/dist/cjs/audit.js.map +1 -1
  6. package/dist/cjs/authority.d.ts +12 -6
  7. package/dist/cjs/authority.d.ts.map +1 -1
  8. package/dist/cjs/authority.js +51 -15
  9. package/dist/cjs/authority.js.map +1 -1
  10. package/dist/cjs/ceilings.d.ts +65 -13
  11. package/dist/cjs/ceilings.d.ts.map +1 -1
  12. package/dist/cjs/ceilings.js +393 -70
  13. package/dist/cjs/ceilings.js.map +1 -1
  14. package/dist/cjs/cli.d.ts.map +1 -1
  15. package/dist/cjs/cli.js +11 -4
  16. package/dist/cjs/cli.js.map +1 -1
  17. package/dist/cjs/display.d.ts +3 -2
  18. package/dist/cjs/display.d.ts.map +1 -1
  19. package/dist/cjs/display.js +4 -3
  20. package/dist/cjs/display.js.map +1 -1
  21. package/dist/cjs/evidence.d.ts +35 -9
  22. package/dist/cjs/evidence.d.ts.map +1 -1
  23. package/dist/cjs/evidence.js +333 -39
  24. package/dist/cjs/evidence.js.map +1 -1
  25. package/dist/cjs/guard.d.ts.map +1 -1
  26. package/dist/cjs/guard.js +7 -3
  27. package/dist/cjs/guard.js.map +1 -1
  28. package/dist/cjs/index.d.ts +1 -1
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +3 -1
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/version.d.ts +1 -1
  33. package/dist/cjs/version.js +1 -1
  34. package/dist/cjs/wire.d.ts.map +1 -1
  35. package/dist/cjs/wire.js +3 -2
  36. package/dist/cjs/wire.js.map +1 -1
  37. package/dist/esm/audit.d.ts +15 -1
  38. package/dist/esm/audit.d.ts.map +1 -1
  39. package/dist/esm/audit.js +26 -4
  40. package/dist/esm/audit.js.map +1 -1
  41. package/dist/esm/authority.d.ts +12 -6
  42. package/dist/esm/authority.d.ts.map +1 -1
  43. package/dist/esm/authority.js +51 -15
  44. package/dist/esm/authority.js.map +1 -1
  45. package/dist/esm/ceilings.d.ts +65 -13
  46. package/dist/esm/ceilings.d.ts.map +1 -1
  47. package/dist/esm/ceilings.js +390 -70
  48. package/dist/esm/ceilings.js.map +1 -1
  49. package/dist/esm/cli.d.ts.map +1 -1
  50. package/dist/esm/cli.js +12 -5
  51. package/dist/esm/cli.js.map +1 -1
  52. package/dist/esm/display.d.ts +3 -2
  53. package/dist/esm/display.d.ts.map +1 -1
  54. package/dist/esm/display.js +4 -3
  55. package/dist/esm/display.js.map +1 -1
  56. package/dist/esm/evidence.d.ts +35 -9
  57. package/dist/esm/evidence.d.ts.map +1 -1
  58. package/dist/esm/evidence.js +335 -41
  59. package/dist/esm/evidence.js.map +1 -1
  60. package/dist/esm/guard.d.ts.map +1 -1
  61. package/dist/esm/guard.js +8 -4
  62. package/dist/esm/guard.js.map +1 -1
  63. package/dist/esm/index.d.ts +1 -1
  64. package/dist/esm/index.d.ts.map +1 -1
  65. package/dist/esm/index.js +1 -1
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/version.d.ts +1 -1
  68. package/dist/esm/version.js +1 -1
  69. package/dist/esm/wire.d.ts.map +1 -1
  70. package/dist/esm/wire.js +3 -2
  71. package/dist/esm/wire.js.map +1 -1
  72. package/package.json +1 -1
@@ -16,6 +16,12 @@
16
16
  */
17
17
  import { type CJson, type Json } from "./canonical.js";
18
18
  import { Decision } from "./reasons.js";
19
+ /**
20
+ * The scope grammar the draft defines: lowercase dot-separated segments, `*` only as the whole last
21
+ * segment. `Authority` validates its scopes against it, and a scoped `CallLimit`'s `appliesTo`
22
+ * follows it too.
23
+ */
24
+ export declare const SCOPE_RE: RegExp;
19
25
  /** A request context: the quantities and attributes a call declares. */
20
26
  export type Context = Record<string, Json>;
21
27
  /** The shape every ceiling — built-in or custom — must implement. */
@@ -51,12 +57,29 @@ export interface Ceiling {
51
57
  /** Scoped ceilings only: the pattern this ceiling meters against, or "*". */
52
58
  readonly meterKey?: string;
53
59
  }
60
+ /**
61
+ * `value`'s JSON type as a refusal names it: null, a boolean, a number, a string, an array or an
62
+ * object, or "a value that is not JSON" for anything else passed in-process (a bigint). A number
63
+ * this library's `parseJson` read, a `RawNumber`, is a number. The Python implementation names the
64
+ * same values the same way.
65
+ */
66
+ export declare function jsonKind(value: unknown): string;
54
67
  /**
55
68
  * The request-context field a ceiling reads. Prefers an explicit `ctxField`,
56
69
  * then the caller-keyed `field`, then the ceiling's own `key`.
57
70
  */
58
71
  export declare function ctxFieldOf(ceiling: Ceiling): string;
59
- /** Uniform human-readable rendering of any ceiling. Never parsed back. */
72
+ /**
73
+ * Python's `type(a) is type(b)`: whether two ceilings are of one class. Ceilings pair by key, and
74
+ * two of different classes under one key are not comparable: neither narrows the other, so an
75
+ * authority holding one is not narrower than an authority holding the other (attenu-ops#110).
76
+ */
77
+ export declare function sameType(a: Ceiling, b: Ceiling): boolean;
78
+ /**
79
+ * Uniform human-readable rendering of any ceiling. Never parsed back. A ceiling without its own
80
+ * `describe`, such as one this build does not define, prints as the Python implementation prints
81
+ * it: its key as the wire carried it, `=`, and its wire form as Python prints a dict.
82
+ */
60
83
  export declare function describe(ceiling: Ceiling): string;
61
84
  /**
62
85
  * A ceiling's key as the wire carried it, which is what a finding names. A ceiling this build does
@@ -69,10 +92,12 @@ export declare function wireKeyOf(ceiling: Ceiling): CJson;
69
92
  * printed through `shown` (display.ts), so the finding stays on one line.
70
93
  *
71
94
  * `describe` itself is left alone, so dashboards and `Authority.describe()` print a region called
72
- * "São Paulo" as it is, and for values in the bare set the two agree character for character. A
73
- * ceiling this build does not define prints the Python implementation's description of it — its key,
74
- * `=`, and the wire object as Python prints a dict — as it is when that is printable ASCII, spaces
75
- * included, and as escaped JSON otherwise. Same text as the Python implementation's finding.
95
+ * "São Paulo" as it is, and for values in the bare set the two agree character for character, except
96
+ * that an allow-list's or a deny-list's string members are printed in their escaped JSON form, quoted,
97
+ * so the string "1" and the number 1 read differently. A ceiling this build does not define prints the
98
+ * Python implementation's description of it — its key, `=`, and the wire object as Python prints a
99
+ * dict — as it is when that is printable ASCII, spaces included, and as escaped JSON otherwise. Same
100
+ * text as the Python implementation's finding.
76
101
  */
77
102
  export declare function describeInFinding(ceiling: Ceiling): string;
78
103
  /**
@@ -82,11 +107,17 @@ export declare function describeInFinding(ceiling: Ceiling): string;
82
107
  * asserting anything here", not "consuming an undeclared amount".
83
108
  */
84
109
  export declare function isMetered(ceiling: Ceiling): boolean;
110
+ /**
111
+ * The context's own value for `field`, or `undefined`. A plain object inherits `constructor`,
112
+ * `toString` and the rest from Object.prototype, and a field named like one of them is absent unless
113
+ * the context holds it, as `ctx.get(field)` reads it in the Python implementation.
114
+ */
115
+ export declare function ownValue(ctx: Context, field: string): Json | undefined;
85
116
  /** Per-call cap on rows read or returned. Context field: "rows". */
86
117
  export declare class RowLimit implements Ceiling {
87
- readonly maxRows: number;
88
118
  readonly key = "max_rows";
89
119
  readonly ctxField = "rows";
120
+ readonly maxRows: number;
90
121
  constructor(maxRows: number);
91
122
  permits(ctx: Context): Decision;
92
123
  describe(): string;
@@ -97,9 +128,9 @@ export declare class RowLimit implements Ceiling {
97
128
  }
98
129
  /** Per-call cap on spend, currency-agnostic. Context field: "spend". */
99
130
  export declare class SpendCap implements Ceiling {
100
- readonly maxSpend: number;
101
131
  readonly key = "max_spend";
102
132
  readonly ctxField = "spend";
133
+ readonly maxSpend: number;
103
134
  constructor(maxSpend: number);
104
135
  permits(ctx: Context): Decision;
105
136
  describe(): string;
@@ -121,10 +152,10 @@ export declare class SpendCap implements Ceiling {
121
152
  * does not; an explicit `calls` in the context still wins.
122
153
  */
123
154
  export declare class CallLimit implements Ceiling {
124
- readonly maxCalls: number;
125
155
  readonly appliesTo: string | null;
126
156
  readonly key: string;
127
157
  readonly ctxField: string;
158
+ readonly maxCalls: number;
128
159
  constructor(maxCalls: number, appliesTo?: string | null);
129
160
  /** What this ceiling counts: the pattern it applies to, or every call. */
130
161
  get meterKey(): string;
@@ -149,7 +180,11 @@ export declare class EgressRank implements Ceiling {
149
180
  toWire(): Record<string, Json>;
150
181
  static fromWire(d: Record<string, Json>): EgressRank;
151
182
  }
152
- /** Membership allow-list: the context value MUST be one of `oneOf`. */
183
+ /**
184
+ * Membership allow-list: the context value MUST be one of `oneOf`. A member is its JSON type plus
185
+ * its value, as a Set holds it: `[1]` admits 1 and refuses `true` and `"1"`. A context value that
186
+ * is not a JSON scalar is refused (`wrongKind`).
187
+ */
153
188
  export declare class Allow implements Ceiling {
154
189
  readonly key: string;
155
190
  readonly field: string | null;
@@ -163,7 +198,12 @@ export declare class Allow implements Ceiling {
163
198
  toWire(): Record<string, Json>;
164
199
  static fromWire(d: Record<string, Json>): Allow;
165
200
  }
166
- /** Membership deny-list: the context value MUST NOT be one of `notOneOf`. */
201
+ /**
202
+ * Membership deny-list: the context value MUST NOT be one of `notOneOf`. A member is its JSON type
203
+ * plus its value, as a Set holds it: `[1]` refuses 1 and not `true` or `"1"`. A context value that
204
+ * is not a JSON scalar is refused as well (`wrongKind`): a deny-list never waves through a value it
205
+ * cannot compare, since waving `["rm"]` through because it is not the string "rm" would fail open.
206
+ */
167
207
  export declare class Deny implements Ceiling {
168
208
  readonly key: string;
169
209
  readonly field: string | null;
@@ -204,10 +244,15 @@ export declare function registerCeiling(key: string, cls: CeilingClass): void;
204
244
  * Fail-closed placeholder for a wire constraint this build does not recognise.
205
245
  *
206
246
  * `permits` always denies. `narrow` stays an unknown ceiling, so it can never
207
- * resolve to something more permissive than "deny everything". `subsumes` is
247
+ * resolve to something more permissive than "deny everything"; `Authority.meet`
248
+ * keeps a parent's against a request of any other type, so the child inherits
249
+ * it. `subsumes` is
208
250
  * true only against an identical unknown ceiling — just enough reflexivity for
209
- * `isNarrowerThan(self)`. `toWire` preserves the original bytes losslessly, so
210
- * a chain that merely forwards constraints can still do so.
251
+ * `isNarrowerThan(self)`. Identical means the same RFC 8785 bytes, which is
252
+ * equality as JSON: `true` is not 1, `1.0` is 1, and key order is no difference
253
+ * at any depth; a value RFC 8785 cannot write is identical to nothing. `toWire`
254
+ * preserves the original bytes losslessly, so a chain that merely forwards
255
+ * constraints can still do so.
211
256
  */
212
257
  export declare class UnknownCeiling implements Ceiling {
213
258
  readonly raw: Record<string, Json>;
@@ -223,6 +268,13 @@ export declare class UnknownCeiling implements Ceiling {
223
268
  * Reconstruct a Ceiling from its wire form. Routes on "type" when present (it
224
269
  * disambiguates the generic ceilings), else on "key". An unrecognised
225
270
  * discriminator fails closed via `UnknownCeiling`.
271
+ *
272
+ * A constraint is a JSON object with a string `key`, and a `type` that, when present, is a string;
273
+ * anything else is malformed (attenu-ops#110), in the Python implementation's words too: `a
274
+ * constraint is a string, not an object`, `type of constraint 'max_rows' is null, not a string`.
275
+ * A constraint that is not an object loaded as an unknown constraint here, null aside, and a null
276
+ * `type` was read as absent, so the constraint was routed by its key: `{"key": "allow", "type":
277
+ * null, ...}` loaded as an allow-list, where the Python implementation loaded an unknown constraint.
226
278
  */
227
279
  export declare function ceilingFromWire(wire: CJson): Ceiling;
228
280
  //# sourceMappingURL=ceilings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ceilings.d.ts","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ceilings.d.ts","sourceRoot":"","sources":["../../src/ceilings.ts"],"names":[],"mappings":"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"}