@q9labsai/chalk-client 4.1.5 → 4.1.8

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 (60) 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-DI7C5UEM.js → chunk-V6P6EHYO.js} +87 -175
  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/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +20 -2
  23. package/dist/media/client.d.ts.map +1 -1
  24. package/dist/media/index.d.ts +2 -1
  25. package/dist/media/index.d.ts.map +1 -1
  26. package/dist/media/index.js +5 -1
  27. package/dist/media/observers.d.ts +3 -0
  28. package/dist/media/observers.d.ts.map +1 -0
  29. package/dist/media/plane.d.ts +25 -0
  30. package/dist/media/plane.d.ts.map +1 -1
  31. package/dist/media/rtk.d.ts +101 -0
  32. package/dist/media/rtk.d.ts.map +1 -0
  33. package/dist/media/target.d.ts +10 -0
  34. package/dist/media/target.d.ts.map +1 -0
  35. package/dist/public-invites/client.d.ts +4 -0
  36. package/dist/public-invites/client.d.ts.map +1 -0
  37. package/dist/public-invites/index.d.ts +5 -0
  38. package/dist/public-invites/index.d.ts.map +1 -0
  39. package/dist/public-invites/index.js +18 -0
  40. package/dist/public-invites/types.d.ts +67 -0
  41. package/dist/public-invites/types.d.ts.map +1 -0
  42. package/dist/server/{chunk-A6YMG5FM.js → chunk-C4XITY5U.js} +1 -1
  43. package/dist/server/client.d.ts.map +1 -1
  44. package/dist/server/index.cjs +72 -19
  45. package/dist/server/index.d.cts +1 -1
  46. package/dist/server/index.d.ts +1 -1
  47. package/dist/server/index.d.ts.map +1 -1
  48. package/dist/server/index.js +72 -19
  49. package/dist/server/server-only.js +1 -1
  50. package/dist/server/transport.d.cts +1 -1
  51. package/dist/server/transport.d.ts +1 -1
  52. package/dist/server/transport.d.ts.map +1 -1
  53. package/dist/server/types.d.cts +40 -0
  54. package/dist/server/types.d.ts +40 -0
  55. package/dist/server/types.d.ts.map +1 -1
  56. package/dist/whiteboard/types.d.ts +1 -1
  57. package/dist/whiteboard/types.d.ts.map +1 -1
  58. package/dist/whiteboard/v1-client.d.ts +1 -1
  59. package/dist/whiteboard/v1-client.d.ts.map +1 -1
  60. package/package.json +20 -2
@@ -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"}
@@ -3,7 +3,7 @@ import {
3
3
  ChalkServerOnlyError,
4
4
  errorCode,
5
5
  requestId
6
- } from "./chunk-A6YMG5FM.js";
6
+ } from "./chunk-C4XITY5U.js";
7
7
 
8
8
  // src/access/base64-url.ts
