@jantstack/adonis-authz 2.4.0-alpha.9 → 2.5.0-alpha.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 (128) hide show
  1. package/README.md +468 -30
  2. package/build/commands/authz_freeze.js +1 -1
  3. package/build/commands/authz_freeze.js.map +1 -1
  4. package/build/commands/authz_reconcile.d.ts +6 -2
  5. package/build/commands/authz_reconcile.d.ts.map +1 -1
  6. package/build/commands/authz_reconcile.js +129 -13
  7. package/build/commands/authz_reconcile.js.map +1 -1
  8. package/build/commands/authz_relations_reconcile.d.ts +16 -24
  9. package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
  10. package/build/commands/authz_relations_reconcile.js +198 -49
  11. package/build/commands/authz_relations_reconcile.js.map +1 -1
  12. package/build/commands/authz_scopes_relay.d.ts.map +1 -1
  13. package/build/commands/authz_scopes_relay.js +81 -1
  14. package/build/commands/authz_scopes_relay.js.map +1 -1
  15. package/build/commands/authz_unfreeze.d.ts +12 -4
  16. package/build/commands/authz_unfreeze.d.ts.map +1 -1
  17. package/build/commands/authz_unfreeze.js +74 -9
  18. package/build/commands/authz_unfreeze.js.map +1 -1
  19. package/build/index.d.ts +6 -4
  20. package/build/index.d.ts.map +1 -1
  21. package/build/index.js +5 -3
  22. package/build/index.js.map +1 -1
  23. package/build/providers/authz_provider.d.ts +1 -1
  24. package/build/providers/authz_provider.d.ts.map +1 -1
  25. package/build/providers/authz_provider.js +5 -1
  26. package/build/providers/authz_provider.js.map +1 -1
  27. package/build/src/define_config.d.ts +41 -0
  28. package/build/src/define_config.d.ts.map +1 -1
  29. package/build/src/define_config.js +120 -0
  30. package/build/src/define_config.js.map +1 -1
  31. package/build/src/drivers/database_driver.d.ts.map +1 -1
  32. package/build/src/drivers/database_driver.js +1 -0
  33. package/build/src/drivers/database_driver.js.map +1 -1
  34. package/build/src/drivers/database_relations_driver.d.ts +18 -6
  35. package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
  36. package/build/src/drivers/database_relations_driver.js +94 -46
  37. package/build/src/drivers/database_relations_driver.js.map +1 -1
  38. package/build/src/drivers/openfga_driver.d.ts +46 -5
  39. package/build/src/drivers/openfga_driver.d.ts.map +1 -1
  40. package/build/src/drivers/openfga_driver.js +115 -29
  41. package/build/src/drivers/openfga_driver.js.map +1 -1
  42. package/build/src/drivers/openfga_relations_driver.d.ts +82 -13
  43. package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
  44. package/build/src/drivers/openfga_relations_driver.js +216 -55
  45. package/build/src/drivers/openfga_relations_driver.js.map +1 -1
  46. package/build/src/errors.d.ts +86 -0
  47. package/build/src/errors.d.ts.map +1 -1
  48. package/build/src/errors.js +86 -0
  49. package/build/src/errors.js.map +1 -1
  50. package/build/src/freeze.d.ts +63 -4
  51. package/build/src/freeze.d.ts.map +1 -1
  52. package/build/src/freeze.js +107 -18
  53. package/build/src/freeze.js.map +1 -1
  54. package/build/src/identity.d.ts +120 -9
  55. package/build/src/identity.d.ts.map +1 -1
  56. package/build/src/identity.js +164 -12
  57. package/build/src/identity.js.map +1 -1
  58. package/build/src/manager.d.ts +64 -2
  59. package/build/src/manager.d.ts.map +1 -1
  60. package/build/src/manager.js +267 -35
  61. package/build/src/manager.js.map +1 -1
  62. package/build/src/openfga.d.ts +2 -2
  63. package/build/src/openfga.d.ts.map +1 -1
  64. package/build/src/openfga.js +2 -2
  65. package/build/src/openfga.js.map +1 -1
  66. package/build/src/relations/check_many.d.ts +17 -0
  67. package/build/src/relations/check_many.d.ts.map +1 -0
  68. package/build/src/relations/check_many.js +57 -0
  69. package/build/src/relations/check_many.js.map +1 -0
  70. package/build/src/relations/define_relations_config.d.ts +74 -1
  71. package/build/src/relations/define_relations_config.d.ts.map +1 -1
  72. package/build/src/relations/define_relations_config.js +201 -7
  73. package/build/src/relations/define_relations_config.js.map +1 -1
  74. package/build/src/relations/manager.d.ts +20 -0
  75. package/build/src/relations/manager.d.ts.map +1 -1
  76. package/build/src/relations/manager.js +88 -15
  77. package/build/src/relations/manager.js.map +1 -1
  78. package/build/src/relations/reconcile.d.ts +134 -3
  79. package/build/src/relations/reconcile.d.ts.map +1 -1
  80. package/build/src/relations/reconcile.js +340 -36
  81. package/build/src/relations/reconcile.js.map +1 -1
  82. package/build/src/relations/tuple_key.d.ts +25 -0
  83. package/build/src/relations/tuple_key.d.ts.map +1 -0
  84. package/build/src/relations/tuple_key.js +60 -0
  85. package/build/src/relations/tuple_key.js.map +1 -0
  86. package/build/src/relations_config_store.d.ts.map +1 -1
  87. package/build/src/relations_config_store.js +29 -7
  88. package/build/src/relations_config_store.js.map +1 -1
  89. package/build/src/relations_reconcile.d.ts +79 -0
  90. package/build/src/relations_reconcile.d.ts.map +1 -0
  91. package/build/src/relations_reconcile.js +85 -0
  92. package/build/src/relations_reconcile.js.map +1 -0
  93. package/build/src/scope_outbox.d.ts +9 -5
  94. package/build/src/scope_outbox.d.ts.map +1 -1
  95. package/build/src/scope_outbox.js +7 -4
  96. package/build/src/scope_outbox.js.map +1 -1
  97. package/build/src/shared/backend_guard.d.ts +30 -11
  98. package/build/src/shared/backend_guard.d.ts.map +1 -1
  99. package/build/src/shared/backend_guard.js +45 -15
  100. package/build/src/shared/backend_guard.js.map +1 -1
  101. package/build/src/shared/sql_expiry.d.ts +2 -0
  102. package/build/src/shared/sql_expiry.d.ts.map +1 -1
  103. package/build/src/shared/sql_expiry.js +4 -0
  104. package/build/src/shared/sql_expiry.js.map +1 -1
  105. package/build/src/testing/main.d.ts +3 -1
  106. package/build/src/testing/main.d.ts.map +1 -1
  107. package/build/src/testing/main.js +2 -1
  108. package/build/src/testing/main.js.map +1 -1
  109. package/build/src/testing/migration_contract.d.ts +9 -0
  110. package/build/src/testing/migration_contract.d.ts.map +1 -1
  111. package/build/src/testing/migration_contract.js +5 -2
  112. package/build/src/testing/migration_contract.js.map +1 -1
  113. package/build/src/testing/relations_contract.d.ts +14 -0
  114. package/build/src/testing/relations_contract.d.ts.map +1 -1
  115. package/build/src/testing/relations_contract.js +367 -21
  116. package/build/src/testing/relations_contract.js.map +1 -1
  117. package/build/src/testing/scope_outbox_contract.d.ts +14 -1
  118. package/build/src/testing/scope_outbox_contract.d.ts.map +1 -1
  119. package/build/src/testing/scope_outbox_contract.js +126 -48
  120. package/build/src/testing/scope_outbox_contract.js.map +1 -1
  121. package/build/src/testing/test_clock.d.ts +15 -0
  122. package/build/src/testing/test_clock.d.ts.map +1 -0
  123. package/build/src/testing/test_clock.js +65 -0
  124. package/build/src/testing/test_clock.js.map +1 -0
  125. package/build/src/types.d.ts +115 -12
  126. package/build/src/types.d.ts.map +1 -1
  127. package/build/src/types.js.map +1 -1
  128. package/package.json +6 -1
