@q9labsai/chalk-client 4.1.4 → 4.1.7

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 (67) hide show
  1. package/dist/access/grant.d.ts +8 -0
  2. package/dist/access/grant.d.ts.map +1 -1
  3. package/dist/{chunk-PBCGWE2V.js → chunk-C4BIONCP.js} +442 -7
  4. package/dist/chunk-DFLTEYWX.js +144 -0
  5. package/dist/chunk-JPNE4K2L.js +8911 -0
  6. package/dist/{chunk-2DA665LP.js → chunk-MMK2K3LO.js} +181 -203
  7. package/dist/client.d.ts +951 -59
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/connection/dependencies.d.ts +4 -4
  10. package/dist/connection/dependencies.d.ts.map +1 -1
  11. package/dist/connection/lifecycle.d.ts.map +1 -1
  12. package/dist/connection/production.d.ts.map +1 -1
  13. package/dist/connection/snapshot.d.ts +2 -2
  14. package/dist/connection/snapshot.d.ts.map +1 -1
  15. package/dist/effect.js +1012 -7052
  16. package/dist/generated/http-api.d.ts +941 -62
  17. package/dist/generated/http-api.d.ts.map +1 -1
  18. package/dist/generated/schemas.d.ts +1353 -31
  19. package/dist/generated/schemas.d.ts.map +1 -1
  20. package/dist/generated/whiteboard-v1.d.ts +48 -5
  21. package/dist/generated/whiteboard-v1.d.ts.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +20 -2
  25. package/dist/media/client.d.ts.map +1 -1
  26. package/dist/media/index.d.ts +2 -1
  27. package/dist/media/index.d.ts.map +1 -1
  28. package/dist/media/index.js +5 -1
  29. package/dist/media/observers.d.ts +3 -0
  30. package/dist/media/observers.d.ts.map +1 -0
  31. package/dist/media/plane.d.ts +25 -0
  32. package/dist/media/plane.d.ts.map +1 -1
  33. package/dist/media/rtk.d.ts +101 -0
  34. package/dist/media/rtk.d.ts.map +1 -0
  35. package/dist/media/target.d.ts +10 -0
  36. package/dist/media/target.d.ts.map +1 -0
  37. package/dist/public-invites/client.d.ts +4 -0
  38. package/dist/public-invites/client.d.ts.map +1 -0
  39. package/dist/public-invites/index.d.ts +5 -0
  40. package/dist/public-invites/index.d.ts.map +1 -0
  41. package/dist/public-invites/index.js +18 -0
  42. package/dist/public-invites/types.d.ts +67 -0
  43. package/dist/public-invites/types.d.ts.map +1 -0
  44. package/dist/server/{chunk-A6YMG5FM.js → chunk-C4XITY5U.js} +1 -1
  45. package/dist/server/client.d.ts.map +1 -1
  46. package/dist/server/index.cjs +72 -19
  47. package/dist/server/index.d.cts +1 -1
  48. package/dist/server/index.d.ts +1 -1
  49. package/dist/server/index.d.ts.map +1 -1
  50. package/dist/server/index.js +72 -19
  51. package/dist/server/server-only.js +1 -1
  52. package/dist/server/transport.d.cts +1 -1
  53. package/dist/server/transport.d.ts +1 -1
  54. package/dist/server/transport.d.ts.map +1 -1
  55. package/dist/server/types.d.cts +40 -0
  56. package/dist/server/types.d.ts +40 -0
  57. package/dist/server/types.d.ts.map +1 -1
  58. package/dist/space-client/controller-parity.test.helpers.d.ts.map +1 -1
  59. package/dist/space-client/types.d.ts +1 -0
  60. package/dist/space-client/types.d.ts.map +1 -1
  61. package/dist/whiteboard/types.d.ts +4 -2
  62. package/dist/whiteboard/types.d.ts.map +1 -1
  63. package/dist/whiteboard/v1-client.d.ts +1 -0
  64. package/dist/whiteboard/v1-client.d.ts.map +1 -1
  65. package/dist/whiteboard/v1-multipart.d.ts +1 -1
  66. package/dist/whiteboard/v1-multipart.d.ts.map +1 -1
  67. package/package.json +20 -2
