@aeolus-fleet/common 0.1.0 → 0.2.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.
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
3
  * Inputs and outputs of the fleet procedures: commission a ship, get its
4
- * starting prompt, release it, list the fleet.
4
+ * starting prompt, release it, list the fleet, follow its events live.
5
5
  */
6
6
  /** A ship's name and its type are handles (docs/blueprint.md, "Ship"). */
7
7
  export declare const SHIP_HANDLE_MAX_LENGTH = 48;
@@ -98,3 +98,72 @@ export declare const fleetListOutputSchema: z.ZodArray<z.ZodObject<{
98
98
  description: z.ZodNullable<z.ZodString>;
99
99
  }, z.core.$strip>>;
100
100
  }, z.core.$strip>>;
101
+ /**
102
+ * Input of the `fleet.events` subscription: the number of the last event the
103
+ * browser applied. tRPC sends it back as `lastEventId` when it reconnects;
104
+ * none means the browser has not loaded the fleet yet.
105
+ */
106
+ export declare const fleetEventsInputSchema: z.ZodObject<{
107
+ lastEventId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
+ }, z.core.$strip>;
109
+ export type FleetEventsInput = z.infer<typeof fleetEventsInputSchema>;
110
+ /**
111
+ * One committed event as the live fleet view hears it: its number in the
112
+ * fleet's stream (commit order, without gaps), what happened and when, and
113
+ * which ship, message and delivery it concerns. Never its details.
114
+ */
115
+ export declare const liveFleetEventSchema: z.ZodObject<{
116
+ seq: z.ZodNumber;
117
+ id: z.ZodType<`evt_${string}`, unknown, z.core.$ZodTypeInternals<`evt_${string}`, unknown>>;
118
+ type: z.ZodEnum<{
119
+ FleetInitialised: "FleetInitialised";
120
+ ShipCommissioned: "ShipCommissioned";
121
+ ShipClaimed: "ShipClaimed";
122
+ LeaseRevoked: "LeaseRevoked";
123
+ CredentialRevoked: "CredentialRevoked";
124
+ StartingPromptIssued: "StartingPromptIssued";
125
+ OperatorPasswordReset: "OperatorPasswordReset";
126
+ MessageAccepted: "MessageAccepted";
127
+ DeliveryClaimed: "DeliveryClaimed";
128
+ DeliveryAcknowledged: "DeliveryAcknowledged";
129
+ DeliveryUndeliverable: "DeliveryUndeliverable";
130
+ DeliveryReturned: "DeliveryReturned";
131
+ }>;
132
+ occurredAt: z.ZodISODateTime;
133
+ shipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
134
+ messageId: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
135
+ deliveryId: z.ZodNullable<z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>>;
136
+ }, z.core.$strip>;
137
+ export type LiveFleetEvent = z.infer<typeof liveFleetEventSchema>;
138
+ /**
139
+ * What the `fleet.events` subscription sends: the next event, or `resync`,
140
+ * which tells the browser to load the fleet again and apply what follows.
141
+ */
142
+ export declare const fleetStreamItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
143
+ kind: z.ZodLiteral<"event">;
144
+ event: z.ZodObject<{
145
+ seq: z.ZodNumber;
146
+ id: z.ZodType<`evt_${string}`, unknown, z.core.$ZodTypeInternals<`evt_${string}`, unknown>>;
147
+ type: z.ZodEnum<{
148
+ FleetInitialised: "FleetInitialised";
149
+ ShipCommissioned: "ShipCommissioned";
150
+ ShipClaimed: "ShipClaimed";
151
+ LeaseRevoked: "LeaseRevoked";
152
+ CredentialRevoked: "CredentialRevoked";
153
+ StartingPromptIssued: "StartingPromptIssued";
154
+ OperatorPasswordReset: "OperatorPasswordReset";
155
+ MessageAccepted: "MessageAccepted";
156
+ DeliveryClaimed: "DeliveryClaimed";
157
+ DeliveryAcknowledged: "DeliveryAcknowledged";
158
+ DeliveryUndeliverable: "DeliveryUndeliverable";
159
+ DeliveryReturned: "DeliveryReturned";
160
+ }>;
161
+ occurredAt: z.ZodISODateTime;
162
+ shipId: z.ZodNullable<z.ZodType<`shp_${string}`, unknown, z.core.$ZodTypeInternals<`shp_${string}`, unknown>>>;
163
+ messageId: z.ZodNullable<z.ZodType<`msg_${string}`, unknown, z.core.$ZodTypeInternals<`msg_${string}`, unknown>>>;
164
+ deliveryId: z.ZodNullable<z.ZodType<`dlv_${string}`, unknown, z.core.$ZodTypeInternals<`dlv_${string}`, unknown>>>;
165
+ }, z.core.$strip>;
166
+ }, z.core.$strip>, z.ZodObject<{
167
+ kind: z.ZodLiteral<"resync">;
168
+ }, z.core.$strip>], "kind">;
169
+ export type FleetStreamItem = z.infer<typeof fleetStreamItemSchema>;
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
- import { locationKindSchema, shipKindSchema, shipStatusSchema } from '../fleet/index.js';
2
+ import { eventTypeSchema, locationKindSchema, shipKindSchema, shipStatusSchema } from '../fleet/index.js';
3
3
  import { idSchema } from '../ids/index.js';