@@ -97,6 +97,36 @@ export declare function isValidRelationId(value: unknown): value is string;
97
97
  * 422 aquí, antes de serializarse a nada.
98
98
  */
99
99
  export declare function scopeKey(scope: ScopeRef): string;
100
+ /**
101
+ * **Las formas que PostgreSQL funde con `uuid` — y solo esas** (cierre-3 del
102
+ * lote A, decisión del dueño 2026-10-15 (3)): dado el uuid de un scope tal
103
+ * como lo escribió el llamante, la ortografía CANÓNICA (8-4-4-4-12) con la
104
+ * que un motor pudo fundirlo, o `[]` si no es alias de nada (ya es canónica,
105
+ * o no es un uuid, o es una forma que ningún motor del README funde).
106
+ *
107
+ * Es la regla del FAN-OUT de roles (`scopeSpellings`: la purga sin cadena
108
+ * de `scopes.detached`, `revoke`/`removeDeny`), y es a propósito MÁS
109
+ * ESTRECHA que `isNonCanonicalUuid`, la del 422 de las particiones de
110
+ * relaciones: son DOS propósitos. Rechazar de más (422 por `-<32hex>`) es
111
+ * inocuo, el llamante lo ve y lo corrige; purgar de más NO lo es, porque la
112
+ * canónica que se añade puede ser un scope VIVO de otro tenant en un
113
+ * consumidor con ids de texto elegibles por el usuario (🟡 C2-1/C2-2 del
114
+ * re-ataque al cierre-2: hasta el cierre-3 `scopeSpellings` usaba la ancha y
115
+ * `a0e-<hex de la víctima>` arrastraba a la víctima a la purga). Expandir
116
+ * una forma que ningún motor funde es coste sin beneficio: nunca hay hechos
117
+ * canónicos que sean «suyos».
118
+ *
119
+ * **Formas de más de 36 caracteres** (⚪ C2-4): PG funde también `4×8`
120
+ * (39 caracteres, el ejemplo literal de su doc), pero `IDENTITY_LIMITS.uuid`
121
+ * es 36 —la columna publicada— y `assertScope` la rechaza ANTES de llegar
122
+ * aquí con 422 `E_AUTHZ_INVALID_IDENTITY`: ruidoso y visible para el
123
+ * consumidor, nunca una purga a medias en silencio. El conjunto de este
124
+ * fan-out es, por tanto, «lo que PG funde Y cabe en 36».
125
+ *
126
+ * La inversa NO existe: dada la canónica no se enumeran sus alias (serían
127
+ * 2^7 ortografías); el fan-out va siempre de alias ⇒ canónica.
128
+ */
129
+ export declare function pgFusedSpellings(uuid: string): string[];
100
130
  /**
101
131
  * **Las ORTOGRAFÍAS de un scope con las que hay que limpiar cuando ya no hay
102
132
  * cadena con la que canonizar** (3b-2h · 🟠 3, auditor R2).
@@ -114,17 +144,98 @@ export declare function scopeKey(scope: ScopeRef): string;
114
144
  * fail-closed; en escritura era fail-OPEN.
115
145
  *
116
146
  * La salida es no elegir: una purga sin cadena limpia la ortografía del
117
- * llamante **y** la canónica de la que puede ser alias. Solo se expande el
118
- * alias SIN guiones (32 hex ⇒ también la forma 8-4-4-4-12), que es la única
119
- * que un motor produce fundiendo —PostgreSQL canoniza CON guiones; el alias
120
- * por mayúsculas ya muere en la puerta (`assertScope`)—; así el consumidor
121
- * que guarda sus uuids con guiones (el caso normal) no paga NADA, y el que
122
- * los guarda sin guiones sigue purgando su clave y, además, una que nunca
123
- * tiene hechos. Normalizar en vez de expandir no vale: sin la fila no se sabe
124
- * cuál de las dos es la buena, y elegir mal deja los hechos vivos, que es el
125
- * fallo que se está cerrando.
147
+ * llamante **y** la canónica de la que puede ser alias. **La regla de «¿de
148
+ * qué canónica puede ser alias?» es `pgFusedSpellings`**: exactamente lo que
149
+ * el tipo `uuid` de PostgreSQL funde (sin guiones, `8-4-4-16`, `8-8-8-8`,
150
+ * `12-4-4-12`…, medido), ni una forma más. Hasta el cierre-2 del lote A solo
151
+ * se expandía la forma SIN guiones y `8-4-4-16` dejaba la canónica viva
152
+ * (🟠 R1); el cierre-2 pasó a `isNonCanonicalUuid`, que es MÁS ANCHA que lo
153
+ * que PG funde (`-<32hex>`, `<32hex>-`, `a0e-ebc99…`, `--`: ids legales de
154
+ * la gramática que PG rechaza), y eso ampliaba el alcance de una purga sin
155
+ * cadena a scopes VIVOS ajenos (🟡 C2-1); el cierre-3 separa las dos reglas
156
+ * por propósito. El alias por mayúsculas ya muere en la puerta
157
+ * (`assertScope`). Así el consumidor que guarda sus uuids canónicos (el caso
158
+ * normal) no paga NADA, y el que los guarda de otra forma sigue purgando su
159
+ * clave y, además, la canónica. Normalizar en vez de expandir no vale: sin
160
+ * la fila no se sabe cuál de las dos es la buena, y elegir mal deja los
161
+ * hechos vivos, que es el fallo que se está cerrando.
162
+ *
163
+ * Esta función es PURA (no mira el árbol). Quien la consume es UN solo punto
164
+ * de paso, `canonicalScopeTargets` (`backend_guard.ts`; lo usan
165
+ * `scopes.detached` sin cadena en el manager y el fan-out de
166
+ * `revoke`/`removeDeny` en los dos drivers, 3b-8 · A4), que además DESCARTA
167
+ * toda ortografía que el resolutor reconozca como scope VIVO distinto del
168
+ * pedido (cierre-3 · 🟡 C2-2/C2-3): nunca se purga un scope vivo que no es
169
+ * el que se pidió.
126
170
  */
