@jantstack/adonis-authz 2.5.0-alpha.1 → 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 (103) hide show
  1. package/README.md +515 -22
  2. package/build/commands/authz_relations_reconcile.d.ts +13 -62
  3. package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
  4. package/build/commands/authz_relations_reconcile.js +202 -116
  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/providers/authz_provider.d.ts.map +1 -1
  15. package/build/providers/authz_provider.js +4 -1
  16. package/build/providers/authz_provider.js.map +1 -1
  17. package/build/src/define_config.d.ts +32 -0
  18. package/build/src/define_config.d.ts.map +1 -1
  19. package/build/src/define_config.js +109 -0
  20. package/build/src/define_config.js.map +1 -1
  21. package/build/src/drivers/database_relations_driver.d.ts +36 -1
  22. package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
  23. package/build/src/drivers/database_relations_driver.js +213 -46
  24. package/build/src/drivers/database_relations_driver.js.map +1 -1
  25. package/build/src/drivers/openfga_driver.d.ts +30 -4
  26. package/build/src/drivers/openfga_driver.d.ts.map +1 -1
  27. package/build/src/drivers/openfga_driver.js +151 -45
  28. package/build/src/drivers/openfga_driver.js.map +1 -1
  29. package/build/src/drivers/openfga_facts.d.ts +21 -0
  30. package/build/src/drivers/openfga_facts.d.ts.map +1 -1
  31. package/build/src/drivers/openfga_facts.js +74 -8
  32. package/build/src/drivers/openfga_facts.js.map +1 -1
  33. package/build/src/drivers/openfga_relations_driver.d.ts +140 -10
  34. package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
  35. package/build/src/drivers/openfga_relations_driver.js +743 -49
  36. package/build/src/drivers/openfga_relations_driver.js.map +1 -1
  37. package/build/src/errors.d.ts +148 -0
  38. package/build/src/errors.d.ts.map +1 -1
  39. package/build/src/errors.js +166 -0
  40. package/build/src/errors.js.map +1 -1
  41. package/build/src/manager.d.ts.map +1 -1
  42. package/build/src/manager.js +15 -5
  43. package/build/src/manager.js.map +1 -1
  44. package/build/src/openfga.d.ts +1 -1
  45. package/build/src/openfga.d.ts.map +1 -1
  46. package/build/src/openfga.js +1 -1
  47. package/build/src/openfga.js.map +1 -1
  48. package/build/src/relations/check_many.d.ts +1 -1
  49. package/build/src/relations/check_many.d.ts.map +1 -1
  50. package/build/src/relations/check_many.js +6 -4
  51. package/build/src/relations/check_many.js.map +1 -1
  52. package/build/src/relations/define_relations_config.d.ts +187 -1
  53. package/build/src/relations/define_relations_config.d.ts.map +1 -1
  54. package/build/src/relations/define_relations_config.js +395 -7
  55. package/build/src/relations/define_relations_config.js.map +1 -1
  56. package/build/src/relations/manager.d.ts +33 -2
  57. package/build/src/relations/manager.d.ts.map +1 -1
  58. package/build/src/relations/manager.js +123 -4
  59. package/build/src/relations/manager.js.map +1 -1
  60. package/build/src/relations/reconcile.d.ts +295 -13
  61. package/build/src/relations/reconcile.d.ts.map +1 -1
  62. package/build/src/relations/reconcile.js +886 -85
  63. package/build/src/relations/reconcile.js.map +1 -1
  64. package/build/src/relations/tuple_order.d.ts +126 -0
  65. package/build/src/relations/tuple_order.d.ts.map +1 -0
  66. package/build/src/relations/tuple_order.js +598 -0
  67. package/build/src/relations/tuple_order.js.map +1 -0
  68. package/build/src/relations_config_store.d.ts.map +1 -1
  69. package/build/src/relations_config_store.js +29 -7
  70. package/build/src/relations_config_store.js.map +1 -1
  71. package/build/src/relations_reconcile.d.ts +79 -0
  72. package/build/src/relations_reconcile.d.ts.map +1 -0
  73. package/build/src/relations_reconcile.js +85 -0
  74. package/build/src/relations_reconcile.js.map +1 -0
  75. package/build/src/scope_outbox.d.ts +9 -5
  76. package/build/src/scope_outbox.d.ts.map +1 -1
  77. package/build/src/scope_outbox.js +7 -4
  78. package/build/src/scope_outbox.js.map +1 -1
  79. package/build/src/shared/backend_guard.d.ts +8 -0
  80. package/build/src/shared/backend_guard.d.ts.map +1 -1
  81. package/build/src/shared/backend_guard.js +15 -0
  82. package/build/src/shared/backend_guard.js.map +1 -1
  83. package/build/src/testing/main.d.ts +1 -1
  84. package/build/src/testing/main.d.ts.map +1 -1
  85. package/build/src/testing/main.js +1 -1
  86. package/build/src/testing/main.js.map +1 -1
  87. package/build/src/testing/relations_contract.d.ts +18 -0
  88. package/build/src/testing/relations_contract.d.ts.map +1 -1
  89. package/build/src/testing/relations_contract.js +895 -45
  90. package/build/src/testing/relations_contract.js.map +1 -1
  91. package/build/src/testing/relations_reconcile_contract.d.ts +9 -0
  92. package/build/src/testing/relations_reconcile_contract.d.ts.map +1 -1
  93. package/build/src/testing/relations_reconcile_contract.js +207 -0
  94. package/build/src/testing/relations_reconcile_contract.js.map +1 -1
  95. package/build/src/testing/scope_outbox_contract.d.ts +14 -1
  96. package/build/src/testing/scope_outbox_contract.d.ts.map +1 -1
  97. package/build/src/testing/scope_outbox_contract.js +126 -48
  98. package/build/src/testing/scope_outbox_contract.js.map +1 -1
  99. package/build/src/types.d.ts +90 -6
  100. package/build/src/types.d.ts.map +1 -1
  101. package/build/src/types.js +2 -0
  102. package/build/src/types.js.map +1 -1
  103. package/package.json +2 -1
