@crowdedkingdoms/crowdyjs 8.8.0 → 8.9.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 (56) hide show
  1. package/MIGRATION.md +43 -0
  2. package/README.md +1 -1
  3. package/dist/domains/compute.d.ts +12 -1
  4. package/dist/domains/compute.d.ts.map +1 -1
  5. package/dist/domains/compute.js +18 -1
  6. package/dist/generated/graphql.d.ts +60 -0
  7. package/dist/generated/graphql.d.ts.map +1 -1
  8. package/dist/generated/graphql.js +2 -0
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -2
  12. package/dist/kit/abilities.d.ts +66 -0
  13. package/dist/kit/abilities.d.ts.map +1 -0
  14. package/dist/kit/abilities.js +71 -0
  15. package/dist/kit/blueprints/index.d.ts +2 -0
  16. package/dist/kit/blueprints/index.d.ts.map +1 -1
  17. package/dist/kit/blueprints/index.js +2 -0
  18. package/dist/kit/blueprints/liveops.d.ts +42 -0
  19. package/dist/kit/blueprints/liveops.d.ts.map +1 -0
  20. package/dist/kit/blueprints/liveops.js +170 -0
  21. package/dist/kit/blueprints/moderation.d.ts +32 -0
  22. package/dist/kit/blueprints/moderation.d.ts.map +1 -0
  23. package/dist/kit/blueprints/moderation.js +140 -0
  24. package/dist/kit/index.d.ts +9 -2
  25. package/dist/kit/index.d.ts.map +1 -1
  26. package/dist/kit/index.js +9 -2
  27. package/dist/kit/kit.d.ts +44 -0
  28. package/dist/kit/kit.d.ts.map +1 -1
  29. package/dist/kit/kit.js +35 -1
  30. package/dist/kit/liveops.d.ts +112 -0
  31. package/dist/kit/liveops.d.ts.map +1 -0
  32. package/dist/kit/liveops.js +183 -0
  33. package/dist/kit/loot.d.ts +22 -1
  34. package/dist/kit/loot.d.ts.map +1 -1
  35. package/dist/kit/loot.js +41 -1
  36. package/dist/kit/moderation.d.ts +73 -0
  37. package/dist/kit/moderation.d.ts.map +1 -0
  38. package/dist/kit/moderation.js +103 -0
  39. package/dist/kit/movement.d.ts +78 -0
  40. package/dist/kit/movement.d.ts.map +1 -0
  41. package/dist/kit/movement.js +103 -0
  42. package/dist/kit/npcs.d.ts.map +1 -1
  43. package/dist/kit/racing.d.ts +85 -0
  44. package/dist/kit/racing.d.ts.map +1 -0
  45. package/dist/kit/racing.js +99 -0
  46. package/dist/kit/social.d.ts.map +1 -1
  47. package/dist/kit/telemetry.d.ts +66 -0
  48. package/dist/kit/telemetry.d.ts.map +1 -0
  49. package/dist/kit/telemetry.js +133 -0
  50. package/dist/kit/territory.d.ts +97 -0
  51. package/dist/kit/territory.d.ts.map +1 -0
  52. package/dist/kit/territory.js +114 -0
  53. package/dist/kit/wire.d.ts +51 -0
  54. package/dist/kit/wire.d.ts.map +1 -1
  55. package/dist/kit/wire.js +60 -0
  56. package/package.json +1 -1
@@ -66,6 +66,16 @@ export declare const EVENT_TURN = 91;
66
66
  export declare const EVENT_SCORE = 92;
67
67
  /** Match proposal (matchmaking → matches handoff). */
68
68
  export declare const EVENT_PROPOSAL = 93;
69
+ /** Ability cast/impact (kit-play abilities). */
70
+ export declare const EVENT_ABILITY = 94;
71
+ /** Movement-envelope violation (movement-warden, observe/flag). */
72
+ export declare const EVENT_MOVEMENT_VIOLATION = 95;
73
+ /** Control-point state change (territory). */
74
+ export declare const EVENT_CONTROL_POINT = 96;
75
+ /** Race timing: checkpoint/lap/finish (kit-play timing). */
76
+ export declare const EVENT_RACE_TIMING = 97;
77
+ /** Zone change: shrinking circles, event areas (kit-sim zones). */
78
+ export declare const EVENT_ZONE_CHANGE = 98;
69
79
  /** Split an engine server-event payload into its type + JSON body. */