127
171
  export declare function scopeSpellings(scope: ScopeRef): ScopeRef[];
172
+ /** ¿Es un uuid canónico escrito SIN guiones (32 hex en minúsculas)? */
173
+ export declare function isDashlessUuid(value: unknown): value is string;
174
+ /** La forma 8-4-4-4-12 de un uuid de 32 hex (la ortografía CANÓNICA). */
175
+ export declare function dashedUuid(dashless: string): string;
176
+ /**
177
+ * **¿Es una ortografía NO canónica de un uuid?** (D4 + cierre 🟠 A2 del
178
+ * auditor del lote A, decisión del dueño 2026-10-15): todo valor que, sin
179
+ * guiones, sea 32 hex y NO esté exactamente en la forma 8-4-4-4-12. Cubre el
180
+ * 32 hex sin guiones (lo único que D4 cerraba) Y cualquier otra colocación de
181
+ * guiones —`8-4-4-16`, cuatro grupos, la canónica sin su último guion…—.
182
+ *
183
+ * **Es la regla ANCHA, y se usa SOLO para el 422 de las particiones de
184
+ * relaciones** (`assertPartition`; cierre-3 del lote A, decisión del dueño
185
+ * 2026-10-15 (3)): es un SUPERCONJUNTO de lo que el tipo `uuid` de
186
+ * PostgreSQL funde —incluye `-<32hex>`, `<32hex>-`, `a0e-ebc99…` o `8--24`,
187
+ * que PG rechaza con «invalid input syntax» (medido, PG 18)— y ahí ser más
188
+ * ancha es inocuo: un 422 de más lo ve y lo corrige el llamante, y una
189
+ * partición que «parece un uuid» sin serlo tampoco merece ser una clave
190
+ * distinta de la canónica. Lo que PG funde DE VERDAD es `pgFusedSpellings`,
191
+ * la regla del fan-out de ROLES, donde expandir de más sí cuesta (purgar un
192
+ * scope vivo ajeno). Un valor que sin guiones no sea 32 hex (31, 33, un
193
+ * carácter no hex, `_`/`.`) NO es un uuid y es un id legal.
194
+ * Es la MISMA función que usa el detector de la receta del README, por
195
+ * construcción (el `upgrade_recipe.spec` lo mide: lo que `assertPartition`
196
+ * rechaza, el detector lo lista).
197
+ */
198
+ export declare function isNonCanonicalUuid(value: unknown): value is string;
199
+ /**
200
+ * **La partición de una relación se escribe en la forma CANÓNICA 8-4-4-4-12,
201
+ * o es 422** (D4, decisión del dueño 2026-10-14; `panel-tenencia-2-juez.md`
202
+ * §5; ampliado el 2026-10-15 a toda ortografía no canónica, 🟠 A2).
203
+ * `assertScope` vale para un scope de ROLES porque ahí la identidad la
204
+ * canoniza la cadena del resolutor (invariante 17) y, donde no hay cadena,
205
+ * `scopeSpellings` barre la ortografía del llamante y la canónica de la que
206
+ * puede ser alias, con SU regla (`pgFusedSpellings`, lo que PG funde de
207
+ * verdad: cierre-3). En RELACIONES no hay cadena con
208
+ * la que canonizar: la clave de partición es un string comparado byte a
209
+ * byte, así que `unit|aaaa…` (32 hex) y `unit|aaaa-…` eran DOS particiones,
210
+ * la purga canónica no veía la otra y, con el 422, las tuplas viejas sin
211
+ * guiones quedaban inalcanzables para siempre (tester H5). Y la clase no era
212
+ * solo «sin guiones»: PostgreSQL funde también `8-4-4-16`, cuatro grupos de
213
+ * ocho, la canónica sin un guion… (🟠 A2) — cualquier colocación de guiones
214
+ * sobre los mismos 32 hex —, así que la regla es «32 hex sin guiones y no
215
+ * exactamente 8-4-4-4-12 ⇒ 422» (`isNonCanonicalUuid`). La regla es una sola
216
+ * y va en un solo sitio: toda operación que recibe una partición —manager,
217
+ * los dos drivers, el doble publicado y `reconcileRelations`— pasa por aquí
218
+ * (o por `partitionKey`, que la llama), y la guardia de superficie
219
+ * (`tests/guard_surface.spec.ts`, columna `partition`) lo sondea en cada
220
+ * operación con las DOS formas (sin guiones y `8-4-4-16`). Las filas escritas
221
+ * antes de 2.5.0 con una ortografía no canónica se detectan, se listan y se
222
+ * BORRAN con la receta del README («Upgrading to 2.5.0», fail-closed por
223
+ * defecto: eran concesiones invisibles a la purga canónica); re-clavarlas es
224
+ * el paso opt-in `--rekey`. La ejecuta `tests/upgrade_recipe.spec.ts` en los
225
+ * tres motores, con las dos ramas.
226
+ *
227
+ * Un id de partición que no sea un uuid sigue valiendo (`[a-z0-9._-]{1,36}`:
228
+ * 32 caracteres no todos hex, 31 o 33 hex…). Los ids de OBJETO y de SUJETO
229
+ * no se rechazan: se comparan byte a byte y el README lo declara.
230
+ */
231
+ export declare function assertPartition(partition: ScopeRef): void;
232
+ /**
233
+ * La clave de partición de una RELACIÓN: `scopeKey` con la regla de
234
+ * `assertPartition` delante. Es lo que los dos drivers de relaciones (y el
235
+ * doble) usan para componer `partition_key` / el id de objeto del store: no
236
+ * hay camino hacia el backend que no pase por aquí.
237
+ */
238
+ export declare function partitionKey(partition: ScopeRef): string;
128
239
  /**
129
240
  * La inversa de `scopeKey` para claves que vienen de la BASE (el owner de un
130
241
  * rol): `app` ⇒ la raíz; `<tipo>|<uuid>` ⇒ el scope; cualquier otra forma
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"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"}
@@ -199,6 +199,54 @@ export function scopeKey(scope) {
199
199
  }
200
200
  /** Un uuid canónico escrito SIN guiones: 32 dígitos hexadecimales. */
