@diister/quick-permission 0.9.0-beta.5

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 (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +747 -0
  3. package/aggregation.ts +114 -0
  4. package/core/filtering.ts +70 -0
  5. package/core/matching.ts +82 -0
  6. package/core/merging.ts +143 -0
  7. package/dist/aggregation.d.ts +62 -0
  8. package/dist/aggregation.d.ts.map +1 -0
  9. package/dist/aggregation.js +97 -0
  10. package/dist/aggregation.js.map +1 -0
  11. package/dist/core/filtering.d.ts +35 -0
  12. package/dist/core/filtering.d.ts.map +1 -0
  13. package/dist/core/filtering.js +62 -0
  14. package/dist/core/filtering.js.map +1 -0
  15. package/dist/core/matching.d.ts +31 -0
  16. package/dist/core/matching.d.ts.map +1 -0
  17. package/dist/core/matching.js +75 -0
  18. package/dist/core/matching.js.map +1 -0
  19. package/dist/core/merging.d.ts +29 -0
  20. package/dist/core/merging.d.ts.map +1 -0
  21. package/dist/core/merging.js +124 -0
  22. package/dist/core/merging.js.map +1 -0
  23. package/dist/indirect-aggregation.d.ts +41 -0
  24. package/dist/indirect-aggregation.d.ts.map +1 -0
  25. package/dist/indirect-aggregation.js +185 -0
  26. package/dist/indirect-aggregation.js.map +1 -0
  27. package/dist/indirect-resource.d.ts +126 -0
  28. package/dist/indirect-resource.d.ts.map +1 -0
  29. package/dist/indirect-resource.js +109 -0
  30. package/dist/indirect-resource.js.map +1 -0
  31. package/dist/mod.d.ts +25 -0
  32. package/dist/mod.d.ts.map +1 -0
  33. package/dist/mod.js +25 -0
  34. package/dist/mod.js.map +1 -0
  35. package/dist/mongo-query.d.ts +38 -0
  36. package/dist/mongo-query.d.ts.map +1 -0
  37. package/dist/mongo-query.js +88 -0
  38. package/dist/mongo-query.js.map +1 -0
  39. package/dist/permission.d.ts +57 -0
  40. package/dist/permission.d.ts.map +1 -0
  41. package/dist/permission.js +60 -0
  42. package/dist/permission.js.map +1 -0
  43. package/dist/resource.d.ts +48 -0
  44. package/dist/resource.d.ts.map +1 -0
  45. package/dist/resource.js +298 -0
  46. package/dist/resource.js.map +1 -0
  47. package/dist/rules.d.ts +106 -0
  48. package/dist/rules.d.ts.map +1 -0
  49. package/dist/rules.js +183 -0
  50. package/dist/rules.js.map +1 -0
  51. package/dist/sift/core.d.ts +104 -0
  52. package/dist/sift/core.d.ts.map +1 -0
  53. package/dist/sift/core.js +248 -0
  54. package/dist/sift/core.js.map +1 -0
  55. package/dist/sift/index.d.ts +10 -0
  56. package/dist/sift/index.d.ts.map +1 -0
  57. package/dist/sift/index.js +18 -0
  58. package/dist/sift/index.js.map +1 -0
  59. package/dist/sift/operations.d.ts +87 -0
  60. package/dist/sift/operations.d.ts.map +1 -0
  61. package/dist/sift/operations.js +257 -0
  62. package/dist/sift/operations.js.map +1 -0
  63. package/dist/sift/utils.d.ts +12 -0
  64. package/dist/sift/utils.d.ts.map +1 -0
  65. package/dist/sift/utils.js +80 -0
  66. package/dist/sift/utils.js.map +1 -0
  67. package/dist/system.d.ts +113 -0
  68. package/dist/system.d.ts.map +1 -0
  69. package/dist/system.js +712 -0
  70. package/dist/system.js.map +1 -0
  71. package/dist/target.d.ts +18 -0
  72. package/dist/target.d.ts.map +1 -0
  73. package/dist/target.js +41 -0
  74. package/dist/target.js.map +1 -0
  75. package/dist/types.d.ts +345 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +10 -0
  78. package/dist/types.js.map +1 -0
  79. package/indirect-aggregation.ts +216 -0
  80. package/indirect-resource.ts +205 -0
  81. package/mod.ts +81 -0
  82. package/mongo-query.ts +94 -0
  83. package/package.json +58 -0
  84. package/permission.ts +88 -0
  85. package/resource.ts +352 -0
  86. package/rules.ts +241 -0
  87. package/sift/MIT-LICENSE.txt +20 -0
  88. package/sift/core.ts +551 -0
  89. package/sift/index.ts +62 -0
  90. package/sift/operations.ts +449 -0
  91. package/sift/utils.ts +96 -0
  92. package/system.ts +974 -0
  93. package/target.ts +84 -0
  94. package/types.ts +408 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Target builders : `seg(...)` pour décrire un segment et `target.{none,
3
+ * optional, required, path}` pour assembler un target.
4
+ */
5
+ import type { AnySegment, SegmentSpec, SpecToSegment, TargetNone, TargetOptional, TargetPath, TargetRequired } from "./types.ts";
6
+ export declare function seg<const N extends string, const T extends string | readonly string[] | "*">(name: N, type: T, opts?: {
7
+ validate?: (value: unknown) => boolean;
8
+ }): SegmentSpec<N, T>;
9
+ export interface TargetBuilders {
10
+ none(): TargetNone;
11
+ optional<const Spec extends string | AnySegment>(spec: Spec): TargetOptional<SpecToSegment<Spec>>;
12
+ required<const Spec extends string | AnySegment>(spec: Spec): TargetRequired<SpecToSegment<Spec>>;
13
+ path<const Specs extends readonly (string | AnySegment)[]>(...specs: Specs): TargetPath<{
14
+ -readonly [K in keyof Specs]: SpecToSegment<Specs[K]>;
15
+ }>;
16
+ }
17
+ export declare const target: TargetBuilders;
18
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../target.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,wBAAgB,GAAG,CACjB,KAAK,CAAC,CAAC,SAAS,MAAM,EACtB,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,GAAG,EAEhD,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CAAC,EACP,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,GAChD,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAMnB;AASD,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,UAAU,CAAC;IACnB,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,GACT,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,EACvD,GAAG,KAAK,EAAE,KAAK,GACd,UAAU,CAAC;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC,CAAC;CAC1E;AAED,eAAO,MAAM,MAAM,EAAE,cAiCpB,CAAC"}
package/dist/target.js ADDED
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Target builders : `seg(...)` pour décrire un segment et `target.{none,
3
+ * optional, required, path}` pour assembler un target.
4
+ */
5
+ export function seg(name, type, opts) {
6
+ return {
7
+ name,
8
+ types: type,
9
+ ...(opts?.validate ? { validate: opts.validate } : {}),
10
+ };
11
+ }
12
+ function normalize(spec) {
13
+ if (typeof spec === "string") {
14
+ return { name: spec, types: spec };
15
+ }
16
+ return spec;
17
+ }
18
+ export const target = {
19
+ none() {
20
+ return { kind: "none", segments: [] };
21
+ },
22
+ optional(spec) {
23
+ return {
24
+ kind: "optional",
25
+ segments: [normalize(spec)],
26
+ };
27
+ },
28
+ required(spec) {
29
+ return {
30
+ kind: "required",
31
+ segments: [normalize(spec)],
32
+ };
33
+ },
34
+ path(...specs) {
35
+ return {
36
+ kind: "path",
37
+ segments: specs.map(normalize),
38
+ };
39
+ },
40
+ };
41
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../target.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,UAAU,GAAG,CAIjB,IAAO,EACP,IAAO,EACP,IAAiD;IAEjD,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAgC,IAAO;IACvD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAsB,CAAC;IACzD,CAAC;IACD,OAAO,IAAwB,CAAC;AAClC,CAAC;AAeD,MAAM,CAAC,MAAM,MAAM,GAAmB;IACpC,IAAI;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAW,EAAE,CAAC;IACjD,CAAC;IAED,QAAQ,CACN,IAAU;QAEV,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAU;SACE,CAAC;IAC3C,CAAC;IAED,QAAQ,CACN,IAAU;QAEV,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAU;SACE,CAAC;IAC3C,CAAC;IAED,IAAI,CACF,GAAG,KAAY;QAEf,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAE5B;SACuE,CAAC;IAC7E,CAAC;CACF,CAAC"}
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Types core de `@diister/quick-permission`.
3
+ *
4
+ * Couvre :
5
+ * - les target primitives (segments + 4 kinds : none/optional/required/path)
6
+ * - les types runtime du système (Subject, Grant, Rule, Resource, Permission)
7
+ * - les types sérialisables exposés via `system.list()` / `system.tree()`
8
+ */
9
+ export type SegmentSpec<N extends string = string, T = unknown> = {
10
+ readonly name: N;
11
+ readonly types: T;
12
+ readonly validate?: (value: unknown) => boolean;
13
+ };
14
+ export type AnySegment = SegmentSpec<string, unknown>;
15
+ export type SpecToSegment<S> = S extends string ? SegmentSpec<S, S> : S extends AnySegment ? S : never;
16
+ export type TargetNone = {
17
+ readonly kind: "none";
18
+ readonly segments: readonly [];
19
+ };
20
+ export type TargetOptional<S extends AnySegment> = {
21
+ readonly kind: "optional";
22
+ readonly segments: readonly [S];
23
+ };
24
+ export type TargetRequired<S extends AnySegment> = {
25
+ readonly kind: "required";
26
+ readonly segments: readonly [S];
27
+ };
28
+ export type TargetPath<Ss extends readonly AnySegment[]> = {
29
+ readonly kind: "path";
30
+ readonly segments: Ss;
31
+ };
32
+ export type AnyTarget = TargetNone | TargetOptional<AnySegment> | TargetRequired<AnySegment> | TargetPath<readonly AnySegment[]>;
33
+ export type SegmentNames<T extends AnyTarget> = T extends TargetNone ? never : T extends TargetOptional<infer S> ? S["name"] : T extends TargetRequired<infer S> ? S["name"] : T extends TargetPath<infer Ss> ? Ss extends readonly AnySegment[] ? Ss[number]["name"] : never : never;
34
+ export type TargetArgs<T extends AnyTarget> = T extends TargetNone ? readonly [] : T extends TargetOptional<AnySegment> ? readonly [string?] : T extends TargetRequired<AnySegment> ? readonly [string] : T extends TargetPath<infer Ss> ? Ss extends readonly AnySegment[] ? {
35
+ -readonly [K in keyof Ss]: string;
36
+ } : never : never;
37
+ export type Subject = {
38
+ readonly id: string;
39
+ readonly [key: string]: unknown;
40
+ };
41
+ /**
42
+ * Forme d'un grant émis par un provider, avec les 4 slots sémantiques
43
+ * distincts (cf. RFC §"Slot `flags` séparé de `with`").
44
+ */
45
+ export type Grant = {
46
+ readonly id?: string;
47
+ readonly key: string;
48
+ readonly target?: readonly unknown[];
49
+ /** Constraint specs lus par `match` / `includes`. */
50
+ readonly with?: Readonly<Record<string, unknown>>;
51
+ /**
52
+ * Mongo spec read by `inputMatch()`, evaluated against `ctx.input`.
53
+ * Separate from `with` so payload-shaped specs don't collide with
54
+ * resource-shaped specs in the same grant.
55
+ */
56
+ readonly inputWith?: Readonly<Record<string, unknown>>;
57
+ /** Sélecteurs de champs lus par `filter`. */
58
+ readonly filter?: Readonly<Record<string, boolean>>;
59
+ /** Opt-ins booléens lus par les `require*` rules. */
60
+ readonly flags?: Readonly<Record<string, boolean>>;
61
+ /** Données arbitraires accessibles aux rules custom. */
62
+ readonly payload?: unknown;
63
+ };
64
+ /**
65
+ * Contexte transmis aux fetchers et aux rules.
66
+ * Toutes les rules d'un même grant partagent le même FetchCtx.
67
+ */
68
+ export type FetchCtx = {
69
+ readonly subject: Subject;
70
+ readonly target: readonly unknown[];
71
+ readonly grant: Grant;
72
+ readonly checkDate?: Date;
73
+ readonly checkIp?: string;
74
+ /**
75
+ * True si la request target contient des wildcards (capability query).
76
+ * Dans ce mode, les resources ne sont PAS fetchées (cf. RFC §"Sémantique
77
+ * d'exécution"). Les rules built-in font silent-pass quand leur contrainte
78
+ * ne peut pas être vérifiée sans ressource concrète.
79
+ */
80
+ readonly capability?: boolean;
81
+ /**
82
+ * Check-time payload (forwarded from `CanContext.input`). Distinct from
83
+ * `grant.payload` which is static (seed-time). Consumed by `inputMatch()`
84
+ * to validate a CREATE body against `grant.with`.
85
+ */
86
+ readonly input?: unknown;
87
+ };
88
+ /**
89
+ * Filter contribution from a single grant. The two fields always go together:
90
+ * - `source` : the unfiltered reference object (basis for the cross-grant union)
91
+ * - `spec` : the field whitelist for this grant; `null` means "all fields"
92
+ * (saturates the cross-grant union to the most permissive shape).
93
+ */
94
+ export type FilterContribution = {
95
+ readonly source: unknown;
96
+ readonly spec: Record<string, boolean> | null;
97
+ };
98
+ /**
99
+ * Rule evaluation result.
100
+ *
101
+ * Cross-grant aggregation:
102
+ * - `data` : last writer wins (generic transform output).
103
+ * - `constraint` : OR-merged across grants into `output.constraints` (match rules).
104
+ * - `filter` : `spec` unioned across grants, applied to `source` to produce
105
+ * the most permissive `output.data` (filter rules).
106
+ */
107
+ export type RuleResult = {
108
+ readonly ok: true;
109
+ readonly data?: unknown;
110
+ readonly constraint?: Record<string, unknown>;
111
+ readonly filter?: FilterContribution;
112
+ } | {
113
+ readonly ok: false;
114
+ readonly reason: string;
115
+ };
116
+ /**
117
+ * Descripteur sérialisable d'une rule, exposé via `system.list()`.
118
+ * Le frontend matrix UI route ses pickers/toggles à partir de `kind`.
119
+ *
120
+ * Champs standardisés :
121
+ * - `kind` : identifiant de famille de rule
122
+ * - `source` : id de la resource si needs.length === 1
123
+ * - `sources` : ids des resources si needs.length > 1 (cross-resource)
124
+ * - `flag` : nom du flag d'opt-in (si la rule a un flag)
125
+ * - tout extra champs renvoyé par `describe()` est préservé tel quel
126
+ */
127
+ export type RuleDescriptor = {
128
+ readonly kind: string;
129
+ readonly source?: string;
130
+ readonly sources?: readonly string[];
131
+ readonly flag?: string;
132
+ readonly [extra: string]: unknown;
133
+ };
134
+ /**
135
+ * Une rule = unité atomique de validation. Toujours produite par
136
+ * `defineRule({...})` ou par les méthodes resource (sucre).
137
+ */
138
+ export interface Rule {
139
+ /** Métadonnée sérialisable pour matrix UI / introspection. */
140
+ readonly descriptor: RuleDescriptor;
141
+ /**
142
+ * Resources que la rule consomme. L'orchestrateur les fetche en parallèle
143
+ * et les passe à `check`. Vide pour les rules pures (ex: requireSelf).
144
+ */
145
+ readonly needs: readonly Resource<unknown>[];
146
+ /**
147
+ * Si défini et retourne false pour le grant courant, la rule est skip
148
+ * silencieusement (et ses needs ne sont pas fetchées).
149
+ * Mutuellement exclusif avec `flag` au niveau de defineRule (le flag est
150
+ * du sucre qui produit un activeWhen).
151
+ */
152
+ readonly activeWhen?: (grant: Grant) => boolean;
153
+ /**
154
+ * Logique d'évaluation. `data` est un tuple aligné sur `needs` (1 entrée
155
+ * par need, dans l'ordre).
156
+ */
157
+ readonly check: (data: readonly unknown[], ctx: FetchCtx) => RuleResult;
158
+ }
159
+ /**
160
+ * Une Resource = source de donnée fetchable, dédupliquée par contexte.
161
+ * Réutilisable entre toutes les permissions d'un domaine.
162
+ */
163
+ export interface Resource<T> {
164
+ readonly id: string;
165
+ /** Fetch la donnée à partir du contexte (subject, target, grant). */
166
+ readonly fetcher: (ctx: FetchCtx) => T | Promise<T>;
167
+ /** Si défini, la resource est skip si l'activator retourne false. */
168
+ readonly activator?: (grant: Grant) => boolean;
169
+ /**
170
+ * Calcule la clé de dedup. Par défaut : hash de tous les inputs.
171
+ * Le développeur explicite cette clé pour optimiser le dedup partiel
172
+ * (ex: target[0..1] pour programOf qui ignore target[2]).
173
+ */
174
+ readonly dedupKey?: (ctx: FetchCtx) => string;
175
+ /**
176
+ * Calcule la cache key pour un target donné (sans subject ni grant).
177
+ * Utilisé par `CanContext.preseed()` pour injecter une valeur déjà
178
+ * chargée dans le cache du context. Le caller passe les segments
179
+ * target attendus, l'engine reconstruit le même key qu'aurait produit
180
+ * `computeDedupKey({ target, subject, grant })`.
181
+ *
182
+ * Par défaut, dérive de `dedupKey` en utilisant un subject minimal.
183
+ */
184
+ cacheKeyForTarget(target: readonly unknown[]): string;
185
+ /**
186
+ * Vrai si la resource doit être fetchée pour ce grant. Dérive d'`activator`.
187
+ */
188
+ isActiveFor(grant: Grant): boolean;
189
+ /**
190
+ * Calcule la clé de dedup effective pour ce contexte (préfixée par l'id).
191
+ */
192
+ computeDedupKey(ctx: FetchCtx): string;
193
+ /** Always-active. Silent-pass si `grant.with[id]` est undefined. */
194
+ match(extractor?: (data: T) => unknown): Rule;
195
+ /** Always-active. Retourne le resource entier si `grant.filter` absent. */
196
+ filter(extractor?: (data: T) => unknown): Rule;
197
+ /** Lazy : skip si `grant.with[grantField]` absent. */
198
+ includes(grantField: string, extractor: (data: T) => readonly unknown[]): Rule;
199
+ /** Always-active. Échoue si `data` est falsy (ex: lookup retourne null). */
200
+ requireTruthy(): Rule;
201
+ /** Opt-in via flag : active si `grant.flags[opts.flag] === true`. */
202
+ requireOwner(getter: (data: T) => string | undefined, opts: {
203
+ readonly flag: string;
204
+ }): Rule;
205
+ /** Opt-in via flag : active si `grant.flags[opts.flag] === true`. */
206
+ requireMembership(getter: (data: T) => readonly string[], opts: {
207
+ readonly flag: string;
208
+ }): Rule;
209
+ /**
210
+ * Escape hatch : prédicat custom. Active si `grant.flags[opts.flag] === true`.
211
+ * Le `descriptor` permet de transmettre des métadonnées au matrix UI.
212
+ */
213
+ requireCustom(predicate: (data: T, ctx: FetchCtx) => boolean, opts: {
214
+ readonly flag: string;
215
+ readonly descriptor?: Readonly<Record<string, unknown>>;
216
+ }): Rule;
217
+ }
218
+ /**
219
+ * Helper d'inférence : extrait T depuis un Resource<T>.
220
+ */
221
+ export type ResourceData<R> = R extends Resource<infer T> ? T : never;
222
+ /**
223
+ * Helper d'inférence : transforme un tuple de Resource en tuple de données T.
224
+ */
225
+ export type ResourcesData<RS extends readonly Resource<unknown>[]> = {
226
+ [K in keyof RS]: ResourceData<RS[K]>;
227
+ };
228
+ /**
229
+ * Forme stockée d'une permission après `permission().rules([...])`.
230
+ */
231
+ export interface Permission<TMeta = unknown> {
232
+ readonly metadata?: TMeta;
233
+ readonly target: AnyTarget;
234
+ readonly rules: readonly Rule[];
235
+ /**
236
+ * Pour les permissions intermediates : fonction qui expand un grant en
237
+ * grants sur les enfants. Si défini, la permission est traitée comme
238
+ * un macro pendant l'expansion.
239
+ */
240
+ readonly expandsTo?: (grant: Grant) => readonly Grant[];
241
+ }
242
+ /**
243
+ * Résultat de `system.list()` : un entry plat par permission.
244
+ *
245
+ * `expandsTo` — pour les intermediates uniquement, contient la liste plate
246
+ * (leaves-only) des clés effectivement octroyées par cette macro, calculée
247
+ * par BFS transitive sur le schéma au moment du `list()`. Undefined pour
248
+ * `kind === "permission"` (les leaves n'expandent pas). Voir `system.ts:
249
+ * computeDescendants` pour la sémantique exacte (déduplication, cycle
250
+ * detection, leaves-only, sampling par stub wildcard).
251
+ */
252
+ export type ListEntry<TMeta = unknown> = {
253
+ readonly key: string;
254
+ readonly kind: "permission" | "intermediate";
255
+ readonly metadata: TMeta | undefined;
256
+ readonly target: SerializableTarget;
257
+ readonly rules: readonly RuleDescriptor[];
258
+ readonly expandsTo?: readonly string[];
259
+ };
260
+ /**
261
+ * Nœud de l'arbre exposé par `system.tree()`. Un nœud est soit un leaf
262
+ * (permission/intermediate) avec ses metadata + target + rules, soit un
263
+ * groupe synthétique avec des enfants (groupé par préfixe dotted-key).
264
+ */
265
+ export type TreeNode<TMeta = unknown> = {
266
+ readonly kind: "permission" | "intermediate";
267
+ readonly key: string;
268
+ readonly metadata: TMeta | undefined;
269
+ readonly target: SerializableTarget;
270
+ readonly rules: readonly RuleDescriptor[];
271
+ readonly expandsTo?: readonly string[];
272
+ } | {
273
+ readonly kind: "group";
274
+ readonly metadata: undefined;
275
+ readonly children: Readonly<Record<string, TreeNode<TMeta>>>;
276
+ };
277
+ export type SerializableSegment = {
278
+ readonly name: string;
279
+ readonly types: string | readonly string[];
280
+ };
281
+ /**
282
+ * Serialized form of an `IndirectResource` — function fields stripped
283
+ * (`fetcher`, `cacheKeyForTarget`, `match` are runtime-only). Returned
284
+ * by `System.indirectResources()` and `System.indirectsUsedBy(key)` so
285
+ * matrix UIs / catalog endpoints can introspect joins without walking
286
+ * every permission's rules manually.
287
+ */
288
+ export type IndirectResourceInfo = {
289
+ readonly id: string;
290
+ readonly kind: "indirect";
291
+ readonly from: {
292
+ readonly id: string;
293
+ readonly kind: "direct" | "indirect";
294
+ };
295
+ readonly on: {
296
+ readonly localField: string;
297
+ readonly foreignField: string;
298
+ readonly foreignCollection?: string;
299
+ };
300
+ readonly to?: {
301
+ readonly _type?: string;
302
+ };
303
+ readonly cardinality: "one" | "many";
304
+ };
305
+ export type SerializableTarget = {
306
+ readonly kind: "none";
307
+ } | {
308
+ readonly kind: "optional";
309
+ readonly segment: SerializableSegment;
310
+ } | {
311
+ readonly kind: "required";
312
+ readonly segment: SerializableSegment;
313
+ } | {
314
+ readonly kind: "path";
315
+ readonly segments: readonly SerializableSegment[];
316
+ };
317
+ /**
318
+ * Résultat d'un `can()` call.
319
+ *
320
+ * `constraints` est l'expression Mongo unifiée des grants qui ont passé —
321
+ * utile pour le pushdown DB (`collection.find(constraints)`). Sémantique :
322
+ * - 0 grant matched → `ok: false`
323
+ * - 1 grant matched → `constraints` = la spec de ce grant (ou `{}` si pas de spec)
324
+ * - N grants matched → `constraints` = `{ $or: [spec1, spec2, ...] }`
325
+ * - Au moins 1 grant sans spec / sans constraint → `constraints` = `{}` (= "any",
326
+ * le filtre n'apporte aucune restriction au pushdown)
327
+ */
328
+ export type CanResult = {
329
+ readonly ok: true;
330
+ readonly data?: unknown;
331
+ readonly constraints?: Record<string, unknown>;
332
+ /**
333
+ * Pipeline d'aggregation MongoDB produit quand au moins une
334
+ * `IndirectResource` est référencée dans les rules de la permission.
335
+ * Le consommateur (adapter mongodbee côté appli) choisit entre
336
+ * `find(constraints)` et `aggregate(stages)` selon la présence de
337
+ * `stages`. Cf. `indirect-aggregation.ts`.
338
+ */
339
+ readonly stages?: readonly Record<string, unknown>[];
340
+ readonly matchedGrants?: readonly string[];
341
+ } | {
342
+ readonly ok: false;
343
+ readonly reasons: readonly string[];
344
+ };
345
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Types core de `@diister/quick-permission`.
3
+ *
4
+ * Couvre :
5
+ * - les target primitives (segments + 4 kinds : none/optional/required/path)
6
+ * - les types runtime du système (Subject, Grant, Rule, Resource, Permission)
7
+ * - les types sérialisables exposés via `system.list()` / `system.tree()`
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}