package/dist/index.js CHANGED
@@ -12,8 +12,10 @@ import {
12
12
  createSpaceClient,
13
13
  decodeWhiteboardV1ServerFrame,
14
14
  encodeWhiteboardV1ClientFrame
15
- } from "./chunk-2DA665LP.js";
15
+ } from "./chunk-MMK2K3LO.js";
16
16
  import {
17
+ CloudflareRTKClient,
18
+ CloudflareRTKError,
17
19
  CloudflareSFUClient,
18
20
  CloudflareSFUError,
19
21
  comparePublicationCursor,
@@ -24,7 +26,16 @@ import {
24
26
  requireSFUDescription,
25
27
  validatePublicationSnapshot,
26
28
  waitFor
27
- } from "./chunk-PBCGWE2V.js";
29
+ } from "./chunk-C4BIONCP.js";
30
+ import {
31
+ createChalkPublicClient,
32
+ createChalkPublicInviteClient
33
+ } from "./chunk-DFLTEYWX.js";
34
+ import {
35
+ ArrivalInvalidHandleError,
36
+ ArrivalUnavailableError,
37
+ SpacePublicInviteUnavailableError
38
+ } from "./chunk-JPNE4K2L.js";
28
39
  import {
29
40
  AsyncStorageV1PendingTargetStore,
30
41
  InMemoryV1PendingTargetStore,
@@ -79,6 +90,8 @@ import {
79
90
  withSyncTelemetryCorrelation
80
91
  } from "./chunk-PBSYXPNJ.js";
81
92
  export {
93
+ ArrivalInvalidHandleError,
94
+ ArrivalUnavailableError,
82
95
  AsyncStorageV1PendingTargetStore,
83
96
  CHALK_CHAT_ATTACHMENT_LIMITS,
84
97
  CHALK_CHAT_ATTACHMENT_MIME_TYPES,
@@ -86,12 +99,15 @@ export {
86
99
  ChalkChatFileError,
87
100
  ChalkWhiteboardV1Client,
88
101
  ChalkWhiteboardV1Error,
102
+ CloudflareRTKClient,
103
+ CloudflareRTKError,
89
104
  CloudflareSFUClient,
90
105
  CloudflareSFUError,
91
106
  InMemoryChalkWhiteboardV1PendingOperationStore,
92
107
  InMemoryV1PendingTargetStore,
93
108
  IndexedDbV1PendingTargetStore,
94
109
  SpaceClientError,
110
+ SpacePublicInviteUnavailableError,
95
111
  SyncBrowserCapabilityError,
96
112
  SyncReactNativeCapabilityError,
97
113
  TELEMETRY_EVENT_VERSION,
@@ -115,6 +131,8 @@ export {
115
131
  createBrowserTelemetryStorage,
116
132
  createBrowserWebSocketFactory,
117
133
  createChalkChatFileHttpTransport,
134
+ createChalkPublicClient,
135
+ createChalkPublicInviteClient,
118
136
  createChalkWhiteboardV1Client,
119
137
  createChalkWhiteboardV1FileHttpTransport,
120
138
  createCloudflareSFUHTTPTransport,
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/media/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGnH,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAM1B,2BAA2B,EAE3B,qBAAqB,EAGtB,MAAM,SAAS,CAAC;AA0BjB,qBAAa,mBAAoB,YAAW,gBAAgB;;IAyB1D,YAAY,OAAO,EAAE,0BAA0B,EAmB9C;IAED,WAAW,IAAI,qBAAqB,CAEnC;IAED,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAG1C;IAED,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAyBpE;IAEK,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAShE;IAEK,KAAK,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlD;IAEK,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe/C;IAEK,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAanF;IAED,wBAAwB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAIlG;IAED,yBAAyB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAInG;IAEK,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAG,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxF;IAeD,IAAI,IAAI,IAAI,CAoBX;CAgYF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/media/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKnH,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAM1B,2BAA2B,EAE3B,qBAAqB,EAGtB,MAAM,SAAS,CAAC;AA0BjB,qBAAa,mBAAoB,YAAW,gBAAgB;;IAyB1D,YAAY,OAAO,EAAE,0BAA0B,EAmB9C;IAED,WAAW,IAAI,qBAAqB,CAEnC;IAED,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAE1C;IAED,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAyBpE;IAEK,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAShE;IAEK,KAAK,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAYlD;IAEK,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe/C;IAEK,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYnF;IAED,wBAAwB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAIlG;IAED,yBAAyB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAInG;IAEK,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAG,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxF;IAeD,IAAI,IAAI,IAAI,CAoBX;CAgYF"}
@@ -1,3 +1,4 @@
1
1
  export * from "./cloudflare-sfu";
2
- export type { ClientMediaPlane, MediaPlaneOutcome, MediaPlaneResult, MediaPlaneTarget, MediaPublication, MediaSource } from "./plane";
2
+ export * from "./rtk";
3
+ export type { ClientMediaPlane, ConnectionMediaLocalTrack, ConnectionMediaPhase, ConnectionMediaRemoteTrack, ConnectionMediaSnapshot, MediaPlaneOutcome, MediaPlaneResult, MediaPlaneTarget, MediaPublication, MediaSource } from "./plane";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import {
2
+ CloudflareRTKClient,
3
+ CloudflareRTKError,
2
4
  CloudflareSFUClient,
3
5
  CloudflareSFUError,
4
6
  comparePublicationCursor,
@@ -9,8 +11,10 @@ import {
9
11
  requireSFUDescription,
10
12
  validatePublicationSnapshot,
11
13
  waitFor
12
- } from "../chunk-PBCGWE2V.js";
14
+ } from "../chunk-C4BIONCP.js";
13
15
  export {
16
+ CloudflareRTKClient,
17
+ CloudflareRTKError,
14
18
  CloudflareSFUClient,
15
19
  CloudflareSFUError,
16
20
  comparePublicationCursor,
@@ -0,0 +1,3 @@
1
+ export declare function subscribeSnapshot(listeners: Set<() => void>, listener: () => void): () => void;
2
+ export declare function observePublications<T>(listeners: Set<() => void>, listener: (value: T) => void, project: () => T): () => void;
3
+ //# sourceMappingURL=observers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observers.d.ts","sourceRoot":"","sources":["../../src/media/observers.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK9F;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAO7H"}
@@ -5,6 +5,31 @@ export type MediaPublication = {
5
5
  readonly enabled: boolean;
6
6
  readonly publicationId: string | null;
7
7
  };
8
+ export type ConnectionMediaPhase = "idle" | "connecting" | "live" | "recovering" | "failed" | "stopped";
9
+ export type ConnectionMediaLocalTrack = Pick<MediaPublication, "source" | "enabled" | "publicationId"> & {
10
+ readonly track: MediaStreamTrack;
11
+ };
12
+ export type ConnectionMediaRemoteTrack = Pick<MediaPublication, "participantId" | "source"> & {
13
+ readonly publicationId: string;
14
+ readonly track: MediaStreamTrack;
15
+ };
16
+ export type ConnectionMediaSnapshot = {
17
+ readonly connection: {
18
+ readonly phase: ConnectionMediaPhase;
19
+ readonly peerConnectionState: RTCPeerConnectionState | null;
20
+ readonly iceConnectionState: RTCIceConnectionState | null;
21
+ };
22
+ readonly cursor: {
23
+ readonly incarnation: number;
24
+ readonly sequence: number;
25
+ } | null;
26
+ readonly localTracks: readonly ConnectionMediaLocalTrack[];
27
+ readonly remoteTracks: readonly ConnectionMediaRemoteTrack[];
28
+ readonly failure: {
29
+ readonly code: string;
30
+ readonly recoverable: boolean;
31
+ } | null;
32
+ };
8
33
  export type MediaPlaneOutcome = "confirmed" | "satisfied" | "retryable_failure" | "terminal_failure" | "ambiguous";
9
34
  export type MediaPlaneTarget = {
10
35
  readonly operationId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../src/media/plane.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAEnH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5F,QAAQ,CAAC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACjH,QAAQ,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACnH,CAAC"}
1
+ {"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../src/media/plane.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExG,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,CAAC,GAAG;IACvG,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,QAAQ,CAAC,GAAG;IAC5F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;QACrC,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,IAAI,CAAC;QAC5D,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,GAAG,IAAI,CAAC;KAC3D,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpF,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,SAAS,0BAA0B,EAAE,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACnF,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAEnH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5F,QAAQ,CAAC,wBAAwB,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACjH,QAAQ,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACnH,CAAC"}
@@ -0,0 +1,101 @@
1
+ import type { ParticipantMediaAccess } from "../access/grant";
2
+ import type { ConnectionMediaSnapshot, MediaPlaneResult, MediaPlaneTarget, MediaPublication, MediaSource } from "./plane";
3
+ type CloudflareRTKSelfAudioUpdate = {
4
+ readonly audioEnabled: boolean;
5
+ readonly audioTrack: MediaStreamTrack;
6
+ };
7
+ type CloudflareRTKSelfVideoUpdate = {
8
+ readonly videoEnabled: boolean;
9
+ readonly videoTrack: MediaStreamTrack;
10
+ };
11
+ type CloudflareRTKSelfScreenShareUpdate = {
12
+ readonly screenShareEnabled: boolean;
13
+ readonly screenShareTracks: {
14
+ readonly audio?: MediaStreamTrack;
15
+ readonly video?: MediaStreamTrack;
16
+ };
17
+ };
18
+ export type CloudflareRTKParticipant = {
19
+ readonly id: string;
20
+ readonly userId: string;
21
+ readonly customParticipantId?: string;
22
+ readonly audioEnabled: boolean;
23
+ readonly videoEnabled: boolean;
24
+ readonly screenShareEnabled: boolean;
25
+ readonly audioTrack: MediaStreamTrack | null;
26
+ readonly videoTrack: MediaStreamTrack | null;
27
+ readonly screenShareTracks: {
28
+ readonly audio?: MediaStreamTrack;
29
+ readonly video?: MediaStreamTrack;
30
+ };
31
+ readonly onAudioUpdate?: (listener: () => void) => () => void;
32
+ readonly onVideoUpdate?: (listener: () => void) => () => void;
33
+ readonly onScreenShareUpdate?: (listener: () => void) => () => void;
34
+ };
35
+ export type CloudflareRTKSelf = {
36
+ readonly peerId: string;
37
+ readonly audioEnabled: boolean;
38
+ readonly videoEnabled: boolean;
39
+ readonly screenShareEnabled: boolean;
40
+ readonly audioTrack: MediaStreamTrack | null;
41
+ readonly videoTrack: MediaStreamTrack | null;
42
+ readonly screenShareTracks: {
43
+ readonly audio?: MediaStreamTrack;
44
+ readonly video?: MediaStreamTrack;
45
+ };
46
+ readonly enableAudio: (customTrack?: MediaStreamTrack) => Promise<void>;
47
+ readonly enableVideo: (customTrack?: MediaStreamTrack) => Promise<void>;
48
+ readonly enableScreenShare: () => Promise<void>;
49
+ readonly disableAudio: () => Promise<void>;
50
+ readonly disableVideo: () => Promise<void>;
51
+ readonly disableScreenShare: () => Promise<void>;
52
+ readonly onAudioUpdate: (listener: (payload: CloudflareRTKSelfAudioUpdate) => void) => () => void;
53
+ readonly onVideoUpdate: (listener: (payload: CloudflareRTKSelfVideoUpdate) => void) => () => void;
54
+ readonly onScreenShareUpdate: (listener: (payload: CloudflareRTKSelfScreenShareUpdate) => void) => () => void;
55
+ readonly onLeft: (listener: () => void) => () => void;
56
+ };
57
+ export type CloudflareRTKJoinedParticipants = {
58
+ readonly list: () => readonly CloudflareRTKParticipant[];
59
+ readonly onJoined: (listener: (participant: CloudflareRTKParticipant) => void) => () => void;
60
+ readonly onLeft: (listener: (participant: CloudflareRTKParticipant) => void) => () => void;
61
+ };
62
+ export type CloudflareRTKConnection = {
63
+ readonly self: CloudflareRTKSelf;
64
+ readonly participants: {
65
+ readonly joined: CloudflareRTKJoinedParticipants;
66
+ };
67
+ readonly join: () => Promise<void>;
68
+ readonly leave: () => Promise<void>;
69
+ };
70
+ export type CloudflareRTKClientFactory = (input: {
71
+ readonly authToken: string;
72
+ readonly onError: (error: unknown) => void;
73
+ }) => Promise<CloudflareRTKConnection>;
74
+ export type CloudflareRTKClientOptions = {
75
+ readonly authToken: string;
76
+ readonly participantId: string;
77
+ readonly onError?: (error: unknown) => void;
78
+ readonly onScreenEnded?: () => void;
79
+ readonly clientFactory?: CloudflareRTKClientFactory;
80
+ };
81
+ export type CloudflareRTKErrorCode = "invalid_client" | "invalid_participant" | "invalid_target" | "media_failed" | "media_stopped" | "stale_generation";
82
+ export declare class CloudflareRTKError extends Error {
83
+ readonly code: CloudflareRTKErrorCode;
84
+ constructor(message: string, code: CloudflareRTKErrorCode);
85
+ }
86
+ export declare class CloudflareRTKClient {
87
+ #private;
88
+ constructor(options: CloudflareRTKClientOptions);
89
+ getSnapshot(): ConnectionMediaSnapshot;
90
+ subscribe(listener: () => void): () => void;
91
+ prepareLocalTrack(source: MediaSource, track: MediaStreamTrack): void;
92
+ clearPreparedLocalTrack(source: MediaSource): Promise<void>;
93
+ start(localMedia: MediaStream): Promise<void>;
94
+ setLocalPublicationTarget(target: MediaPlaneTarget): Promise<MediaPlaneResult>;
95
+ observeLocalPublications(listener: (publications: readonly MediaPublication[]) => void): () => void;
96
+ observeRemotePublications(listener: (publications: readonly MediaPublication[]) => void): () => void;
97
+ restart(input: ParticipantMediaAccess): Promise<void>;
98
+ stop(): void;
99
+ }
100
+ export {};
101
+ //# sourceMappingURL=rtk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtk.d.ts","sourceRoot":"","sources":["../../src/media/rtk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MediaPlaneResult, MediaPlaneTarget, MediaSource } from "./plane";
2
+ export type MediaTargetResolution<T> = {
3
+ readonly kind: "state";
4
+ readonly value: T;
5
+ } | {
6
+ readonly kind: "result";
7
+ readonly result: MediaPlaneResult;
8
+ };
9
+ export declare function resolveMediaTarget<T>(participantId: string, stopped: boolean, tracks: ReadonlyMap<MediaSource, T>, target: MediaPlaneTarget): MediaTargetResolution<T>;
10
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/media/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEtJ,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAMtK"}
@@ -0,0 +1,4 @@
1
+ import type { ChalkPublicClient, ChalkPublicClientOptions } from "./types.js";
2
+ export declare function createChalkPublicClient(options: ChalkPublicClientOptions): ChalkPublicClient;
3
+ export declare const createChalkPublicInviteClient: typeof createChalkPublicClient;
4
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/public-invites/client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,iBAAiB,EACjB,wBAAwB,EAUzB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CA8F5F;AAED,eAAO,MAAM,6BAA6B,gCAA0B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { createChalkPublicClient, createChalkPublicInviteClient } from "./client.js";
2
+ export type { ArriveBySpacePublicInviteInput, ChalkPublicClient, ChalkPublicClientOptions, ChalkPublicClientRuntime, ChalkPublicIdempotencyOptions, ChalkPublicInviteError, CreatePublicSpace, CreatePublicSpaceInput, ArriveBySpacePublicInvite, GetSpacePublicInviteArrival, LeaveSpacePublicInviteArrival, PublicArrivalOptions, PublicArrivalReference, PublicRefreshAccessInput, PublicLeaveOptions, PublicSpaceArrival, PublicSpaceArrivalAccess, PublicSpaceCreated, PublicStatus, RefreshSpacePublicInviteAccess, } from "./types.js";
3
+ export { ArrivalInvalidHandleError, ArrivalUnavailableError, SpacePublicInviteUnavailableError } from "../generated/schemas.js";
4
+ export type { ApproveSpacePublicAdmissionRequestError, ArriveBySpacePublicInviteError, CreatePublicSpaceError, DenySpacePublicAdmissionRequestError, GetPublicStatusError, GetSpacePublicInviteArrivalError, LeaveSpacePublicInviteArrivalError, RefreshSpacePublicInviteAccessError, } from "../generated/schemas.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/public-invites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACrF,YAAY,EACV,8BAA8B,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAChI,YAAY,EACV,uCAAuC,EACvC,8BAA8B,EAC9B,sBAAsB,EACtB,oCAAoC,EACpC,oBAAoB,EACpB,gCAAgC,EAChC,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import {
2
+ createChalkPublicClient,
3
+ createChalkPublicInviteClient
4
+ } from "../chunk-DFLTEYWX.js";
5
+ import {
6
+ ArrivalInvalidHandleError,
7
+ ArrivalUnavailableError,
8
+ SpacePublicInviteUnavailableError
9
+ } from "../chunk-JPNE4K2L.js";
10
+ import "../chunk-QVHR3RMB.js";
11
+ import "../chunk-PBSYXPNJ.js";
12
+ export {
13
+ ArrivalInvalidHandleError,
14
+ ArrivalUnavailableError,
15
+ SpacePublicInviteUnavailableError,
16
+ createChalkPublicClient,
17
+ createChalkPublicInviteClient
18
+ };
@@ -0,0 +1,67 @@
1
+ import type { AccessGrant } from "../access/grant.js";
2
+ import type { JourneyTelemetryContext } from "../telemetry/types.js";
3
+ import type { ApproveSpacePublicAdmissionRequestError, ArriveBySpacePublicInviteError, ArrivalInvalidHandleError, ArrivalUnavailableError, CreatePublicSpaceError, DenySpacePublicAdmissionRequestError, GetPublicStatusError, GetPublicStatusResponse, GetSpacePublicInviteArrivalError, LeaveSpacePublicInviteArrivalError, PublicSpaceArrival as GeneratedPublicSpaceArrival, PublicSpaceCreated as GeneratedPublicSpaceCreated, RefreshSpacePublicInviteAccessError, SpacePublicInviteUnavailableError } from "../generated/schemas.js";
4
+ export type ChalkPublicClientRuntime = "browser" | "react-native";
5
+ export type ChalkPublicClientOptions = {
6
+ readonly baseUrl: string | URL;
7
+ readonly credentials?: RequestCredentials;
8
+ readonly fetch?: typeof globalThis.fetch;
9
+ readonly headers?: Readonly<Record<string, string>>;
10
+ readonly guestCredential?: string;
11
+ readonly runtime?: ChalkPublicClientRuntime;
12
+ readonly telemetry?: JourneyTelemetryContext;
13
+ };
14
+ export type ChalkPublicIdempotencyOptions = {
15
+ readonly idempotencyKey?: string;
16
+ };
17
+ export type CreatePublicSpaceInput = {
18
+ readonly displayName: string;
19
+ };
20
+ export type ArriveBySpacePublicInviteInput = {
21
+ readonly displayName: string;
22
+ readonly spaceInviteToken: string;
23
+ };
24
+ export type PublicArrivalReference = {
25
+ readonly arrivalHandle: string;
26
+ readonly guestCredential?: string;
27
+ };
28
+ export type PublicArrivalOptions = ChalkPublicIdempotencyOptions & {
29
+ readonly arrivalHandle?: string;
30
+ readonly guestCredential?: string;
31
+ };
32
+ export type PublicRefreshAccessInput = {
33
+ readonly arrivalHandle?: string;
34
+ readonly guestCredential?: string;
35
+ readonly mediaProof: string;
36
+ };
37
+ export type PublicLeaveOptions = {
38
+ readonly keepalive?: boolean;
39
+ };
40
+ export type PublicSpaceArrival = Omit<GeneratedPublicSpaceArrival, "access"> & {
41
+ readonly access?: AccessGrant | null;
42
+ };
43
+ export type PublicSpaceCreated = Omit<GeneratedPublicSpaceCreated, "arrival"> & {
44
+ readonly arrival: PublicSpaceArrival;
45
+ };
46
+ export type PublicStatus = GetPublicStatusResponse;
47
+ export type CreatePublicSpace = (input: CreatePublicSpaceInput, options?: ChalkPublicIdempotencyOptions) => Promise<PublicSpaceCreated>;
48
+ export type ArriveBySpacePublicInvite = (input: ArriveBySpacePublicInviteInput, options?: PublicArrivalOptions) => Promise<PublicSpaceArrival>;
49
+ export type GetSpacePublicInviteArrival = (reference: PublicArrivalReference | string) => Promise<PublicSpaceArrival>;
50
+ export type RefreshSpacePublicInviteAccess = (input: PublicRefreshAccessInput | string, options?: PublicArrivalOptions) => Promise<AccessGrant>;
51
+ export type LeaveSpacePublicInviteArrival = (reference: PublicArrivalReference | string, options?: PublicLeaveOptions) => Promise<void>;
52
+ export type ChalkPublicClient = {
53
+ readonly arrive: ArriveBySpacePublicInvite;
54
+ readonly arriveBySpacePublicInvite: ArriveBySpacePublicInvite;
55
+ readonly create: CreatePublicSpace;
56
+ readonly createPublicSpace: CreatePublicSpace;
57
+ readonly getPublicStatus: () => Promise<PublicStatus>;
58
+ readonly getSpacePublicInviteArrival: GetSpacePublicInviteArrival;
59
+ readonly leave: LeaveSpacePublicInviteArrival;
60
+ readonly leaveSpacePublicInviteArrival: LeaveSpacePublicInviteArrival;
61
+ readonly refresh: RefreshSpacePublicInviteAccess;
62
+ readonly refreshSpacePublicInviteAccess: RefreshSpacePublicInviteAccess;
63
+ readonly status: GetSpacePublicInviteArrival;
64
+ };
65
+ export type ChalkPublicInviteError = ApproveSpacePublicAdmissionRequestError | ArriveBySpacePublicInviteError | DenySpacePublicAdmissionRequestError | CreatePublicSpaceError | GetPublicStatusError | GetSpacePublicInviteArrivalError | LeaveSpacePublicInviteArrivalError | RefreshSpacePublicInviteAccessError | ArrivalInvalidHandleError | ArrivalUnavailableError | SpacePublicInviteUnavailableError;
66
+ export type PublicSpaceArrivalAccess = PublicSpaceArrival["access"];
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/public-invites/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // src/server/errors.ts
2
- var safeCodePattern = /^[a-z][a-z0-9_]{0,63}$/u;
2
+ var safeCodePattern = /^[a-z][a-z0-9_.-]{0,63}$/u;
3
3
  var safeRequestIdPattern = /^[A-Za-z0-9._:-]{1,128}$/u;
4
4
  var ChalkAPIError = class extends Error {
5
5
  code;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/server/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKV,iBAAiB,EACjB,wBAAwB,EAczB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CA6D5F"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/server/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAKV,iBAAiB,EACjB,wBAAwB,EAmBzB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CAuE5F"}
@@ -135,7 +135,7 @@ function accessGrantFromParsed(value) {
135
135
  token: value.media.token,
136
136
  expires_at: value.media.expiresAt,
137
137
  provider: value.media.provider,
138
- client_payload: { ...value.media.clientPayload }
138
+ client_payload: mediaClientPayload(value.media)
139
139
  },
140
140
  ...value.diagnostics ? {
141
141
  diagnostics: {
@@ -170,17 +170,43 @@ function parseSyncAccess(value) {
170
170
  };
171
171
  }
172
172
  function parseMediaAccess(value) {
173
- if (!isRecord2(value) || value.provider !== "cloudflare_sfu" || !isRecord2(value.client_payload ?? value.clientPayload)) throw new AccessGrantError();
173
+ if (!isRecord2(value)) throw new AccessGrantError();
174
174
  const payload = value.client_payload ?? value.clientPayload;
175
- return {
176
- token: requireCredential(value.token, "chalk-media"),
177
- expiresAt: requireDateTime(value.expires_at ?? value.expiresAt),
178
- provider: value.provider,
179
- clientPayload: {
180
- connectionId: requireNonEmptyString(payload.connectionId),
181
- stunServer: requireNonEmptyString(payload.stunServer)
182
- }
183
- };
175
+ if (!isRecord2(payload)) throw new AccessGrantError();
176
+ const token = requireCredential(value.token, "chalk-media");
177
+ const expiresAt = requireDateTime(value.expires_at ?? value.expiresAt);
178
+ switch (value.provider) {
179
+ case "cloudflare_sfu":
180
+ return {
181
+ token,
182
+ expiresAt,
183
+ provider: value.provider,
184
+ clientPayload: {
185
+ connectionId: requireNonEmptyString(payload.connectionId),
186
+ stunServer: requireNonEmptyString(payload.stunServer)
187
+ }
188
+ };
189
+ case "cloudflare_rtk":
190
+ return {
191
+ token,
192
+ expiresAt,
193
+ provider: value.provider,
194
+ clientPayload: {
195
+ providerSubject: requireNonEmptyString(payload.provider_subject ?? payload.providerSubject),
196
+ token: requireNonEmptyString(payload.token)
197
+ }
198
+ };
199
+ default:
200
+ throw new AccessGrantError();
201
+ }
202
+ }
203
+ function mediaClientPayload(value) {
204
+ switch (value.provider) {
205
+ case "cloudflare_sfu":
206
+ return { connectionId: value.clientPayload.connectionId, stunServer: value.clientPayload.stunServer };
207
+ case "cloudflare_rtk":
208
+ return { provider_subject: value.clientPayload.providerSubject, token: value.clientPayload.token };
209
+ }
184
210
  }
185
211
  function requireCredential(value, audience) {
186
212
  const token = requireNonEmptyString(value);
@@ -209,7 +235,7 @@ function isRecord2(value) {
209
235
  }
210
236
 
211
237
  // src/server/errors.ts
212
- var safeCodePattern = /^[a-z][a-z0-9_]{0,63}$/u;
238
+ var safeCodePattern = /^[a-z][a-z0-9_.-]{0,63}$/u;
213
239
  var safeRequestIdPattern = /^[A-Za-z0-9._:-]{1,128}$/u;
214
240
  var ChalkAPIError = class extends Error {
215
241
  code;
@@ -437,6 +463,16 @@ function createChalkServerClient(options) {
437
463
  list: (input) => request({ method: "GET", path: `${tenantPath}/api-keys${apiKeyQuery(input)}`, expectedStatus: 200, retry: "always" }),
438
464
  rotate: (apiKeyId, input) => request({ method: "POST", path: `${tenantPath}/api-keys/${segment(apiKeyId)}/rotate`, body: { expires_at: input?.expiresAt }, expectedStatus: 200, retry: "never" }),
439
465
  revoke: (apiKeyId) => request({ method: "DELETE", path: `${tenantPath}/api-keys/${segment(apiKeyId)}`, expectedStatus: 204, retry: "always" })
466
+ },
467
+ publicInvites: {
468
+ get: (spaceId) => request({ method: "GET", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite`, expectedStatus: 200, retry: "always" }),
469
+ update: (spaceId, input) => request({ method: "PATCH", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite`, body: publicInviteUpdateRequest(input), expectedStatus: 200, retry: "always" }),
470
+ rotate: (spaceId, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite/rotations`, expectedStatus: 201, idempotency, retry: "caller_idempotency" })
471
+ },
472
+ publicAdmissionRequests: {
473
+ list: (spaceId, input) => request({ method: "GET", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests${publicAdmissionRequestQuery(input)}`, expectedStatus: 200, retry: "always" }),
474
+ approve: (spaceId, requestHandle, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests/${segment(requestHandle)}/approval`, expectedStatus: 200, idempotency, retry: "caller_idempotency" }),
475
+ deny: (spaceId, requestHandle, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests/${segment(requestHandle)}/denial`, expectedStatus: 200, idempotency, retry: "caller_idempotency" })
440
476
  }
441
477
  };
442
478
  }
@@ -481,6 +517,9 @@ function participantRemovalRequest(input) {
481
517
  function apiKeyCreateRequest(input) {
482
518
  return { expires_at: input.expiresAt, name: input.name, scopes: [...input.scopes] };
483
519
  }
520
+ function publicInviteUpdateRequest(input) {
521
+ return { enabled: input.enabled };
522
+ }
484
523
  function spaceQuery(input) {
485
524
  const query = new URLSearchParams();
486
525
  setQueryValue(query, "archived", input?.archived);
@@ -494,6 +533,11 @@ function apiKeyQuery(input) {
494
533
  setQueryValue(query, "page_size", input?.pageSize);
495
534
  return prefixedQuery(query.toString());
496
535
  }
536
+ function publicAdmissionRequestQuery(input) {
537
+ const query = new URLSearchParams();
538
+ setQueryValue(query, "state", input?.state);
539
+ return prefixedQuery(query.toString());
540
+ }
497
541
  function setQueryValue(query, name, value) {
498
542
  if (value !== void 0) query.set(name, String(value));
499
543
  }
@@ -522,7 +566,7 @@ function participantLifecycle(value) {
522
566
  return { ...lifecycle, access: access === null ? null : accessGrant(access) };
523
567
  }
524
568
  function accessGrant(value) {
525
- const payload = cloudflareClientPayload(value.media);
569
+ const payload = mediaClientPayload2(value.media);
526
570
  return parseAccessGrant({
527
571
  subject: {
528
572
  tenant_id: value.subject.tenant_id,
@@ -535,18 +579,27 @@ function accessGrant(value) {
535
579
  media: {
536
580
  token: value.media.token,
537
581
  expires_at: value.media.expires_at,
538
- provider: "cloudflare_sfu",
582
+ provider: value.media.provider,
539
583
  client_payload: payload
540
584
  },
541
585
  diagnostics: value.diagnostics
542
586
  });
543
587
  }
544
- function cloudflareClientPayload(media) {
545
- const { connectionId, stunServer } = media.client_payload;
546
- if (media.provider !== "cloudflare_sfu" || typeof connectionId !== "string" || typeof stunServer !== "string") {
547
- throw invalidResponse(201);
588
+ function mediaClientPayload2(media) {
589
+ switch (media.provider) {
590
+ case "cloudflare_sfu": {
591
+ const { connectionId, stunServer } = media.client_payload;
592
+ if (typeof connectionId !== "string" || typeof stunServer !== "string") throw invalidResponse(201);
593
+ return { connectionId, stunServer };
594
+ }
595
+ case "cloudflare_rtk": {
596
+ const { provider_subject, token } = media.client_payload;
597
+ if (typeof provider_subject !== "string" || typeof token !== "string") throw invalidResponse(201);
598
+ return { provider_subject, token };
599
+ }
600
+ default:
601
+ throw invalidResponse(201);
548
602
  }
549
- return { connectionId, stunServer };
550
603
  }
551
604
  function requiredResponseID(value) {
552
605
  if (!value) throw invalidResponse(201);
@@ -1,3 +1,3 @@
1
1
  export { createChalkServerClient } from "./client.cjs";
2
2
  export { ChalkAPIError, ChalkServerOnlyError } from "./errors.cjs";
3
- export type { APIKey, APIKeyList, APIKeyWithSecret, AdmitParticipantInput, ChalkIdempotencyOptions, ChalkServerClient, ChalkServerClientOptions, ChalkServerHeaders, ChalkServerTelemetry, CreateAPIKeyInput, CreateEpisodeInput, CreateSpaceInput, Episode, EpisodeEnd, IssueAccessGrantInput, ListAPIKeysInput, ListSpacesInput, AccessGrant, ParticipantLifecycle, ParticipantRemoval, RemoveParticipantInput, RotateAPIKeyInput, Space, SpaceList, } from "./types.cjs";
3
+ export type { APIKey, APIKeyList, APIKeyWithSecret, AdmitParticipantInput, ChalkIdempotencyOptions, ChalkServerClient, ChalkServerClientOptions, ChalkServerHeaders, ChalkServerTelemetry, CreateAPIKeyInput, CreateEpisodeInput, CreateSpaceInput, Episode, EpisodeEnd, IssueAccessGrantInput, ListPublicAdmissionRequestsInput, ListAPIKeysInput, ListSpacesInput, AccessGrant, ParticipantLifecycle, ParticipantRemoval, PublicAdmissionRequest, PublicAdmissionRequestPage, RemoveParticipantInput, RotateAPIKeyInput, Space, SpacePublicInvite, SpaceList, UpdateSpacePublicInviteInput, } from "./types.cjs";
@@ -1,4 +1,4 @@
1
1
  export { createChalkServerClient } from "./client.js";
2
2
  export { ChalkAPIError, ChalkServerOnlyError } from "./errors.js";
3
- export type { APIKey, APIKeyList, APIKeyWithSecret, AdmitParticipantInput, ChalkIdempotencyOptions, ChalkServerClient, ChalkServerClientOptions, ChalkServerHeaders, ChalkServerTelemetry, CreateAPIKeyInput, CreateEpisodeInput, CreateSpaceInput, Episode, EpisodeEnd, IssueAccessGrantInput, ListAPIKeysInput, ListSpacesInput, AccessGrant, ParticipantLifecycle, ParticipantRemoval, RemoveParticipantInput, RotateAPIKeyInput, Space, SpaceList, } from "./types.js";
3
+ export type { APIKey, APIKeyList, APIKeyWithSecret, AdmitParticipantInput, ChalkIdempotencyOptions, ChalkServerClient, ChalkServerClientOptions, ChalkServerHeaders, ChalkServerTelemetry, CreateAPIKeyInput, CreateEpisodeInput, CreateSpaceInput, Episode, EpisodeEnd, IssueAccessGrantInput, ListPublicAdmissionRequestsInput, ListAPIKeysInput, ListSpacesInput, AccessGrant, ParticipantLifecycle, ParticipantRemoval, PublicAdmissionRequest, PublicAdmissionRequestPage, RemoveParticipantInput, RotateAPIKeyInput, Space, SpacePublicInvite, SpaceList, UpdateSpacePublicInviteInput, } from "./types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EACV,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,EACL,SAAS,GACV,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EACV,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,qBAAqB,EACrB,gCAAgC,EAChC,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,SAAS,EACT,4BAA4B,GAC7B,MAAM,YAAY,CAAC"}