201
201
  const DASHLESS_UUID = /^[0-9a-f]{32}$/;
202
+ /**
203
+ * **Lo que el tipo `uuid` de PostgreSQL FUNDE de verdad**: 32 hex con, como
204
+ * mucho, UN guion detrás de cada grupo de cuatro. Es la letra de la doc
205
+ * (postgresql.org/docs/current/datatype-uuid.html, «PostgreSQL also accepts
206
+ * the following alternative forms for input: […] omitting some or all
207
+ * hyphens, adding a hyphen after any group of four digits») y está MEDIDO
208
+ * contra PostgreSQL 18 (`select '<forma>'::uuid`, cierre-3 del lote A):
209
+ * funde la canónica, `32 hex`, `8-4-4-16`, `8-8-8-8`, `12-4-4-12`, `8-24` y
210
+ * `4×8` (39 caracteres); RECHAZA `-<32hex>`, `<32hex>-`, `a0e-ebc99…` (guion
211
+ * tras tres) y `8--24` (dos guiones seguidos) con «invalid input syntax for
212
+ * type uuid». Mayúsculas y llaves también las funde, pero no pasan
213
+ * `assertScope` (minúsculas, `[a-z0-9._-]`).
214
+ */
215
+ const PG_FUSED_UUID = /^([0-9a-f]{4}-?){7}[0-9a-f]{4}$/;
216
+ /**
217
+ * **Las formas que PostgreSQL funde con `uuid` — y solo esas** (cierre-3 del
218
+ * lote A, decisión del dueño 2026-10-15 (3)): dado el uuid de un scope tal
219
+ * como lo escribió el llamante, la ortografía CANÓNICA (8-4-4-4-12) con la
220
+ * que un motor pudo fundirlo, o `[]` si no es alias de nada (ya es canónica,
221
+ * o no es un uuid, o es una forma que ningún motor del README funde).
222
+ *
223
+ * Es la regla del FAN-OUT de roles (`scopeSpellings`: la purga sin cadena
224
+ * de `scopes.detached`, `revoke`/`removeDeny`), y es a propósito MÁS
225
+ * ESTRECHA que `isNonCanonicalUuid`, la del 422 de las particiones de
226
+ * relaciones: son DOS propósitos. Rechazar de más (422 por `-<32hex>`) es
227
+ * inocuo, el llamante lo ve y lo corrige; purgar de más NO lo es, porque la
228
+ * canónica que se añade puede ser un scope VIVO de otro tenant en un
229
+ * consumidor con ids de texto elegibles por el usuario (🟡 C2-1/C2-2 del
230
+ * re-ataque al cierre-2: hasta el cierre-3 `scopeSpellings` usaba la ancha y
231
+ * `a0e-<hex de la víctima>` arrastraba a la víctima a la purga). Expandir
232
+ * una forma que ningún motor funde es coste sin beneficio: nunca hay hechos
233
+ * canónicos que sean «suyos».
234
+ *
235
+ * **Formas de más de 36 caracteres** (⚪ C2-4): PG funde también `4×8`
236
+ * (39 caracteres, el ejemplo literal de su doc), pero `IDENTITY_LIMITS.uuid`
237
+ * es 36 —la columna publicada— y `assertScope` la rechaza ANTES de llegar
238
+ * aquí con 422 `E_AUTHZ_INVALID_IDENTITY`: ruidoso y visible para el
239
+ * consumidor, nunca una purga a medias en silencio. El conjunto de este
240
+ * fan-out es, por tanto, «lo que PG funde Y cabe en 36».
241
+ *
242
+ * La inversa NO existe: dada la canónica no se enumeran sus alias (serían
243
+ * 2^7 ortografías); el fan-out va siempre de alias ⇒ canónica.
244
+ */
245
+ export function pgFusedSpellings(uuid) {
246
+ if (typeof uuid !== 'string' || !PG_FUSED_UUID.test(uuid) || CANONICAL_UUID.test(uuid))
247
+ return [];
248
+ return [dashedUuid(uuid.replace(/-/g, ''))];
249
+ }
202
250
  /**
203
251
  * **Las ORTOGRAFÍAS de un scope con las que hay que limpiar cuando ya no hay
204
252
  * cadena con la que canonizar** (3b-2h · 🟠 3, auditor R2).
@@ -216,23 +264,127 @@ const DASHLESS_UUID = /^[0-9a-f]{32}$/;
216
264
  * fail-closed; en escritura era fail-OPEN.
217
265
  *
218
266
  * La salida es no elegir: una purga sin cadena limpia la ortografía del
219
- * llamante **y** la canónica de la que puede ser alias. Solo se expande el
220
- * alias SIN guiones (32 hex ⇒ también la forma 8-4-4-4-12), que es la única
221
- * que un motor produce fundiendo —PostgreSQL canoniza CON guiones; el alias
222
- * por mayúsculas ya muere en la puerta (`assertScope`)—; así el consumidor
223
- * que guarda sus uuids con guiones (el caso normal) no paga NADA, y el que
224
- * los guarda sin guiones sigue purgando su clave y, además, una que nunca
225
- * tiene hechos. Normalizar en vez de expandir no vale: sin la fila no se sabe
226
- * cuál de las dos es la buena, y elegir mal deja los hechos vivos, que es el
227
- * fallo que se está cerrando.
267
+ * llamante **y** la canónica de la que puede ser alias. **La regla de «¿de
268
+ * qué canónica puede ser alias?» es `pgFusedSpellings`**: exactamente lo que
269
+ * el tipo `uuid` de PostgreSQL funde (sin guiones, `8-4-4-16`, `8-8-8-8`,
270
+ * `12-4-4-12`…, medido), ni una forma más. Hasta el cierre-2 del lote A solo
271
+ * se expandía la forma SIN guiones y `8-4-4-16` dejaba la canónica viva
272
+ * (🟠 R1); el cierre-2 pasó a `isNonCanonicalUuid`, que es MÁS ANCHA que lo
273
+ * que PG funde (`-<32hex>`, `<32hex>-`, `a0e-ebc99…`, `--`: ids legales de
274
+ * la gramática que PG rechaza), y eso ampliaba el alcance de una purga sin
275
+ * cadena a scopes VIVOS ajenos (🟡 C2-1); el cierre-3 separa las dos reglas
276
+ * por propósito. El alias por mayúsculas ya muere en la puerta
277
+ * (`assertScope`). Así el consumidor que guarda sus uuids canónicos (el caso
278
+ * normal) no paga NADA, y el que los guarda de otra forma sigue purgando su
279
+ * clave y, además, la canónica. Normalizar en vez de expandir no vale: sin
280
+ * la fila no se sabe cuál de las dos es la buena, y elegir mal deja los
281
+ * hechos vivos, que es el fallo que se está cerrando.
282
+ *
283
+ * Esta función es PURA (no mira el árbol). Quien la consume es UN solo punto
284
+ * de paso, `canonicalScopeTargets` (`backend_guard.ts`; lo usan
285
+ * `scopes.detached` sin cadena en el manager y el fan-out de
286
+ * `revoke`/`removeDeny` en los dos drivers, 3b-8 · A4), que además DESCARTA
287
+ * toda ortografía que el resolutor reconozca como scope VIVO distinto del
288
+ * pedido (cierre-3 · 🟡 C2-2/C2-3): nunca se purga un scope vivo que no es
289
+ * el que se pidió.
228
290
  */