9
9
  function decodeBase64Url(value) {
@@ -114,7 +114,7 @@ function accessGrantFromParsed(value) {
114
114
  token: value.media.token,
115
115
  expires_at: value.media.expiresAt,
116
116
  provider: value.media.provider,
117
- client_payload: { ...value.media.clientPayload }
117
+ client_payload: mediaClientPayload(value.media)
118
118
  },
119
119
  ...value.diagnostics ? {
120
120
  diagnostics: {
@@ -149,17 +149,43 @@ function parseSyncAccess(value) {
149
149
  };
150
150
  }
151
151
  function parseMediaAccess(value) {
152
- if (!isRecord2(value) || value.provider !== "cloudflare_sfu" || !isRecord2(value.client_payload ?? value.clientPayload)) throw new AccessGrantError();
152
+ if (!isRecord2(value)) throw new AccessGrantError();
153
153
  const payload = value.client_payload ?? value.clientPayload;
154
- return {
155
- token: requireCredential(value.token, "chalk-media"),
156
- expiresAt: requireDateTime(value.expires_at ?? value.expiresAt),
157
- provider: value.provider,
158
- clientPayload: {
159
- connectionId: requireNonEmptyString(payload.connectionId),
160
- stunServer: requireNonEmptyString(payload.stunServer)
161
- }
162
- };
154
+ if (!isRecord2(payload)) throw new AccessGrantError();
155
+ const token = requireCredential(value.token, "chalk-media");
156
+ const expiresAt = requireDateTime(value.expires_at ?? value.expiresAt);
157
+ switch (value.provider) {
158
+ case "cloudflare_sfu":
159
+ return {
160
+ token,
161
+ expiresAt,
162
+ provider: value.provider,
163
+ clientPayload: {
164
+ connectionId: requireNonEmptyString(payload.connectionId),
165
+ stunServer: requireNonEmptyString(payload.stunServer)
166
+ }
167
+ };
168
+ case "cloudflare_rtk":
169
+ return {
170
+ token,
171
+ expiresAt,
172
+ provider: value.provider,
173
+ clientPayload: {
174
+ providerSubject: requireNonEmptyString(payload.provider_subject ?? payload.providerSubject),
175
+ token: requireNonEmptyString(payload.token)
176
+ }
177
+ };
178
+ default:
179
+ throw new AccessGrantError();
180
+ }
181
+ }
182
+ function mediaClientPayload(value) {
183
+ switch (value.provider) {
184
+ case "cloudflare_sfu":
185
+ return { connectionId: value.clientPayload.connectionId, stunServer: value.clientPayload.stunServer };
186
+ case "cloudflare_rtk":
187
+ return { provider_subject: value.clientPayload.providerSubject, token: value.clientPayload.token };
188
+ }
163
189
  }
164
190
  function requireCredential(value, audience) {
165
191
  const token = requireNonEmptyString(value);
@@ -361,6 +387,16 @@ function createChalkServerClient(options) {
361
387
  list: (input) => request({ method: "GET", path: `${tenantPath}/api-keys${apiKeyQuery(input)}`, expectedStatus: 200, retry: "always" }),
362
388
  rotate: (apiKeyId, input) => request({ method: "POST", path: `${tenantPath}/api-keys/${segment(apiKeyId)}/rotate`, body: { expires_at: input?.expiresAt }, expectedStatus: 200, retry: "never" }),
363
389
  revoke: (apiKeyId) => request({ method: "DELETE", path: `${tenantPath}/api-keys/${segment(apiKeyId)}`, expectedStatus: 204, retry: "always" })
390
+ },
391
+ publicInvites: {
392
+ get: (spaceId) => request({ method: "GET", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite`, expectedStatus: 200, retry: "always" }),
393
+ update: (spaceId, input) => request({ method: "PATCH", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite`, body: publicInviteUpdateRequest(input), expectedStatus: 200, retry: "always" }),
394
+ rotate: (spaceId, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-invite/rotations`, expectedStatus: 201, idempotency, retry: "caller_idempotency" })
395
+ },
396
+ publicAdmissionRequests: {
397
+ list: (spaceId, input) => request({ method: "GET", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests${publicAdmissionRequestQuery(input)}`, expectedStatus: 200, retry: "always" }),
398
+ approve: (spaceId, requestHandle, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests/${segment(requestHandle)}/approval`, expectedStatus: 200, idempotency, retry: "caller_idempotency" }),
399
+ deny: (spaceId, requestHandle, idempotency) => request({ method: "POST", path: `${tenantPath}/spaces/${segment(spaceId)}/public-admission-requests/${segment(requestHandle)}/denial`, expectedStatus: 200, idempotency, retry: "caller_idempotency" })
364
400
  }
365
401
  };
366
402
  }
@@ -405,6 +441,9 @@ function participantRemovalRequest(input) {
405
441
  function apiKeyCreateRequest(input) {
406
442
  return { expires_at: input.expiresAt, name: input.name, scopes: [...input.scopes] };
407
443
  }
444
+ function publicInviteUpdateRequest(input) {
445
+ return { enabled: input.enabled };
446
+ }
408
447
  function spaceQuery(input) {
409
448
  const query = new URLSearchParams();
410
449
  setQueryValue(query, "archived", input?.archived);
@@ -418,6 +457,11 @@ function apiKeyQuery(input) {
418
457
  setQueryValue(query, "page_size", input?.pageSize);
419
458
  return prefixedQuery(query.toString());
420
459
  }
460
+ function publicAdmissionRequestQuery(input) {
461
+ const query = new URLSearchParams();
462
+ setQueryValue(query, "state", input?.state);
463
+ return prefixedQuery(query.toString());
464
+ }
421
465
  function setQueryValue(query, name, value) {
422
466
  if (value !== void 0) query.set(name, String(value));
423
467
  }
@@ -446,7 +490,7 @@ function participantLifecycle(value) {
446
490
  return { ...lifecycle, access: access === null ? null : accessGrant(access) };
447
491
  }
448
492
  function accessGrant(value) {
449
- const payload = cloudflareClientPayload(value.media);
493
+ const payload = mediaClientPayload2(value.media);
450
494
  return parseAccessGrant({
451
495
  subject: {
452
496
  tenant_id: value.subject.tenant_id,
@@ -459,18 +503,27 @@ function accessGrant(value) {
459
503
  media: {
460
504
  token: value.media.token,
461
505
  expires_at: value.media.expires_at,
462
- provider: "cloudflare_sfu",
506
+ provider: value.media.provider,
463
507
  client_payload: payload
464
508
  },
465
509
  diagnostics: value.diagnostics
466
510
  });
467
511
  }
468
- function cloudflareClientPayload(media) {
469
- const { connectionId, stunServer } = media.client_payload;
470
- if (media.provider !== "cloudflare_sfu" || typeof connectionId !== "string" || typeof stunServer !== "string") {
471
- throw invalidResponse(201);
512
+ function mediaClientPayload2(media) {
513
+ switch (media.provider) {
514
+ case "cloudflare_sfu": {
515
+ const { connectionId, stunServer } = media.client_payload;
516
+ if (typeof connectionId !== "string" || typeof stunServer !== "string") throw invalidResponse(201);
517
+ return { connectionId, stunServer };
518
+ }
519
+ case "cloudflare_rtk": {
520
+ const { provider_subject, token } = media.client_payload;
521
+ if (typeof provider_subject !== "string" || typeof token !== "string") throw invalidResponse(201);
522
+ return { provider_subject, token };
523
+ }
524
+ default:
525
+ throw invalidResponse(201);
472
526
  }
473
- return { connectionId, stunServer };
474
527
  }
475
528
  function requiredResponseID(value) {
476
529
  if (!value) throw invalidResponse(201);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ChalkServerOnlyError
3
- } from "./chunk-A6YMG5FM.js";
3
+ } from "./chunk-C4XITY5U.js";
4
4
 
5
5
  // src/server/server-only.ts
6
6
  throw new ChalkServerOnlyError();
@@ -4,7 +4,7 @@ export type ServerRequest = {
4
4
  readonly body?: unknown;
5
5
  readonly expectedStatus: number;
6
6
  readonly idempotency?: ChalkIdempotencyOptions;
7
- readonly method: "DELETE" | "GET" | "POST";
7
+ readonly method: "DELETE" | "GET" | "PATCH" | "POST";
8
8
  readonly path: string;
9
9
  readonly retry: RetryMode;
10
10
  };
@@ -4,7 +4,7 @@ export type ServerRequest = {
4
4
  readonly body?: unknown;
5
5
  readonly expectedStatus: number;
6
6
  readonly idempotency?: ChalkIdempotencyOptions;
7
- readonly method: "DELETE" | "GET" | "POST";
7
+ readonly method: "DELETE" | "GET" | "PATCH" | "POST";
8
8
  readonly path: string;
9
9
  readonly retry: RetryMode;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/server/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEpF,KAAK,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,CAAC;AAeF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,UAAU,CAAC,KAAK,IAC/I,CAAC,SAAS,aAAa,KAAG,OAAO,CAAC,CAAC,CAAC,CAa7C"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/server/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEpF,KAAK,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,CAAC;AAeF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,UAAU,CAAC,KAAK,IAC/I,CAAC,SAAS,aAAa,KAAG,OAAO,CAAC,CAAC,CAAC,CAa7C"}