@jantstack/adonis-authz 2.5.0-alpha.2 → 2.5.0-alpha.3

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 (80) hide show
  1. package/README.md +343 -7
  2. package/build/commands/authz_relations_reconcile.d.ts +6 -0
  3. package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
  4. package/build/commands/authz_relations_reconcile.js +113 -3
  5. package/build/commands/authz_relations_reconcile.js.map +1 -1
  6. package/build/commands/openfga_provision.d.ts +62 -0
  7. package/build/commands/openfga_provision.d.ts.map +1 -1
  8. package/build/commands/openfga_provision.js +193 -1
  9. package/build/commands/openfga_provision.js.map +1 -1
  10. package/build/index.d.ts +6 -6
  11. package/build/index.d.ts.map +1 -1
  12. package/build/index.js +3 -3
  13. package/build/index.js.map +1 -1
  14. package/build/src/drivers/database_relations_driver.d.ts +36 -1
  15. package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
  16. package/build/src/drivers/database_relations_driver.js +211 -45
  17. package/build/src/drivers/database_relations_driver.js.map +1 -1
  18. package/build/src/drivers/openfga_driver.d.ts.map +1 -1
  19. package/build/src/drivers/openfga_driver.js +102 -36
  20. package/build/src/drivers/openfga_driver.js.map +1 -1
  21. package/build/src/drivers/openfga_facts.d.ts +21 -0
  22. package/build/src/drivers/openfga_facts.d.ts.map +1 -1
  23. package/build/src/drivers/openfga_facts.js +74 -8
  24. package/build/src/drivers/openfga_facts.js.map +1 -1
  25. package/build/src/drivers/openfga_relations_driver.d.ts +74 -1
  26. package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
  27. package/build/src/drivers/openfga_relations_driver.js +599 -29
  28. package/build/src/drivers/openfga_relations_driver.js.map +1 -1
  29. package/build/src/errors.d.ts +112 -0
  30. package/build/src/errors.d.ts.map +1 -1
  31. package/build/src/errors.js +130 -0
  32. package/build/src/errors.js.map +1 -1
  33. package/build/src/manager.d.ts.map +1 -1
  34. package/build/src/manager.js +9 -4
  35. package/build/src/manager.js.map +1 -1
  36. package/build/src/openfga.d.ts +1 -1
  37. package/build/src/openfga.d.ts.map +1 -1
  38. package/build/src/openfga.js +1 -1
  39. package/build/src/openfga.js.map +1 -1
  40. package/build/src/relations/check_many.d.ts +1 -1
  41. package/build/src/relations/check_many.d.ts.map +1 -1
  42. package/build/src/relations/check_many.js +6 -4
  43. package/build/src/relations/check_many.js.map +1 -1
  44. package/build/src/relations/define_relations_config.d.ts +115 -2
  45. package/build/src/relations/define_relations_config.d.ts.map +1 -1
  46. package/build/src/relations/define_relations_config.js +197 -3
  47. package/build/src/relations/define_relations_config.js.map +1 -1
  48. package/build/src/relations/manager.d.ts +33 -2
  49. package/build/src/relations/manager.d.ts.map +1 -1
  50. package/build/src/relations/manager.js +120 -3
  51. package/build/src/relations/manager.js.map +1 -1
  52. package/build/src/relations/reconcile.d.ts +219 -1
  53. package/build/src/relations/reconcile.d.ts.map +1 -1
  54. package/build/src/relations/reconcile.js +745 -155
  55. package/build/src/relations/reconcile.js.map +1 -1
  56. package/build/src/relations/tuple_order.d.ts +126 -0
  57. package/build/src/relations/tuple_order.d.ts.map +1 -0
  58. package/build/src/relations/tuple_order.js +598 -0
  59. package/build/src/relations/tuple_order.js.map +1 -0
  60. package/build/src/shared/backend_guard.d.ts +8 -0
  61. package/build/src/shared/backend_guard.d.ts.map +1 -1
  62. package/build/src/shared/backend_guard.js +15 -0
  63. package/build/src/shared/backend_guard.js.map +1 -1
  64. package/build/src/testing/main.d.ts +1 -1
  65. package/build/src/testing/main.d.ts.map +1 -1
  66. package/build/src/testing/main.js +1 -1
  67. package/build/src/testing/main.js.map +1 -1
  68. package/build/src/testing/relations_contract.d.ts +18 -0
  69. package/build/src/testing/relations_contract.d.ts.map +1 -1
  70. package/build/src/testing/relations_contract.js +824 -44
  71. package/build/src/testing/relations_contract.js.map +1 -1
  72. package/build/src/testing/relations_reconcile_contract.d.ts +9 -0
  73. package/build/src/testing/relations_reconcile_contract.d.ts.map +1 -1
  74. package/build/src/testing/relations_reconcile_contract.js +207 -0
  75. package/build/src/testing/relations_reconcile_contract.js.map +1 -1
  76. package/build/src/types.d.ts +83 -3
  77. package/build/src/types.d.ts.map +1 -1
  78. package/build/src/types.js +2 -0
  79. package/build/src/types.js.map +1 -1
  80. package/package.json +1 -1