229
291
  export function scopeSpellings(scope) {
230
292
  assertScope(scope);
231
293
  const uuid = scope.uuid;
232
- if (uuid === null || !DASHLESS_UUID.test(uuid))
294
+ if (uuid === null)
233
295
  return [scope];
234
- const dashed = `${uuid.slice(0, 8)}-${uuid.slice(8, 12)}-${uuid.slice(12, 16)}-${uuid.slice(16, 20)}-${uuid.slice(20)}`;
235
- return [scope, { type: scope.type, uuid: dashed }];
296
+ return [scope, ...pgFusedSpellings(uuid).map((canonical) => ({ type: scope.type, uuid: canonical }))];
297
+ }
298
+ /** ¿Es un uuid canónico escrito SIN guiones (32 hex en minúsculas)? */
299
+ export function isDashlessUuid(value) {
300
+ return typeof value === 'string' && DASHLESS_UUID.test(value);
301
+ }
302
+ /** La forma 8-4-4-4-12 de un uuid de 32 hex (la ortografía CANÓNICA). */
303
+ export function dashedUuid(dashless) {
304
+ return `${dashless.slice(0, 8)}-${dashless.slice(8, 12)}-${dashless.slice(12, 16)}-${dashless.slice(16, 20)}-${dashless.slice(20)}`;
305
+ }
306
+ /* ── Partición de RELACIONES (D4, plan 2.5 · lote A) ───────────────────── */
307
+ /** La ortografía CANÓNICA de un uuid: exactamente 8-4-4-4-12, minúsculas. */
308
+ const CANONICAL_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
309
+ /**
310
+ * **¿Es una ortografía NO canónica de un uuid?** (D4 + cierre 🟠 A2 del
311
+ * auditor del lote A, decisión del dueño 2026-10-15): todo valor que, sin
312
+ * guiones, sea 32 hex y NO esté exactamente en la forma 8-4-4-4-12. Cubre el
313
+ * 32 hex sin guiones (lo único que D4 cerraba) Y cualquier otra colocación de
314
+ * guiones —`8-4-4-16`, cuatro grupos, la canónica sin su último guion…—.
315
+ *
316
+ * **Es la regla ANCHA, y se usa SOLO para el 422 de las particiones de
317
+ * relaciones** (`assertPartition`; cierre-3 del lote A, decisión del dueño
318
+ * 2026-10-15 (3)): es un SUPERCONJUNTO de lo que el tipo `uuid` de
319
+ * PostgreSQL funde —incluye `-<32hex>`, `<32hex>-`, `a0e-ebc99…` o `8--24`,
320
+ * que PG rechaza con «invalid input syntax» (medido, PG 18)— y ahí ser más
321
+ * ancha es inocuo: un 422 de más lo ve y lo corrige el llamante, y una
322
+ * partición que «parece un uuid» sin serlo tampoco merece ser una clave
323
+ * distinta de la canónica. Lo que PG funde DE VERDAD es `pgFusedSpellings`,
324
+ * la regla del fan-out de ROLES, donde expandir de más sí cuesta (purgar un
325
+ * scope vivo ajeno). Un valor que sin guiones no sea 32 hex (31, 33, un
326
+ * carácter no hex, `_`/`.`) NO es un uuid y es un id legal.
327
+ * Es la MISMA función que usa el detector de la receta del README, por
328
+ * construcción (el `upgrade_recipe.spec` lo mide: lo que `assertPartition`
329
+ * rechaza, el detector lo lista).
330
+ */
331
+ export function isNonCanonicalUuid(value) {
332
+ if (typeof value !== 'string')
333
+ return false;
334
+ return DASHLESS_UUID.test(value.replace(/-/g, '')) && !CANONICAL_UUID.test(value);
335
+ }
336
+ /**
337
+ * **La partición de una relación se escribe en la forma CANÓNICA 8-4-4-4-12,
338
+ * o es 422** (D4, decisión del dueño 2026-10-14; `panel-tenencia-2-juez.md`
339
+ * §5; ampliado el 2026-10-15 a toda ortografía no canónica, 🟠 A2).
340
+ * `assertScope` vale para un scope de ROLES porque ahí la identidad la
341
+ * canoniza la cadena del resolutor (invariante 17) y, donde no hay cadena,
342
+ * `scopeSpellings` barre la ortografía del llamante y la canónica de la que
343
+ * puede ser alias, con SU regla (`pgFusedSpellings`, lo que PG funde de
344
+ * verdad: cierre-3). En RELACIONES no hay cadena con
345
+ * la que canonizar: la clave de partición es un string comparado byte a
346
+ * byte, así que `unit|aaaa…` (32 hex) y `unit|aaaa-…` eran DOS particiones,
347
+ * la purga canónica no veía la otra y, con el 422, las tuplas viejas sin
348
+ * guiones quedaban inalcanzables para siempre (tester H5). Y la clase no era
349
+ * solo «sin guiones»: PostgreSQL funde también `8-4-4-16`, cuatro grupos de
350
+ * ocho, la canónica sin un guion… (🟠 A2) — cualquier colocación de guiones
351
+ * sobre los mismos 32 hex —, así que la regla es «32 hex sin guiones y no
352
+ * exactamente 8-4-4-4-12 ⇒ 422» (`isNonCanonicalUuid`). La regla es una sola
353
+ * y va en un solo sitio: toda operación que recibe una partición —manager,
354
+ * los dos drivers, el doble publicado y `reconcileRelations`— pasa por aquí
355
+ * (o por `partitionKey`, que la llama), y la guardia de superficie
356
+ * (`tests/guard_surface.spec.ts`, columna `partition`) lo sondea en cada
357
+ * operación con las DOS formas (sin guiones y `8-4-4-16`). Las filas escritas
358
+ * antes de 2.5.0 con una ortografía no canónica se detectan, se listan y se
359
+ * BORRAN con la receta del README («Upgrading to 2.5.0», fail-closed por
360
+ * defecto: eran concesiones invisibles a la purga canónica); re-clavarlas es
361
+ * el paso opt-in `--rekey`. La ejecuta `tests/upgrade_recipe.spec.ts` en los
362
+ * tres motores, con las dos ramas.
363
+ *
364
+ * Un id de partición que no sea un uuid sigue valiendo (`[a-z0-9._-]{1,36}`:
365
+ * 32 caracteres no todos hex, 31 o 33 hex…). Los ids de OBJETO y de SUJETO
366
+ * no se rechazan: se comparan byte a byte y el README lo declara.
367
+ */
368
+ export function assertPartition(partition) {
369
+ assertScope(partition);
370
+ if (partition.uuid !== null && isNonCanonicalUuid(partition.uuid)) {
371
+ const canonical = dashedUuid(partition.uuid.replace(/-/g, ''));
372
+ throw new InvalidIdentityError(`Partición inválida: el uuid '${partition.uuid}' del scope '${partition.type}' no está en la forma canónica ` +
373
+ `8-4-4-4-12 (${partition.uuid.includes('-') ? 'guiones mal colocados' : 'sin guiones, 32 hex'}). ` +
374
+ `Las particiones de relaciones se comparan byte a byte y no se canonizan: escríbelo como '${canonical}'. ` +
375
+ `Las tuplas escritas con una ortografía no canónica antes de 2.5.0 se detectan y se borran con la receta ` +
376
+ `del README («Upgrading to 2.5.0»; re-clavarlas es el paso opt-in --rekey).`);
377
+ }
378
+ }
379
+ /**
380
+ * La clave de partición de una RELACIÓN: `scopeKey` con la regla de
381
+ * `assertPartition` delante. Es lo que los dos drivers de relaciones (y el
382
+ * doble) usan para componer `partition_key` / el id de objeto del store: no
383
+ * hay camino hacia el backend que no pase por aquí.
384
+ */
385
+ export function partitionKey(partition) {
386
+ assertPartition(partition);
387
+ return scopeKey(partition);
236
388
  }