4
4
  /**
5
5
  * Inputs and outputs of the fleet procedures: commission a ship, get its
6
- * starting prompt, release it, list the fleet.
6
+ * starting prompt, release it, list the fleet, follow its events live.
7
7
  */
8
8
  /** A ship's name and its type are handles (docs/blueprint.md, "Ship"). */
9
9
  export const SHIP_HANDLE_MAX_LENGTH = 48;
@@ -69,4 +69,37 @@ export const listedShipSchema = z.object({
69
69
  });
70
70
  /** Output of `fleet.list`: every ship in the caller's fleet, `argo` included. */
71
71
  export const fleetListOutputSchema = z.array(listedShipSchema);
72
+ /** Up to 15 digits: every number below 2^53, so it stays an exact JavaScript number. */
73
+ const STREAM_POSITION_PATTERN = /^\d{1,15}$/;
74
+ /**
75
+ * Input of the `fleet.events` subscription: the number of the last event the
76
+ * browser applied. tRPC sends it back as `lastEventId` when it reconnects;
77
+ * none means the browser has not loaded the fleet yet.
78
+ */
79
+ export const fleetEventsInputSchema = z.object({
80
+ lastEventId: z.string().regex(STREAM_POSITION_PATTERN, 'A position is the number of an event').nullish(),
81
+ });
82
+ /**
83
+ * One committed event as the live fleet view hears it: its number in the
84
+ * fleet's stream (commit order, without gaps), what happened and when, and
85
+ * which ship, message and delivery it concerns. Never its details.
86
+ */
87
+ export const liveFleetEventSchema = z.object({
88
+ seq: z.number().int().positive(),
89
+ id: idSchema('event'),
90
+ type: eventTypeSchema,
91
+ /** ISO 8601 in UTC. */
92
+ occurredAt: z.iso.datetime(),
93
+ shipId: idSchema('ship').nullable(),
94
+ messageId: idSchema('message').nullable(),
95
+ deliveryId: idSchema('delivery').nullable(),
96
+ });
97
+ /**
98
+ * What the `fleet.events` subscription sends: the next event, or `resync`,
99
+ * which tells the browser to load the fleet again and apply what follows.
100
+ */
101
+ export const fleetStreamItemSchema = z.discriminatedUnion('kind', [
102
+ z.object({ kind: z.literal('event'), event: liveFleetEventSchema }),
103
+ z.object({ kind: z.literal('resync') }),
104
+ ]);
72
105
  //# sourceMappingURL=fleet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/schemas/fleet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;GAGG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,cAAc,GAAG,YAAY,sBAAsB,uCAAuC,CAAC;AAEjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC3C,KAAK,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,4GAA4G;AAC5G,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,oBAAoB,aAAa,CAAC;SACjF,QAAQ,EAAE;CACd,CAAC,CAAC;AAIH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAIH,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAI7E,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,2DAA2D;IAC3D,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,gBAAgB;IACxB,cAAc,EAAE,CAAC;SACd,MAAM,CAAC;QACN,uBAAuB;QACvB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC1B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;KACvB,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,IAAI,EAAE,kBAAkB;QACxB,0BAA0B;QAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAIH,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/schemas/fleet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/common",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Aeolus shared schemas, prefixed ids and types.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",