@crowdedkingdoms/crowdyjs 18.5.0-dev.1 → 18.7.0-dev.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.
Files changed (83) hide show
  1. package/MIGRATION.md +118 -0
  2. package/README.md +109 -4
  3. package/dist/binary-wire.d.ts +30 -2
  4. package/dist/binary-wire.d.ts.map +1 -1
  5. package/dist/binary-wire.js +61 -3
  6. package/dist/crowdy-client.d.ts +3 -0
  7. package/dist/crowdy-client.d.ts.map +1 -1
  8. package/dist/crowdy-client.js +2 -0
  9. package/dist/domains/appAccess.d.ts +32 -1
  10. package/dist/domains/appAccess.d.ts.map +1 -1
  11. package/dist/domains/appAccess.js +49 -1
  12. package/dist/domains/apps.d.ts +7 -1
  13. package/dist/domains/apps.d.ts.map +1 -1
  14. package/dist/domains/apps.js +7 -1
  15. package/dist/domains/channels.d.ts +8 -3
  16. package/dist/domains/channels.d.ts.map +1 -1
  17. package/dist/domains/channels.js +8 -3
  18. package/dist/domains/exec.d.ts +14 -0
  19. package/dist/domains/exec.d.ts.map +1 -1
  20. package/dist/domains/exec.js +13 -1
  21. package/dist/domains/grids.d.ts +1 -0
  22. package/dist/domains/grids.d.ts.map +1 -1
  23. package/dist/domains/grids.js +1 -0
  24. package/dist/domains/inputLog.d.ts +74 -0
  25. package/dist/domains/inputLog.d.ts.map +1 -0
  26. package/dist/domains/inputLog.js +74 -0
  27. package/dist/domains/portal.d.ts +18 -0
  28. package/dist/domains/portal.d.ts.map +1 -1
  29. package/dist/domains/portal.js +1 -1
  30. package/dist/domains/udp.d.ts +27 -8
  31. package/dist/domains/udp.d.ts.map +1 -1
  32. package/dist/domains/udp.js +39 -9
  33. package/dist/domains/users.d.ts +23 -2
  34. package/dist/domains/users.d.ts.map +1 -1
  35. package/dist/domains/users.js +34 -2
  36. package/dist/domains/voxels.d.ts +4 -3
  37. package/dist/domains/voxels.d.ts.map +1 -1
  38. package/dist/domains/voxels.js +4 -3
  39. package/dist/errors.d.ts +52 -0
  40. package/dist/errors.d.ts.map +1 -1
  41. package/dist/errors.js +74 -0
  42. package/dist/generated/graphql-schema.d.ts +576 -49
  43. package/dist/generated/graphql-schema.d.ts.map +1 -1
  44. package/dist/generated/graphql-schema.js +30 -1
  45. package/dist/generated/graphql.d.ts +232 -17
  46. package/dist/generated/graphql.d.ts.map +1 -1
  47. package/dist/generated/graphql.js +30 -21
  48. package/dist/grid-mods/grid-host-calls.d.ts +34 -0
  49. package/dist/grid-mods/grid-host-calls.d.ts.map +1 -1
  50. package/dist/grid-mods/grid-host-calls.js +28 -5
  51. package/dist/grid-mods/index.d.ts +1 -1
  52. package/dist/grid-mods/index.d.ts.map +1 -1
  53. package/dist/grid-mods/index.js +1 -1
  54. package/dist/grid-scope.d.ts +3 -0
  55. package/dist/grid-scope.d.ts.map +1 -1
  56. package/dist/grid-scope.js +6 -0
  57. package/dist/index.d.ts +11 -8
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +6 -4
  60. package/dist/media/voice-frames.d.ts +258 -0
  61. package/dist/media/voice-frames.d.ts.map +1 -0
  62. package/dist/media/voice-frames.js +424 -0
  63. package/dist/metrics.d.ts +1 -1
  64. package/dist/realtime.d.ts +19 -3
  65. package/dist/realtime.d.ts.map +1 -1
  66. package/dist/realtime.js +8 -0
  67. package/dist/stores/actors.d.ts +3 -1
  68. package/dist/stores/actors.d.ts.map +1 -1
  69. package/dist/stores/chunks.d.ts +65 -6
  70. package/dist/stores/chunks.d.ts.map +1 -1
  71. package/dist/stores/chunks.js +161 -19
  72. package/dist/stores/index.d.ts +2 -2
  73. package/dist/stores/index.d.ts.map +1 -1
  74. package/dist/stores/index.js +1 -1
  75. package/dist/stores/keys.d.ts +5 -0
  76. package/dist/stores/keys.d.ts.map +1 -1
  77. package/dist/stores/keys.js +7 -0
  78. package/dist/stores/session.d.ts +1 -1
  79. package/dist/stores/session.d.ts.map +1 -1
  80. package/dist/stores/session.js +2 -0
  81. package/dist/types.d.ts +49 -2
  82. package/dist/types.d.ts.map +1 -1
  83. package/package.json +1 -1
@@ -77,7 +77,38 @@ export interface GridHostCallsOptions {
77
77
  * on this grid, so a mod never sends as the player's avatar or as anyone else's.
78
78
  */
79
79
  actorUuid?: string;
80
+ /**
81
+ * The voxels a CLIENT half's `voxel_set` may write. Default
82
+ * {@link DEFAULT_GRID_VOXEL_BOUNDS}: positions 0-15 on each axis and types 0-255, a chunk of
83
+ * the platform's 16×16×16 layout. Positions and types are the app's signed 16-bit values, so a
84
+ * game whose world uses others widens them; every other `voxel_set` is refused.
85
+ */
86
+ voxelBounds?: GridVoxelBounds;
87
+ }
88
+ /** Inclusive ranges a CLIENT half's `voxel_set` must stay within. */
89
+ export interface GridVoxelBounds {
90
+ /** The within-chunk coordinate on each axis. Default 0-15. */
91
+ position?: {
92
+ min: number;
93
+ max: number;
94
+ };
95
+ /** The voxel type. Default 0-255. */
96
+ type?: {
97
+ min: number;
98
+ max: number;
99
+ };
80
100
  }
101
+ /** `voxel_set`'s bounds when a game sets none: positions 0-15 and types 0-255. */
102
+ export declare const DEFAULT_GRID_VOXEL_BOUNDS: Readonly<{
103
+ position: Readonly<{
104
+ min: 0;
105
+ max: 15;
106
+ }>;
107
+ type: Readonly<{
108
+ min: 0;
109
+ max: 255;
110
+ }>;
111
+ }>;
81
112
  /**
82
113
  * The permission keys `grid_permission_check` answers for: the player's code-permission keys,
83
114
  * the only ones a game knows for a grid. Any other key is refused rather than answered false.
@@ -101,6 +132,9 @@ export declare class GridHostCallRefused extends Error {
101
132
  * has already applied the allowlist, the player's consent, rate caps and chunk
102
133
  * clamps, and answers `grid_info`, `emit_event`, `hud_set` and `overlay_draw`
103
134
  * itself.
135
+ *
136
+ * @throws {RangeError} when `voxelBounds` is not integer ranges (`min` ≤ `max`) within
137
+ * -32768 to 32767.
104
138
  */