237
389
  /**
238
390
  * La inversa de `scopeKey` para claves que vienen de la BASE (el owner de un
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { AuthorizationConfig } from './define_config.js';
1
+ import { type AuthorizationConfig } from './define_config.js';
2
2
  import type { FreezeKind, FreezeToken } from './freeze.js';
3
- import type { AuthorizationDriver, AuthorizationDriverCapabilities, AuthorizedScopes, CatalogRole, CatalogRoleRef, DenyOptions, DenyRef, ExcludedSubtree, GrantOptions, GrantOutcome, RoleQuery, ScopedRoleChanges, ScopedRoleSpec, ReconcileOptions, ReconcileReport, ScopedWriteOptions, ScopeEnqueueReceipt, ScopeRequeueReport, ScopeRelayReport, ScopeRef, ScopeTreeWriteOptions, ScopeType, SubjectRef } from './types.js';
3
+ import type { AuthorizationDriver, AuthorizationDriverCapabilities, AuthorizedScopes, CatalogRole, CatalogRoleRef, DenyOptions, DenyRef, ExcludedSubtree, GrantOptions, GrantOutcome, RoleQuery, ScopedRoleChanges, ScopedRoleSpec, ReconcileOptions, ReconcileReport, ScopedWriteOptions, ScopeEnqueueReceipt, ScopeRequeueReport, ScopeRelayReport, ScopeRef, ScopeTreeWriteOptions, ScopeType, SubjectRef, RelationsDriverFactory } from './types.js';
4
4
  /**
5
5
  * Lo que devuelve `AuthorizationManager.forRequest()`: la misma API que el
6
6
  * manager (lecturas, escrituras, `scopes.*`), con los ancestros memoizados
@@ -106,7 +106,27 @@ export interface FreezeStatus {
106
106
  */
