@aeolus-fleet/core 0.26.1 → 0.27.1
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.
- package/README.md +1 -1
- package/dist/adapters/http/request-credentials.d.ts +2 -9
- package/dist/adapters/http/request-credentials.js +8 -1
- package/dist/adapters/http/request-credentials.js.map +1 -1
- package/dist/adapters/http/server.js +2 -1
- package/dist/adapters/http/server.js.map +1 -1
- package/dist/adapters/mcp/mcp-endpoint.js +11 -1
- package/dist/adapters/mcp/mcp-endpoint.js.map +1 -1
- package/dist/adapters/prisma/generated/browser.d.ts +14 -0
- package/dist/adapters/prisma/generated/client.d.ts +14 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +30 -0
- package/dist/adapters/prisma/generated/enums.d.ts +10 -0
- package/dist/adapters/prisma/generated/enums.js +10 -1
- package/dist/adapters/prisma/generated/enums.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/class.d.ts +22 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +186 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +27 -2
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +27 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +27 -2
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/Delivery.d.ts +71 -1
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +558 -0
- package/dist/adapters/prisma/generated/models/Lease.d.ts +172 -1
- package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +185 -21
- package/dist/adapters/prisma/generated/models/PluginConnection.d.ts +1180 -0
- package/dist/adapters/prisma/generated/models/PluginConnection.js +2 -0
- package/dist/adapters/prisma/generated/models/PluginConnection.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +71 -1
- package/dist/adapters/prisma/generated/models/ScopeNamespace.d.ts +1220 -0
- package/dist/adapters/prisma/generated/models/ScopeNamespace.js +2 -0
- package/dist/adapters/prisma/generated/models/ScopeNamespace.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Ship.d.ts +1269 -51
- package/dist/adapters/prisma/generated/models.d.ts +2 -0
- package/dist/adapters/prisma/health.js +27 -7
- package/dist/adapters/prisma/health.js.map +1 -1
- package/dist/adapters/prisma/history.js +18 -72
- package/dist/adapters/prisma/history.js.map +1 -1
- package/dist/adapters/prisma/messaging.js +31 -35
- package/dist/adapters/prisma/messaging.js.map +1 -1
- package/dist/adapters/prisma/network.js +45 -15
- package/dist/adapters/prisma/network.js.map +1 -1
- package/dist/adapters/prisma/overdue.js +4 -3
- package/dist/adapters/prisma/overdue.js.map +1 -1
- package/dist/adapters/prisma/plugin-connections.d.ts +4 -0
- package/dist/adapters/prisma/plugin-connections.js +20 -0
- package/dist/adapters/prisma/plugin-connections.js.map +1 -0
- package/dist/adapters/prisma/registry.js +68 -13
- package/dist/adapters/prisma/registry.js.map +1 -1
- package/dist/adapters/prisma/rows.d.ts +3 -0
- package/dist/adapters/prisma/rows.js +22 -7
- package/dist/adapters/prisma/rows.js.map +1 -1
- package/dist/adapters/prisma/scope-namespaces.d.ts +4 -0
- package/dist/adapters/prisma/scope-namespaces.js +39 -0
- package/dist/adapters/prisma/scope-namespaces.js.map +1 -0
- package/dist/adapters/prisma/unit-of-work.d.ts +3 -1
- package/dist/adapters/prisma/unit-of-work.js +4 -0
- package/dist/adapters/prisma/unit-of-work.js.map +1 -1
- package/dist/adapters/rest/rest-api.js +2 -2
- package/dist/adapters/rest/rest-api.js.map +1 -1
- package/dist/adapters/trpc/console.d.ts +1 -1
- package/dist/adapters/trpc/console.js +6 -4
- package/dist/adapters/trpc/console.js.map +1 -1
- package/dist/adapters/trpc/context.d.ts +28 -4
- package/dist/adapters/trpc/fleet.d.ts +243 -90
- package/dist/adapters/trpc/fleet.js +146 -57
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +366 -86
- package/dist/adapters/trpc/ship-contract.js +5 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -1
- package/dist/adapters/trpc/ship-protocol.js +7 -5
- package/dist/adapters/trpc/ship-protocol.js.map +1 -1
- package/dist/adapters/trpc/ship.d.ts +156 -3
- package/dist/adapters/trpc/ship.js +89 -8
- package/dist/adapters/trpc/ship.js.map +1 -1
- package/dist/adapters/trpc/trpc.d.ts +13 -9
- package/dist/adapters/trpc/trpc.js +90 -26
- package/dist/adapters/trpc/trpc.js.map +1 -1
- package/dist/domain/messaging/check-inbox.d.ts +5 -5
- package/dist/domain/messaging/check-inbox.js +9 -7
- package/dist/domain/messaging/check-inbox.js.map +1 -1
- package/dist/domain/messaging/delivery.d.ts +8 -2
- package/dist/domain/messaging/delivery.js +14 -9
- package/dist/domain/messaging/delivery.js.map +1 -1
- package/dist/domain/messaging/dismiss-delivery.d.ts +9 -4
- package/dist/domain/messaging/dismiss-delivery.js +26 -19
- package/dist/domain/messaging/dismiss-delivery.js.map +1 -1
- package/dist/domain/messaging/hand-over-delivery.d.ts +1 -0
- package/dist/domain/messaging/hand-over-delivery.js +1 -0
- package/dist/domain/messaging/hand-over-delivery.js.map +1 -1
- package/dist/domain/messaging/message.d.ts +11 -5
- package/dist/domain/messaging/message.js +11 -4
- package/dist/domain/messaging/message.js.map +1 -1
- package/dist/domain/messaging/overdue.d.ts +2 -0
- package/dist/domain/messaging/overdue.js +3 -0
- package/dist/domain/messaging/overdue.js.map +1 -1
- package/dist/domain/messaging/ping-ship.d.ts +3 -3
- package/dist/domain/messaging/ping-ship.js +6 -2
- package/dist/domain/messaging/ping-ship.js.map +1 -1
- package/dist/domain/messaging/ports.d.ts +11 -3
- package/dist/domain/messaging/push-receive-deliveries.d.ts +4 -1
- package/dist/domain/messaging/push-receive-deliveries.js +5 -3
- package/dist/domain/messaging/push-receive-deliveries.js.map +1 -1
- package/dist/domain/messaging/receive-deliveries.d.ts +23 -0
- package/dist/domain/messaging/receive-deliveries.js +6 -3
- package/dist/domain/messaging/receive-deliveries.js.map +1 -1
- package/dist/domain/messaging/receive-reply.d.ts +32 -0
- package/dist/domain/messaging/receive-reply.js +25 -0
- package/dist/domain/messaging/receive-reply.js.map +1 -0
- package/dist/domain/messaging/resend-delivery.d.ts +5 -2
- package/dist/domain/messaging/resend-delivery.js +8 -4
- package/dist/domain/messaging/resend-delivery.js.map +1 -1
- package/dist/domain/messaging/send-message.d.ts +9 -2
- package/dist/domain/messaging/send-message.js +12 -2
- package/dist/domain/messaging/send-message.js.map +1 -1
- package/dist/domain/messaging/send-request.d.ts +3 -1
- package/dist/domain/messaging/send-request.js +4 -2
- package/dist/domain/messaging/send-request.js.map +1 -1
- package/dist/domain/registry/assign-label.d.ts +2 -1
- package/dist/domain/registry/assign-label.js +3 -2
- package/dist/domain/registry/assign-label.js.map +1 -1
- package/dist/domain/registry/check-reach.d.ts +69 -6
- package/dist/domain/registry/check-reach.js +109 -12
- package/dist/domain/registry/check-reach.js.map +1 -1
- package/dist/domain/registry/commission-ship.d.ts +21 -8
- package/dist/domain/registry/commission-ship.js +55 -10
- package/dist/domain/registry/commission-ship.js.map +1 -1
- package/dist/domain/registry/connect-plugin.d.ts +30 -0
- package/dist/domain/registry/connect-plugin.js +35 -0
- package/dist/domain/registry/connect-plugin.js.map +1 -0
- package/dist/domain/registry/crew-request.d.ts +1 -1
- package/dist/domain/registry/declare-scopes.d.ts +38 -0
- package/dist/domain/registry/declare-scopes.js +34 -0
- package/dist/domain/registry/declare-scopes.js.map +1 -0
- package/dist/domain/registry/declared-network-rules.d.ts +2 -1
- package/dist/domain/registry/declared-network-rules.js +11 -5
- package/dist/domain/registry/declared-network-rules.js.map +1 -1
- package/dist/domain/registry/discover.d.ts +29 -0
- package/dist/domain/registry/discover.js +54 -0
- package/dist/domain/registry/discover.js.map +1 -0
- package/dist/domain/registry/explain-reach.d.ts +13 -12
- package/dist/domain/registry/explain-reach.js +35 -12
- package/dist/domain/registry/explain-reach.js.map +1 -1
- package/dist/domain/registry/get-ship.d.ts +11 -3
- package/dist/domain/registry/get-ship.js +8 -2
- package/dist/domain/registry/get-ship.js.map +1 -1
- package/dist/domain/registry/get-starting-prompt.d.ts +18 -2
- package/dist/domain/registry/get-starting-prompt.js +7 -7
- package/dist/domain/registry/get-starting-prompt.js.map +1 -1
- package/dist/domain/registry/grant-scopes.d.ts +34 -0
- package/dist/domain/registry/grant-scopes.js +35 -0
- package/dist/domain/registry/grant-scopes.js.map +1 -0
- package/dist/domain/registry/label.d.ts +12 -7
- package/dist/domain/registry/label.js +21 -4
- package/dist/domain/registry/label.js.map +1 -1
- package/dist/domain/registry/leases.d.ts +6 -3
- package/dist/domain/registry/leases.js +7 -5
- package/dist/domain/registry/leases.js.map +1 -1
- package/dist/domain/registry/list-fleet.d.ts +19 -6
- package/dist/domain/registry/list-fleet.js +18 -3
- package/dist/domain/registry/list-fleet.js.map +1 -1
- package/dist/domain/registry/list-scopes.d.ts +24 -0
- package/dist/domain/registry/list-scopes.js +22 -0
- package/dist/domain/registry/list-scopes.js.map +1 -0
- package/dist/domain/registry/managed-or-assigned.d.ts +25 -0
- package/dist/domain/registry/managed-or-assigned.js +23 -0
- package/dist/domain/registry/managed-or-assigned.js.map +1 -0
- package/dist/domain/registry/named-namespaces.d.ts +19 -0
- package/dist/domain/registry/named-namespaces.js +19 -0
- package/dist/domain/registry/named-namespaces.js.map +1 -0
- package/dist/domain/registry/network-settings.d.ts +95 -24
- package/dist/domain/registry/network-settings.js +146 -46
- package/dist/domain/registry/network-settings.js.map +1 -1
- package/dist/domain/registry/plugin-connection.d.ts +48 -0
- package/dist/domain/registry/plugin-connection.js +35 -0
- package/dist/domain/registry/plugin-connection.js.map +1 -0
- package/dist/domain/registry/ports.d.ts +75 -1
- package/dist/domain/registry/public.d.ts +3 -2
- package/dist/domain/registry/public.js +3 -2
- package/dist/domain/registry/public.js.map +1 -1
- package/dist/domain/registry/reach-refusal.d.ts +12 -4
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +12 -3
- package/dist/domain/registry/read-assigned-crew-requests.js +8 -8
- package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -1
- package/dist/domain/registry/read-built-in-rules.d.ts +20 -0
- package/dist/domain/registry/read-built-in-rules.js +24 -0
- package/dist/domain/registry/read-built-in-rules.js.map +1 -0
- package/dist/domain/registry/read-clear-requests.d.ts +5 -3
- package/dist/domain/registry/read-clear-requests.js +7 -5
- package/dist/domain/registry/read-clear-requests.js.map +1 -1
- package/dist/domain/registry/read-network-plugin.d.ts +23 -0
- package/dist/domain/registry/read-network-plugin.js +15 -0
- package/dist/domain/registry/read-network-plugin.js.map +1 -0
- package/dist/domain/registry/read-on-behalf.d.ts +20 -0
- package/dist/domain/registry/read-on-behalf.js +31 -0
- package/dist/domain/registry/read-on-behalf.js.map +1 -0
- package/dist/domain/registry/read-reach.d.ts +64 -0
- package/dist/domain/registry/read-reach.js +83 -0
- package/dist/domain/registry/read-reach.js.map +1 -0
- package/dist/domain/registry/recrew-ship.d.ts +3 -2
- package/dist/domain/registry/recrew-ship.js +8 -1
- package/dist/domain/registry/recrew-ship.js.map +1 -1
- package/dist/domain/registry/release-ship.d.ts +10 -5
- package/dist/domain/registry/release-ship.js +11 -8
- package/dist/domain/registry/release-ship.js.map +1 -1
- package/dist/domain/registry/remove-crew-request.d.ts +4 -3
- package/dist/domain/registry/remove-crew-request.js +6 -1
- package/dist/domain/registry/remove-crew-request.js.map +1 -1
- package/dist/domain/registry/rename-ship.d.ts +7 -5
- package/dist/domain/registry/rename-ship.js +9 -3
- package/dist/domain/registry/rename-ship.js.map +1 -1
- package/dist/domain/registry/request-crew.d.ts +5 -4
- package/dist/domain/registry/request-crew.js +6 -1
- package/dist/domain/registry/request-crew.js.map +1 -1
- package/dist/domain/registry/request-worktree-clear.d.ts +3 -2
- package/dist/domain/registry/request-worktree-clear.js +6 -1
- package/dist/domain/registry/request-worktree-clear.js.map +1 -1
- package/dist/domain/registry/retire-ship.d.ts +17 -7
- package/dist/domain/registry/retire-ship.js +48 -5
- package/dist/domain/registry/retire-ship.js.map +1 -1
- package/dist/domain/registry/scope-grant.d.ts +53 -0
- package/dist/domain/registry/scope-grant.js +74 -0
- package/dist/domain/registry/scope-grant.js.map +1 -0
- package/dist/domain/registry/scope-namespace.d.ts +68 -0
- package/dist/domain/registry/scope-namespace.js +82 -0
- package/dist/domain/registry/scope-namespace.js.map +1 -0
- package/dist/domain/registry/set-built-in-rule.d.ts +28 -0
- package/dist/domain/registry/set-built-in-rule.js +33 -0
- package/dist/domain/registry/set-built-in-rule.js.map +1 -0
- package/dist/domain/registry/set-network-rules.d.ts +3 -3
- package/dist/domain/registry/set-network-rules.js +2 -2
- package/dist/domain/registry/set-owner.d.ts +30 -0
- package/dist/domain/registry/set-owner.js +37 -0
- package/dist/domain/registry/set-owner.js.map +1 -0
- package/dist/domain/registry/set-statement.d.ts +27 -0
- package/dist/domain/registry/set-statement.js +28 -0
- package/dist/domain/registry/set-statement.js.map +1 -0
- package/dist/domain/registry/ship.d.ts +74 -10
- package/dist/domain/registry/ship.js +128 -10
- package/dist/domain/registry/ship.js.map +1 -1
- package/dist/domain/registry/statement.d.ts +32 -0
- package/dist/domain/registry/statement.js +39 -0
- package/dist/domain/registry/statement.js.map +1 -0
- package/dist/domain/registry/unassign-label.js +1 -1
- package/dist/domain/registry/unassign-label.js.map +1 -1
- package/dist/domain/registry/whoami.d.ts +5 -1
- package/dist/domain/registry/whoami.js +7 -4
- package/dist/domain/registry/whoami.js.map +1 -1
- package/dist/domain/shared/caller.d.ts +5 -2
- package/dist/domain/shared/caller.js.map +1 -1
- package/dist/domain/shared/delivery-way.d.ts +9 -5
- package/dist/domain/shared/delivery-way.js +17 -5
- package/dist/domain/shared/delivery-way.js.map +1 -1
- package/dist/domain/shared/errors.d.ts +1 -1
- package/dist/domain/shared/errors.js.map +1 -1
- package/dist/domain/shared/events-read.d.ts +16 -0
- package/dist/domain/shared/events-read.js +15 -0
- package/dist/domain/shared/events-read.js.map +1 -0
- package/dist/domain/shared/follow-fleet.d.ts +8 -2
- package/dist/domain/shared/follow-fleet.js +14 -4
- package/dist/domain/shared/follow-fleet.js.map +1 -1
- package/dist/domain/shared/health.d.ts +11 -2
- package/dist/domain/shared/health.js +11 -3
- package/dist/domain/shared/health.js.map +1 -1
- package/dist/domain/shared/history.d.ts +11 -42
- package/dist/domain/shared/history.js +9 -0
- package/dist/domain/shared/history.js.map +1 -1
- package/dist/domain/shared/read-fleet-events.d.ts +8 -2
- package/dist/domain/shared/read-fleet-events.js +10 -4
- package/dist/domain/shared/read-fleet-events.js.map +1 -1
- package/dist/domain/shared/read-health.d.ts +5 -1
- package/dist/domain/shared/read-health.js +13 -2
- package/dist/domain/shared/read-health.js.map +1 -1
- package/dist/domain/shared/read-inbox.d.ts +6 -3
- package/dist/domain/shared/read-inbox.js +14 -4
- package/dist/domain/shared/read-inbox.js.map +1 -1
- package/dist/domain/shared/read-message.d.ts +6 -2
- package/dist/domain/shared/read-message.js +6 -2
- package/dist/domain/shared/read-message.js.map +1 -1
- package/dist/domain/shared/read-needs-attention.d.ts +4 -1
- package/dist/domain/shared/read-needs-attention.js +8 -3
- package/dist/domain/shared/read-needs-attention.js.map +1 -1
- package/dist/domain/shared/read-sent-message.d.ts +31 -0
- package/dist/domain/shared/read-sent-message.js +28 -0
- package/dist/domain/shared/read-sent-message.js.map +1 -0
- package/dist/domain/shared/read-ship-messages.d.ts +6 -2
- package/dist/domain/shared/read-ship-messages.js +7 -2
- package/dist/domain/shared/read-ship-messages.js.map +1 -1
- package/dist/domain/shared/read-ship-timeline.d.ts +5 -2
- package/dist/domain/shared/read-ship-timeline.js +11 -6
- package/dist/domain/shared/read-ship-timeline.js.map +1 -1
- package/dist/domain/shared/read-ship-way.d.ts +11 -4
- package/dist/domain/shared/read-ship-way.js +9 -2
- package/dist/domain/shared/read-ship-way.js.map +1 -1
- package/dist/domain/shared/stuck.d.ts +10 -1
- package/dist/domain/shared/stuck.js +5 -3
- package/dist/domain/shared/stuck.js.map +1 -1
- package/dist/testing/container-images.d.ts +14 -0
- package/dist/testing/container-images.js +18 -0
- package/dist/testing/container-images.js.map +1 -0
- package/dist/testing/database.d.ts +14 -0
- package/dist/testing/database.js +48 -0
- package/dist/testing/database.js.map +1 -0
- package/dist/testing/fleet.d.ts +13 -0
- package/dist/testing/fleet.js +17 -0
- package/dist/testing/fleet.js.map +1 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.js +12 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/keys.d.ts +1 -0
- package/dist/testing/keys.js +7 -0
- package/dist/testing/keys.js.map +1 -0
- package/dist/testing/migrate-lock.d.ts +12 -0
- package/dist/testing/migrate-lock.js +51 -0
- package/dist/testing/migrate-lock.js.map +1 -0
- package/dist/testing/migrated-template.d.ts +12 -0
- package/dist/testing/migrated-template.js +29 -0
- package/dist/testing/migrated-template.js.map +1 -0
- package/dist/testing/postgres-container.d.ts +16 -0
- package/dist/testing/postgres-container.js +30 -0
- package/dist/testing/postgres-container.js.map +1 -0
- package/dist/testing/postgres-global-setup.d.ts +15 -0
- package/dist/testing/postgres-global-setup.js +20 -0
- package/dist/testing/postgres-global-setup.js.map +1 -0
- package/dist/testing/prisma-cli.d.ts +5 -0
- package/dist/testing/prisma-cli.js +15 -0
- package/dist/testing/prisma-cli.js.map +1 -0
- package/dist/testing/result.d.ts +5 -0
- package/dist/testing/result.js +15 -0
- package/dist/testing/result.js.map +1 -0
- package/dist/wiring.d.ts +26 -4
- package/dist/wiring.js +51 -18
- package/dist/wiring.js.map +1 -1
- package/package.json +28 -2
- package/src/adapters/prisma/migrations/20261018100000_force_scope/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261018110000_forced_delivery/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261018120000_person_and_app_ships/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261018130000_owners/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261018140000_owners_on_reach_refusals/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261018150000_network_verbs/migration.sql +9 -0
- package/src/adapters/prisma/migrations/20261018160000_built_in_rules/migration.sql +13 -0
- package/src/adapters/prisma/migrations/20261018170000_network_rules_a_list/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20261018180000_verb_on_reach_refusals/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261018200000_lease_statements/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261018210000_declare_and_grant_scopes/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261018220000_plugin_scopes/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261018230000_scope_namespaces/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261018240000_trierarch_plugin_crew_run/migration.sql +44 -0
- package/src/adapters/prisma/migrations/20261018250000_scope_catalogue/migration.sql +67 -0
- package/src/adapters/prisma/migrations/20261019090000_reach_refusal_asked_by/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261019100000_on_behalf_scope/migration.sql +61 -0
- package/src/adapters/prisma/migrations/20261019110000_events_fleet_id_occurred_at/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261019130000_plugin_connections/migration.sql +54 -0
- package/src/adapters/prisma/migrations/20261019150000_network_plugin_registered_at/migration.sql +23 -0
- package/src/adapters/prisma/migrations/20261019160000_lease_waker/migration.sql +4 -0
- package/src/adapters/prisma/schema.prisma +81 -7
- package/dist/domain/shared/read-no-ship-can-take.d.ts +0 -13
- package/dist/domain/shared/read-no-ship-can-take.js +0 -12
- package/dist/domain/shared/read-no-ship-can-take.js.map +0 -1
- package/dist/domain/shared/read-overdue.d.ts +0 -13
- package/dist/domain/shared/read-overdue.js +0 -12
- package/dist/domain/shared/read-overdue.js.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IdGenerator } from '@aeolus-fleet/common';
|
|
2
|
+
import { type Caller } from '../shared/caller.js';
|
|
3
|
+
import { type Result } from '../shared/result.js';
|
|
4
|
+
import { type CheckManageTx, type NotReachable } from './check-reach.js';
|
|
5
|
+
import type { NotTheCallers } from './crew-request.js';
|
|
6
|
+
import type { CrewRequestRepository } from './ports.js';
|
|
7
|
+
import type { Ship } from './ship.js';
|
|
8
|
+
export type ManagedOrAssignedTx = CheckManageTx & {
|
|
9
|
+
crewRequests: Pick<CrewRequestRepository, 'find'>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Whether the caller may act on the ship for a call it takes with
|
|
13
|
+
* fleet:manage or crew:run (decision 0029): a ship whose crew request is
|
|
14
|
+
* assigned to the caller's ship, by crew:run; else, with fleet:manage, a ship
|
|
15
|
+
* in its manage reach (decision 0034), a refusal recorded as the reach check
|
|
16
|
+
* records it.
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkManagedOrAssigned(deps: {
|
|
19
|
+
tx: ManagedOrAssignedTx;
|
|
20
|
+
ids: IdGenerator;
|
|
21
|
+
}, call: {
|
|
22
|
+
caller: Caller;
|
|
23
|
+
ship: Ship;
|
|
24
|
+
at: Date;
|
|
25
|
+
}): Promise<Result<undefined, NotTheCallers | NotReachable>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { hasScope } from '../shared/caller.js';
|
|
2
|
+
import { refuse } from '../shared/errors.js';
|
|
3
|
+
import { ok } from '../shared/result.js';
|
|
4
|
+
import { checkManage } from './check-reach.js';
|
|
5
|
+
/**
|
|
6
|
+
* Whether the caller may act on the ship for a call it takes with
|
|
7
|
+
* fleet:manage or crew:run (decision 0029): a ship whose crew request is
|
|
8
|
+
* assigned to the caller's ship, by crew:run; else, with fleet:manage, a ship
|
|
9
|
+
* in its manage reach (decision 0034), a refusal recorded as the reach check
|
|
10
|
+
* records it.
|
|
11
|
+
*/
|
|
12
|
+
export async function checkManagedOrAssigned(deps, call) {
|
|
13
|
+
const { tx, ids } = deps;
|
|
14
|
+
const { caller, ship, at } = call;
|
|
15
|
+
if ((await tx.crewRequests.find(ship.fleetId, ship.id))?.assignedTo === caller.shipId) {
|
|
16
|
+
return ok(undefined);
|
|
17
|
+
}
|
|
18
|
+
if (!hasScope(caller, 'fleet:manage')) {
|
|
19
|
+
return refuse('CREW_REQUEST_NOT_ASSIGNED_TO_CALLER', `${ship.name}'s crew request is not assigned to your ship`);
|
|
20
|
+
}
|
|
21
|
+
return checkManage({ tx, ids }, { fleetId: ship.fleetId, managerShipId: caller.shipId, shipId: ship.id, at });
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=managed-or-assigned.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-or-assigned.js","sourceRoot":"","sources":["../../../src/domain/registry/managed-or-assigned.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAyC,MAAM,kBAAkB,CAAC;AAOtF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAmD,EACnD,IAA8C;IAE9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,qCAAqC,EAAE,GAAG,IAAI,CAAC,IAAI,8CAA8C,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FleetId } from '@aeolus-fleet/common';
|
|
2
|
+
import type { ScopeNamespaceRepository, ShipRepository } from './ports.js';
|
|
3
|
+
import type { ScopeNamespace } from './scope-namespace.js';
|
|
4
|
+
export interface NamedNamespacesTx {
|
|
5
|
+
ships: Pick<ShipRepository, 'find'>;
|
|
6
|
+
scopeNamespaces: Pick<ScopeNamespaceRepository, 'lockNamespace' | 'find'>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The plugin namespaces the scopes name, with their declarers' names, by
|
|
10
|
+
* namespace, each locked in name order: a declaration that removes one of
|
|
11
|
+
* the scopes waits until the unit of work ends (decision 0046).
|
|
12
|
+
*/
|
|
13
|
+
export declare function lockNamedNamespaces(tx: NamedNamespacesTx, at: {
|
|
14
|
+
fleetId: FleetId;
|
|
15
|
+
scopes: readonly string[];
|
|
16
|
+
}): Promise<Map<string, {
|
|
17
|
+
namespace: ScopeNamespace;
|
|
18
|
+
declarerName: string;
|
|
19
|
+
}>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plugin namespaces the scopes name, with their declarers' names, by
|
|
3
|
+
* namespace, each locked in name order: a declaration that removes one of
|
|
4
|
+
* the scopes waits until the unit of work ends (decision 0046).
|
|
5
|
+
*/
|
|
6
|
+
export async function lockNamedNamespaces(tx, at) {
|
|
7
|
+
const namespaces = new Map();
|
|
8
|
+
const named = [...new Set(at.scopes.filter((scope) => scope.includes(':')).map((scope) => scope.slice(0, scope.indexOf(':'))))].toSorted();
|
|
9
|
+
for (const name of named) {
|
|
10
|
+
await tx.scopeNamespaces.lockNamespace(at.fleetId, name);
|
|
11
|
+
const namespace = await tx.scopeNamespaces.find(at.fleetId, name);
|
|
12
|
+
if (namespace) {
|
|
13
|
+
const declarer = await tx.ships.find(at.fleetId, namespace.declaredBy);
|
|
14
|
+
namespaces.set(name, { namespace, declarerName: declarer?.name ?? namespace.declaredBy });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return namespaces;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=named-namespaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-namespaces.js","sourceRoot":"","sources":["../../../src/domain/registry/named-namespaces.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAqB,EACrB,EAAmD;IAEnD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+D,CAAC;IAC1F,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3I,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACvE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The fleet's network settings (decision 0034): which ships may send to
|
|
3
|
-
* which. A rule says that the ships
|
|
4
|
-
* the ships matching another; allow-only,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* The fleet's network settings (decision 0034): which ships may send to,
|
|
3
|
+
* read or manage which. A rule names its verb and says that the ships
|
|
4
|
+
* matching one selector may do it to the ships matching another; allow-only,
|
|
5
|
+
* no deny rules, no precedence. Beside its rules a fleet holds the switches
|
|
6
|
+
* of the built-in rules that can be off, with a version that moves on every
|
|
7
|
+
* change, so a refusal names the settings that refused it.
|
|
7
8
|
*/
|
|
8
|
-
import { type FleetId, type LabelId, type LabelValueId, type NetworkPluginDeclaration, type SelectorTerm, type ShipId, type ShipKind, type WhileUnavailable } from '@aeolus-fleet/common';
|
|
9
|
+
import { type FleetId, type LabelId, type LabelValueId, type BuiltInRule, type NetworkPluginDeclaration, type NetworkVerb, type SelectorTerm, type SetBuiltInRuleInput, type ShipId, type ShipKind, type WhileUnavailable } from '@aeolus-fleet/common';
|
|
9
10
|
import { type DomainError } from '../shared/errors.js';
|
|
10
11
|
import type { Actor, NewEvent } from '../shared/events.js';
|
|
11
12
|
import { type Result } from '../shared/result.js';
|
|
12
|
-
/** The ships for which every term of `from` holds may
|
|
13
|
+
/** The ships for which every term of `from` holds may do its verb to the ships for which every term of `to` holds. */
|
|
13
14
|
export interface NetworkRule {
|
|
15
|
+
verb: NetworkVerb;
|
|
14
16
|
from: readonly SelectorTerm[];
|
|
15
17
|
to: readonly SelectorTerm[];
|
|
16
18
|
}
|
|
@@ -20,17 +22,31 @@ export interface NetworkRule {
|
|
|
20
22
|
*/
|
|
21
23
|
export interface NetworkPlugin extends NetworkPluginDeclaration {
|
|
22
24
|
shipId: ShipId;
|
|
25
|
+
/** When the ship first registered; registering again replaces what it declared, not this. */
|
|
26
|
+
registeredAt: Date;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The built-in rules that can be off (decision 0034): the viewer reading
|
|
30
|
+
* every ship, argo's to switch, and open, every ship to every ship, one per
|
|
31
|
+
* verb, the networking plugin's to switch. A fleet starts with all on.
|
|
32
|
+
*/
|
|
33
|
+
export interface BuiltInSwitches {
|
|
34
|
+
isViewerReadOn: boolean;
|
|
35
|
+
open: Readonly<Record<NetworkVerb, boolean>>;
|
|
23
36
|
}
|
|
24
37
|
export interface NetworkSettings {
|
|
25
38
|
fleetId: FleetId;
|
|
26
|
-
/** The rules
|
|
27
|
-
rules: readonly NetworkRule[]
|
|
39
|
+
/** The rules beside the built-in ones, the networking plugin's (decision 0035); none allows only the built-in rules. */
|
|
40
|
+
rules: readonly NetworkRule[];
|
|
41
|
+
builtIns: BuiltInSwitches;
|
|
28
42
|
/** 0 until the fleet first changes its settings; one more on every change. */
|
|
29
43
|
version: number;
|
|
30
44
|
/** The fleet's networking plugin, or none: then the fleet has no rules, and nobody sets them. */
|
|
31
45
|
plugin: NetworkPlugin | null;
|
|
32
46
|
}
|
|
33
|
-
/**
|
|
47
|
+
/** Every built-in rule on: what a fleet starts with, and what no networking plugin leaves. */
|
|
48
|
+
export declare const BUILT_INS_ON: BuiltInSwitches;
|
|
49
|
+
/** A fleet that never set rules: none, every built-in rule on, at version 0, without a plugin. */
|
|
34
50
|
export declare function noNetworkSettings(fleetId: FleetId): NetworkSettings;
|
|
35
51
|
export type NotTheNetworkPlugin = DomainError<'NOT_THE_NETWORK_PLUGIN'>;
|
|
36
52
|
export type SetNetworkRulesRefusal = DomainError<'INVALID_NETWORK_RULES'> | NotTheNetworkPlugin;
|
|
@@ -52,8 +68,9 @@ export declare function registerNetworkPlugin(current: NetworkSettings, change:
|
|
|
52
68
|
events: NewEvent[];
|
|
53
69
|
}, RegisterNetworkPluginRefusal>;
|
|
54
70
|
/**
|
|
55
|
-
* The fleet's plugin goes, and its rules with it
|
|
56
|
-
* (decision 0035), at the next version, with
|
|
71
|
+
* The fleet's plugin goes, and its rules with it, and the open rules are on
|
|
72
|
+
* again: no plugin is all-to-all (decision 0035), at the next version, with
|
|
73
|
+
* NetworkPluginUnregistered. The viewer reading stays as argo set it. Only
|
|
57
74
|
* the plugin's own ship unregisters it; its retirement does too.
|
|
58
75
|
*/
|
|
59
76
|
export declare function unregisterNetworkPlugin(current: NetworkSettings, change: {
|
|
@@ -76,7 +93,7 @@ export declare function unregisterNetworkPlugin(current: NetworkSettings, change
|
|
|
76
93
|
* only through a plugin (decision 0035).
|
|
77
94
|
*/
|
|
78
95
|
export declare function setNetworkRules(current: NetworkSettings, change: {
|
|
79
|
-
rules: readonly NetworkRule[]
|
|
96
|
+
rules: readonly NetworkRule[];
|
|
80
97
|
declaredRules: number;
|
|
81
98
|
shipId: ShipId;
|
|
82
99
|
at: Date;
|
|
@@ -85,8 +102,31 @@ export declare function setNetworkRules(current: NetworkSettings, change: {
|
|
|
85
102
|
settings: NetworkSettings;
|
|
86
103
|
events: NewEvent[];
|
|
87
104
|
}, SetNetworkRulesRefusal>;
|
|
105
|
+
export type SetBuiltInRuleRefusal = DomainError<'BUILT_IN_RULE_FIXED' | 'NOT_THE_OPERATOR_SHIP'> | NotTheNetworkPlugin;
|
|
106
|
+
/**
|
|
107
|
+
* A built-in rule turned on or off, as its own action (decision 0034): the
|
|
108
|
+
* viewer reading by argo, open for one verb by the fleet's networking plugin.
|
|
109
|
+
* argo, the owner, the answer and a connected plugin's reading are never off,
|
|
110
|
+
* so turning them is refused.
|
|
111
|
+
* A change moves the version and writes BuiltInRuleChanged; a rule already
|
|
112
|
+
* as asked changes nothing.
|
|
113
|
+
*/
|
|
114
|
+
export declare function setBuiltInRule(current: NetworkSettings, change: {
|
|
115
|
+
input: SetBuiltInRuleInput;
|
|
116
|
+
caller: {
|
|
117
|
+
shipId: ShipId;
|
|
118
|
+
isOperator: boolean;
|
|
119
|
+
};
|
|
120
|
+
at: Date;
|
|
121
|
+
actor: Actor;
|
|
122
|
+
}): Result<{
|
|
123
|
+
settings: NetworkSettings;
|
|
124
|
+
events: NewEvent[];
|
|
125
|
+
}, SetBuiltInRuleRefusal>;
|
|
88
126
|
/** What breaks a rule's own limits, said for the caller, or undefined when it keeps them (decision 0034). */
|
|
89
127
|
export declare function invalidRule(rule: NetworkRule): string | undefined;
|
|
128
|
+
/** A term as a refusal names it: an exact value by its id, a label term by its label id and symbol, an owner term by `owner` and its value. */
|
|
129
|
+
export declare function termText(term: SelectorTerm): string;
|
|
90
130
|
/** A copy of the rule, so what is kept never changes with what was given. */
|
|
91
131
|
export declare function copyOfRule(rule: NetworkRule): NetworkRule;
|
|
92
132
|
/**
|
|
@@ -99,16 +139,20 @@ export declare function isNetworkPluginResponding(plugin: NetworkPlugin, crew: {
|
|
|
99
139
|
lastSeenAt: Date | undefined;
|
|
100
140
|
now: Date;
|
|
101
141
|
}): boolean;
|
|
102
|
-
/** The rules a send is checked against, and what the plugin declared when it is the reason. */
|
|
142
|
+
/** The rules and built-in switches a send is checked against, and what the plugin declared when it is the reason. */
|
|
103
143
|
export interface RulesInForce {
|
|
104
|
-
rules: readonly NetworkRule[]
|
|
144
|
+
rules: readonly NetworkRule[];
|
|
145
|
+
builtIns: BuiltInSwitches;
|
|
146
|
+
/** The fleet's registered networking plugin's ship, responding or not: it reads as a connected plugin does (decision 0034). */
|
|
147
|
+
networkPluginShipId: ShipId | null;
|
|
105
148
|
whilePluginUnavailable: Exclude<WhileUnavailable, 'open-all'> | null;
|
|
106
149
|
}
|
|
107
150
|
/**
|
|
108
151
|
* The rules in force: the settings' own, unless the fleet's networking plugin
|
|
109
152
|
* is not responding. Then what it declared applies: block-all leaves only
|
|
110
|
-
* the
|
|
111
|
-
*
|
|
153
|
+
* the built-in rules that are never off and the viewer reading, open-all
|
|
154
|
+
* open on for every verb (all-to-all), keep-latest the rules and switches it
|
|
155
|
+
* left last.
|
|
112
156
|
*/
|
|
113
157
|
export declare function rulesInForce(settings: NetworkSettings, isPluginResponding: boolean): RulesInForce;
|
|
114
158
|
/** A label value a ship carries, with the label it is of, so a term of any or the same value finds it. */
|
|
@@ -116,19 +160,46 @@ export interface ReachingLabel {
|
|
|
116
160
|
labelId: LabelId;
|
|
117
161
|
valueId: LabelValueId;
|
|
118
162
|
}
|
|
119
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* A ship as a send's check sees it: its id and owner, for the owner exception,
|
|
165
|
+
* its kind, for the argo exception, whether argo connected it as a plugin, and
|
|
166
|
+
* the label values it carries.
|
|
167
|
+
*/
|
|
120
168
|
export interface ReachingShip {
|
|
169
|
+
id: ShipId;
|
|
170
|
+
owner: ShipId | null;
|
|
121
171
|
kind: ShipKind;
|
|
172
|
+
isConnectedPlugin: boolean;
|
|
122
173
|
labels: readonly ReachingLabel[];
|
|
123
174
|
}
|
|
124
175
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* rules: argo reaches every ship and every ship reaches argo,
|
|
128
|
-
*
|
|
129
|
-
* the
|
|
176
|
+
* The rule that lets the sender do the verb to the recipient, or undefined
|
|
177
|
+
* when none does. The built-in rules that are never off hold whatever the
|
|
178
|
+
* rules: argo reaches every ship and every ship reaches argo, but reads argo
|
|
179
|
+
* only by a rule, so argo's messages are not every ship's to read; an owner's
|
|
180
|
+
* ship reaches the ships it owns (decision 0045), a ship answers the sender of
|
|
181
|
+
* a message it received, and a plugin argo connected, or the fleet's
|
|
182
|
+
* registered networking plugin, reads every ship. The viewer reads every ship while that is on, and
|
|
183
|
+
* every ship reaches every ship by a verb while open is on for it. Otherwise
|
|
184
|
+
* a rule of the verb must match the sender with its `from` and the recipient
|
|
185
|
+
* with its `to`, named by its place in the list. The built-in rules come
|
|
186
|
+
* first, in that order, as the rule list shows them.
|
|
130
187
|
*/
|
|
131
|
-
export declare function
|
|
188
|
+
export declare function reachRuleOf(settings: Pick<RulesInForce, 'rules' | 'builtIns' | 'networkPluginShipId'>, send: {
|
|
189
|
+
verb: NetworkVerb;
|
|
190
|
+
sender: ReachingShip;
|
|
191
|
+
recipient: ReachingShip;
|
|
192
|
+
isAnswerToSender: boolean;
|
|
193
|
+
}): ReachRule | undefined;
|
|
194
|
+
/** A built-in rule, or one of the settings' rules by its place in the list. */
|
|
195
|
+
export type ReachRule = {
|
|
196
|
+
builtIn: BuiltInRule;
|
|
197
|
+
} | {
|
|
198
|
+
index: number;
|
|
199
|
+
};
|
|
200
|
+
/** Whether the settings let the sender do the verb to the recipient: some rule does (see reachRuleOf). */
|
|
201
|
+
export declare function allowsReach(settings: Pick<RulesInForce, 'rules' | 'builtIns' | 'networkPluginShipId'>, send: {
|
|
202
|
+
verb: NetworkVerb;
|
|
132
203
|
sender: ReachingShip;
|
|
133
204
|
recipient: ReachingShip;
|
|
134
205
|
isAnswerToSender: boolean;
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The fleet's network settings (decision 0034): which ships may send to
|
|
3
|
-
* which. A rule says that the ships
|
|
4
|
-
* the ships matching another; allow-only,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* The fleet's network settings (decision 0034): which ships may send to,
|
|
3
|
+
* read or manage which. A rule names its verb and says that the ships
|
|
4
|
+
* matching one selector may do it to the ships matching another; allow-only,
|
|
5
|
+
* no deny rules, no precedence. Beside its rules a fleet holds the switches
|
|
6
|
+
* of the built-in rules that can be off, with a version that moves on every
|
|
7
|
+
* change, so a refusal names the settings that refused it.
|
|
7
8
|
*/
|
|
8
|
-
import { ANY_LABEL_VALUE, NETWORK_RULES_MAX, SAME_LABEL_VALUE, SHIP_LABELS_MAX, } from '@aeolus-fleet/common';
|
|
9
|
+
import { ANY_LABEL_VALUE, NETWORK_RULES_MAX, NETWORK_VERBS, SAME_LABEL_VALUE, SHIP_LABELS_MAX, isOwnerTerm, } from '@aeolus-fleet/common';
|
|
9
10
|
import { refuse } from '../shared/errors.js';
|
|
10
11
|
import { ok } from '../shared/result.js';
|
|
11
|
-
/**
|
|
12
|
+
/** Every built-in rule on: what a fleet starts with, and what no networking plugin leaves. */
|
|
13
|
+
export const BUILT_INS_ON = { isViewerReadOn: true, open: { send: true, read: true, manage: true } };
|
|
14
|
+
/** A fleet that never set rules: none, every built-in rule on, at version 0, without a plugin. */
|
|
12
15
|
export function noNetworkSettings(fleetId) {
|
|
13
|
-
return { fleetId, rules:
|
|
16
|
+
return { fleetId, rules: [], builtIns: BUILT_INS_ON, version: 0, plugin: null };
|
|
14
17
|
}
|
|
15
18
|
function refuseNotThePlugin() {
|
|
16
19
|
return refuse('NOT_THE_NETWORK_PLUGIN', "Only the fleet's networking plugin does this (decision 0035)");
|
|
@@ -30,7 +33,12 @@ export function registerNetworkPlugin(current, change) {
|
|
|
30
33
|
const settings = {
|
|
31
34
|
...current,
|
|
32
35
|
version: current.version + 1,
|
|
33
|
-
plugin: {
|
|
36
|
+
plugin: {
|
|
37
|
+
shipId,
|
|
38
|
+
whileUnavailable: declaration.whileUnavailable,
|
|
39
|
+
notRespondingAfterSeconds: declaration.notRespondingAfterSeconds,
|
|
40
|
+
registeredAt: current.plugin?.registeredAt ?? change.at,
|
|
41
|
+
},
|
|
34
42
|
};
|
|
35
43
|
return ok({
|
|
36
44
|
settings,
|
|
@@ -47,15 +55,16 @@ export function registerNetworkPlugin(current, change) {
|
|
|
47
55
|
});
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
50
|
-
* The fleet's plugin goes, and its rules with it
|
|
51
|
-
* (decision 0035), at the next version, with
|
|
58
|
+
* The fleet's plugin goes, and its rules with it, and the open rules are on
|
|
59
|
+
* again: no plugin is all-to-all (decision 0035), at the next version, with
|
|
60
|
+
* NetworkPluginUnregistered. The viewer reading stays as argo set it. Only
|
|
52
61
|
* the plugin's own ship unregisters it; its retirement does too.
|
|
53
62
|
*/
|
|
54
63
|
export function unregisterNetworkPlugin(current, change) {
|
|
55
64
|
if (current.plugin?.shipId !== change.shipId) {
|
|
56
65
|
return refuseNotThePlugin();
|
|
57
66
|
}
|
|
58
|
-
const settings = { fleetId: current.fleetId, rules:
|
|
67
|
+
const settings = { fleetId: current.fleetId, rules: [], builtIns: { ...current.builtIns, open: BUILT_INS_ON.open }, version: current.version + 1, plugin: null };
|
|
59
68
|
return ok({
|
|
60
69
|
settings,
|
|
61
70
|
events: [
|
|
@@ -86,16 +95,14 @@ export function setNetworkRules(current, change) {
|
|
|
86
95
|
if (current.plugin?.shipId !== change.shipId) {
|
|
87
96
|
return refuseNotThePlugin();
|
|
88
97
|
}
|
|
89
|
-
if (rules
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return refuse('INVALID_NETWORK_RULES', `${invalid} (decision 0034)`);
|
|
96
|
-
}
|
|
98
|
+
if (rules.length > NETWORK_RULES_MAX + declaredRules) {
|
|
99
|
+
return refuse('INVALID_NETWORK_RULES', `A fleet holds at most ${String(NETWORK_RULES_MAX)} network rules of argo's plus the ${String(declaredRules)} its ships declared (decision 0037)`);
|
|
100
|
+
}
|
|
101
|
+
const invalid = rules.map(invalidRule).find((broken) => broken !== undefined);
|
|
102
|
+
if (invalid !== undefined) {
|
|
103
|
+
return refuse('INVALID_NETWORK_RULES', `${invalid} (decision 0034)`);
|
|
97
104
|
}
|
|
98
|
-
const settings = { ...current, rules: rules
|
|
105
|
+
const settings = { ...current, rules: rules.map(copyOfRule), version: current.version + 1 };
|
|
99
106
|
return ok({
|
|
100
107
|
settings,
|
|
101
108
|
events: [
|
|
@@ -104,7 +111,48 @@ export function setNetworkRules(current, change) {
|
|
|
104
111
|
fleetId: current.fleetId,
|
|
105
112
|
occurredAt: change.at,
|
|
106
113
|
actor: change.actor,
|
|
107
|
-
details: { version: settings.version, rules: rules
|
|
114
|
+
details: { version: settings.version, rules: rules.length },
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* A built-in rule turned on or off, as its own action (decision 0034): the
|
|
121
|
+
* viewer reading by argo, open for one verb by the fleet's networking plugin.
|
|
122
|
+
* argo, the owner, the answer and a connected plugin's reading are never off,
|
|
123
|
+
* so turning them is refused.
|
|
124
|
+
* A change moves the version and writes BuiltInRuleChanged; a rule already
|
|
125
|
+
* as asked changes nothing.
|
|
126
|
+
*/
|
|
127
|
+
export function setBuiltInRule(current, change) {
|
|
128
|
+
const { input, caller } = change;
|
|
129
|
+
if (input.rule === 'argo' || input.rule === 'owner' || input.rule === 'answer' || input.rule === 'pluginRead') {
|
|
130
|
+
return refuse('BUILT_IN_RULE_FIXED', `The built-in rule ${input.rule} is never off (decision 0034)`);
|
|
131
|
+
}
|
|
132
|
+
if (input.rule === 'viewerRead' && !caller.isOperator) {
|
|
133
|
+
return refuse('NOT_THE_OPERATOR_SHIP', 'Only argo turns the viewer reading on or off (decision 0034)');
|
|
134
|
+
}
|
|
135
|
+
if (input.rule === 'open' && current.plugin?.shipId !== caller.shipId) {
|
|
136
|
+
return refuseNotThePlugin();
|
|
137
|
+
}
|
|
138
|
+
// The input names a verb for open and for open only (common's schema).
|
|
139
|
+
const { verb } = input;
|
|
140
|
+
const builtIns = input.rule === 'viewerRead' || verb === undefined
|
|
141
|
+
? { ...current.builtIns, isViewerReadOn: input.rule === 'viewerRead' ? input.isOn : current.builtIns.isViewerReadOn }
|
|
142
|
+
: { ...current.builtIns, open: { ...current.builtIns.open, [verb]: input.isOn } };
|
|
143
|
+
if (builtIns.isViewerReadOn === current.builtIns.isViewerReadOn && NETWORK_VERBS.every((verb) => builtIns.open[verb] === current.builtIns.open[verb])) {
|
|
144
|
+
return ok({ settings: current, events: [] });
|
|
145
|
+
}
|
|
146
|
+
const settings = { ...current, builtIns, version: current.version + 1 };
|
|
147
|
+
return ok({
|
|
148
|
+
settings,
|
|
149
|
+
events: [
|
|
150
|
+
{
|
|
151
|
+
type: 'BuiltInRuleChanged',
|
|
152
|
+
fleetId: current.fleetId,
|
|
153
|
+
occurredAt: change.at,
|
|
154
|
+
actor: change.actor,
|
|
155
|
+
details: { rule: input.rule, ...(verb === undefined ? {} : { verb }), isOn: input.isOn, version: settings.version },
|
|
108
156
|
},
|
|
109
157
|
],
|
|
110
158
|
});
|
|
@@ -124,18 +172,29 @@ function invalidSelector(selector) {
|
|
|
124
172
|
function sameValueOnOneSide(rule) {
|
|
125
173
|
const [from, to] = [sameValueLabels(rule.from), sameValueLabels(rule.to)];
|
|
126
174
|
const alone = [...from.filter((labelId) => !to.includes(labelId)), ...to.filter((labelId) => !from.includes(labelId))][0];
|
|
127
|
-
|
|
175
|
+
if (alone !== undefined) {
|
|
176
|
+
return `A term of the same value binds its label on both sides: ${termText({ labelId: alone, value: SAME_LABEL_VALUE })} is on one side only`;
|
|
177
|
+
}
|
|
178
|
+
return hasSameOwner(rule.from) === hasSameOwner(rule.to)
|
|
179
|
+
? undefined
|
|
180
|
+
: `A term of the same owner binds the owner on both sides: ${termText({ owner: SAME_LABEL_VALUE })} is on one side only`;
|
|
128
181
|
}
|
|
129
|
-
/** A term as a refusal names it: an exact value by its id,
|
|
130
|
-
function termText(term) {
|
|
131
|
-
|
|
182
|
+
/** A term as a refusal names it: an exact value by its id, a label term by its label id and symbol, an owner term by `owner` and its value. */
|
|
183
|
+
export function termText(term) {
|
|
184
|
+
if (typeof term === 'string') {
|
|
185
|
+
return term;
|
|
186
|
+
}
|
|
187
|
+
return isOwnerTerm(term) ? `owner=${term.owner}` : `${term.labelId}=${term.value}`;
|
|
132
188
|
}
|
|
133
189
|
function sameValueLabels(selector) {
|
|
134
|
-
return selector.flatMap((term) => (typeof term !== 'string' && term.value === SAME_LABEL_VALUE ? [term.labelId] : []));
|
|
190
|
+
return selector.flatMap((term) => (typeof term !== 'string' && !isOwnerTerm(term) && term.value === SAME_LABEL_VALUE ? [term.labelId] : []));
|
|
191
|
+
}
|
|
192
|
+
function hasSameOwner(selector) {
|
|
193
|
+
return selector.some((term) => isOwnerTerm(term) && term.owner === SAME_LABEL_VALUE);
|
|
135
194
|
}
|
|
136
195
|
/** A copy of the rule, so what is kept never changes with what was given. */
|
|
137
196
|
export function copyOfRule(rule) {
|
|
138
|
-
return { from: rule.from.map(copyOfTerm), to: rule.to.map(copyOfTerm) };
|
|
197
|
+
return { verb: rule.verb, from: rule.from.map(copyOfTerm), to: rule.to.map(copyOfTerm) };
|
|
139
198
|
}
|
|
140
199
|
function copyOfTerm(term) {
|
|
141
200
|
return typeof term === 'string' ? term : { ...term };
|
|
@@ -154,36 +213,65 @@ export function isNetworkPluginResponding(plugin, crew) {
|
|
|
154
213
|
/**
|
|
155
214
|
* The rules in force: the settings' own, unless the fleet's networking plugin
|
|
156
215
|
* is not responding. Then what it declared applies: block-all leaves only
|
|
157
|
-
* the
|
|
158
|
-
*
|
|
216
|
+
* the built-in rules that are never off and the viewer reading, open-all
|
|
217
|
+
* open on for every verb (all-to-all), keep-latest the rules and switches it
|
|
218
|
+
* left last.
|
|
159
219
|
*/
|
|
160
220
|
export function rulesInForce(settings, isPluginResponding) {
|
|
161
|
-
const { plugin, rules } = settings;
|
|
221
|
+
const { plugin, rules, builtIns } = settings;
|
|
222
|
+
const networkPluginShipId = plugin?.shipId ?? null;
|
|
162
223
|
if (plugin === null || isPluginResponding) {
|
|
163
|
-
return { rules, whilePluginUnavailable: null };
|
|
224
|
+
return { rules, builtIns, networkPluginShipId, whilePluginUnavailable: null };
|
|
164
225
|
}
|
|
165
226
|
switch (plugin.whileUnavailable) {
|
|
166
227
|
case 'block-all':
|
|
167
|
-
return { rules: [], whilePluginUnavailable: 'block-all' };
|
|
228
|
+
return { rules: [], builtIns: { ...builtIns, open: { send: false, read: false, manage: false } }, networkPluginShipId, whilePluginUnavailable: 'block-all' };
|
|
168
229
|
case 'open-all':
|
|
169
|
-
return { rules:
|
|
230
|
+
return { rules, builtIns: { ...builtIns, open: BUILT_INS_ON.open }, networkPluginShipId, whilePluginUnavailable: null };
|
|
170
231
|
case 'keep-latest':
|
|
171
|
-
return { rules, whilePluginUnavailable: 'keep-latest' };
|
|
232
|
+
return { rules, builtIns, networkPluginShipId, whilePluginUnavailable: 'keep-latest' };
|
|
172
233
|
}
|
|
173
234
|
}
|
|
174
235
|
/**
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* rules: argo reaches every ship and every ship reaches argo,
|
|
178
|
-
*
|
|
179
|
-
* the
|
|
236
|
+
* The rule that lets the sender do the verb to the recipient, or undefined
|
|
237
|
+
* when none does. The built-in rules that are never off hold whatever the
|
|
238
|
+
* rules: argo reaches every ship and every ship reaches argo, but reads argo
|
|
239
|
+
* only by a rule, so argo's messages are not every ship's to read; an owner's
|
|
240
|
+
* ship reaches the ships it owns (decision 0045), a ship answers the sender of
|
|
241
|
+
* a message it received, and a plugin argo connected, or the fleet's
|
|
242
|
+
* registered networking plugin, reads every ship. The viewer reads every ship while that is on, and
|
|
243
|
+
* every ship reaches every ship by a verb while open is on for it. Otherwise
|
|
244
|
+
* a rule of the verb must match the sender with its `from` and the recipient
|
|
245
|
+
* with its `to`, named by its place in the list. The built-in rules come
|
|
246
|
+
* first, in that order, as the rule list shows them.
|
|
180
247
|
*/
|
|
181
|
-
export function
|
|
182
|
-
const { sender, recipient, isAnswerToSender } = send;
|
|
183
|
-
|
|
184
|
-
|
|
248
|
+
export function reachRuleOf(settings, send) {
|
|
249
|
+
const { verb, sender, recipient, isAnswerToSender } = send;
|
|
250
|
+
const { rules, builtIns, networkPluginShipId } = settings;
|
|
251
|
+
if (sender.kind === 'operator' || (recipient.kind === 'operator' && verb !== 'read')) {
|
|
252
|
+
return { builtIn: 'argo' };
|
|
253
|
+
}
|
|
254
|
+
if (recipient.owner === sender.id) {
|
|
255
|
+
return { builtIn: 'owner' };
|
|
185
256
|
}
|
|
186
|
-
|
|
257
|
+
if (verb === 'send' && isAnswerToSender) {
|
|
258
|
+
return { builtIn: 'answer' };
|
|
259
|
+
}
|
|
260
|
+
if (verb === 'read' && (sender.isConnectedPlugin || sender.id === networkPluginShipId)) {
|
|
261
|
+
return { builtIn: 'pluginRead' };
|
|
262
|
+
}
|
|
263
|
+
if (verb === 'read' && sender.kind === 'viewer' && builtIns.isViewerReadOn) {
|
|
264
|
+
return { builtIn: 'viewerRead' };
|
|
265
|
+
}
|
|
266
|
+
if (builtIns.open[verb]) {
|
|
267
|
+
return { builtIn: 'open' };
|
|
268
|
+
}
|
|
269
|
+
const index = rules.findIndex((rule) => rule.verb === verb && matches(rule.from, { ship: sender, otherSide: recipient }) && matches(rule.to, { ship: recipient, otherSide: sender }));
|
|
270
|
+
return index === -1 ? undefined : { index };
|
|
271
|
+
}
|
|
272
|
+
/** Whether the settings let the sender do the verb to the recipient: some rule does (see reachRuleOf). */
|
|
273
|
+
export function allowsReach(settings, send) {
|
|
274
|
+
return reachRuleOf(settings, send) !== undefined;
|
|
187
275
|
}
|
|
188
276
|
/** A ship matches a selector when every term of it holds, combined with AND. */
|
|
189
277
|
function matches(selector, sides) {
|
|
@@ -193,13 +281,25 @@ function matches(selector, sides) {
|
|
|
193
281
|
* An exact value holds for a ship carrying it; any value for a ship carrying
|
|
194
282
|
* a value of the label; the same value when the ship and the other side carry
|
|
195
283
|
* one value of the label both, each such term on its own (a ship may carry
|
|
196
|
-
* several values of one label, decision 0031).
|
|
284
|
+
* several values of one label, decision 0031). A term of the owner holds for
|
|
285
|
+
* a ship owned by that ship, for a ship with an owner, or for a ship with the
|
|
286
|
+
* same owner as the other side.
|
|
197
287
|
*/
|
|
198
288
|
function holds(term, sides) {
|
|
199
289
|
const { ship, otherSide } = sides;
|
|
200
290
|
if (typeof term === 'string') {
|
|
201
291
|
return ship.labels.some((label) => label.valueId === term);
|
|
202
292
|
}
|
|
293
|
+
if (isOwnerTerm(term)) {
|
|
294
|
+
switch (term.owner) {
|
|
295
|
+
case ANY_LABEL_VALUE:
|
|
296
|
+
return ship.owner !== null;
|
|
297
|
+
case SAME_LABEL_VALUE:
|
|
298
|
+
return ship.owner !== null && ship.owner === otherSide.owner;
|
|
299
|
+
default:
|
|
300
|
+
return ship.owner === term.owner;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
203
303
|
const values = ship.labels.filter((label) => label.labelId === term.labelId);
|
|
204
304
|
switch (term.value) {
|
|
205
305
|
case ANY_LABEL_VALUE:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-settings.js","sourceRoot":"","sources":["../../../src/domain/registry/network-settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"network-settings.js","sourceRoot":"","sources":["../../../src/domain/registry/network-settings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,GAYZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAwCtD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAoB,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;AAEtH,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAClF,CAAC;AAQD,SAAS,kBAAkB;IACzB,OAAO,MAAM,CAAC,wBAAwB,EAAE,8DAA8D,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,MAAyF;IAEzF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,2BAA2B,EAAE,iFAAiF,CAAC,CAAC;IAChI,CAAC;IACD,MAAM,QAAQ,GAAoB;QAChC,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC;QAC5B,MAAM,EAAE;YACN,MAAM;YACN,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,yBAAyB,EAAE,WAAW,CAAC,yBAAyB;YAChE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,MAAM,CAAC,EAAE;SACxD;KACF,CAAC;IACF,OAAO,EAAE,CAAC;QACR,QAAQ;QACR,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM;gBACN,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,WAAW,CAAC,yBAAyB,EAAE;aACzJ;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAwB,EACxB,MAAkD;IAElD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAoB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClL,OAAO,EAAE,CAAC;QACR,QAAQ;QACR,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;aACvC;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,MAAwG;IAExG,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC;QACrD,OAAO,MAAM,CACX,uBAAuB,EACvB,yBAAyB,MAAM,CAAC,iBAAiB,CAAC,qCAAqC,MAAM,CAAC,aAAa,CAAC,qCAAqC,CAClJ,CAAC;IACJ,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,MAAM,QAAQ,GAAoB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;IAC7G,OAAO,EAAE,CAAC;QACR,QAAQ;QACR,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;aAC5D;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAID;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAwB,EACxB,MAA+G;IAE/G,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9G,OAAO,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,KAAK,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,uBAAuB,EAAE,8DAA8D,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACtE,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,uEAAuE;IACvE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,SAAS;QAC/C,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE;QACrH,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACtF,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,cAAc,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACtJ,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,QAAQ,GAAoB,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;IACzF,OAAO,EAAE,CAAC;QACR,QAAQ;QACR,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;aACpH;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,eAAe,CAAC,QAAiC;IACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACtC,OAAO,4BAA4B,MAAM,CAAC,eAAe,CAAC,gDAAgD,CAAC;IAC7G,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IACzE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oCAAoC,KAAK,QAAQ,CAAC;AAC7F,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAiB;IAC3C,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1H,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,2DAA2D,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,sBAAsB,CAAC;IAChJ,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,2DAA2D,QAAQ,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,sBAAsB,CAAC;AAC7H,CAAC;AAED,+IAA+I;AAC/I,MAAM,UAAU,QAAQ,CAAC,IAAkB;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,eAAe,CAAC,QAAiC;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/I,CAAC;AAED,SAAS,YAAY,CAAC,QAAiC;IACrD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAC;AACvF,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,UAAU,CAAC,IAAiB;IAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB;IACpC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAqB,EAAE,IAAiD;IAChH,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjC,OAAO,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,yBAAyB,GAAG,uBAAuB,CAAC;AACxI,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAyB,EAAE,kBAA2B;IACjF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC7C,MAAM,mBAAmB,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;IACnD,IAAI,MAAM,KAAK,IAAI,IAAI,kBAAkB,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAChF,CAAC;IACD,QAAQ,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAChC,KAAK,WAAW;YACd,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC;QAC/J,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;QAC1H,KAAK,aAAa;YAChB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC;IAC3F,CAAC;AACH,CAAC;AAqBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CACzB,QAA0E,EAC1E,IAAqG;IAErG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,QAAQ,CAAC;IAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,EAAE,KAAK,mBAAmB,CAAC,EAAE,CAAC;QACvF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CACvJ,CAAC;IACF,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAKD,0GAA0G;AAC1G,MAAM,UAAU,WAAW,CACzB,QAA0E,EAC1E,IAAqG;IAErG,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,QAAiC,EAAE,KAAsD;IACxG,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,KAAK,CAAC,IAAkB,EAAE,KAAsD;IACvF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YAC7B,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC;YAC/D;gBACE,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,KAAK,gBAAgB;YACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACvI,CAAC;AACH,CAAC"}
|