@aeolus-fleet/core 0.21.0 → 0.23.0

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 (96) hide show
  1. package/dist/adapters/http/server.d.ts +2 -0
  2. package/dist/adapters/http/server.js +11 -0
  3. package/dist/adapters/http/server.js.map +1 -1
  4. package/dist/adapters/prisma/client.d.ts +2 -0
  5. package/dist/adapters/prisma/client.js +24 -1
  6. package/dist/adapters/prisma/client.js.map +1 -1
  7. package/dist/adapters/prisma/fleet-busy.d.ts +2 -0
  8. package/dist/adapters/prisma/fleet-busy.js +48 -0
  9. package/dist/adapters/prisma/fleet-busy.js.map +1 -0
  10. package/dist/adapters/prisma/generated/browser.d.ts +7 -0
  11. package/dist/adapters/prisma/generated/client.d.ts +7 -0
  12. package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
  13. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  14. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  15. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +83 -1
  16. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +6 -0
  17. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  18. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +7 -0
  19. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +6 -0
  20. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  21. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.d.ts +1195 -0
  22. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js +2 -0
  23. package/dist/adapters/prisma/generated/models/DeclaredNetworkRules.js.map +1 -0
  24. package/dist/adapters/prisma/generated/models/Fleet.d.ts +259 -0
  25. package/dist/adapters/prisma/generated/models/Ship.d.ts +263 -0
  26. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  27. package/dist/adapters/prisma/history.js +8 -0
  28. package/dist/adapters/prisma/history.js.map +1 -1
  29. package/dist/adapters/prisma/network.d.ts +3 -1
  30. package/dist/adapters/prisma/network.js +23 -0
  31. package/dist/adapters/prisma/network.js.map +1 -1
  32. package/dist/adapters/prisma/registry.js +1 -0
  33. package/dist/adapters/prisma/registry.js.map +1 -1
  34. package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
  35. package/dist/adapters/prisma/unit-of-work.js +2 -1
  36. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  37. package/dist/adapters/trpc/console.d.ts +2 -1
  38. package/dist/adapters/trpc/console.js +6 -2
  39. package/dist/adapters/trpc/console.js.map +1 -1
  40. package/dist/adapters/trpc/context.d.ts +7 -1
  41. package/dist/adapters/trpc/fleet.d.ts +42 -4
  42. package/dist/adapters/trpc/fleet.js +29 -5
  43. package/dist/adapters/trpc/fleet.js.map +1 -1
  44. package/dist/adapters/trpc/router.d.ts +48 -3
  45. package/dist/adapters/trpc/ship-contract.js +2 -0
  46. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  47. package/dist/adapters/trpc/ship-protocol.js +11 -10
  48. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  49. package/dist/adapters/trpc/system.d.ts +15 -0
  50. package/dist/adapters/trpc/system.js +10 -1
  51. package/dist/adapters/trpc/system.js.map +1 -1
  52. package/dist/adapters/trpc/trpc.d.ts +11 -0
  53. package/dist/adapters/trpc/trpc.js +26 -10
  54. package/dist/adapters/trpc/trpc.js.map +1 -1
  55. package/dist/app.js +2 -1
  56. package/dist/app.js.map +1 -1
  57. package/dist/domain/messaging/reply-to-message.d.ts +3 -1
  58. package/dist/domain/messaging/reply-to-message.js +3 -2
  59. package/dist/domain/messaging/reply-to-message.js.map +1 -1
  60. package/dist/domain/registry/check-reach.js +1 -1
  61. package/dist/domain/registry/check-reach.js.map +1 -1
  62. package/dist/domain/registry/declare-network-rules.d.ts +33 -0
  63. package/dist/domain/registry/declare-network-rules.js +30 -0
  64. package/dist/domain/registry/declare-network-rules.js.map +1 -0
  65. package/dist/domain/registry/declared-network-rules.d.ts +60 -0
  66. package/dist/domain/registry/declared-network-rules.js +70 -0
  67. package/dist/domain/registry/declared-network-rules.js.map +1 -0
  68. package/dist/domain/registry/label.d.ts +8 -10
  69. package/dist/domain/registry/label.js +4 -16
  70. package/dist/domain/registry/label.js.map +1 -1
  71. package/dist/domain/registry/network-settings.d.ts +23 -10
  72. package/dist/domain/registry/network-settings.js +65 -28
  73. package/dist/domain/registry/network-settings.js.map +1 -1
  74. package/dist/domain/registry/ports.d.ts +10 -0
  75. package/dist/domain/registry/read-declared-network-rules.d.ts +16 -0
  76. package/dist/domain/registry/read-declared-network-rules.js +9 -0
  77. package/dist/domain/registry/read-declared-network-rules.js.map +1 -0
  78. package/dist/domain/registry/retire-ship.d.ts +4 -2
  79. package/dist/domain/registry/retire-ship.js +10 -1
  80. package/dist/domain/registry/retire-ship.js.map +1 -1
  81. package/dist/domain/registry/set-network-rules.d.ts +4 -2
  82. package/dist/domain/registry/set-network-rules.js +4 -2
  83. package/dist/domain/registry/set-network-rules.js.map +1 -1
  84. package/dist/domain/registry/unassign-label.js +1 -1
  85. package/dist/domain/registry/unassign-label.js.map +1 -1
  86. package/dist/domain/shared/errors.d.ts +1 -1
  87. package/dist/domain/shared/errors.js.map +1 -1
  88. package/dist/domain/shared/history.d.ts +13 -1
  89. package/dist/domain/shared/history.js.map +1 -1
  90. package/dist/wiring.d.ts +4 -0
  91. package/dist/wiring.js +5 -1
  92. package/dist/wiring.js.map +1 -1
  93. package/package.json +13 -3
  94. package/src/adapters/prisma/migrations/20261010130000_cleared_network_rules_on_record/migration.sql +57 -0
  95. package/src/adapters/prisma/migrations/20261010210000_declared_network_rules/migration.sql +16 -0
  96. package/src/adapters/prisma/schema.prisma +17 -0
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export type ReplyToMessageRefusal = DomainError<'DELIVERY_NOT_FOUND' | 'NOT_THE_
12
12
  export type ReplyToMessage = (crew: Crew, input: {
13
13
  deliveryId: DeliveryId;
14
14
  payload: string;
15
+ contentType?: string;
15
16
  idempotencyKey: string;
16
17
  }) => Promise<Result<{
17
18
  messageId: MessageId;
@@ -20,7 +21,8 @@ export type ReplyToMessage = (crew: Crew, input: {
20
21
  * Use case: argo replies to a message to it from the operator inbox
21
22
  * (docs/blueprint.md, "Inbox"). Its scopes (messages:send and
22
23
  * messages:receive) are checked before this runs. One unit of work: the reply
23
- * as plain text from argo to the message's sender, naming the message, as a
24
+ * (plain text unless argo gives another content type, passed on untouched as a
25
+ * send's) from argo to the message's sender, naming the message, as a
24
26
  * send would store it, and the message marked done, its acknowledgement
25
27
  * naming the reply. A message already done stays done; the reply is a new
26
28
  * message all the same. A repeat of the key answers the same reply. Any
@@ -7,7 +7,8 @@ import { checkedSend, sendWithin } from './send-message.js';
7
7
  * Use case: argo replies to a message to it from the operator inbox
8
8
  * (docs/blueprint.md, "Inbox"). Its scopes (messages:send and
9
9
  * messages:receive) are checked before this runs. One unit of work: the reply
10
- * as plain text from argo to the message's sender, naming the message, as a
10
+ * (plain text unless argo gives another content type, passed on untouched as a
11
+ * send's) from argo to the message's sender, naming the message, as a
11
12
  * send would store it, and the message marked done, its acknowledgement
12
13
  * naming the reply. A message already done stays done; the reply is a new
13
14
  * message all the same. A repeat of the key answers the same reply. Any
@@ -29,7 +30,7 @@ export function createReplyToMessage(deps) {
29
30
  const request = checkedSend({
30
31
  selector: { kind: 'ship', shipId: asked.senderShipId },
31
32
  payload: input.payload,
32
- contentType: 'text/plain',
33
+ contentType: input.contentType ?? 'text/plain',
33
34
  idempotencyKey: input.idempotencyKey,
34
35
  inReplyTo: asked.id,
35
36
  }, deps.hasher);
@@ -1 +1 @@
1
- {"version":3,"file":"reply-to-message.js","sourceRoot":"","sources":["../../../src/domain/messaging/reply-to-message.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAgD,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,WAAW,EAAE,UAAU,EAA+C,MAAM,mBAAmB,CAAC;AAWzG;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAKpC;IACC,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,uBAAuB,EAAE,oEAAoE,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoE,EAAE;YACjG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9E,MAAM,KAAK,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,oBAAoB,EAAE,YAAY,KAAK,CAAC,UAAU,uBAAuB,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CACzB;gBACE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE;gBACtD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,YAAY;gBACzB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,SAAS,EAAE,KAAK,CAAC,EAAE;aACpB,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reply-to-message.js","sourceRoot":"","sources":["../../../src/domain/messaging/reply-to-message.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAgD,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,WAAW,EAAE,UAAU,EAA+C,MAAM,mBAAmB,CAAC;AAWzG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAKpC;IACC,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,uBAAuB,EAAE,oEAAoE,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoE,EAAE;YACjG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9E,MAAM,KAAK,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,oBAAoB,EAAE,YAAY,KAAK,CAAC,UAAU,uBAAuB,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CACzB;gBACE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE;gBACtD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,YAAY;gBAC9C,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,SAAS,EAAE,KAAK,CAAC,EAAE;aACpB,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -81,7 +81,7 @@ export async function shipAsItIs(tx, ship) {
81
81
  return { ship, labels };
82
82
  }
83
83
  export function reaching({ ship, labels }) {
84
- return { kind: ship.kind, labels: labels.map((label) => label.valueId) };
84
+ return { kind: ship.kind, labels: labels.map(({ labelId, valueId }) => ({ labelId, valueId })) };
85
85
  }
86
86
  function refused({ ship, labels }) {
87
87
  return { id: ship.id, name: ship.name, labels };
@@ -1 +1 @@
1
- {"version":3,"file":"check-reach.js","sourceRoot":"","sources":["../../../src/domain/registry/check-reach.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-reach.js","sourceRoot":"","sources":["../../../src/domain/registry/check-reach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { IdGenerator } from '@aeolus-fleet/common';
2
+ import type { Caller } from '../shared/caller.js';
3
+ import type { Clock } from '../shared/clock.js';
4
+ import { type EventLog } from '../shared/events.js';
5
+ import { type Result } from '../shared/result.js';
6
+ import type { UnitOfWork } from '../shared/unit-of-work.js';
7
+ import { type DeclareNetworkRulesRefusal } from './declared-network-rules.js';
8
+ import type { NetworkRule } from './network-settings.js';
9
+ import type { DeclaredNetworkRulesRepository, LabelRepository, ShipRepository } from './ports.js';
10
+ export interface DeclareNetworkRulesTx {
11
+ labels: Pick<LabelRepository, 'find' | 'findByValueForShare'>;
12
+ ships: Pick<ShipRepository, 'find'>;
13
+ declaredNetworkRules: Pick<DeclaredNetworkRulesRepository, 'save'>;
14
+ events: EventLog;
15
+ }
16
+ export type DeclareNetworkRules = (caller: Caller, input: {
17
+ rules: readonly NetworkRule[];
18
+ }) => Promise<Result<{
19
+ rules: number;
20
+ }, DeclareNetworkRulesRefusal>>;
21
+ /**
22
+ * Use case: a ship declares the network rules it needs on the labels it owns,
23
+ * its whole list, or none to withdraw them (decision 0037). Its scope
24
+ * (labels:define) is checked before this runs. In one unit of work: the
25
+ * labels its terms name as the fleet has them now, its list in place of the
26
+ * one before, and NetworkRulesDeclared. Nothing comes in force here: the
27
+ * networking plugin adds them to argo's rules when it supplies the list.
28
+ */
29
+ export declare function createDeclareNetworkRules(deps: {
30
+ uow: UnitOfWork<DeclareNetworkRulesTx>;
31
+ clock: Clock;
32
+ ids: IdGenerator;
33
+ }): DeclareNetworkRules;
@@ -0,0 +1,30 @@
1
+ import { recordEvent, shipActor } from '../shared/events.js';
2
+ import { ok } from '../shared/result.js';
3
+ import { declareNetworkRules, namedInRules } from './declared-network-rules.js';
4
+ /**
5
+ * Use case: a ship declares the network rules it needs on the labels it owns,
6
+ * its whole list, or none to withdraw them (decision 0037). Its scope
7
+ * (labels:define) is checked before this runs. In one unit of work: the
8
+ * labels its terms name as the fleet has them now, its list in place of the
9
+ * one before, and NetworkRulesDeclared. Nothing comes in force here: the
10
+ * networking plugin adds them to argo's rules when it supplies the list.
11
+ */
12
+ export function createDeclareNetworkRules(deps) {
13
+ return (caller, input) => deps.uow.run(async (tx) => {
14
+ const { fleetId, shipId } = caller;
15
+ const { labelIds, valueIds } = namedInRules(input.rules);
16
+ const found = await Promise.all([...labelIds.map((labelId) => tx.labels.find(fleetId, labelId)), ...valueIds.map((valueId) => tx.labels.findByValueForShare(fleetId, valueId))]);
17
+ const labels = found.filter((label) => label !== undefined);
18
+ const ownerNames = new Map(await Promise.all(labels.map(async (label) => [label.ownerShipId, (await tx.ships.find(fleetId, label.ownerShipId))?.name ?? label.ownerShipId])));
19
+ const declared = declareNetworkRules({ labels, ownerNameOf: (ownerShipId) => ownerNames.get(ownerShipId) ?? ownerShipId }, { fleetId, shipId, rules: input.rules, at: deps.clock.now(), actor: shipActor(shipId) });
20
+ if (!declared.isOk) {
21
+ return declared;
22
+ }
23
+ await tx.declaredNetworkRules.save(declared.value.declared);
24
+ for (const event of declared.value.events) {
25
+ await recordEvent({ events: tx.events, ids: deps.ids }, event);
26
+ }
27
+ return ok({ rules: declared.value.declared.rules.length });
28
+ });
29
+ }
30
+ //# sourceMappingURL=declare-network-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declare-network-rules.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAmC,MAAM,6BAA6B,CAAC;AAcjH;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAgF;IACxH,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAkE,EAAE;QACxF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjL,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAkB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,WAAW,CAAU,CAAC,CAAC,CAAC,CAAC;QACvL,MAAM,QAAQ,GAAG,mBAAmB,CAClC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE,EACpF,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CACxF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The network rules a ship declares on the labels it owns (decision 0037),
3
+ * such as a plugin's for the ships it labels. Declared, they are not in
4
+ * force: the fleet's networking plugin adds them to argo's rules when it
5
+ * supplies the list. Only rules on labels the ship owns keep them safe: only
6
+ * it assigns those labels, so its rules reach no ship it did not label.
7
+ */
8
+ import { type FleetId, type LabelId, type LabelValueId, type ShipId } from '@aeolus-fleet/common';
9
+ import { type DomainError } from '../shared/errors.js';
10
+ import type { Actor, NewEvent } from '../shared/events.js';
11
+ import { type Result } from '../shared/result.js';
12
+ import type { Label } from './label.js';
13
+ import { type NetworkRule } from './network-settings.js';
14
+ /** One ship's declared rules, its whole list; a ship that declares none holds none. */
15
+ export interface DeclaredNetworkRules {
16
+ fleetId: FleetId;
17
+ shipId: ShipId;
18
+ rules: readonly NetworkRule[];
19
+ }
20
+ export type DeclareNetworkRulesRefusal = DomainError<'INVALID_NETWORK_RULES' | 'NOT_THE_LABEL_OWNER' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_NOT_FOUND'>;
21
+ /** The labels a declaration's terms name, as the fleet has them now, with each owner's name for a refusal. */
22
+ export interface NamedLabels {
23
+ labels: readonly Label[];
24
+ ownerNameOf: (shipId: ShipId) => string;
25
+ }
26
+ /** Every label and every exact value the rules' terms name, each once: what the caller looks up before declaring. */
27
+ export declare function namedInRules(rules: readonly NetworkRule[]): {
28
+ labelIds: LabelId[];
29
+ valueIds: LabelValueId[];
30
+ };
31
+ /**
32
+ * The ship declares its whole list from now on, replacing what it declared
33
+ * before; an empty list withdraws them. At most 20, each rule within
34
+ * decision 0034's own limits, and every term on a label the ship owns: an
35
+ * exact value's label, and the label of a term of any or the same value. An
36
+ * id the fleet does not have is refused, as its owner cannot be checked.
37
+ * NetworkRulesDeclared names the ship and the number of rules, never them.
38
+ */
39
+ export declare function declareNetworkRules(named: NamedLabels, change: {
40
+ fleetId: FleetId;
41
+ shipId: ShipId;
42
+ rules: readonly NetworkRule[];
43
+ at: Date;
44
+ actor: Actor;
45
+ }): Result<{
46
+ declared: DeclaredNetworkRules;
47
+ events: NewEvent[];
48
+ }, DeclareNetworkRulesRefusal>;
49
+ /**
50
+ * The retired ship's declared rules go with it, as its labels do (decision
51
+ * 0031): none from now on, with NetworkRulesDeclared of none. A ship that
52
+ * declared none changes nothing.
53
+ */
54
+ export declare function withdrawWithRetiredShip(current: DeclaredNetworkRules | undefined, change: {
55
+ at: Date;
56
+ actor: Actor;
57
+ }): {
58
+ declared: DeclaredNetworkRules;
59
+ events: NewEvent[];
60
+ } | undefined;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The network rules a ship declares on the labels it owns (decision 0037),
3
+ * such as a plugin's for the ships it labels. Declared, they are not in
4
+ * force: the fleet's networking plugin adds them to argo's rules when it
5
+ * supplies the list. Only rules on labels the ship owns keep them safe: only
6
+ * it assigns those labels, so its rules reach no ship it did not label.
7
+ */
8
+ import { DECLARED_NETWORK_RULES_MAX } from '@aeolus-fleet/common';
9
+ import { refuse } from '../shared/errors.js';
10
+ import { ok } from '../shared/result.js';
11
+ import { copyOfRule, invalidRule } from './network-settings.js';
12
+ /** Every label and every exact value the rules' terms name, each once: what the caller looks up before declaring. */
13
+ export function namedInRules(rules) {
14
+ const terms = rules.flatMap((rule) => [...rule.from, ...rule.to]);
15
+ return {
16
+ labelIds: [...new Set(terms.flatMap((term) => (typeof term === 'string' ? [] : [term.labelId])))],
17
+ valueIds: [...new Set(terms.flatMap((term) => (typeof term === 'string' ? [term] : [])))],
18
+ };
19
+ }
20
+ /**
21
+ * The ship declares its whole list from now on, replacing what it declared
22
+ * before; an empty list withdraws them. At most 20, each rule within
23
+ * decision 0034's own limits, and every term on a label the ship owns: an
24
+ * exact value's label, and the label of a term of any or the same value. An
25
+ * id the fleet does not have is refused, as its owner cannot be checked.
26
+ * NetworkRulesDeclared names the ship and the number of rules, never them.
27
+ */
28
+ export function declareNetworkRules(named, change) {
29
+ const { fleetId, shipId, rules } = change;
30
+ if (rules.length > DECLARED_NETWORK_RULES_MAX) {
31
+ return refuse('INVALID_NETWORK_RULES', `A ship declares at most ${String(DECLARED_NETWORK_RULES_MAX)} network rules (decision 0037)`);
32
+ }
33
+ const invalid = rules.map(invalidRule).find((broken) => broken !== undefined);
34
+ if (invalid !== undefined) {
35
+ return refuse('INVALID_NETWORK_RULES', `${invalid} (decision 0034)`);
36
+ }
37
+ for (const term of rules.flatMap((rule) => [...rule.from, ...rule.to])) {
38
+ const owned = checkOwnedTerm(named, { term, shipId });
39
+ if (!owned.isOk) {
40
+ return owned;
41
+ }
42
+ }
43
+ return ok({ declared: { fleetId, shipId, rules: rules.map(copyOfRule) }, events: [declaredEvent({ fleetId, shipId, rules: rules.length, at: change.at, actor: change.actor })] });
44
+ }
45
+ /**
46
+ * The retired ship's declared rules go with it, as its labels do (decision
47
+ * 0031): none from now on, with NetworkRulesDeclared of none. A ship that
48
+ * declared none changes nothing.
49
+ */
50
+ export function withdrawWithRetiredShip(current, change) {
51
+ if (current === undefined) {
52
+ return undefined;
53
+ }
54
+ const { fleetId, shipId } = current;
55
+ return { declared: { fleetId, shipId, rules: [] }, events: [declaredEvent({ fleetId, shipId, rules: 0, ...change })] };
56
+ }
57
+ function declaredEvent(declared) {
58
+ return { type: 'NetworkRulesDeclared', fleetId: declared.fleetId, occurredAt: declared.at, actor: declared.actor, shipId: declared.shipId, details: { rules: declared.rules } };
59
+ }
60
+ function checkOwnedTerm(named, declaring) {
61
+ const { term, shipId } = declaring;
62
+ const label = typeof term === 'string' ? named.labels.find((each) => each.values.some((value) => value.id === term)) : named.labels.find((each) => each.id === term.labelId);
63
+ if (label === undefined) {
64
+ return typeof term === 'string' ? refuse('LABEL_VALUE_NOT_FOUND', `The fleet has no label value ${term}`) : refuse('LABEL_NOT_FOUND', `The fleet has no label ${term.labelId}`);
65
+ }
66
+ return label.ownerShipId === shipId
67
+ ? ok(undefined)
68
+ : refuse('NOT_THE_LABEL_OWNER', `The label ${label.key} is owned by ${named.ownerNameOf(label.ownerShipId)}: only its owner declares rules on it (decision 0037)`);
69
+ }
70
+ //# sourceMappingURL=declared-network-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-network-rules.js","sourceRoot":"","sources":["../../../src/domain/registry/declared-network-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,0BAA0B,EAAiF,MAAM,sBAAsB,CAAC;AAEjJ,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AAiBlF,qHAAqH;AACrH,MAAM,UAAU,YAAY,CAAC,KAA6B;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAkB,EAClB,MAAmG;IAEnG,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,MAAM,CAAC,0BAA0B,CAAC,gCAAgC,CAAC,CAAC;IACxI,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,uBAAuB,EAAE,GAAG,OAAO,kBAAkB,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAyC,EACzC,MAAkC;IAElC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACpC,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;AACzH,CAAC;AAED,SAAS,aAAa,CAAC,QAAqF;IAC1G,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AAClL,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB,EAAE,SAAiD;IAC3F,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,MAAM,KAAK,GACT,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IACjK,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClL,CAAC;IACD,OAAO,KAAK,CAAC,WAAW,KAAK,MAAM;QACjC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACf,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,aAAa,KAAK,CAAC,GAAG,gBAAgB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC;AACvK,CAAC"}
@@ -12,8 +12,8 @@ export interface LabelValue {
12
12
  * A label (docs/blueprint.md, "Label"; decision 0031): a key with a defined
13
13
  * set of values, each with its own id, owned by the ship that defined it.
14
14
  * Ids are for machines, key and value texts for people. Only its owner
15
- * changes its values and assigns them, never to itself. It retires with its
16
- * owner.
15
+ * changes its values and assigns them, to any ship, its own included. It
16
+ * retires with its owner.
17
17
  */
18
18
  export interface Label {
19
19
  fleetId: FleetId;
@@ -128,14 +128,13 @@ export declare function deleteLabel({ label, ownerName, carrierNames }: {
128
128
  }): Result<{
129
129
  events: NewEvent[];
130
130
  }, DeleteLabelRefusal>;
131
- type OwnShip = DomainError<'LABEL_ON_OWN_SHIP'>;
132
- export type AssignLabelRefusal = NotTheOwner | OwnShip | DomainError<'SHIP_ALREADY_RETIRED' | 'SHIP_LABEL_LIMIT_REACHED'>;
131
+ export type AssignLabelRefusal = NotTheOwner | DomainError<'SHIP_ALREADY_RETIRED' | 'SHIP_LABEL_LIMIT_REACHED'>;
133
132
  /**
134
133
  * The owner gives a ship one of its label's values, by its id: the ship
135
134
  * holds a set of values, so it may carry several of one label. A value it
136
- * carries changes nothing. Never the owner's own ship or a retired ship;
137
- * argo and the viewer ship as any other (decision 0016). A ship carries at
138
- * most 20 values. LabelAssigned names the ship, with the label and the value.
135
+ * carries changes nothing. Any ship, the owner's own included, but never a
136
+ * retired ship; argo and the viewer ship as any other (decision 0016). A ship
137
+ * carries at most 20 values. LabelAssigned names the ship, with the label and the value.
139
138
  */
140
139
  export declare function assignLabel({ label, ownerName, ship, carried, }: {
141
140
  label: Label;
@@ -151,16 +150,15 @@ export declare function assignLabel({ label, ownerName, ship, carried, }: {
151
150
  assignment: ShipLabel | undefined;
152
151
  events: NewEvent[];
153
152
  }, AssignLabelRefusal>;
154
- export type UnassignLabelRefusal = NotTheOwner | OwnShip;
153
+ export type UnassignLabelRefusal = NotTheOwner;
155
154
  /**
156
155
  * The owner takes one value of its label off a ship. A ship that does not
157
156
  * carry it changes nothing. LabelUnassigned names the ship, with the label
158
157
  * and the value it carried.
159
158
  */
160
- export declare function unassignLabel({ label, ownerName, ship, carried, }: {
159
+ export declare function unassignLabel({ label, ownerName, carried, }: {
161
160
  label: Label;
162
161
  ownerName: string;
163
- ship: Ship;
164
162
  carried: readonly ShipLabel[];
165
163
  }, input: {
166
164
  callerShipId: ShipId;
@@ -173,26 +173,18 @@ function assignmentEvent({ label, assignment }, change) {
173
173
  },
174
174
  };
175
175
  }
176
- /** No ship labels itself: that would let it enforce a plugin's policy on its own (decision 0031). */
177
- function checkNotOwnShip(label, ship) {
178
- return ship.id === label.ownerShipId ? refuse('LABEL_ON_OWN_SHIP', `No ship labels itself: ${label.key} is your own ship's label`) : ok(undefined);
179
- }
180
176
  /**
181
177
  * The owner gives a ship one of its label's values, by its id: the ship
182
178
  * holds a set of values, so it may carry several of one label. A value it
183
- * carries changes nothing. Never the owner's own ship or a retired ship;
184
- * argo and the viewer ship as any other (decision 0016). A ship carries at
185
- * most 20 values. LabelAssigned names the ship, with the label and the value.
179
+ * carries changes nothing. Any ship, the owner's own included, but never a
180
+ * retired ship; argo and the viewer ship as any other (decision 0016). A ship
181
+ * carries at most 20 values. LabelAssigned names the ship, with the label and the value.
186
182
  */
187
183
  export function assignLabel({ label, ownerName, ship, carried, }, input) {
188
184
  const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'assigns' });
189
185
  if (!owned.isOk) {
190
186
  return owned;
191
187
  }
192
- const notOwn = checkNotOwnShip(label, ship);
193
- if (!notOwn.isOk) {
194
- return notOwn;
195
- }
196
188
  if (ship.retiredAt !== null) {
197
189
  return refuse('SHIP_ALREADY_RETIRED', `${ship.name} is retired`);
198
190
  }
@@ -218,15 +210,11 @@ export function assignLabel({ label, ownerName, ship, carried, }, input) {
218
210
  * carry it changes nothing. LabelUnassigned names the ship, with the label
219
211
  * and the value it carried.
220
212
  */
221
- export function unassignLabel({ label, ownerName, ship, carried, }, input) {
213
+ export function unassignLabel({ label, ownerName, carried, }, input) {
222
214
  const owned = checkOwner({ label, ownerName }, { shipId: input.callerShipId, act: 'unassigns' });
223
215
  if (!owned.isOk) {
224
216
  return owned;
225
217
  }
226
- const notOwn = checkNotOwnShip(label, ship);
227
- if (!notOwn.isOk) {
228
- return notOwn;
229
- }
230
218
  const current = carried.find((each) => each.valueId === input.valueId);
231
219
  if (!current) {
232
220
  return ok({ unassigned: undefined, events: [] });
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/domain/registry/label.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@
5
5
  * fleet holds its rules, or none (all-to-all), with a version that moves on
6
6
  * every set, so a refusal names the settings that refused it.
7
7
  */
8
- import { type FleetId, type LabelValueId, type NetworkPluginDeclaration, type ShipId, type ShipKind, type WhileUnavailable } from '@aeolus-fleet/common';
8
+ import { type FleetId, type LabelId, type LabelValueId, type NetworkPluginDeclaration, type SelectorTerm, type ShipId, type ShipKind, type WhileUnavailable } from '@aeolus-fleet/common';
9
9
  import { type DomainError } from '../shared/errors.js';
10
10
  import type { Actor, NewEvent } from '../shared/events.js';
11
11
  import { type Result } from '../shared/result.js';
12
- /** The ships carrying every one of these label values may send to the ships carrying every one of those. */
12
+ /** The ships for which every term of `from` holds may send to the ships for which every term of `to` holds. */
13
13
  export interface NetworkRule {
14
- from: readonly LabelValueId[];
15
- to: readonly LabelValueId[];
14
+ from: readonly SelectorTerm[];
15
+ to: readonly SelectorTerm[];
16
16
  }
17
17
  /**
18
18
  * The fleet's networking plugin (decision 0035): the ship that alone sets the
@@ -66,14 +66,18 @@ export declare function unregisterNetworkPlugin(current: NetworkSettings, change
66
66
  }, NotTheNetworkPlugin>;
67
67
  /**
68
68
  * The fleet's rules from now on, replacing the ones it had, at the next
69
- * version, with NetworkRulesSet. The rules are within the decision's limits:
70
- * at most 200, each selector at most 20 label values, as a ship carries no
71
- * more, each once. A value id need not exist: an unknown one matches no ship,
72
- * as in label selection. Only the fleet's registered networking plugin sets
73
- * them, argo included: rules exist only through a plugin (decision 0035).
69
+ * version, with NetworkRulesSet. The rules are within the decisions' limits:
70
+ * at most 200 of argo's plus every rule the fleet's ships declared, which the
71
+ * plugin adds to argo's when it supplies them (decision 0037); each selector
72
+ * at most 20 terms, as a ship carries no more label values, each term once, and a term of the same value on a label on
73
+ * both sides of its rule, as it binds that label there. An id need not
74
+ * exist: an unknown one matches no ship, as in label selection. Only the
75
+ * fleet's registered networking plugin sets them, argo included: rules exist
76
+ * only through a plugin (decision 0035).
74
77
  */
75
78
  export declare function setNetworkRules(current: NetworkSettings, change: {
76
79
  rules: readonly NetworkRule[] | null;
80
+ declaredRules: number;
77
81
  shipId: ShipId;
78
82
  at: Date;
79
83
  actor: Actor;
@@ -81,6 +85,10 @@ export declare function setNetworkRules(current: NetworkSettings, change: {
81
85
  settings: NetworkSettings;
82
86
  events: NewEvent[];
83
87
  }, SetNetworkRulesRefusal>;
88
+ /** What breaks a rule's own limits, said for the caller, or undefined when it keeps them (decision 0034). */
89
+ export declare function invalidRule(rule: NetworkRule): string | undefined;
90
+ /** A copy of the rule, so what is kept never changes with what was given. */
91
+ export declare function copyOfRule(rule: NetworkRule): NetworkRule;
84
92
  /**
85
93
  * Whether the plugin responds at `now` (decision 0035): its ship holds a
86
94
  * lease whose crew called the fleet no longer ago than it declared. Its last
@@ -103,10 +111,15 @@ export interface RulesInForce {
103
111
  * supplied last.
104
112
  */
105
113
  export declare function rulesInForce(settings: NetworkSettings, isPluginResponding: boolean): RulesInForce;
114
+ /** A label value a ship carries, with the label it is of, so a term of any or the same value finds it. */
115
+ export interface ReachingLabel {
116
+ labelId: LabelId;
117
+ valueId: LabelValueId;
118
+ }
106
119
  /** A ship as a send's check sees it: its kind, for the argo exception, and the label values it carries. */
107
120
  export interface ReachingShip {
108
121
  kind: ShipKind;
109
- labels: readonly LabelValueId[];
122
+ labels: readonly ReachingLabel[];
110
123
  }
111
124
  /**
112
125
  * Whether the settings let the sender reach the recipient. With no rules,