@@ -22,6 +22,7 @@
22
22
  import { v7 as uuidv7 } from 'uuid';
23
23
  import { test as japaTest } from '@japa/runner';
24
24
  import { AuthorizationManager } from '../manager.js';
25
+ import { AuthorizationConfigError } from '../errors.js';
25
26
  import { memoryScopeTree, resolveChainFrom } from './scope_tree.js';
26
27
  import { APP_SCOPE } from '../types.js';
27
28
  export const SCOPE_OUTBOX_CAPABILITY_KEYS = [
@@ -33,7 +34,10 @@ export const SCOPE_OUTBOX_CAPABILITY_KEYS = [
33
34
  'earlierPending',
34
35
  'requeue',
35
36
  'createdAt',
37
+ 'requiresTransaction',
36
38
  ];
39
+ /** Claves OPCIONALES (D15, desde 2.5.0): ausentes se normalizan a `false`; un valor presente tiene que ser booleano. */
40
+ export const OPTIONAL_SCOPE_OUTBOX_CAPABILITY_KEYS = ['requiresTransaction'];
37
41
  function keyOf(scope) {
38
42
  return scope.type === 'app' ? 'app' : `${scope.type}|${scope.uuid}`;
39
43
  }
@@ -73,6 +77,12 @@ export function makeScopeOutbox(options) {
73
77
  const indexOf = (id) => Number(id) - 1;
74
78
  const outbox = {
75
79
  async enqueue(change, context) {
80
+ // B6: el doble con `requiresTransaction: true` se niega sin `{ transaction }` con la MISMA letra que
81
+ // `sqlScopeOutbox` (nombra `requireTransaction`), para que el par se juzgue también sin base.
82
+ if (caps.requiresTransaction === true && context?.transaction === undefined) {
83
+ throw new AuthorizationConfigError('makeScopeOutbox.enqueue: no llegó { transaction } y este doble declara requireTransaction: true (requiresTransaction). ' +
84
+ 'Encolar fuera de tu unidad de trabajo es la fuga que la outbox existe para cerrar. No se ha encolado nada.');
85
+ }
76
86
  rows.push({ change, actor: context?.actor, attempts: 0, applied: false, createdAt: now() });
77
87
  return { id: rows.length };
78
88
  },
@@ -183,10 +193,14 @@ async function rejects(assert, run, expected, message) {
183
193
  export function registerScopeOutboxContract(harness, api) {
184
194
  const caps = harness.capabilities;
185
195
  for (const key of SCOPE_OUTBOX_CAPABILITY_KEYS) {
196
+ if (OPTIONAL_SCOPE_OUTBOX_CAPABILITY_KEYS.includes(key) && caps[key] === undefined)
197
+ continue;
186
198
  if (typeof caps[key] !== 'boolean') {
187
199
  throw new Error(`[contrato ${harness.name}] la capacidad '${key}' tiene que ser un booleano (llegó ${String(caps[key])})`);
188
200
  }
189
201
  }
202
+ /** D15: la clave opcional ausente es `false`. */
203
+ const requiresTransaction = caps.requiresTransaction === true;
190
204
  const maxAttempts = harness.limits?.maxAttempts;
191
205
  if (caps.dead && !(Number.isInteger(maxAttempts) && maxAttempts >= 3)) {
192
206
  throw new Error(`[contrato ${harness.name}] declara 'dead: true' sin 'limits.maxAttempts' (entero >= 3): sin saber cuándo aparca tu ` +
@@ -199,6 +213,10 @@ export function registerScopeOutboxContract(harness, api) {
199
213
  throw new Error(`[contrato ${harness.name}] declara 'transactionalEnqueue: true' sin 'transactions.begin': sin una transacción de TU ` +
200
214
  `conexión no se puede observar el rollback (un skip disfrazado).`);
201
215
  }
216
+ if (requiresTransaction && typeof harness.transactions?.begin !== 'function') {
217
+ throw new Error(`[contrato ${harness.name}] declara 'requiresTransaction: true' sin 'transactions.begin': el juez tiene que encolar ` +
218
+ `con una transacción de TU conexión en cada caso (plan 2.5 · B6), y sin ella todo encolado sería el 500.`);
219
+ }
202
220
  const covered = new Set();
203
221
  let registered = 0;
204
222
  const state = {};
@@ -220,7 +238,37 @@ export function registerScopeOutboxContract(harness, api) {
220
238
  });
221
239
  return { manager, driver, calls, tree };
222
240
  }
223
- const ctx = (actor) => (actor ? { actor } : {});
241
+ /**
242
+ * **El encolado del juez pasa la transacción del harness** (plan 2.5 · lote B · B6, prerrequisito del
243
+ * default `requireTransaction: true` de `sqlScopeOutbox`): con `requiresTransaction` cada encolado
244
+ * —directo (`enqueue`) o por el manager (`scopes.*`)— abre `transactions.begin()`, encola con
245
+ * `{ transaction }` y confirma. Sin la capacidad, encola como hasta 2.4 (sin transacción). Hasta B6
246
+ * el contexto era `{ actor? }` a secas, y por eso el default no podía cambiar sin poner en rojo a todo tercero.
247
+ */
248
+ async function viaTransaction(fn) {
249
+ if (!requiresTransaction)
250
+ return fn(undefined);
251
+ const trx = await harness.transactions.begin();
252
+ try {
253
+ const result = await fn(trx.client);
254
+ await trx.commit();
255
+ return result;
256
+ }
257
+ catch (error) {
258
+ await trx.rollback();
259
+ throw error;
260
+ }
261
+ }
262
+ const ctxOf = (transaction, actor) => ({
263
+ ...(actor ? { actor } : {}),
264
+ ...(transaction === undefined ? {} : { transaction }),
265
+ });
266
+ const enqueue = (outbox, change, actor) => viaTransaction((transaction) => outbox.enqueue(change, ctxOf(transaction, actor)));
267
+ const scopes = {
268
+ attached: (manager, child, parent) => viaTransaction((transaction) => manager.scopes.attached(child, parent, ctxOf(transaction))),
269
+ moved: (manager, child, parent) => viaTransaction((transaction) => manager.scopes.moved(child, parent, ctxOf(transaction))),
270
+ detached: (manager, child) => viaTransaction((transaction) => manager.scopes.detached(child, ctxOf(transaction))),
271
+ };
224
272
  api.group(`scope outbox contract [${harness.name}]`, (group) => {
225
273
  group.each.setup(async () => {
226
274
  await harness.cleanup?.();
@@ -243,7 +291,7 @@ export function registerScopeOutboxContract(harness, api) {
243
291
  /* ── Núcleo: los deberes que todo puerto tiene ── */
244
292
  test('O-01 · recibo: `enqueue` devuelve `{ id }` (o void) y ese id es EXACTAMENTE el que `pending()` devuelve', async ({ assert }) => {
245
293
  const outbox = state.outbox;
246
- const receipt = await outbox.enqueue({ op: 'attached', child: unitScope(), parent: orgScope() }, ctx());
294
+ const receipt = await enqueue(outbox, { op: 'attached', child: unitScope(), parent: orgScope() });
247
295
  const [row] = await outbox.pending(10);
248
296
  assert.isDefined(row, 'lo encolado está pendiente');
249
297
  if (receipt !== undefined && receipt !== null) {
@@ -256,9 +304,9 @@ export function registerScopeOutboxContract(harness, api) {
256
304
  const org = orgScope();
257
305
  const unit = unitScope();
258
306
  const actor = { type: 'users', uuid: uuidv7() };
259
- await outbox.enqueue({ op: 'attached', child: org, parent: APP_SCOPE }, ctx(actor));
260
- await outbox.enqueue({ op: 'moved', child: unit, parent: org }, ctx());
261
- await outbox.enqueue({ op: 'detached', child: unit }, ctx());
307
+ await enqueue(outbox, { op: 'attached', child: org, parent: APP_SCOPE }, actor);
308
+ await enqueue(outbox, { op: 'moved', child: unit, parent: org });
309
+ await enqueue(outbox, { op: 'detached', child: unit });
262
310
  const all = await outbox.pending(10);
263
311
  assert.deepEqual(all.map((p) => p.change), [
264
312
  { op: 'attached', child: org, parent: APP_SCOPE },
@@ -273,9 +321,9 @@ export function registerScopeOutboxContract(harness, api) {
273
321
  });
274
322
  test('O-03 · `after` continúa DESPUÉS de un id: lo saltado no vuelve a salir el primero (3b-2h · 🔴 2)', async ({ assert }) => {
275
323
  const outbox = state.outbox;
276
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
277
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
278
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
324
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
325
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
326
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
279
327
  const [a, b, c] = await outbox.pending(10);
280
328
  assert.deepEqual(ids(await outbox.pending(10, a.id)), [String(b.id), String(c.id)]);
281
329
  assert.deepEqual(ids(await outbox.pending(1, a.id)), [String(b.id)]);
@@ -283,20 +331,20 @@ export function registerScopeOutboxContract(harness, api) {
283
331
  });
284
332
  test('O-04 · `markApplied` saca la entrada de `pending()` y es idempotente; lo encolado después sigue saliendo', async ({ assert }) => {
285
333
  const outbox = state.outbox;
286
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
334
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
287
335
  const [first] = await outbox.pending(10);
288
336
  await outbox.markApplied(first.id);
289
337
  assert.deepEqual(await outbox.pending(10), []);
290
338
  await outbox.markApplied(first.id);
291
339
  assert.deepEqual(await outbox.pending(10), [], 'la segunda vez no revive nada ni lanza');
292
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
340
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
293
341
  const rest = await outbox.pending(10);
294
342
  assert.lengthOf(rest, 1);
295
343
  assert.notEqual(String(rest[0].id), String(first.id));
296
344
  });
297
345
  test('O-05 · `markFailed` DEJA la entrada pendiente, cuenta el intento y guarda la causa (a la vista en `pending()`)', async ({ assert }) => {
298
346
  const outbox = state.outbox;
299
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
347
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
300
348
  const [row] = await outbox.pending(10);
301
349
  await outbox.markFailed(row.id, 'el padre no existe');
302
350
  const [once] = await outbox.pending(10);
@@ -314,8 +362,8 @@ export function registerScopeOutboxContract(harness, api) {
314
362
  const unit = unitScope();
315
363
  await tree.attach(org, APP_SCOPE);
316
364
  await tree.attach(unit, org);
317
- await manager.scopes.attached(org, APP_SCOPE);
318
- await manager.scopes.attached(unit, org);
365
+ await scopes.attached(manager, org, APP_SCOPE);
366
+ await scopes.attached(manager, unit, org);
319
367
  assert.deepEqual(calls, [], 'con outbox el driver no ve nada al notificar');
320
368
  const first = await manager.relayScopeChanges();
321
369
  assert.lengthOf(first.applied, 2);
@@ -333,9 +381,9 @@ export function registerScopeOutboxContract(harness, api) {
333
381
  const other = unitScope();
334
382
  await tree.attach(org, APP_SCOPE);
335
383
  await tree.attach(unit, org);
336
- await manager.scopes.attached(org, APP_SCOPE);
337
- await manager.scopes.attached(unit, org);
338
- await manager.scopes.detached(other);
384
+ await scopes.attached(manager, org, APP_SCOPE);
385
+ await scopes.attached(manager, unit, org);
386
+ await scopes.detached(manager, other);
339
387
  driver.onScopeAttached = async (c, p) => {
340
388
  if (keyOf(c) === keyOf(org))
341
389
  throw new Error('el store no lo acepta');
@@ -365,10 +413,10 @@ export function registerScopeOutboxContract(harness, api) {
365
413
  await tree.attach(orgB, APP_SCOPE);
366
414
  await tree.attach(unitA, orgB);
367
415
  await tree.attach(unitB, orgB);
368
- await manager.scopes.attached(orgA, APP_SCOPE);
369
- await manager.scopes.attached(orgB, APP_SCOPE);
370
- await manager.scopes.attached(unitA, orgB);
371
- await manager.scopes.attached(unitB, orgB);
416
+ await scopes.attached(manager, orgA, APP_SCOPE);
417
+ await scopes.attached(manager, orgB, APP_SCOPE);
418
+ await scopes.attached(manager, unitA, orgB);
419
+ await scopes.attached(manager, unitB, orgB);
372
420
  driver.onScopeAttached = async (c, p) => {
373
421
  if (keyOf(c) === keyOf(orgA) || keyOf(c) === keyOf(unitA))
374
422
  throw new Error('el store no lo acepta');
@@ -395,7 +443,7 @@ export function registerScopeOutboxContract(harness, api) {
395
443
  { op: 'detached', child: unitB },
396
444
  ];
397
445
  for (const change of wanted)
398
- await outbox.enqueue(change, ctx());
446
+ await enqueue(outbox, change);
399
447
  const all = await outbox.pending(100);
400
448
  assert.deepEqual(all.map((p) => p.change), wanted, 'las seis, de los dos tenants, en orden de encolado');
401
449
  const first = await outbox.pending(4);
@@ -416,12 +464,42 @@ export function registerScopeOutboxContract(harness, api) {
416
464
  await committed.commit();
417
465
  assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
418
466
  }),
419
- whenFalse: () => test('transactionalEnqueue:false · encolar SIN transacción funciona (y la mitigación del rollback queda apagada: dilo en tu README)', async ({ assert, }) => {
467
+ whenFalse: () => test('transactionalEnqueue:false · encolar funciona ignorando la transacción (la mitigación del rollback queda apagada: dilo en tu README)', async ({ assert, }) => {
420
468
  const outbox = state.outbox;
421
469
  const unit = unitScope();
422
- await outbox.enqueue({ op: 'detached', child: unit }, {});
470
+ // Con `requiresTransaction` el encolado lleva la transacción del harness (y se ignora); sin ella, ninguna.
471
+ await enqueue(outbox, { op: 'detached', child: unit });
472
+ assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
473
+ }),
474
+ });
475
+ caseFor('requiresTransaction', {
476
+ whenTrue: () => test('requiresTransaction:true · `enqueue` sin `{ transaction }` es 500 E_AUTHZ_CONFIG nombrando `requireTransaction` y CERO filas — por la outbox sola y por `scopes.*` del manager (sin encolar ni tocar el driver); con la transacción del harness entra (2.5.0 · B6)', async ({ assert, }) => {
477
+ const outbox = state.outbox;
478
+ const unit = unitScope();
479
+ const bare = await rejects(assert, () => outbox.enqueue({ op: 'detached', child: unit }, {}), { status: 500, code: 'E_AUTHZ_CONFIG' }, 'outbox sola');
480
+ assert.include(bare.message, 'requireTransaction', 'la letra nombra la opción');
481
+ assert.deepEqual(await outbox.pending(10), [], 'cero filas');
482
+ const { manager, calls, tree } = managerOver(outbox);
483
+ const org = orgScope();
484
+ await tree.attach(org, APP_SCOPE);
485
+ const viaManager = await rejects(assert, () => manager.scopes.attached(org, APP_SCOPE), { status: 500, code: 'E_AUTHZ_CONFIG' }, 'por el manager');
486
+ assert.include(viaManager.message, 'requireTransaction');
487
+ assert.deepEqual(await outbox.pending(10), [], 'cero filas por el manager');
488
+ assert.deepEqual(calls, [], 'y el driver no se toca');
489
+ // La cara buena: con la transacción del harness, entra (es lo que hace TODO encolado de este contrato).
490
+ await enqueue(outbox, { op: 'detached', child: unit });
423
491
  assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }]);
424
492
  }),
493
+ whenFalse: () => test('requiresTransaction:false · encolar SIN transacción entra, por la outbox sola y por `scopes.*` (la outbox no exige la unidad de trabajo: dilo en tu README)', async ({ assert, }) => {
494
+ const outbox = state.outbox;
495
+ const unit = unitScope();
496
+ await outbox.enqueue({ op: 'detached', child: unit }, {});
497
+ const { manager, tree } = managerOver(outbox);
498
+ const org = orgScope();
499
+ await tree.attach(org, APP_SCOPE);
500
+ await manager.scopes.attached(org, APP_SCOPE);
501
+ assert.deepEqual((await outbox.pending(10)).map((p) => p.change), [{ op: 'detached', child: unit }, { op: 'attached', child: org, parent: APP_SCOPE }]);
502
+ }),
425
503
  });
426
504
  caseFor('filter', {
427
505
  whenTrue: () => test('filter:true · `pending(limit, after, { ids })` devuelve SOLO esos ids, en orden, y con `after`; el manager aplica solo lo pedido', async ({ assert, }) => {
@@ -429,9 +507,9 @@ export function registerScopeOutboxContract(harness, api) {
429
507
  const { manager, calls } = managerOver(outbox);
430
508
  // Tres entradas INDEPENDIENTES (sin clave común, ni la raíz): lo pedido no depende de nada.
431
509
  const [a, b, c] = [unitScope(), unitScope(), unitScope()];
432
- const ia = (await outbox.enqueue({ op: 'detached', child: a }, ctx())).id;
433
- const ib = (await outbox.enqueue({ op: 'detached', child: b }, ctx())).id;
434
- const ic = (await outbox.enqueue({ op: 'detached', child: c }, ctx())).id;
510
+ const ia = (await enqueue(outbox, { op: 'detached', child: a })).id;
511
+ const ib = (await enqueue(outbox, { op: 'detached', child: b })).id;
512
+ const ic = (await enqueue(outbox, { op: 'detached', child: c })).id;
435
513
  assert.deepEqual(ids(await outbox.pending(10, undefined, { ids: [ic, ia] })), [String(ia), String(ic)], 'en orden de id, no del array');
436
514
  assert.deepEqual(ids(await outbox.pending(10, ia, { ids: [ic, ia] })), [String(ic)], '`after` sigue valiendo');
437
515
  const report = await manager.relayScopeChanges({ only: [ib] });
@@ -441,8 +519,8 @@ export function registerScopeOutboxContract(harness, api) {
441
519
  }),
442
520
  whenFalse: () => test('filter:false · una outbox que IGNORA `ids` no aplica el backlog ajeno en silencio: `relayScopeChanges({ only })` es 500 E_AUTHZ_CONFIG con cero llamadas', async ({ assert, }) => {
443
521
  const { manager, calls } = managerOver(state.outbox);
444
- await state.outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
445
- const ib = (await state.outbox.enqueue({ op: 'detached', child: unitScope() }, ctx())).id;
522
+ await enqueue(state.outbox, { op: 'detached', child: unitScope() });
523
+ const ib = (await enqueue(state.outbox, { op: 'detached', child: unitScope() })).id;
446
524
  const error = await rejects(assert, () => manager.relayScopeChanges({ only: [ib] }), { status: 500, code: 'E_AUTHZ_CONFIG' });
447
525
  assert.include(error.message, 'pending(limit, after, { ids })');
448
526
  assert.deepEqual(calls, []);
@@ -451,7 +529,7 @@ export function registerScopeOutboxContract(harness, api) {
451
529
  caseFor('transient', {
452
530
  whenTrue: () => test('transient:true · `markFailed(id, error, { transient: true })` escribe la causa y NO cuenta el intento; sin `transient`, cuenta', async ({ assert, }) => {
453
531
  const outbox = state.outbox;
454
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
532
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
455
533
  const [row] = await outbox.pending(10);
456
534
  await outbox.markFailed(row.id, 'el store no responde', { transient: true });
457
535
  const [after] = await outbox.pending(10);
@@ -462,7 +540,7 @@ export function registerScopeOutboxContract(harness, api) {
462
540
  }),
463
541
  whenFalse: () => test('transient:false · una outbox que ignora el tercer parámetro cuenta el intento igual (lo de alpha.4: degrada hacia lo seguro)', async ({ assert, }) => {
464
542
  const outbox = state.outbox;
465
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
543
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
466
544
  const [row] = await outbox.pending(10);
467
545
  await outbox.markFailed(row.id, 'el store no responde', { transient: true });
468
546
  assert.equal((await outbox.pending(10))[0].attempts, 1);
@@ -476,7 +554,7 @@ export function registerScopeOutboxContract(harness, api) {
476
554
  const unit = unitScope();
477
555
  await tree.attach(org, APP_SCOPE);
478
556
  await tree.attach(unit, org);
479
- const { queued: [id] } = await manager.scopes.moved(unit, org);
557
+ const { queued: [id] } = await scopes.moved(manager, unit, org);
480
558
  for (let i = 0; i < maxAttempts; i++)
481
559
  await outbox.markFailed(id, `fallo ${i + 1}`);
482
560
  assert.deepEqual(await outbox.pending(10), [], 'agotados los intentos, deja de ofrecerse');
@@ -488,7 +566,7 @@ export function registerScopeOutboxContract(harness, api) {
488
566
  // Y el manager: reportada, y el attached que nombra su clave se APLAZA (parked:<id>).
489
567
  const child = unitScope();
490
568
  await tree.attach(child, unit);
491
- await manager.scopes.attached(child, unit);
569
+ await scopes.attached(manager, child, unit);
492
570
  const report = await manager.relayScopeChanges();
493
571
  assert.deepEqual(ids(report.dead), [String(id)]);
494
572
  assert.deepEqual(report.entries.map((e) => [e.status, e.reason ?? null]), [['deferred', `parked:${id}`], ['dead', `fallo ${maxAttempts}`]]);
@@ -497,7 +575,7 @@ export function registerScopeOutboxContract(harness, api) {
497
575
  whenFalse: () => test('dead:false · sin `dead()` nada se aparca: tras N fallos la entrada sigue en `pending()` y el reporte dice `dead: []`', async ({ assert, }) => {
498
576
  const outbox = state.outbox;
499
577
  assert.isUndefined(outbox.dead);
500
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
578
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
501
579
  const [row] = await outbox.pending(10);
502
580
  for (let i = 0; i < 6; i++)
503
581
  await outbox.markFailed(row.id, 'irreparable');
@@ -520,7 +598,7 @@ export function registerScopeOutboxContract(harness, api) {
520
598
  const { manager, driver, calls, tree } = managerOver(outbox);
521
599
  const org = orgScope();
522
600
  await tree.attach(org, APP_SCOPE);
523
- await manager.scopes.attached(org, APP_SCOPE);
601
+ await scopes.attached(manager, org, APP_SCOPE);
524
602
  driver.onScopeAttached = async (c, p) => {
525
603
  await new Promise((r) => setTimeout(r, 60));
526
604
  calls.push(`attached ${keyOf(c)} → ${keyOf(p)}`);
@@ -539,7 +617,7 @@ export function registerScopeOutboxContract(harness, api) {
539
617
  const { manager, tree } = managerOver(outbox);
540
618
  const org = orgScope();
541
619
  await tree.attach(org, APP_SCOPE);
542
- await manager.scopes.attached(org, APP_SCOPE);
620
+ await scopes.attached(manager, org, APP_SCOPE);
543
621
  const report = await manager.relayScopeChanges();
544
622
  assert.isFalse(report.busy);
545
623
  assert.lengthOf(report.applied, 1);
@@ -552,10 +630,10 @@ export function registerScopeOutboxContract(harness, api) {
552
630
  const unit = unitScope();
553
631
  const child = unitScope();
554
632
  const other = unitScope();
555
- const a = (await outbox.enqueue({ op: 'attached', child: org, parent: APP_SCOPE }, ctx())).id;
556
- const b = (await outbox.enqueue({ op: 'attached', child: unit, parent: org }, ctx())).id;
557
- const c = (await outbox.enqueue({ op: 'attached', child, parent: unit }, ctx())).id;
558
- const d = (await outbox.enqueue({ op: 'detached', child: other }, ctx())).id;
633
+ const a = (await enqueue(outbox, { op: 'attached', child: org, parent: APP_SCOPE })).id;
634
+ const b = (await enqueue(outbox, { op: 'attached', child: unit, parent: org })).id;
635
+ const c = (await enqueue(outbox, { op: 'attached', child, parent: unit })).id;
636
+ const d = (await enqueue(outbox, { op: 'detached', child: other })).id;
559
637
  assert.equal(String((await outbox.earlierPending(c, [child, unit])).id), String(b), 'por hijo');
560
638
  assert.equal(String((await outbox.earlierPending(b, [unit, org])).id), String(a), 'por padre');
561
639
  assert.equal(String((await outbox.earlierPending(d, [APP_SCOPE])).id), String(a), 'la raíz');
@@ -572,10 +650,10 @@ export function registerScopeOutboxContract(harness, api) {
572
650
  const unit = unitScope();
573
651
  await tree.attach(org, APP_SCOPE);
574
652
  await tree.attach(unit, org);
575
- const { queued: [movedId] } = await manager.scopes.moved(unit, org);
653
+ const { queued: [movedId] } = await scopes.moved(manager, unit, org);
576
654
  const child = unitScope();
577
655
  await tree.attach(child, unit);
578
- const { queued: [attachedId] } = await manager.scopes.attached(child, unit);
656
+ const { queued: [attachedId] } = await scopes.attached(manager, child, unit);
579
657
  if (caps.filter) {
580
658
  const report = await manager.relayScopeChanges({ only: [attachedId] });
581
659
  assert.deepEqual(report.applied, []);
@@ -594,13 +672,13 @@ export function registerScopeOutboxContract(harness, api) {
594
672
  const orgB = orgScope();
595
673
  const orgC = orgScope();
596
674
  const unit = unitScope();
597
- const old = (await outbox.enqueue({ op: 'moved', child: unit, parent: orgB }, ctx())).id;
675
+ const old = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgB })).id;
598
676
  for (let i = 0; i < maxAttempts; i++)
599
677
  await outbox.markFailed(old, 'el store no respondía');
600
- const current = (await outbox.enqueue({ op: 'moved', child: unit, parent: orgC }, ctx())).id;
678
+ const current = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgC })).id;
601
679
  await outbox.markApplied(current);
602
680
  // Una posterior PENDIENTE que comparte `unit`: no es «aplicada», no cuenta en la sonda.
603
- const live = (await outbox.enqueue({ op: 'moved', child: unit, parent: orgScope() }, ctx())).id;
681
+ const live = (await enqueue(outbox, { op: 'moved', child: unit, parent: orgScope() })).id;
604
682
  assert.deepEqual(ids(await outbox.dead(10)), [String(old)]);
605
683
  // laterApplied: SOLO la posterior APLICADA que comparte `unit`; la pendiente no; nada posterior a `current`.
606
684
  assert.deepEqual(ids(await outbox.laterApplied(old, [unit, orgB], 10)), [String(current)]);
@@ -640,8 +718,8 @@ export function registerScopeOutboxContract(harness, api) {
640
718
  const before = Date.now();
641
719
  const unit = unitScope();
642
720
  const other = unitScope();
643
- await outbox.enqueue({ op: 'detached', child: unit }, ctx());
644
- await outbox.enqueue({ op: 'detached', child: other }, ctx());
721
+ await enqueue(outbox, { op: 'detached', child: unit });
722
+ await enqueue(outbox, { op: 'detached', child: other });
645
723
  const after = Date.now();
646
724
  const [first, second] = await outbox.pending(10);
647
725
  assert.instanceOf(first.createdAt, Date, 'el sello de la primera');
@@ -660,8 +738,8 @@ export function registerScopeOutboxContract(harness, api) {
660
738
  }),
661
739
  whenFalse: () => test('createdAt:false · las entradas NO llevan `createdAt` y el relay dice `queue: { oldestPendingAt: null, pendingAgeMs: null }` (jamás 0 ni «ahora»), con la pasada en verde', async ({ assert, }) => {
662
740
  const outbox = state.outbox;
663
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
664
- await outbox.enqueue({ op: 'detached', child: unitScope() }, ctx());
741
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
742
+ await enqueue(outbox, { op: 'detached', child: unitScope() });
665
743
  const [first] = await outbox.pending(10);
666
744
  assert.isUndefined(first.createdAt, 'ausente, no `null` ni una fecha inventada');
667
745
  const { manager, calls } = managerOver(outbox);
@@ -1 +1 @@
1
- {"version":3,"file":"scope_outbox_contract.js","sourceRoot":"","sources":["../../../src/testing/scope_outbox_contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope_outbox_contract.js","sourceRoot":"","sources":["../../../src/testing/scope_outbox_contract.ts"],"names":[],"mappings":"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"}