107
107
  export interface FrozenWindow {
108
108
  fence: number;
109
+ /**
110
+ * El lease de la ventana. En la ventana del OPERADOR adoptada
111
+ * (2.4.0-alpha.10) es lo que le QUEDABA al adoptarla (`untilMs − ahora`);
112
+ * `null` solo si la ventana no caduca.
113
+ */
109
114
  leaseMs: number | null;
115
+ /**
116
+ * Solo en la ventana del OPERADOR adoptada (2.4.0-alpha.10, 🟡 3 del sexto
117
+ * informe de COGNITIV): el instante (ms de pared) en el que caduca, de la
118
+ * fila, o `null` si no caduca. Quien adopta la ventana no la renueva: si
119
+ * caduca a mitad, `lapsed` lo dice; esto dice que PUEDE caducar.
120
+ */
121
+ untilMs?: number | null;
122
+ /**
123
+ * EN QUÉ ventana corrió (2.4.0-alpha.10, S2): la del OPERADOR adoptada, una
124
+ * PROPIA tomada para la pasada, o la que ya sostenía este manager
125
+ * (`enclosing`). La salida de los comandos lo dice siempre: «corrí dentro del
126
+ * cutover» y «tomé mi ventana porque no había ninguna» eran letra a letra
127
+ * iguales.
128
+ */
129
+ window?: 'operator' | 'own' | 'enclosing';
110
130
  /** ¿Se perdió la ventana en algún momento? (renovación fallida, fila ajena o vencida). */
111
131
  lapsed: () => Promise<boolean>;
112
132
  }