105
139
  export declare function createGridHostCalls(options: GridHostCallsOptions): (call: PlayerCodeHostCall) => Promise<unknown>;
106
140
  //# sourceMappingURL=grid-host-calls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-host-calls.d.ts","sourceRoot":"","sources":["../../src/grid-mods/grid-host-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACtF,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF;;;OAGG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrG;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,CAAC,KAAK,EAAE;QACf,KAAK,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,kBAAkB,CAAC,IAAI,OAAO,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,KAAK,EAAE,SAAS,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAC;QAClB,MAAM,EAAE,SAAS,CAAC;QAClB,KAAK,EAAE,QAAQ,CAAC;QAChB,gEAAgE;QAChE,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KACxC,CAAC;IACF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAKvD,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvF;AAED,sEAAsE;AACtE,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM,EAAE,MAAM,SAA+B;CAIvE;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAmMhD"}
1
+ {"version":3,"file":"grid-host-calls.d.ts","sourceRoot":"","sources":["../../src/grid-mods/grid-host-calls.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /** `voxel_set`'s bounds when a game sets none: positions 0-15 and types 0-255. */
2
+ export const DEFAULT_GRID_VOXEL_BOUNDS = Object.freeze({
3
+ position: Object.freeze({ min: 0, max: 15 }),
4
+ type: Object.freeze({ min: 0, max: 255 }),
5
+ });
1
6
  /**
2
7
  * The permission keys `grid_permission_check` answers for: the player's code-permission keys,
3
8
  * the only ones a game knows for a grid. Any other key is refused rather than answered false.
@@ -34,10 +39,16 @@ const SPATIAL_KINDS = new Set(['actor', 'client_event', 'server_event', 'text'])
34
39
  * has already applied the allowlist, the player's consent, rate caps and chunk
35
40
  * clamps, and answers `grid_info`, `emit_event`, `hud_set` and `overlay_draw`
36
41
  * itself.
42
+ *
43
+ * @throws {RangeError} when `voxelBounds` is not integer ranges (`min` ≤ `max`) within
44
+ * -32768 to 32767.
37
45
  */
38
46
  export function createGridHostCalls(options) {
39
47
  const { scope, client, local } = options;
40
48
  const appId = scope.appId;
49
+ const bounds = options.voxelBounds;
50
+ const voxelPosition = voxelRange('position', bounds?.position, DEFAULT_GRID_VOXEL_BOUNDS.position);
51
+ const voxelTypes = voxelRange('type', bounds?.type, DEFAULT_GRID_VOXEL_BOUNDS.type);
41
52
  let gridChannels = null;
42
53
  const ownChannels = () => (gridChannels ?? (gridChannels = scope.channels
43
54
  .list()
@@ -96,12 +107,12 @@ export function createGridHostCalls(options) {
96
107
  case 'voxel_set': {
97
108
  const chunk = coords(args.chunkX, args.chunkY, args.chunkZ);
98
109
  scope.assertContains({ x: chunk[0], y: chunk[1], z: chunk[2] });
99
- const vx = intIn(args.voxelX ?? 0, 0, 15);
100
- const vy = intIn(args.voxelY ?? 0, 0, 15);
101
- const vz = intIn(args.voxelZ ?? 0, 0, 15);
102
- const voxelType = intIn(args.voxelType ?? 0, 0, 255);
110
+ const vx = intIn(args.voxelX ?? 0, voxelPosition.min, voxelPosition.max);
111
+ const vy = intIn(args.voxelY ?? 0, voxelPosition.min, voxelPosition.max);
112
+ const vz = intIn(args.voxelZ ?? 0, voxelPosition.min, voxelPosition.max);
113
+ const voxelType = intIn(args.voxelType ?? 0, voxelTypes.min, voxelTypes.max);
103
114
  if (vx === null || vy === null || vz === null || voxelType === null) {
104
- throw new GridHostCallRefused(fn, 'needs a voxel inside its chunk (0-15) and a voxel type 0-255');
115
+ throw new GridHostCallRefused(fn, `needs a voxel inside its chunk (${span(voxelPosition)}) and a voxel type ${span(voxelTypes)}`);
105
116
  }
106
117
  const voxel = { x: vx, y: vy, z: vz };
107
118
  const state = typeof args.stateBase64 === 'string' ? args.stateBase64 : undefined;
@@ -241,6 +252,18 @@ function decimalId(value) {
241
252
  function coords(x, y, z) {
242
253
  return [BigInt(x), BigInt(y), BigInt(z)];
243
254
  }
255
+ /** A `voxelBounds` range, or the default; the wire carries both as signed 16-bit values. */
256
+ function voxelRange(name, range, fallback) {
257
+ const min = range?.min ?? fallback.min;
258
+ const max = range?.max ?? fallback.max;
259
+ if (!Number.isInteger(min) || !Number.isInteger(max) || min > max || min < -0x8000 || max > 0x7fff) {
260
+ throw new RangeError(`voxelBounds.${name} must be integers from -32768 to 32767 with min <= max, got ${min}..${max}`);
261
+ }
262
+ return { min, max };
263
+ }
264
+ function span(range) {
265
+ return range.min < 0 ? `${range.min} to ${range.max}` : `${range.min}-${range.max}`;
266
+ }
244
267
  /** An integer in [lo, hi] (a number, or a decimal string), else null. */
245
268
  function intIn(value, lo, hi) {
246
269
  const n = typeof value === 'number' ? value : typeof value === 'string' && /^-?\d+$/.test(value) ? Number(value) : NaN;
@@ -1,4 +1,4 @@
1
- export { clientHalfActorUuid, createGridHostCalls, GRID_PERMISSION_CHECK_KEYS, GridHostCallRefused, type GridHostCallsOptions, type GridHostLocal, } from './grid-host-calls.js';
1
+ export { clientHalfActorUuid, createGridHostCalls, DEFAULT_GRID_VOXEL_BOUNDS, GRID_PERMISSION_CHECK_KEYS, GridHostCallRefused, type GridHostCallsOptions, type GridHostLocal, type GridVoxelBounds, } from './grid-host-calls.js';
2
2
  export { startGridMod, type GridModSpec, type WasmGridModSpec, type ProgramGridModSpec, type RunningGridMod, type StartGridModOptions, } from './mod-runtime.js';
3
3
  export { ExecClientHalves, type ExecClientHalvesGrid, type ExecClientHalvesOptions, type ExecClientHalfBroker, type ExecClientHalfError, type ExecClientHalfPrompt, type ExecClientHalfStopReason, } from './exec-client-halves.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grid-mods/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grid-mods/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC"}
@@ -1,3 +1,3 @@
1
- export { clientHalfActorUuid, createGridHostCalls, GRID_PERMISSION_CHECK_KEYS, GridHostCallRefused, } from './grid-host-calls.js';
1
+ export { clientHalfActorUuid, createGridHostCalls, DEFAULT_GRID_VOXEL_BOUNDS, GRID_PERMISSION_CHECK_KEYS, GridHostCallRefused, } from './grid-host-calls.js';
2
2
  export { startGridMod, } from './mod-runtime.js';
3
3
  export { ExecClientHalves, } from './exec-client-halves.js';
@@ -60,6 +60,7 @@ export declare class GridScope {
60
60
  description?: string;
61
61
  membershipPolicy?: string;
62
62
  membersCanSend?: boolean;
63
+ membersCanSpeak?: boolean;
63
64
  }) => Promise<{
64
65
  groupId: string;
65
66
  appId: string;
@@ -89,6 +90,8 @@ export declare class GridScope {
89
90
  }>;
90
91
  leave: (channelId: string) => Promise<boolean>;
91
92
  send: (channelId: string, uuid: string, payloadBase64: string) => Promise<boolean>;
93
+ /** Channel audio (opcode 35): needs `send_voice` on the channel and the player's `use_voice_chat`. */
94
+ sendAudio: (channelId: string, uuid: string, audioBase64: string) => Promise<boolean>;
92
95
  };
93
96
  /**
94
97
  * Replication that ORIGINATES in the grid. Each send checks its chunk
@@ -1 +1 @@
1
- {"version":3,"file":"grid-scope.d.ts","sourceRoot":"","sources":["../src/grid-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,4EAA4E;AAC5E,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IALzB,OAAO,CAAC,GAAG,CAAiB;gBAGT,OAAO,EAAE,gBAAgB,EACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,OAAO;IAKf,uEAAuE;IACvE,IAAI,MAAM,IAAI,OAAO,GAAG,IAAI,CAE3B;IAED,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAgBnC,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAatC,mEAAmE;IAC7D,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBxD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ;oBACL,OAAO,CAAC,WAAW,EAAE,CAAC;uBAGxB,MAAM,YACH;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE;;;;;;;;;;;;;0BAQtE,MAAM;;;;;;;;;;;;;;2BACL,MAAM;0BACP,MAAM,QAAQ,MAAM,iBAAiB,MAAM;MAM7D;IAEF;;;;OAIG;IACH,QAAQ,CAAC,IAAI;6BACU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;6BAIvD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;sBAI9D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;6BAI/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;MAI5E;CACH"}
1
+ {"version":3,"file":"grid-scope.d.ts","sourceRoot":"","sources":["../src/grid-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,4EAA4E;AAC5E,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IALzB,OAAO,CAAC,GAAG,CAAiB;gBAGT,OAAO,EAAE,gBAAgB,EACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,OAAO;IAKf,uEAAuE;IACvE,IAAI,MAAM,IAAI,OAAO,GAAG,IAAI,CAE3B;IAED,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAgBnC,6EAA6E;IAC7E,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAatC,mEAAmE;IAC7D,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBxD,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ;oBACL,OAAO,CAAC,WAAW,EAAE,CAAC;uBAGxB,MAAM,YACH;YACP,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,eAAe,CAAC,EAAE,OAAO,CAAC;SAC3B;;;;;;;;;;;;;0BAQe,MAAM;;;;;;;;;;;;;;2BACL,MAAM;0BACP,MAAM,QAAQ,MAAM,iBAAiB,MAAM;QAM7D,sGAAsG;+BAC/E,MAAM,QAAQ,MAAM,eAAe,MAAM;MAMhE;IAEF;;;;OAIG;IACH,QAAQ,CAAC,IAAI;6BACU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;6BAIvD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;sBAI9D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;6BAI/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;MAI5E;CACH"}
@@ -36,6 +36,12 @@ export class GridScope {
36
36
  uuid,
37
37
  payload: payloadBase64,
38
38
  }),
39
+ /** Channel audio (opcode 35): needs `send_voice` on the channel and the player's `use_voice_chat`. */
40
+ sendAudio: (channelId, uuid, audioBase64) => this.clients.udp.sendChannelAudio({
41
+ channelId,
42
+ uuid,
43
+ payload: audioBase64,
44
+ }),
39
45
  };
40
46
  /**
41
47
  * Replication that ORIGINATES in the grid. Each send checks its chunk
package/dist/index.d.ts CHANGED
@@ -46,7 +46,7 @@
46
46
  * never an untrusted browser.
47
47
  */
48
48
  /** The published package version. Mirrors `package.json`. */
49
- export declare const VERSION = "18.5.0-dev.1";
49
+ export declare const VERSION = "18.7.0-dev.1";
50
50
  export { LbCookieStore } from './lb-cookie-store.js';
51
51
  export { CrowdyClient, createCrowdyClient, type CrowdyClientConfig, } from './crowdy-client.js';
52
52
  export { CROWDY_DEFAULT_TIER, CROWDY_DEFAULT_HOST, CROWDY_DEFAULT_HTTP_ORIGIN, CROWDY_DEFAULT_WS_ORIGIN, } from './default-origin.js';
@@ -54,23 +54,24 @@ export { BrowserLocalStorageTokenStore, SessionStore, type SessionListener, type
54
54
  export { GraphQLClient, GraphQLTransport, type GraphQLClientConfig, } from './client.js';
55
55
  export { RealtimeClient, type RealtimeConfig, type RealtimeStatus, type SpatialNotification, type UdpNotification, type UdpNotificationHandlers, } from './realtime.js';
56
56
  export { BinaryRelayTransport, RELAY_SUBPROTOCOL, type BinaryRelayCallbacks, type BinaryRelayConfig, type BinaryRelaySendStats, } from './binary-relay.js';
57
- export { BUNDLE_HEADER_BYTES, BUNDLE_LENGTH_PREFIX_BYTES, RELAY_MAX_BUNDLE_MEMBERS, RELAY_MAX_BUNDLE_MEMBER_BYTES, RELAY_MAX_DATAGRAM_BYTES, WireMessageType, bundleSizeOf, createSignContext, packMessageBundle, parseRelayFrame, serializeActorUpdate, serializeAudioPacket, serializeVideoPacket, serializeChannelMessage, serializeClientEvent, serializeRangedChannelMessage, CHANNEL_RANGED_MAX_DISTANCE, serializeSingleActorMessage, serializeTextPacket, serializeVoxelUpdate, type RelaySignContext, } from './binary-wire.js';
57
+ export { BUNDLE_HEADER_BYTES, BUNDLE_LENGTH_PREFIX_BYTES, RELAY_MAX_BUNDLE_MEMBERS, RELAY_MAX_BUNDLE_MEMBER_BYTES, RELAY_MAX_DATAGRAM_BYTES, WireMessageType, bundleSizeOf, createSignContext, packMessageBundle, parseRelayFrame, serializeActorUpdate, serializeAudioPacket, serializeVideoPacket, serializeChannelAudio, serializeChannelMessage, serializeClientEvent, serializeRangedChannelMessage, CHANNEL_RANGED_MAX_DISTANCE, serializeSingleActorMessage, serializeTextPacket, serializeVoxelUpdate, assertVoxelEdit, VOXEL_STATE_MAX_BYTES, type ChannelSendInput, type RelaySignContext, } from './binary-wire.js';
58
58
  export { VIDEO_FRAGMENT_HEADER_BYTES, MAX_VIDEO_FRAGMENT_BODY_BYTES, MAX_VIDEO_FRAGMENTS, VIDEO_FRAME_TIMEOUT_MS, VIDEO_FRAGMENT_VERSION, VideoCodec, fragmentFrame, parseVideoFragmentHeader, isNewerFrameId, VideoFrameAssembler, type VideoFragmentHeader, type AssembledVideoFrame, } from './media/video-frames.js';
59
+ export { VOICE_HEADER_BYTES, VOICE_HEADER_VERSION, MAX_VOICE_FRAME_BYTES, VOICE_TARGET_DELAY_MS, VOICE_JITTER_MAX_FRAMES, VOICE_RESET_AFTER_MS, VoiceCodec, VoiceFlag, voiceClockRate, voiceSamplesPerFrame, voiceSeqDiff, encodeVoiceHeader, encodeVoicePacket, decodeVoicePacket, VoicePacketizer, VoiceJitterBuffer, type VoiceHeader, type VoicePacket, type VoicePacketizerOptions, type VoiceJitterBufferOptions, type VoicePushResult, type VoicePlayout, } from './media/voice-frames.js';
59
60
  export { RealtimeMetrics, payloadBytesOf, type RealtimeMetricsCounters, type RealtimeMetricsKind, type RealtimeMetricsSnapshot, } from './metrics.js';
60
61
  export { WorldClient, ActorClient, type ActorOptions } from './world.js';
61
62
  export { GameKitClient, SocialKit, EVENT_CONTACT_DAMAGE, EVENT_ABILITY, EVENT_CONTROL_POINT, EVENT_MOVEMENT_VIOLATION, EVENT_PROPOSAL, EVENT_RACE_TIMING, EVENT_ZONE_CHANGE, EVENT_SCORE, EVENT_TURN, EVENT_WEATHER, FLAG_GROUNDED, FLAG_MOB, FLAG_NPC, FLAG_RESERVED3, POSE_BYTES, decodeEnginePose, encodeEnginePose, engineLanes, enginePoseCodec, parseContactDamage, parseEngineEvent, parseAbilityEvent, parseControlPointEvent, parseMovementViolation, parseProposalEvent, parseRaceTimingEvent, parseScoreEvent, parseTurnEvent, parseWeatherEvent, parseZoneChangeEvent, poseSuffix, runOptimisticAction, type OptimisticActionOutcome, type OptimisticActionSpec, type ContactDamageEvent, type EnginePose, type GameKitDomains, type GameKitOptions, type KitChatMessage, type KitGroupWithChannel, type SocialKitOptions, type AbilityEvent, type ControlPointEvent, type MovementViolationEvent, type ProposalEvent, type RaceTimingEvent, type ZoneChangeEvent, type ScoreEvent, type TurnEvent, type WeatherEvent, } from './kit/index.js';
62
63
  export type { StateCodec, Ticker, WorldSession, WorldSessionConfig, WorldStoresClient, } from './stores/index.js';
63
- export { APP_UNAVAILABLE_CODE, CrowdyAppUnavailableError, CrowdyError, CrowdyGraphQLError, CrowdyHttpError, CrowdyNetworkError, CrowdyProtocolError, CrowdyRealtimeError, CrowdyTimeoutError, CrowdyUserCodeFaultError, playerFaultOf, WRONG_DATACENTER_CODE, } from './errors.js';
64
- export type { CrowdyFaultBlame, CrowdyFaultCode, CrowdyPlayerFault, } from './errors.js';
64
+ export { ACCESS_NOT_GRANTED_CODE, ACCESS_REVOKED_CODE, ACCESS_SUSPENDED_CODE, ACTOR_EXISTS_CODE, APP_PAUSED_CODE, accessRefusalOf, actorExistsOf, appPausedOf, isAppPaused, APP_UNAVAILABLE_CODE, CrowdyAppUnavailableError, CrowdyError, CrowdyGraphQLError, CrowdyHttpError, CrowdyNetworkError, CrowdyProtocolError, CrowdyRealtimeError, CrowdyTimeoutError, CrowdyUserCodeFaultError, playerFaultOf, WRONG_DATACENTER_CODE, } from './errors.js';
65
+ export type { AppPauseReason, CrowdyAccessRefusal, CrowdyFaultBlame, CrowdyFaultCode, CrowdyPlayerFault, } from './errors.js';
65
66
  export { moveFromError, moveFromErrors } from './datacenter-redirect.js';
66
67
  export type { DatacenterMove } from './datacenter-redirect.js';
67
68
  export { SequenceAllocator, decodeBase64, encodeBase64, generateCrowdyUuid, validateChunkCoordinates, validateCrowdyUuid, } from './utils.js';
68
- export type { BigInt, ChunkCoordinates, VoxelCoordinates, ActorUpdateNotification, ActorUpdateResponse, VoxelUpdateNotification, VoxelUpdateResponse, ClientAudioNotification, ClientVideoNotification, ActorLeftNotification, ClientTextNotification, ClientEventNotification, ServerEventNotification, GenericErrorResponse, ActorUpdateHandler, ActorUpdateResponseHandler, VoxelUpdateHandler, VoxelUpdateResponseHandler, ClientAudioHandler, ClientVideoHandler, ActorLeftHandler, ClientTextHandler, ClientEventHandler, ServerEventHandler, GenericErrorHandler, UnsubscribeFn, } from './types.js';
69
+ export type { BigInt, ChunkCoordinates, VoxelCoordinates, ActorUpdateNotification, ActorUpdateResponse, VoxelUpdateNotification, VoxelUpdateResponse, ClientAudioNotification, ClientVideoNotification, ActorLeftNotification, ClientTextNotification, ClientEventNotification, ServerEventNotification, GenericSpatialNotification, ChannelAudioNotification, GenericErrorResponse, ActorUpdateHandler, ActorUpdateResponseHandler, VoxelUpdateHandler, VoxelUpdateResponseHandler, ClientAudioHandler, ClientVideoHandler, ActorLeftHandler, ClientTextHandler, ClientEventHandler, ServerEventHandler, GenericSpatialHandler, ChannelAudioHandler, GenericErrorHandler, UnsubscribeFn, } from './types.js';
69
70
  export { UdpErrorCode } from './types.js';
70
71
  export { AuthAPI, isAlreadyRegisteredError, isPasswordUnconfirmedError, isPasswordAlreadySetError, isNoPasswordSetError, isInvalidCurrentPasswordError, type AuthResponse, type AuthUser, type UserIdentity, } from './domains/auth.js';
71
- export { UsersAPI } from './domains/users.js';
72
+ export { PLAYER_PROFILES_MAX, UsersAPI } from './domains/users.js';
72
73
  export { AppsAPI, type AppRoute } from './domains/apps.js';
73
- export { PortalAPI, BrowserSessionPkceStore, PortalConsentRequiredError, defaultHostedSignInUrl, isHostedSignInRequiredError, isLegalAcceptanceRequiredError, type AppTokenResponse, type CurrentServer, type PortalAuthorizationCode, type PortalConsentState, type AppAuthorizationGrant, type PkceStore, type BeginEntryParams, type SignInParams, } from './domains/portal.js';
74
+ export { PortalAPI, BrowserSessionPkceStore, PortalConsentRequiredError, defaultHostedSignInUrl, isHostedSignInRequiredError, isLegalAcceptanceRequiredError, type AppRuntimeGate, type AppTokenResponse, type CurrentServer, type PortalAuthorizationCode, type PortalConsentState, type AppAuthorizationGrant, type PkceStore, type BeginEntryParams, type SignInParams, } from './domains/portal.js';
74
75
  export { EmbeddedHost, EMBEDDED_HOST_PROTOCOL_VERSION, type EmbeddedHostInfo, type EmbeddedHostOptions, type HostHelloMessage, type HostHelloRequestMessage, type NavigateMessage, } from './domains/embedded-host.js';
75
76
  export { HostingAPI, uploadPublishFiles, type HostedGame, type HostedGamePublish, type HostedGameUpload, type BeginGamePublishResult, type CompleteGamePublishResult, type PublishFileInput, } from './domains/hosting.js';
76
77
  export { generatePkcePair, generateState, type PkcePair } from './pkce.js';
@@ -90,12 +91,14 @@ export { ChunksAPI } from './domains/chunks.js';
90
91
  export { VoxelsAPI } from './domains/voxels.js';
91
92
  export { ActorsAPI } from './domains/actors.js';
92
93
  export { TeleportAPI } from './domains/teleport.js';
94
+ export { InputLogAPI } from './domains/inputLog.js';
95
+ export type { InputLogMessagePage, InputLogMessageRecord, InputLogPageOptions, InputLogSessionPage, InputLogSessionRecord, } from './domains/inputLog.js';
93
96
  export { StateAPI } from './domains/state.js';
94
97
  export { ServerStatusAPI } from './domains/serverStatus.js';
95
98
  export { ChannelsAPI } from './domains/channels.js';
96
99
  export { TeamsAPI } from './domains/teams.js';
97
100
  export { UdpAPI } from './domains/udp.js';
98
- export { ExecAPI, ExecConnection, CrowdyExecError, EXEC_STATUSES, execStatus, execGatewayRefusal, encodeExecFrame, decodeExecFrame, type ExecStatus, type ExecClientFrame, type ExecServerFrame, type ExecPush, type ExecPushHandler, type ExecEndpoint, type ExecConnectOptions, type ExecWebSocketCtor, type ExecNodeTypeInput, type ExecDeployOptions, type ExecCrate, type ExecSourceFile, type ExecBuild, type ExecBuildArtifact, type ExecStarter, type ExecStarterPack, type ExecLogLine, type ExecLogsOptions, type ExecInstance, type ExecVersion, type ExecManifest, type ExecManifestType, type ExecAppStatus, type ExecEndpointStat, type ExecEndpointStatsOptions, ExecModScope, execModType, EXEC_CLIENT_ABI_VERSION, type ExecMod, type ExecModListing, type ExecModSwitch, type ExecClientCapabilitySummary, type ExecModClient, type ExecGridClientMod, type ExecModClientArtifact, type ExecModClientArtifactBytes, } from './domains/exec.js';
101
+ export { ExecAPI, ExecConnection, CrowdyExecError, EXEC_STATUSES, execStatus, execGatewayRefusal, encodeExecFrame, decodeExecFrame, type ExecStatus, type ExecClientFrame, type ExecServerFrame, type ExecPush, type ExecPushHandler, type ExecEndpoint, type ExecConnectOptions, type ExecWebSocketCtor, type ExecNodeTypeInput, type ExecDeployOptions, type ExecCrate, type ExecSourceFile, type ExecBuild, type ExecBuildArtifact, type ExecStarter, type ExecStarterPack, type ExecLogLine, type ExecLogsOptions, type ExecInstance, type ExecVersion, type ExecManifest, type ExecManifestType, type ExecAppStatus, type ExecRestartResult, type ExecEndpointStat, type ExecEndpointStatsOptions, ExecModScope, execModType, EXEC_CLIENT_ABI_VERSION, type ExecMod, type ExecModListing, type ExecModSwitch, type ExecClientCapabilitySummary, type ExecModClient, type ExecGridClientMod, type ExecModClientArtifact, type ExecModClientArtifactBytes, } from './domains/exec.js';
99
102
  export { CrowdyStudioAPI } from './domains/crowdyStudio.js';
100
103
  export { PlayerWalletAPI } from './domains/playerWallet.js';
101
104
  export { MarketplaceAPI } from './domains/marketplace.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -46,7 +46,7 @@
46
46
  * never an untrusted browser.
47
47
  */
48
48
  /** The published package version. Mirrors `package.json`. */
49
- export const VERSION = '18.5.0-dev.1';
49
+ export const VERSION = '18.7.0-dev.1';
50
50
  export { LbCookieStore } from './lb-cookie-store.js';
51
51
  export { CrowdyClient, createCrowdyClient, } from './crowdy-client.js';
52
52
  // The tier this build defaults to, exported so a consumer can PRINT what it is
@@ -58,12 +58,13 @@ export { BrowserLocalStorageTokenStore, SessionStore, } from './session.js';
58
58
  export { GraphQLClient, GraphQLTransport, } from './client.js';
59
59
  export { RealtimeClient, } from './realtime.js';
60
60
  export { BinaryRelayTransport, RELAY_SUBPROTOCOL, } from './binary-relay.js';
61
- export { BUNDLE_HEADER_BYTES, BUNDLE_LENGTH_PREFIX_BYTES, RELAY_MAX_BUNDLE_MEMBERS, RELAY_MAX_BUNDLE_MEMBER_BYTES, RELAY_MAX_DATAGRAM_BYTES, WireMessageType, bundleSizeOf, createSignContext, packMessageBundle, parseRelayFrame, serializeActorUpdate, serializeAudioPacket, serializeVideoPacket, serializeChannelMessage, serializeClientEvent, serializeRangedChannelMessage, CHANNEL_RANGED_MAX_DISTANCE, serializeSingleActorMessage, serializeTextPacket, serializeVoxelUpdate, } from './binary-wire.js';
61
+ export { BUNDLE_HEADER_BYTES, BUNDLE_LENGTH_PREFIX_BYTES, RELAY_MAX_BUNDLE_MEMBERS, RELAY_MAX_BUNDLE_MEMBER_BYTES, RELAY_MAX_DATAGRAM_BYTES, WireMessageType, bundleSizeOf, createSignContext, packMessageBundle, parseRelayFrame, serializeActorUpdate, serializeAudioPacket, serializeVideoPacket, serializeChannelAudio, serializeChannelMessage, serializeClientEvent, serializeRangedChannelMessage, CHANNEL_RANGED_MAX_DISTANCE, serializeSingleActorMessage, serializeTextPacket, serializeVoxelUpdate, assertVoxelEdit, VOXEL_STATE_MAX_BYTES, } from './binary-wire.js';
62
62
  export { VIDEO_FRAGMENT_HEADER_BYTES, MAX_VIDEO_FRAGMENT_BODY_BYTES, MAX_VIDEO_FRAGMENTS, VIDEO_FRAME_TIMEOUT_MS, VIDEO_FRAGMENT_VERSION, VideoCodec, fragmentFrame, parseVideoFragmentHeader, isNewerFrameId, VideoFrameAssembler, } from './media/video-frames.js';
63
+ export { VOICE_HEADER_BYTES, VOICE_HEADER_VERSION, MAX_VOICE_FRAME_BYTES, VOICE_TARGET_DELAY_MS, VOICE_JITTER_MAX_FRAMES, VOICE_RESET_AFTER_MS, VoiceCodec, VoiceFlag, voiceClockRate, voiceSamplesPerFrame, voiceSeqDiff, encodeVoiceHeader, encodeVoicePacket, decodeVoicePacket, VoicePacketizer, VoiceJitterBuffer, } from './media/voice-frames.js';
63
64
  export { RealtimeMetrics, payloadBytesOf, } from './metrics.js';
64
65
  export { WorldClient, ActorClient } from './world.js';
65
66
  export { GameKitClient, SocialKit, EVENT_CONTACT_DAMAGE, EVENT_ABILITY, EVENT_CONTROL_POINT, EVENT_MOVEMENT_VIOLATION, EVENT_PROPOSAL, EVENT_RACE_TIMING, EVENT_ZONE_CHANGE, EVENT_SCORE, EVENT_TURN, EVENT_WEATHER, FLAG_GROUNDED, FLAG_MOB, FLAG_NPC, FLAG_RESERVED3, POSE_BYTES, decodeEnginePose, encodeEnginePose, engineLanes, enginePoseCodec, parseContactDamage, parseEngineEvent, parseAbilityEvent, parseControlPointEvent, parseMovementViolation, parseProposalEvent, parseRaceTimingEvent, parseScoreEvent, parseTurnEvent, parseWeatherEvent, parseZoneChangeEvent, poseSuffix, runOptimisticAction, } from './kit/index.js';
66
- export { APP_UNAVAILABLE_CODE, CrowdyAppUnavailableError, CrowdyError, CrowdyGraphQLError, CrowdyHttpError, CrowdyNetworkError, CrowdyProtocolError, CrowdyRealtimeError, CrowdyTimeoutError, CrowdyUserCodeFaultError, playerFaultOf, WRONG_DATACENTER_CODE, } from './errors.js';
67
+ export { ACCESS_NOT_GRANTED_CODE, ACCESS_REVOKED_CODE, ACCESS_SUSPENDED_CODE, ACTOR_EXISTS_CODE, APP_PAUSED_CODE, accessRefusalOf, actorExistsOf, appPausedOf, isAppPaused, APP_UNAVAILABLE_CODE, CrowdyAppUnavailableError, CrowdyError, CrowdyGraphQLError, CrowdyHttpError, CrowdyNetworkError, CrowdyProtocolError, CrowdyRealtimeError, CrowdyTimeoutError, CrowdyUserCodeFaultError, playerFaultOf, WRONG_DATACENTER_CODE, } from './errors.js';
67
68
  export { moveFromError, moveFromErrors } from './datacenter-redirect.js';
68
69
  export { SequenceAllocator, decodeBase64, encodeBase64, generateCrowdyUuid, validateChunkCoordinates, validateCrowdyUuid, } from './utils.js';
69
70
  export { UdpErrorCode } from './types.js';
@@ -72,7 +73,7 @@ export { UdpErrorCode } from './types.js';
72
73
  // permissions they require.
73
74
  // -----------------------------------------------------------------------------
74
75
  export { AuthAPI, isAlreadyRegisteredError, isPasswordUnconfirmedError, isPasswordAlreadySetError, isNoPasswordSetError, isInvalidCurrentPasswordError, } from './domains/auth.js';
75
- export { UsersAPI } from './domains/users.js';
76
+ export { PLAYER_PROFILES_MAX, UsersAPI } from './domains/users.js';
76
77
  export { AppsAPI } from './domains/apps.js';
77
78
  export { PortalAPI, BrowserSessionPkceStore, PortalConsentRequiredError, defaultHostedSignInUrl, isHostedSignInRequiredError, isLegalAcceptanceRequiredError, } from './domains/portal.js';
78
79
  export { EmbeddedHost, EMBEDDED_HOST_PROTOCOL_VERSION, } from './domains/embedded-host.js';
@@ -94,6 +95,7 @@ export { ChunksAPI } from './domains/chunks.js';
94
95
  export { VoxelsAPI } from './domains/voxels.js';
95
96
  export { ActorsAPI } from './domains/actors.js';
96
97
  export { TeleportAPI } from './domains/teleport.js';
98
+ export { InputLogAPI } from './domains/inputLog.js';
97
99
  export { StateAPI } from './domains/state.js';
98
100
  export { ServerStatusAPI } from './domains/serverStatus.js';
99
101
  export { ChannelsAPI } from './domains/channels.js';
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Voice payloads: an optional convention for what an app carries inside an audio payload
3
+ * (`CLIENT_AUDIO_PACKET_2` 134, delivered as `CLIENT_AUDIO_NOTIFICATION_2` 135).
4
+ *
5
+ * The server never looks inside an audio payload, and an app with a format of its own keeps it.
6
+ * This is a shared one, implemented byte for byte by both SDKs (CrowdyCPP's
7
+ * `crowdy/media/voice_frames.hpp`; both replay `test/unit/fixtures/voice-frames.json`): a 10-byte
8
+ * header in front of each codec frame, integers little-endian.
9
+ *
10
+ * ```
11
+ * offset size field meaning
12
+ * 0 1 version 1. A reader refuses any other version.
13
+ * 1 1 codec 0 = unspecified / raw, 1 = Opus 48 kHz mono, 2 = G.711 µ-law 8 kHz.
14
+ * 2 2 seq uint16, +1 per packet sent, wraps.
15
+ * 4 4 timestamp uint32 in codec samples (48 kHz for Opus, 8 kHz for µ-law;
16
+ * milliseconds for codec 0 and any codec not listed), wraps.
17
+ * 8 1 frameMs the frame's duration in milliseconds.
18
+ * 9 1 flags bit 0: the first packet after silence (a talk spurt starts);
19
+ * bit 1: the last packet before silence. Other bits are reserved.
20
+ * 10 ... frame one codec frame.
21
+ * ```
22
+ *
23
+ * A reader refuses a packet shorter than 10 bytes or of another version: {@link decodeVoicePacket}
24
+ * returns `null`, and nothing here throws on a packet from the network. {@link VoicePacketizer}
25
+ * numbers one sender's frames and sets the talk-spurt flags; {@link VoiceJitterBuffer} puts each
26
+ * sender's packets back in order, plays them out after a fixed delay and reports the frames that
27
+ * never came as gaps.
28
+ *
29
+ * **Opus.** No codec ships with this SDK. A browser encodes and decodes Opus with WebCodecs: an
30
+ * `AudioEncoder` configured `{ codec: 'opus', sampleRate: 48000, numberOfChannels: 1, bitrate:
31
+ * 24000, opus: { frameDuration: 20000 } }` emits one `EncodedAudioChunk` per 20 ms (copy it out
32
+ * with `copyTo` and packetize the bytes), and an `AudioDecoder` configured `{ codec: 'opus',
33
+ * sampleRate: 48000, numberOfChannels: 1 }` decodes each frame the jitter buffer plays (`new
34
+ * EncodedAudioChunk({ type: 'key', timestamp, data })`). Check `typeof AudioEncoder !==
35
+ * 'undefined'` and `AudioEncoder.isConfigSupported(config)` first, and fall back to G.711 µ-law
36
+ * (codec 2) where either is missing. WebCodecs conceals no loss: on a gap, repeat the last
37
+ * decoded frame more quietly, or play silence. Where a voice sits in the world (panning,
38
+ * distance attenuation) is the game's to decide.
39
+ */
40
+ /** Bytes of voice header in front of every codec frame. */
41
+ export declare const VOICE_HEADER_BYTES = 10;
42
+ /** The one header version this SDK writes and accepts. */
43
+ export declare const VOICE_HEADER_VERSION = 1;
44
+ /** Largest codec frame one audio payload carries with the HMAC tail present (1123 − 10). */
45
+ export declare const MAX_VOICE_FRAME_BYTES = 1113;
46
+ /** Default {@link VoiceJitterBufferOptions.targetDelayMs}. */
47
+ export declare const VOICE_TARGET_DELAY_MS = 60;
48
+ /** Default {@link VoiceJitterBufferOptions.maxFrames}. */
49
+ export declare const VOICE_JITTER_MAX_FRAMES = 64;
50
+ /** Default {@link VoiceJitterBufferOptions.resetAfterMs}. */
51
+ export declare const VOICE_RESET_AFTER_MS = 200;
52
+ /** Codecs the header names. Any other value is carried through as it is. */
53
+ export declare const VoiceCodec: {
54
+ /** Unspecified, or raw samples in a format the app defines. The timestamp counts milliseconds. */
55
+ readonly RAW: 0;
56
+ /** Opus, 48 kHz, one channel. */
57
+ readonly OPUS: 1;
58
+ /** G.711 µ-law, 8 kHz, one byte per sample. */
59
+ readonly MULAW: 2;
60
+ };
61
+ export type VoiceCodec = (typeof VoiceCodec)[keyof typeof VoiceCodec];
62
+ /** Header flag bits. */
63
+ export declare const VoiceFlag: {
64
+ /** The first packet after silence: a talk spurt starts. */
65
+ readonly SPURT_START: 1;
66
+ /** The last packet before silence. */
67
+ readonly SPURT_END: 2;
68
+ };
69
+ /** A parsed or to-be-written voice header. */
70
+ export interface VoiceHeader {
71
+ version: number;
72
+ codec: number;
73
+ seq: number;
74
+ timestamp: number;
75
+ frameMs: number;
76
+ flags: number;
77
+ }
78
+ /** A parsed voice packet: its header and the codec frame after it. */
79
+ export interface VoicePacket {
80
+ header: VoiceHeader;
81
+ /** A view into the packet, not a copy. */
82
+ frame: Uint8Array;
83
+ }
84
+ /** The sample clock a codec's timestamps count: 48000 (Opus), 8000 (µ-law), else 1000. */
85
+ export declare function voiceClockRate(codec: number): number;
86
+ /** How far the timestamp moves for one frame of `frameMs` milliseconds. */
87
+ export declare function voiceSamplesPerFrame(codec: number, frameMs: number): number;
88
+ /**
89
+ * The distance from seq `b` to seq `a` on the wrapping uint16 counter, from −32768 to 32767:
90
+ * positive when `a` is newer.
91
+ */
92
+ export declare function voiceSeqDiff(a: number, b: number): number;
93
+ /**
94
+ * Write a voice header (always version 1).
95
+ *
96
+ * @throws {RangeError} when a field is outside its width: codec, frameMs and flags 0-255, seq
97
+ * 0-65535, timestamp 0-4294967295.
98
+ */
99
+ export declare function encodeVoiceHeader(header: Omit<VoiceHeader, 'version'>): Uint8Array;
100
+ /**
101
+ * `header || frame`, ready for `udp.sendAudioPacket` (base64 it as `audioData`).
102
+ *
103
+ * @throws {RangeError} as {@link encodeVoiceHeader}, and when the frame is longer than
104
+ * {@link MAX_VOICE_FRAME_BYTES}.
105
+ */
106
+ export declare function encodeVoicePacket(header: Omit<VoiceHeader, 'version'>, frame: Uint8Array): Uint8Array;
107
+ /**
108
+ * Parse a voice packet. Returns `null` for a packet shorter than {@link VOICE_HEADER_BYTES} or of
109
+ * a version other than {@link VOICE_HEADER_VERSION}. Codecs and flag bits this SDK does not know
110
+ * are returned as they are.
111
+ */
112
+ export declare function decodeVoicePacket(packet: Uint8Array): VoicePacket | null;
113
+ /** Options for {@link VoicePacketizer}. */
114
+ export interface VoicePacketizerOptions {
115
+ /** {@link VoiceCodec}, or an app's own value (0-255). */
116
+ codec: number;
117
+ /** The duration of every frame, 1-255 ms. */
118
+ frameMs: number;
119
+ /** The first packet's seq. Defaults to 0. */
120
+ seq?: number;
121
+ /** The first packet's timestamp. Defaults to 0. */
122
+ timestamp?: number;
123
+ }
124
+ /**
125
+ * Numbers one sender's frames: each packet gets the next seq (uint16, wraps) and a timestamp one
126
+ * frame later than the last (uint32, wraps). The first packet, and the first after a `last` one
127
+ * or a {@link skip}, carries {@link VoiceFlag.SPURT_START}. Keep one packetizer for as long as the
128
+ * sender speaks with the same codec and frame duration, muted stretches included: a fresh one
129
+ * starts its seq over, and a receiver that still holds the old stream drops packets that look old
130
+ * to it until the seq catches up or the stream is reset.
131
+ */
132
+ export declare class VoicePacketizer {
133
+ readonly codec: number;
134
+ readonly frameMs: number;
135
+ private seqValue;
136
+ private timestampValue;
137
+ private spurtStart;
138
+ /** @throws {RangeError} for a codec outside 0-255, a frameMs outside 1-255, or a bad seq or timestamp. */
139
+ constructor(options: VoicePacketizerOptions);
140
+ /** The seq the next packet will carry. */
141
+ get nextSeq(): number;
142
+ /** The timestamp the next packet will carry. */
143
+ get nextTimestamp(): number;
144
+ /**
145
+ * The next packet: the header, then `frame`.
146
+ *
147
+ * @param options - `last`: this is the last packet before silence ({@link VoiceFlag.SPURT_END});
148
+ * the next one starts a talk spurt.
149
+ * @throws {RangeError} when the frame is longer than {@link MAX_VOICE_FRAME_BYTES}; nothing is
150
+ * numbered.
151
+ */
152
+ packetize(frame: Uint8Array, options?: {
153
+ last?: boolean;
154
+ }): Uint8Array;
155
+ /**
156
+ * Silence: move the timestamp past `frames` frames that are not sent (the seq does not move),
157
+ * and start a talk spurt with the next packet. `skip(0)` only does the latter.
158
+ *
159
+ * @throws {RangeError} unless `frames` is a non-negative integer.
160
+ */
161
+ skip(frames?: number): void;
162
+ private advance;
163
+ }
164
+ /** Options for {@link VoiceJitterBuffer}. */
165
+ export interface VoiceJitterBufferOptions {
166
+ /** How long after the first packet of a talk spurt arrives it plays. Defaults to 60 ms. */
167
+ targetDelayMs?: number;
168
+ /**
169
+ * The window of seqs one sender may have buffered, from the next one to play; a packet this far
170
+ * ahead of it or farther starts the stream over. Defaults to 64 (1.28 s of 20 ms frames).
171
+ */
172
+ maxFrames?: number;
173
+ /**
174
+ * A sender with no packet accepted for this long is silent: its stream stops reporting gaps,
175
+ * and the next packet starts it over. Must exceed `targetDelayMs`. Defaults to 200 ms.
176
+ */
177
+ resetAfterMs?: number;
178
+ }
179
+ /** What {@link VoiceJitterBuffer.push} did with a packet. */
180
+ export type VoicePushResult = 'buffered' | 'late' | 'duplicate' | 'malformed';
181
+ /** One played slot: a frame, or a gap where one never came. */
182
+ export interface VoicePlayout {
183
+ /** The sender's key, as pushed. */
184
+ key: string;
185
+ seq: number;
186
+ /** The frame's timestamp; for a gap, the one its frame would have had. */
187
+ timestamp: number;
188
+ codec: number;
189
+ frameMs: number;
190
+ /** The frame's flags; 0 for a gap. */
191
+ flags: number;
192
+ /** True when the frame is missing: conceal `frameMs` of audio (or play silence). */
193
+ gap: boolean;
194
+ /** The codec frame, or `null` for a gap. */
195
+ frame: Uint8Array | null;
196
+ }
197
+ /**
198
+ * Puts each sender's voice packets back in order and plays them out after a fixed delay. Feed
199
+ * every audio notification's decoded `audioData` to {@link push} with the sender's key (its actor
200
+ * uuid), call {@link pull} (or {@link poll}) at least once a frame, and {@link forget} a sender
201
+ * that left. Pass both the same clock (`performance.now()` in a browser; `Date.now()` when
202
+ * omitted). Pure and clock-injected, so both SDKs replay the same fixtures.
203
+ *
204
+ * - A sender's stream starts with the first packet it accepts, which plays `targetDelayMs` after
205
+ * it arrived; each later seq plays `frameMs` after the one before it.
206
+ * - {@link pull} returns the slots that are due, in seq order: the frame, or a gap (`frame:
207
+ * null`) when it is missing. After the last packet before silence ({@link VoiceFlag.SPURT_END})
208
+ * the stream reports nothing more. It reports slots only until `resetAfterMs` after the last
209
+ * packet it accepted, and is then reset.
210
+ * - A packet is late, and dropped, when its slot has passed or has been played. One older than the
211
+ * first slot of a spurt that has not started playing is fitted in front of it while its slot is
212
+ * still ahead.
213
+ * - The stream starts over, dropping what it holds, on a packet that starts a talk spurt and is
214
+ * newer than every packet it accepted; on a packet newer than the spurt's last packet before
215
+ * silence; on a change of codec or frame duration; on a packet `maxFrames` or more seqs ahead of
216
+ * the next one to play; and on any packet after `resetAfterMs` without one accepted. A sender
217
+ * that restarts its seq lower is dropped as late until then.
218
+ * - A sender holds at most `maxFrames` frames.
219
+ *
220
+ * The frame duration is fixed within a talk spurt, and so is the delay once the spurt starts: a
221
+ * sender whose clock runs fast fills the window, one that runs slow underruns, and both recover at
222
+ * the next spurt.
223
+ */
224
+ export declare class VoiceJitterBuffer {
225
+ /** Packets dropped because their slot had passed. */
226
+ late: number;
227
+ /** Packets dropped because their seq was already buffered. */
228
+ duplicates: number;
229
+ /** Packets refused as not voice v1 (or with a frame duration of 0). */
230
+ malformed: number;
231
+ /** Buffered frames thrown away unplayed (a stream started over, went silent, or was forgotten). */
232
+ discarded: number;
233
+ /** Slots reported as gaps. */
234
+ gaps: number;
235
+ private readonly targetDelayMs;
236
+ private readonly maxFrames;
237
+ private readonly resetAfterMs;
238
+ private readonly streams;
239
+ /**
240
+ * @throws {RangeError} for a negative `targetDelayMs`, a `maxFrames` outside 1-4096, or a
241
+ * `resetAfterMs` not above `targetDelayMs`.
242
+ */
243
+ constructor(options?: VoiceJitterBufferOptions);
244
+ /** Add one packet from the sender `key`. Never throws on the packet's contents. */
245
+ push(key: string, packet: Uint8Array, nowMs?: number): VoicePushResult;
246
+ /** The sender's slots due by `nowMs`, in seq order. */
247
+ pull(key: string, nowMs?: number): VoicePlayout[];
248
+ /** Every sender's due slots ({@link pull} for each); senders in no particular order. */
249
+ poll(nowMs?: number): VoicePlayout[];
250
+ /** Drop a sender's stream (it left). */
251
+ forget(key: string): void;
252
+ /** Senders with a stream. */
253
+ get senderCount(): number;
254
+ /** Frames the sender has buffered. */
255
+ bufferedCount(key: string): number;
256
+ private startsOver;
257
+ }
258
+ //# sourceMappingURL=voice-frames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-frames.d.ts","sourceRoot":"","sources":["../../src/media/voice-frames.ts"],"names":[],"mappings":"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"}