70
80
  export declare function parseEngineEvent(bytes: Uint8Array): {
71
81
  eventType: number;
@@ -121,4 +131,45 @@ export interface ProposalEvent {
121
131
  }
122
132
  /** Parse a proposal event; null when the payload is another type. */
123
133
  export declare function parseProposalEvent(bytes: Uint8Array): ProposalEvent | null;
134
+ /** A parsed type-94 ability cast/impact event. */
135
+ export interface AbilityEvent {
136
+ /** `'cast'` or `'impact'`. */
137
+ kind: string;
138
+ abilityId: string;
139
+ casterId: string;
140
+ victimId: string | null;
141
+ damage: number;
142
+ body: Record<string, unknown>;
143
+ }
144
+ /** Parse an ability event; null when the payload is another type. */
145
+ export declare function parseAbilityEvent(bytes: Uint8Array): AbilityEvent | null;
146
+ /** A parsed type-95 movement-violation event (observe/flag posture). */
147
+ export interface MovementViolationEvent {
148
+ /** `'speed'`, `'teleport'`, or `'bounds'`. */
149
+ kind: string;
150
+ userId: string;
151
+ detail: string;
152
+ body: Record<string, unknown>;
153
+ }
154
+ /** Parse a movement-violation event; null when the payload is another type. */
155
+ export declare function parseMovementViolation(bytes: Uint8Array): MovementViolationEvent | null;
156
+ /** A parsed type-96 control-point state event (territory flips). */
157
+ export interface ControlPointEvent {
158
+ pointId: string;
159
+ owner: string;
160
+ previousOwner: string;
161
+ body: Record<string, unknown>;
162
+ }
163
+ /** Parse a control-point event; null when the payload is another type. */
164
+ export declare function parseControlPointEvent(bytes: Uint8Array): ControlPointEvent | null;
165
+ /** A parsed type-97 race-timing event (checkpoint/lap/finish). */
166
+ export interface RaceTimingEvent {
167
+ /** `'started'`, `'checkpoint'`, `'lap'`, or `'finished'`. */
168
+ kind: string;
169
+ courseId: string;
170
+ userId: string;
171
+ body: Record<string, unknown>;
172
+ }
173
+ /** Parse a race-timing event; null when the payload is another type. */
174
+ export declare function parseRaceTimingEvent(bytes: Uint8Array): RaceTimingEvent | null;
124
175
  //# sourceMappingURL=wire.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/kit/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/kit/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,4EAA4E;AAC5E,eAAO,MAAM,aAAa,IAAS,CAAC;AACpC,eAAO,MAAM,QAAQ,IAAS,CAAC;AAC/B,eAAO,MAAM,QAAQ,IAAS,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAS,CAAC;AAErC,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAiBtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAqBrE;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAI3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,UAAU,CAiBlD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,CAM5E;AAMD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,uEAAuE;AACvE,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,oDAAoD;AACpD,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,8CAA8C;AAC9C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,sDAAsD;AACtD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,gDAAgD;AAChD,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,4DAA4D;AAC5D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,GAChB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAY7D;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,CAS/E;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CASxE;AAED,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CASlE;AAED,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAepE;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAW1E;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAWxE;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,sBAAsB,GAAG,IAAI,CASvF;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CASlF;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAS9E"}
package/dist/kit/wire.js CHANGED
@@ -120,6 +120,16 @@ export const EVENT_TURN = 91;
120
120
  export const EVENT_SCORE = 92;
121
121
  /** Match proposal (matchmaking → matches handoff). */
122
122
  export const EVENT_PROPOSAL = 93;
123
+ /** Ability cast/impact (kit-play abilities). */
124
+ export const EVENT_ABILITY = 94;
125
+ /** Movement-envelope violation (movement-warden, observe/flag). */
126
+ export const EVENT_MOVEMENT_VIOLATION = 95;
127
+ /** Control-point state change (territory). */
128
+ export const EVENT_CONTROL_POINT = 96;
129
+ /** Race timing: checkpoint/lap/finish (kit-play timing). */
130
+ export const EVENT_RACE_TIMING = 97;
131
+ /** Zone change: shrinking circles, event areas (kit-sim zones). */
132
+ export const EVENT_ZONE_CHANGE = 98;
123
133
  /** Split an engine server-event payload into its type + JSON body. */
124
134
  export function parseEngineEvent(bytes) {
125
135
  if (bytes.length < 2)
@@ -204,3 +214,53 @@ export function parseProposalEvent(bytes) {
204
214
  body: parsed.body,
205
215
  };
206
216
  }
217
+ /** Parse an ability event; null when the payload is another type. */
218
+ export function parseAbilityEvent(bytes) {
219
+ const parsed = parseEngineEvent(bytes);
220
+ if (!parsed || parsed.eventType !== EVENT_ABILITY)
221
+ return null;
222
+ return {
223
+ kind: String(parsed.body.kind ?? ''),
224
+ abilityId: String(parsed.body.abilityId ?? ''),
225
+ casterId: String(parsed.body.casterId ?? ''),
226
+ victimId: parsed.body.victimId != null ? String(parsed.body.victimId) : null,
227
+ damage: Number(parsed.body.damage ?? 0),
228
+ body: parsed.body,
229
+ };
230
+ }
231
+ /** Parse a movement-violation event; null when the payload is another type. */
232
+ export function parseMovementViolation(bytes) {
233
+ const parsed = parseEngineEvent(bytes);
234
+ if (!parsed || parsed.eventType !== EVENT_MOVEMENT_VIOLATION)
235
+ return null;
236
+ return {
237
+ kind: String(parsed.body.kind ?? ''),
238
+ userId: String(parsed.body.userId ?? ''),
239
+ detail: String(parsed.body.detail ?? ''),
240
+ body: parsed.body,
241
+ };
242
+ }
243
+ /** Parse a control-point event; null when the payload is another type. */
244
+ export function parseControlPointEvent(bytes) {
245
+ const parsed = parseEngineEvent(bytes);
246
+ if (!parsed || parsed.eventType !== EVENT_CONTROL_POINT)
247
+ return null;
248
+ return {
249
+ pointId: String(parsed.body.pointId ?? ''),
250
+ owner: String(parsed.body.owner ?? ''),
251
+ previousOwner: String(parsed.body.previousOwner ?? ''),
252
+ body: parsed.body,
253
+ };
254
+ }
255
+ /** Parse a race-timing event; null when the payload is another type. */
256
+ export function parseRaceTimingEvent(bytes) {
257
+ const parsed = parseEngineEvent(bytes);
258
+ if (!parsed || parsed.eventType !== EVENT_RACE_TIMING)
259
+ return null;
260
+ return {
261
+ kind: String(parsed.body.kind ?? ''),
262
+ courseId: String(parsed.body.courseId ?? ''),
263
+ userId: String(parsed.body.userId ?? ''),
264
+ body: parsed.body,
265
+ };
266
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crowdedkingdoms/crowdyjs",
3
- "version": "8.8.0",
3
+ "version": "8.9.0",
4
4
  "description": "Client SDK for Crowded Kingdoms GraphQL API with UDP proxy support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",