@@ -26,7 +26,7 @@ import { assertPartition, assertSubject, assertRelationId, assertExpiresAt, scop
26
26
  import { isClock, systemClock } from '../clock.js';
27
27
  import { assertNotFrozenRow } from '../freeze.js';
28
28
  import { isRelUserset, normalizeRelationsCapabilities } from '../types.js';
29
- import { assertRelationDeclared, assertObjectTypeDeclared, assertUsersetSubject } from './define_relations_config.js';
29
+ import { assertRelationDeclared, assertObjectTypeDeclared, assertUsersetSubject, assertRelationDenyable, assertDenySubject, assertDenyNoExpiry, } from './define_relations_config.js';
30
30
  import { assertCheckManyObjects } from './check_many.js';
31
31
  /**
32
32
  * ¿Cada POSICIÓN del array es un boolean? Por índice, nunca con `some`/`every`
@@ -39,6 +39,27 @@ function everyPositionBoolean(answers) {
39
39
  }
40
40
  return true;
41
41
  }
42
+ const DECISIONS = new Set(['allow', 'deny', 'none']);
43
+ /** ¿Cada POSICIÓN es una decisión (`'allow'|'deny'|'none'`)? Por índice (los huecos de un array disperso cuentan). */
44
+ function everyPositionDecision(answers) {
45
+ for (let i = 0; i < answers.length; i++) {
46
+ if (!DECISIONS.has(answers[i]))
47
+ return false;
48
+ }
49
+ return true;
50
+ }
51
+ /** Descripción corta de una respuesta inválida de `decideMany`, para el mensaje del 500. */
52
+ function describeDecisions(answer) {
53
+ if (!Array.isArray(answer))
54
+ return `${answer === null ? 'null' : typeof answer} (no es un array)`;
55
+ for (let i = 0; i < answer.length; i++) {
56
+ if (!(i in answer))
57
+ return `un array de ${answer.length} con un HUECO en la posición ${i}`;
58
+ if (!DECISIONS.has(answer[i]))
59
+ return `un array de ${answer.length} con ${JSON.stringify(answer[i])} en la posición ${i}`;
60
+ }
61
+ return `un array de ${answer.length}`;
62
+ }
42
63
  /** Descripción corta de una respuesta inválida de `checkMany`, para el mensaje del 500. */
43
64
  function describeManyAnswer(answer) {
44
65
  if (!Array.isArray(answer))
@@ -120,7 +141,7 @@ export class RelationsManager {
120
141
  * la escritura no ocurrió y se propaga SIN evento. Con `{ transaction }` el
121
142
  * evento lleva además `transactional: true` (el rollback del llamante
122
143
  * determina el resultado, pero es suyo y el paquete no lo ve). Envuelve las
123
- * CUATRO escrituras.
144
+ * SEIS escrituras (desde el lote D también `deny`/`removeDeny`).
124
145
  *
125
146
  * **Y una escritura PARCIAL también es indeterminada** (cierre del 🟡 6 del
126
147
  * auditor de alpha.3): la purga de `openfga` es multi-request (ortografías
@@ -403,6 +424,102 @@ export class RelationsManager {
403
424
  }
404
425
  return answers;
405
426
  }
427
+ /**
428
+ * **El deny de relación** (plan 2.5 · lote D · D1; D3/D5/D8/D10). El MISMO embudo que `relate`, en este orden:
429
+ * puerta 1 de `{ transaction }`, barrera del freeze, F-05 (sobre el nombre PÚBLICO), la capacidad
430
+ * `relationDenies` (500 `E_AUTHZ_UNSUPPORTED` con cero llamadas, como `membersOf`: D-28), la puerta del opt-in
431
+ * (solo un tipo en fase `'write'`; sin opt-in, en `'read'` o sobre `group` ⇒ 422 `E_AUTHZ_RELATION_NOT_DENYABLE`,
432
+ * D-17), sin caducidad (D3: `expiresAt` ⇒ 422), id, actor, partición (D4), sujeto (`*` ⇒ 422, userset solo
433
+ * `group#member`), `assertWrite` con `operation: 'deny'`, `#write` (invariante 13) y `#notify`. **Corte de camino**
434
+ * (D5): un deny en `editor` anula entero un grant de `owner` sobre ese objeto; solo sobrevive un `viewer` directo.
435
+ */
436
+ async deny(subject, relation, object, partition, options) {
437
+ this.#assertTransactional(options, 'deny');
438
+ await this.#assertNotFrozen('deny');
439
+ this.#assertDeclared(object, relation);
440
+ this.#assertDenies('deny');
441
+ assertRelationDenyable(this.#config, object, relation);
442
+ assertDenyNoExpiry(options);
443
+ this.#assertObjectId(object);
444
+ this.#assertActor(options, 'deny');
445
+ assertPartition(partition);
446
+ assertDenySubject(subject);
447
+ this.#assertSubject(subject, partition);
448
+ const ref = { operation: 'deny', subject, relation, object, partition };
449
+ this.#assertWrite(ref, 'deny');
450
+ const event = this.#copyEvent({ ...ref, ...this.#actorOf(options), ...this.#transactional(options) });
451
+ await this.#write(event, () => this.#driver.deny(subject, relation, object, partition, options));
452
+ await this.#notify(event);
453
+ }
454
+ /**
455
+ * **Retira un deny** (lote D). El embudo de `deny` SIN la puerta del opt-in: acepta CUALQUIER tipo declarado
456
+ * (D8/R2-4 b: retirar el opt-in de un tipo con denies vivos tiene que ser reversible, y los denies se tienen que
457
+ * poder borrar). Ojo, fila declarada (S8–S10 del tester): quitar un deny CONCEDE — `assertWrite` lo ve con
458
+ * `operation: 'removeDeny'`.
459
+ */
460
+ async removeDeny(subject, relation, object, partition, options) {
461
+ this.#assertTransactional(options, 'removeDeny');
462
+ await this.#assertNotFrozen('removeDeny');
463
+ this.#assertDeclared(object, relation);
464
+ this.#assertDenies('removeDeny');
465
+ assertDenyNoExpiry(options);
466
+ this.#assertObjectId(object);
467
+ this.#assertActor(options, 'removeDeny');
468
+ assertPartition(partition);
469
+ this.#assertSubject(subject, partition);
470
+ const ref = { operation: 'removeDeny', subject, relation, object, partition };
471
+ this.#assertWrite(ref, 'removeDeny');
472
+ const event = this.#copyEvent({ ...ref, ...this.#actorOf(options), ...this.#transactional(options) });
473
+ await this.#write(event, () => this.#driver.removeDeny(subject, relation, object, partition, options));
474
+ await this.#notify(event);
475
+ }
476
+ /** Los sujetos con deny DIRECTO de `relation` sobre `object` (hechos: no resta ni deriva). Cualquier tipo declarado (D8). */
477
+ async listDenies(relation, object, partition, page) {
478
+ this.#assertDeclared(object, relation);
479
+ this.#assertDenies('listDenies');
480
+ assertPartition(partition);
481
+ this.#assertObjectId(object);
482
+ return this.#driver.listDenies(relation, object, partition, page);
483
+ }
484
+ /**
485
+ * **La primitiva de CADENA** (lote D · D9, decisión del dueño 2026-10-14): una decisión por objeto, POR POSICIÓN —
486
+ * `allow` si `check` concede aquí; si no, `deny` si el sujeto tiene un deny vivo (directo o por grupo, anidado)
487
+ * sobre ALGUNA relación de `up*(down*(R))` en el objeto; si no, `none`—. Recorre la cadena de la hoja hacia arriba
488
+ * y para en el primer valor que no sea `none`. Las MISMAS garantías que `checkMany`: tope
489
+ * `RELATIONS_CHECK_MANY_MAX` (50) y `[]` ⇒ 422 `E_AUTHZ_CHECK_MANY_BATCH` con cero llamadas, F-05 y el id POR
490
+ * ÍTEM, un `now` por lote en el driver, orden de salida = orden de entrada, y un error en UN ítem ⇒ 503 para todo
491
+ * el lote (nunca `none` por ítem: `none` en vez de `deny` dejaría que la cadena del llamante siguiera subiendo, S15).
492
+ * La respuesta del driver se valida (una decisión por posición, sin huecos, o 500 `E_AUTHZ_INTERNAL`). Sin
493
+ * `relationDenies` ⇒ 500 `E_AUTHZ_UNSUPPORTED` (D-28): sin deny no hay tri-estado que prometer.
494
+ */
495
+ async decideMany(subject, relation, objects, partition) {
496
+ assertCheckManyObjects(objects, 'decideMany');
497
+ for (const object of objects) {
498
+ this.#assertDeclared(object, relation);
499
+ this.#assertObjectId(object);
500
+ }
501
+ this.#assertDenies('decideMany');
502
+ assertPartition(partition);
503
+ this.#assertSubject(subject, partition);
504
+ const answers = await this.#driver.decideMany(subject, relation, objects, partition);
505
+ if (!Array.isArray(answers) || answers.length !== objects.length || !everyPositionDecision(answers)) {
506
+ throw new AuthorizationInternalError(`decideMany: el driver de relaciones '${this.#options.driverName ?? 'relations'}' respondió ` +
507
+ `${describeDecisions(answers)} para ${objects.length} objeto(s). ` +
508
+ "La respuesta es un ('allow'|'deny'|'none')[] POR POSICIÓN, exactamente uno por objeto (sin huecos): no se adivina.");
509
+ }
510
+ return answers;
511
+ }
512
+ /**
513
+ * **D-28 · la capacidad `relationDenies`** (regla D15: opcional, normalizada a `false`): sin ella, o sin el método
514
+ * del puerto, las cuatro operaciones del deny son 500 `E_AUTHZ_UNSUPPORTED` nombrándose, con CERO llamadas al
515
+ * driver — después de F-05 (un tipo no declarado sigue siendo 422), como `membersOf`.
516
+ */
517
+ #assertDenies(operation) {
518
+ if (this.#driver.capabilities?.relationDenies === true && typeof this.#driver[operation] === 'function')
519
+ return;
520
+ throw new UnsupportedOperationError(operation, 'el deny de relaciones', this.#options.driverName ?? 'relations', `El driver no declara relationDenies: true (o no trae '${operation}'): no sabe escribir ni honrar un deny. ` +
521
+ `Los dos drivers del paquete (database, openfga) lo traen desde 2.5.0-alpha.3.`);
522
+ }
406
523
  async listObjects(subject, relation, objectType, partition, page) {
407
524
  this.#assertDeclared({ type: objectType }, relation);
408
525
  assertPartition(partition);
@@ -426,7 +543,7 @@ export class RelationsManager {
426
543
  * notifica también cuando no borra nada: el hecho auditable es «alguien
427
544
  * pidió borrar las llaves de X». Sujeta a `requireActor` (D-3, breaking) y
428
545
  * al actor validado; NO pasa por `assertWrite` (su `RelationRef.operation`
429
- * es `'relate' | 'unrelate'`, tipo publicado de R-13). Mismo `#write`
546
+ * es `'relate' | 'unrelate' | 'deny' | 'removeDeny'`, tipo publicado de R-13). Mismo `#write`
430
547
  * (invariante 13) y mismo `#notify` que `relate`/`unrelate`.
431
548
  *
432
549
  * **Y pasan por F-05** (cierre del 🔴 1 del auditor de alpha.3): el mismo
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/relations/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EAChC,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,GACf,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC5G,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAmBjD,OAAO,EAAE,YAAY,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAErH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAkDxD;;;GAGG;AACH,SAAS,oBAAoB,CAAC,OAAkB;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;IACnD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,2FAA2F;AAC3F,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,mBAAmB,CAAA;IACjG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;YAAE,OAAO,eAAe,MAAM,CAAC,MAAM,gCAAgC,CAAC,EAAE,CAAA;QAC1F,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,eAAe,MAAM,CAAC,MAAM,qDAAqD,CAAC,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;IACvJ,CAAC;IACD,OAAO,eAAe,MAAM,CAAC,MAAM,EAAE,CAAA;AACvC,CAAC;AAED,MAAM,OAAO,gBAAgB;IAClB,OAAO,CAAiB;IACxB,OAAO,CAAiB;IACxB,QAAQ,CAAyB;IAE1C,YAAY,MAAuB,EAAE,MAAuB,EAAE,UAAmC,EAAE;QACjG,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,wBAAwB,CAChC,kEAAkE,OAAO,OAAO,CAAC,KAAK,GAAG,CAC1F,CAAA;YACH,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,wBAAwB,CAChC,oGAAoG;oBAClG,qFAAqF,CACxF,CAAA;YACH,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,0BAA0B,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACrG,MAAM,IAAI,wBAAwB,CAChC,sEAAsE,OAAO,CAAC,UAAU,IAAI,WAAW,IAAI;gBACzG,gCAAgC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,yBAAyB,IAAI;gBACrI,4GAA4G;gBAC5G,+FAA+F;gBAC/F,wDAAwD,CAC3D,CAAA;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,OAA+C,EAAE,SAAiB;QACrF,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;YAAE,OAAM;QAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,KAAK,IAAI;YAAE,OAAM;QACnE,MAAM,yBAAyB,CAAC,aAAa,CAC3C,aAAa,SAAS,EAAE,EACxB,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,WAAW,EACvC,WAAW,CACZ,CAAA;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,OAA+C;QAC5D,OAAO,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAC1G,CAAC;IAED,wHAAwH;IACxH,QAAQ,CAAC,OAA2C;QAClD,OAAO,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,MAAM,CAAI,KAAyB,EAAE,EAAoB;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gCAAgC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,KAAyB;QAClC,MAAM,IAAI,GAAuB,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAA;QAChF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;gBACxC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;gBAC3D,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;QACjE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC9D,IAAI,KAAK,CAAC,SAAS,YAAY,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACzF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,KAAyB;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAyB,EAAE,KAAc;QAC7D,MAAM,OAAO,GAAG,8CAA8C,KAAK,CAAC,SAAS,+BAA+B,CAAA;QAC5G,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;YAC1E,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;YACpE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY;QACV,OAAO,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CAAC,MAAoC,EAAE,QAAgB;QACpE,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,mBAAmB,CAAC,MAAoC;QACtD,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAAiB;QAC/B,gBAAgB,CAAC,qBAAqB,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,OAA2C,EAAE,SAAiB;QACzE,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS;YAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,kBAAkB,CAC1B,aAAa,SAAS,2EAA2E,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,GAAgB,EAAE,SAAiB;QAC9C,MAAM,MAAM,GAAY,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAQ,MAA6B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,aAAa,SAAS,EAAE,EAAE,MAAM,CAAC,CAAA;IACtF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,SAAiB;QAChC,OAAO,kBAAkB,CAAC,aAAa,SAAS,EAAE,EAAE;YAClD,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;YACvD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe;SACzC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAmB,EACnB,QAAgB,EAChB,MAAiB,EACjB,SAAmB,EACnB,OAA8B;QAE9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC5C,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACpC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,uEAAuE;QACvE,uEAAuE;QACvE,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACnC,MAAM,GAAG,GAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACtF,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO;YAAE,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QACxE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACrG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QAClG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAmB,EACnB,QAAgB,EAChB,MAAiB,EACjB,SAAmB,EACnB,OAA8B;QAE9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACtC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,MAAM,GAAG,GAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACxF,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACrG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACpG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CAAC,OAAmB,EAAE,QAAgB,EAAE,MAAiB,EAAE,SAAmB;QACvF,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,SAAS,CAAC,OAAmB,EAAE,QAAgB,EAAE,OAAoB,EAAE,SAAmB;QAC9F,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;QACD,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACjD,MAAM,GAAG,GAAc,EAAE,CAAA;YACzB,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;YACtG,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,MAAM,OAAO,GAAY,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAC5F,wEAAwE;QACxE,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,0EAA0E;QAC1E,+DAA+D;QAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnG,MAAM,IAAI,0BAA0B,CAClC,uCAAuC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,WAAW,cAAc;gBAC1F,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,cAAc;gBACnE,sHAAsH,CACzH,CAAA;QACH,CAAC;QACD,OAAO,OAAoB,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAmB,EACnB,QAAgB,EAChB,UAAkB,EAClB,SAAmB,EACnB,IAAmB;QAEnB,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAA;QACpD,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,MAAiB,EACjB,SAAmB,EACnB,IAAmB;QAEnB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,WAAW,CAAC,MAAiB,EAAE,SAAmB,EAAE,OAA8B;QACtF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC1C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,SAAS,EAAE,aAAa;YACxB,MAAM;YACN,SAAS;YACT,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACpF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAmB,EAAE,SAAmB,EAAE,OAA8B;QACzF,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAC3C,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5B,SAAS,EAAE,cAAc;YACzB,OAAO;YACP,SAAS;YACT,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;SAChC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;QACtF,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,MAAiB,EACjB,QAAgB,EAChB,SAAmB,EACnB,IAAmB;QAEnB,0EAA0E;QAC1E,sEAAsE;QACtE,2EAA2E;QAC3E,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;YAC3E,MAAM,IAAI,yBAAyB,CACjC,WAAW,EACX,qCAAqC,EACrC,WAAW,EACX,0FAA0F;gBACxF,uEAAuE,CAC1E,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,kBAAkB,CAAC,SAAmB,EAAE,IAAmB;QAC/D,eAAe,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;YACvF,MAAM,IAAI,yBAAyB,CACjC,oBAAoB,EACpB,6CAA6C,EAC7C,WAAW,CACZ,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,sBAAsB,CAAC,UAAsB,EAAE,IAAmB;QACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,wBAAwB,CAAC,iGAAiG,CAAC,CAAA;QACvI,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,eAAe,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;YACvF,MAAM,IAAI,yBAAyB,CAAC,wBAAwB,EAAE,6CAA6C,EAAE,WAAW,CAAC,CAAA;QAC3H,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC3H,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,wBAAwB,CAChC,6HAA6H;gBAC3H,uHAAuH;gBACvH,yHAAyH;gBACzH,mCAAmC,CACtC,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAoB,EAAE,CAAA;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAClE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,wBAAwB,CAChC,wCAAwC,QAAQ,CAAC,SAAS,CAAC,+DAA+D;oBACxH,mHAAmH;oBACnH,qHAAqH;oBACrH,wGAAwG,CAC3G,CAAA;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,cAAc,CAAC,OAAmB,EAAE,SAAmB;QACrD,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,oEAAoE;YACpE,2EAA2E;YAC3E,yEAAyE;YACzE,yEAAyE;YACzE,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpC,eAAe,CAAC,SAAS,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QACD,aAAa,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/relations/manager.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,17 @@ export interface RelationsReconcileOptions {
71
71
  * en el origen no se migra (la API no puede escribirla) y es deriva. Nunca un
72
72
  * 422 por un dato que no vino del llamante.
73
73
  */
74
+ /**
75
+ * **Los motivos de `RelationsReconcileDetail`, en RUNTIME** (cierre 2 de D2 · ⚪ N6): la guardia L9
76
+ * (`tests/relations_reconcile_l9.spec.ts`) los recorre y exige que cada uno tenga su entrada en `RELATION_RESIDUES`
77
+ * (dónde se clasifica: el PLAN o la PASADA) y su caso. `renewal-unsafe` (cierre 2 de D2 · 🟠 N1, solo `destino`): la
78
+ * renovación (otra caducidad) de una membresía `group:*#member` que TRANSPORTA un deny, en un destino que no declara
79
+ * `atomicRenewal` (renueva con delete + write, `openfga`): entre los dos `Write` el deny no alcanzaría al sujeto. Desde el
80
+ * cierre 5 de D2 (opción A) NIEGA SU PARTICIÓN (`partitionsRefused`: cero escrituras y cero borrados en ella, el resto
81
+ * migra); la línea la nombra con su receta y es deriva. `withheld-by-unsafe-deny` (cierre 4) se fue con la retención.
82
+ */
83
+ export declare const RELATIONS_RECONCILE_DETAIL_REASONS: readonly ["invalid-identity", "userset-unsupported", "undeclared", "deny-conditional", "renewal-unsafe"];
84
+ export type RelationsReconcileDetailReason = (typeof RELATIONS_RECONCILE_DETAIL_REASONS)[number];
74
85
  export interface RelationsReconcileDetail {
75
86
  /** De qué store llegó enumerada. */
76
87
  side: 'origen' | 'destino';
@@ -95,8 +106,14 @@ export interface RelationsReconcileDetail {
95
106
  * (hasta el cierre 3 ese 422 salía como stack crudo a mitad de pasada,
96
107
  * después de escribir, y `--prune` quedaba inutilizable para esa partición).
97
108
  * Receta: retírala a mano o vuelve a declarar la relación en el destino.
109
+ * `deny-conditional` (cierre 1 de D2 · 🟡 4; cierre 4 · 🟡 C3-2, solo `destino`): un deny del destino CON caducidad
110
+ * (escrito fuera del paquete, D3) —vivo con otra caducidad o YA VENCIDO— que el origen tiene, en un destino que no
111
+ * declara `atomicRenewal` (`openfga` no reemplaza la misma clave en un `Write`, M5). Lo decide el PLAN (mismos números
112
+ * en `--dry-run` y real): no se reescribe, y desde el cierre 5 de D2 (opción A) NIEGA SU PARTICIÓN —cero escrituras y
113
+ * cero borrados en ella (`partitionsRefused`), el resto migra—; lleva la receta (`removeDeny` + `deny`, con su ventana
114
+ * declarada) y es deriva.
98
115
  */
99
- reason: 'invalid-identity' | 'userset-unsupported' | 'undeclared';
116
+ reason: RelationsReconcileDetailReason;
100
117
  /** La tupla, legible: `<partición> <tipo>:<id>#<relación>@<sujeto>`. */
101
118
  tuple: string;
102
119
  /** El porqué: el mensaje de la gramática que la rechazó. */
@@ -244,11 +261,212 @@ export interface RelationsReconcileReport {
244
261
  from: string;
245
262
  allowed: boolean;
246
263
  };
264
+ /**
265
+ * **Los DENIES de la pasada, aparte** (plan 2.5 · lote D · D2; analista §4.7, tester T3): el SUBCONJUNTO de los
266
+ * contadores de arriba que son denies (`written`/`updated`/`deleted`/`unchanged`/`extra` cuentan allows + denies).
267
+ * `updated` = un deny del destino CON caducidad (escrito a mano) que el origen tiene distinto: se rehace permanente
268
+ * con `to.deny` (D3: el deny no caduca; `database` lo rehace en una transacción, `openfga` responde 409 ⇒ 503 ruidoso).
269
+ * Opcional en el tipo exportado (un reporte de terceros anterior sigue compilando).
270
+ */
271
+ denies?: {
272
+ written: number;
273
+ updated: number;
274
+ deleted: number;
275
+ unchanged: number;
276
+ extra: number;
277
+ };
278
+ /**
279
+ * **Los denies que la pasada NO puede migrar** (D2; S6/R2-5): solo en `--dry-run` (la pasada real lanza 500
280
+ * `E_AUTHZ_DENY_MIGRATION_REFUSED` con CERO escrituras y las mismas entradas en `error.refusals`). Es deriva: el
281
+ * verificador sale ≠ 0 con la línea «deny NO migrable (<motivo>) …». Ausente = ninguno.
282
+ */
283
+ denyRefused?: DenyRefusal[];
284
+ /**
285
+ * **El reporte POR PARTICIÓN** (roadmap 2.5, 🟡 3 del auditor de alpha.6): el desglose de los contadores y el
286
+ * estado de cada partición pedida, en orden. Si la pasada revienta a mitad, el error lleva `report` con
287
+ * `partial: true`, las particiones ya escritas `done`, la que reventó `failed` (con lo que llegó a escribir) y las
288
+ * demás `pending`, y va marcado con `markPartialWrite` si se escribió algo.
289
+ */
290
+ partitions?: RelationsReconcilePartitionReport[];
291
+ /**
292
+ * Solo en el reporte que viaja en un error (`error.report`): `true` si la pasada se cortó a mitad DESPUÉS de escribir
293
+ * algo; `false` si reventó sin haber escrito nada (⚪ 10 del cierre 1 de D2: hasta entonces era `true` siempre y el
294
+ * comando imprimía «pasada PARCIAL: escritas 0»). Desde el cierre 2 de D2 (🟠 N1) también `true` si el DRIVER marcó
295
+ * el error como escritura parcial (`isPartialWrite`: un `relate` de renovación que ya borró), aunque la pasada no
296
+ * hubiera completado ninguna escritura.
297
+ */
298
+ partial?: boolean;
299
+ /**
300
+ * **El RESIDUO del orden** (cierre 2 de D2 · 🟡 N3, linaje L10): las membresías de un CICLO del grafo de precedencias de
301
+ * `relationTransitionOrder` — dos membresías que cambian en la misma pasada cuyas exigencias de orden se contradicen
302
+ * (típicamente: el mismo sujeto entra, o sale, a la vez en dos grupos y cada uno trae un deny que corta un allow que
303
+ * trae el otro). Para ellas no hay orden garantizado: un corte entre las dos puede conceder lo que ni el estado inicial
304
+ * ni el final concedían (para el resto de la pasada, la garantía vale). El estado FINAL es el correcto; no es deriva:
305
+ * el comando lo AVISA con el prefijo estable «orden SIN garantía». Lo mismo en `--dry-run` que en la pasada real.
306
+ * Opcional en el tipo exportado; ausente = `[]`.
307
+ */
308
+ orderResidue?: string[];
309
+ /**
310
+ * **Las particiones NEGADAS** (cierre 5 de D2, decisión del dueño §2026-10-16 (10), opción A): una partición con al
311
+ * menos un `renewal-unsafe` (la caducidad de una membresía que transporta un deny cambia, y el destino no la puede
312
+ * renovar en una escritura) o un `deny-conditional` (un deny del destino con caducidad que no se puede rehacer) recibe
313
+ * CERO escrituras y CERO borrados —también con `--prune`, también las vencidas—: su destino queda EXACTAMENTE como
314
+ * estaba, con la deriva previa a la vista (`pending`). El resto de particiones migra. Lo decide el PLAN: `--dry-run` y
315
+ * la pasada real dan los mismos números. Es deriva (exit ≠ 0) mientras exista. Opcional en el tipo; ausente = `[]`.
316
+ */
317
+ partitionsRefused?: RelationsPartitionRefusal[];
318
+ }
319
+ /** Una partición NEGADA (cierre 5 de D2): por qué, qué receta, y lo que la pasada habría hecho en ella y NO hizo. */
320
+ export interface RelationsPartitionRefusal {
321
+ partition: string;
322
+ /** Las causas, una por tupla: `renewal-unsafe` (membresía portadora) o `deny-conditional` (deny con caducidad). */
323
+ causes: Array<{
324
+ reason: 'renewal-unsafe' | 'deny-conditional';
325
+ tuple: string;
326
+ }>;
327
+ /** La deriva que queda a la vista: lo que la pasada escribiría, renovaría y (con `--prune`) borraría en ella. */
328
+ pending: {
329
+ write: number;
330
+ update: number;
331
+ delete: number;
332
+ };
333
+ /** La receta (`partitionRefusalRecipe`): honesta — en un destino sin `atomicRenewal` no hay forma sin ventana. */
334
+ recipe: string;
335
+ /**
336
+ * Cierre 6 de D2 · ⚪ D5-3: «COMO ESTABA» no es estático. Por cada membresía portadora que el origen ALARGA: desde `at`
337
+ * (su caducidad vieja en el destino) el destino deja de transportar los denies `cut` a `member` y CONCEDE lo que cortan
338
+ * si otro camino lo da —el origen lo sigue negando—. Ausente si no aplica.
339
+ */
340
+ evolves?: Array<{
341
+ at: string;
342
+ member: string;
343
+ cut: string[];
344
+ }>;
345
+ }
346
+ /** El desglose de UNA partición (D2). `status`: `done` (terminó), `failed` (reventó aquí), `pending` (no se tocó), `refused` (cierre 5: negada por el plan, cero escrituras). */
347
+ export interface RelationsReconcilePartitionReport {
348
+ partition: string;
349
+ status: 'done' | 'failed' | 'pending' | 'refused';
350
+ written: number;
351
+ updated: number;
352
+ deleted: number;
353
+ unchanged: number;
354
+ extra: number;
355
+ denies: {
356
+ written: number;
357
+ updated: number;
358
+ deleted: number;
359
+ unchanged: number;
360
+ extra: number;
361
+ };
247
362
  }
363
+ /**
364
+ * Un deny que la pasada no puede migrar (D2), con su motivo — uno de un conjunto CERRADO (cada uno su línea):
365
+ * - `no-capability`: el destino no declara `relationDenies` (o no trae `deny`/`removeDeny`);
366
+ * - `no-deny-phase`: el destino declara `relationDenies` pero no trae `denyPhase` (no puede decir si el tipo admite deny);
367
+ * - `phase`: el tipo no está en la fase que hace falta EN EL DESTINO (`'write'` para escribir; con opt-in para uno ya presente);
368
+ * - `undeclared`: el destino no declara el par tipo/relación (F-05);
369
+ * - `model`: el modelo FIJADO del destino no declara `denied_<rel>` (D-31, `openfga`);
370
+ * - `unmarked`: el ORIGEN enumera una tupla `denied_*` sin `kind: 'deny'` (un driver que no marca);
371
+ * - `invalid`: el deny del origen tiene una identidad o un sujeto que el destino no admite (gramática / B3).
372
+ *
373
+ * `carrier-conflict` (cierre 4 de D2) se fue en el cierre 5 con la retención: lo que no viaja niega SU partición
374
+ * (`partitionsRefused`), nunca la pasada entera.
375
+ */
376
+ export interface DenyRefusal {
377
+ objectType: string;
378
+ relation: string;
379
+ reason: 'no-capability' | 'no-deny-phase' | 'phase' | 'undeclared' | 'model' | 'unmarked' | 'invalid';
380
+ message: string;
381
+ /**
382
+ * Cierre 1 de D2 · 🟡 6: la receta de SU motivo (`denyRefusalRecipe`), una que funciona por la API o que dice «a mano»
383
+ * cuando la API no puede. Hasta el cierre todas llevaban la misma («pon el tipo en 'write' o retira esos denies del
384
+ * origen»), que para `undeclared` daba 422 (F-05 en `removeDeny`) y para `unmarked`/`invalid` no aplicaba.
385
+ */
386
+ recipe: string;
387
+ }
388
+ /**
389
+ * **Una receta POR MOTIVO** (cierre 1 de D2 · 🟡 6, ⚪ 11). `honor` = el deny ya está en el destino y lo que falta es
390
+ * que lo honre (opt-in), no que lo escriba. La de `undeclared` está EJECUTADA en `relations_reconcile_deny.spec`
391
+ * (re-declarar → `removeDeny` → retirar ⇒ la pasada entra).
392
+ */
393
+ export declare function denyRefusalRecipe(reason: DenyRefusal['reason'], objectType: string, relation: string, honor?: boolean): string;
394
+ /**
395
+ * **La receta de una partición NEGADA** (cierre 5 de D2, opción A), por el conjunto de causas. HONESTA a propósito: en
396
+ * un destino sin `atomicRenewal` (`openfga`: FGA no reemplaza la misma clave en un `Write` —no hay upsert,
397
+ * openfga/openfga#2151—) NO existe forma sin ventana de cambiar la caducidad de una membresía que transporta un deny, ni
398
+ * de rehacer permanente un deny con caducidad. Ninguna de las salidas de abajo se presenta como segura.
399
+ */
400
+ export declare function partitionRefusalRecipe(reasons: Iterable<'renewal-unsafe' | 'deny-conditional'>): string;
248
401
  /**
249
402
  * Migra las tuplas de relación de `from` a `to` en `partition`. Idempotente
250
403
  * (una segunda pasada no escribe nada) y bidireccional (funciona en cualquier
251
404
  * sentido). Nunca silenciosa: devuelve `written`/`deleted`/`unchanged`/`extra`.
252
405
  */
253
406
  export declare function reconcileRelations(options: RelationsReconcileOptions): Promise<RelationsReconcileReport>;
407
+ /**
408
+ * **¿Cuenta una tupla del DESTINO en el plan?** (cierre 3 de D2 · 🟠 C2-1 / 🟡 C2-2): sí si está VIVA en `now` (el mismo
409
+ * `now` de toda la pasada, con el que el origen descarta sus caducadas); una VENCIDA es AUSENTE — no conecta nada en
410
+ * ningún driver—, así que ni se «renueva» ni entra en el contexto del orden. Punto de paso ÚNICO de la regla: lo usa
411
+ * `planPartition` y la fuerza bruta del orden (`tests/helpers/order_bruteforce.ts`, universo con vigencia) deriva con
412
+ * ÉL qué es escritura, renovación y contexto — un mutante que ignore la vigencia aquí pone rojos los dos.
413
+ */
414
+ export declare function liveInDestination(tuple: {
415
+ expiresAt?: Date | null;
416
+ }, now: Date): boolean;
417
+ /**
418
+ * **El REGISTRO de los 422 del puerto de relaciones, clasificados** (plan 2.5 · lote D · D2; linaje **L9** «clasificación
419
+ * en el punto equivocado», decisión del dueño 2026-10-15 (7): R2-5 → lote B decisión 4 → cierre 3 N9). Propiedad
420
+ * universal: **el PLAN clasifica toda tupla por su motivo ANTES del driver; el driver solo rechaza; ningún catch convierte
421
+ * un 422 en otro bucket que no sea el que este registro dice**. Cada clase 422 que el puerto de relaciones puede lanzar
422
+ * tiene aquí UNA entrada:
423
+ *
424
+ * - `classified`: el plan la anticipa (`enumeratedKey` / `classifySubject` / `classifyDestinationRow` / `toConfig`) y la
425
+ * lista con `reason` en `details` (o la cuenta en `skipped`) sin pedírsela al driver; si el driver la lanza igual (sin
426
+ * `toConfig`, o un driver de terceros que contradice al plan), la capa 2 (`relateOrSkip`/`deleteOrClassify`) la
427
+ * clasifica con ESTE mismo `reason` y sigue;
428
+ * - `refused`: el plan NIEGA la pasada (500 `E_AUTHZ_DENY_MIGRATION_REFUSED`, cero escrituras) con ese motivo — la puerta
429
+ * del deny (`denyGate`, por `denyPhase` del destino);
430
+ * - `unreachable`: ninguna llamada que el reconcile hace al driver con una tupla PLANIFICADA puede lanzarla, con su porqué.
431
+ *
432
+ * `tests/relations_reconcile_l9.spec.ts` lo cruza POR REFLEXIÓN con las clases 422 de `src/errors.ts` que nombran los
433
+ * ficheros del puerto (`src/relations/`, los dos drivers de relaciones, el doble y `src/identity.ts`): una clase 422 nueva
434
+ * sin entrada nace ROJA con su nombre, una entrada sin clase es rancia, y cada entrada `classified`/`refused` tiene un
435
+ * caso que la ejecuta. `RELATION_422_REASONS` (la tabla de la capa 2, cierre 3 del lote B) se DERIVA de aquí.
436
+ */
437
+ export type RelationRejection = {
438
+ kind: 'classified';
439
+ reason: RelationsReconcileDetail['reason'];
440
+ where: string;
441
+ } | {
442
+ kind: 'refused';
443
+ refusal: DenyRefusal['reason'];
444
+ where: string;
445
+ } | {
446
+ kind: 'unreachable';
447
+ why: string;
448
+ };
449
+ export declare const RELATION_REJECTIONS: Readonly<Record<string, RelationRejection>>;
450
+ /**
451
+ * **Los 422 de la FAMILIA de relaciones, clasificados por `code`** (cierre 3 del lote B · 🟠 N9, capa 2) — DERIVADA del
452
+ * registro L9: las entradas `classified`. Por `code` y `status`, no por clase: un driver de terceros lanza su propia
453
+ * clase con el mismo código. Fuera de esta tabla NADA se absorbe.
454
+ */
455
+ export declare const RELATION_422_REASONS: Readonly<Record<string, RelationsReconcileDetail['reason']>>;
456
+ /**
457
+ * **El registro de los RESIDUOS de la pasada, por motivo** (cierre 2 de D2 · ⚪ N6; linaje L9): cada motivo de
458
+ * `RelationsReconcileDetail` dice DÓNDE se clasifica —en el PLAN (antes del driver: los mismos números en `--dry-run` y
459
+ * en la pasada real, punto 2 de L9) o en la PASADA (solo el driver lo sabe: EXCEPCIÓN declarada al punto 2, con su
460
+ * porqué)—. `tests/relations_reconcile_l9.spec.ts` cruza las claves con `RELATIONS_RECONCILE_DETAIL_REASONS` (un motivo
461
+ * nuevo sin entrada nace ROJO) y ejecuta un caso por entrada. Hasta el cierre 2 `deny-conditional` (un `catch` del 500
462
+ * marcado en la pasada) quedaba fuera de la guardia, que solo enumeraba 422.
463
+ */
464
+ export declare const RELATION_RESIDUES: Readonly<Record<RelationsReconcileDetailReason, {
465
+ where: 'plan';
466
+ how: string;
467
+ } | {
468
+ where: 'pass';
469
+ how: string;
470
+ why: string;
471
+ }>>;
254
472
  //# sourceMappingURL=reconcile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"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"}