@@ -234,8 +254,50 @@ export declare class AuthorizationManager {
234
254
  * `freezeStatus()`: eso es la fila, no la memoria.
235
255
  */
236
256
  get frozen(): boolean;
257
+ /**
258
+ * La clave (en `relations.drivers`) del driver de RELACIONES activo:
259
+ * `relations.default ?? default` (2.4.0-alpha.10). La lee el guard de la
260
+ * dirección rancia de `runRelationsReconcile`; desde el cierre del auditor
261
+ * (R4) el llamante ya no puede contradecirla con un `activeKey` propio.
262
+ */
263
+ relationsDriverKey(): string;
264
+ /** Las claves registradas en `relations.drivers` del config de ESTE manager (vacío si no hay relaciones). */
265
+ relationsDriverKeys(): string[];
266
+ /**
267
+ * La factory registrada bajo `key` en `relations.drivers` de ESTE manager, o
268
+ * `undefined` (cierre del auditor de alpha.10 · R4). `runRelationsReconcile`
269
+ * resuelve el origen y el destino por aquí —del MISMO config que decide el
270
+ * activo— y juzga la identidad por la factory resuelta, no por la etiqueta:
271
+ * dos claves con la misma factory son el mismo driver (y dos factories DISTINTAS
272
+ * sobre el mismo backend NO: límite declarado, cierre-2 · C1).
273
+ *
274
+ * **API de PLATAFORMA, junto a `driver()`** (cierre-2 · C6): con esta factory
275
+ * cualquier código que tenga el manager —vistas de `forRequest()` incluidas—
276
+ * construye un driver de relaciones NO activo y escribe en él sin `assertWrite`,
277
+ * `requireActor`, freeze ni `onRelationWrite`. No añade capacidad (el config ya
278
+ * da las factories), pero es otra cosa que buscar en una revisión.
279
+ */
280
+ relationsDriverFactory(key: string): RelationsDriverFactory | undefined;
237
281
  /** El freeze VIVO de la fila compartida, o `null`. Lo lee cualquiera; solo el token lo levanta. */
238
282
  freezeStatus(): Promise<FreezeStatus | null>;
283
+ /**
284
+ * **La ÚLTIMA ventana de la fila, también la CADUCADA** (2.4.0-alpha.10, 🟠 2
285
+ * del sexto informe de COGNITIV). `freezeStatus()` responde solo lo VIVO —y
286
+ * así lo siguen usando la barrera y los comandos—, de modo que una ventana
287
+ * cuyo lease venció era indistinguible de «nunca hubo»: `authz:unfreeze`
288
+ * decía éxito y el último paso del cutover no delataba que las escrituras
289
+ * habían vuelto a entrar a mitad. Se distingue por la fila: `releaseFreeze`
290
+ * pone el motivo a `null` al levantar, así que motivo puesto + `untilMs` en
291
+ * el pasado es una ventana que CADUCÓ sin que nadie la cerrase.
292
+ *
293
+ * `null` = nunca hubo o ya se levantó; `expired: false` = viva (lo mismo que
294
+ * `freezeStatus()`); `expired: true` = caducada. `checkedAtMs` es el instante
295
+ * del reloj del config con el que se decidió.
296
+ */
297
+ lastFreezeStatus(): Promise<(FreezeStatus & {
298
+ expired: boolean;
299
+ checkedAtMs: number;
300
+ }) | null>;
239
301
  /**
240
302
  * `freeze()` + `finally unfreeze(token)`. El `finally` es la parte que
241
303
  * importa: una migración que revienta a la mitad no puede dejar la
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA0B7D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAwC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,+BAA+B,EAE/B,gBAAgB,EAGhB,WAAW,EACX,cAAc,EACd,WAAW,EACX,OAAO,EACP,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,SAAS,EAGT,iBAAiB,EACjB,cAAc,EAGd,gBAAgB,EAChB,eAAe,EAIf,kBAAkB,EAClB,mBAAmB,EAMnB,kBAAkB,EAGlB,gBAAgB,EAChB,QAAQ,EAER,qBAAqB,EACrB,SAAS,EACT,UAAU,EAEX,MAAM,YAAY,CAAA;AAuBnB;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,oBAAoB,EAClB,WAAW,GACX,SAAS,GACT,cAAc,GACd,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,OAAO,GACP,QAAQ,GACR,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,sBAAsB,GACtB,eAAe,GACf,kBAAkB,GAClB,wBAAwB,GACxB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CACrB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEhH;AAED,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AACvC,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAC7C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAAa,CAAA;AACzC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAA;AACtC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAGzC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AACvC,gGAAgG;AAChG,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAA;AACrC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAQ7C,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAgBD,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/B;AAOD;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;;gBAwBnB,MAAM,EAAE,mBAAmB;IAkCvC;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,iBAAiB;IAmB9D;;;;;;;;;;;;;;OAcG;IACG,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA6B5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IAyFxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IA4DjH;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;;;OAIG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,mGAAmG;IAC7F,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAYlD;;;;;;;OAOG;IACG,gBAAgB,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EACxC,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC/D,OAAO,CAAC,CAAC,CAAC;IAyHb,mDAAmD;IACnD,iBAAiB,IAAI,IAAI;IAiCzB;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM;0BAQJ,QAAQ,UACP,QAAQ,YACN,qBAAqB,KAC9B,OAAO,CAAC,mBAAmB,CAAC;QAkB/B;;;;;;;;;;;;WAYG;uBAEM,QAAQ,aACJ,QAAQ,YACT,qBAAqB,KAC9B,OAAO,CAAC,mBAAmB,CAAC;QAgB/B;;;;;;;;;;;;;;;;;;;;;;WAsBG;0BACqB,QAAQ,YAAY,qBAAqB,KAAG,OAAO,CAAC,mBAAmB,CAAC;MA+CjG;IAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACG,iBAAiB,CACrB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;KACf,GACL,OAAO,CAAC,gBAAgB,CAAC;IAilB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0DG;IACG,mBAAmB,CACvB,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAC3B,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1E,OAAO,CAAC,kBAAkB,CAAC;IAyH9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,SAAS,CACb,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,GACxD,OAAO,CAAC,eAAe,CAAC;IAoe3B;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA+L5D,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrF,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA0BpG,2GAA2G;IACrG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKrE,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKxE,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKlE,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKpF,mHAAmH;IAC7G,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAM3E;;;;;;;OAOG;IACG,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiKnF;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CACpB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,QAAQ,EACpB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAoGvB;;;;;;;;OAQG;IACG,gBAAgB,CACpB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IA4FvB;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2FG;IACG,gBAAgB,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC;QAC3F,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,KAAK,EAAE,QAAQ,CAAC;YAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;SAAE,CAAC,CAAA;QAClJ,MAAM,EAAE,cAAc,EAAE,CAAA;QACxB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,cAAc,CAAC;YAAC,MAAM,EAAE,iBAAiB,CAAA;SAAE,CAAC,CAAA;QACnE,2FAA2F;QAC3F,SAAS,EAAE,OAAO,CAAA;QAClB,MAAM,EAAE,OAAO,CAAA;KAChB,CAAC;IAshBF;;;;;;OAMG;IACG,KAAK,CACT,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IA6CxB;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1G,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpG,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvH;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,gBAAgB,CACpB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnC,OAAO,CAAC,gBAAgB,CAAC;IAoE5B;;;;;;;OAOG;IACG,sBAAsB,CAC1B,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACnC,OAAO,CAAC,QAAQ,EAAE,CAAC;CA8NvB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager.ts"],"names":[],"mappings":"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"}