UNPKG

@liveblocks/node

Version:

A server-side utility that lets you set up a Liveblocks authentication endpoint. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.

1 lines 154 kB
{"version":3,"sources":["/home/runner/work/liveblocks/liveblocks/packages/liveblocks-node/dist/index.cjs","../src/index.ts","../src/version.ts","../src/client.ts","../src/lib/itertools.ts","../src/lib/ndjson.ts","../src/Session.ts","../src/utils.ts","../src/webhooks.ts"],"names":["url","LiveObject"],"mappings":"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","file":"/home/runner/work/liveblocks/liveblocks/packages/liveblocks-node/dist/index.cjs","sourcesContent":[null,"import { detectDupes } from \"@liveblocks/core\";\n\nimport { PKG_FORMAT, PKG_NAME, PKG_VERSION } from \"./version\";\n\ndetectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);\n\nexport type {\n AiCopilot,\n CreateAiCopilotOptions,\n CreateFileKnowledgeSourceOptions,\n CreateRoomOptions,\n CreateWebKnowledgeSourceOptions,\n GetAiCopilotsOptions,\n GetInboxNotificationsOptions,\n GetKnowledgeSourcesOptions,\n GetRoomsOptions,\n GetWebKnowledgeSourceLinksOptions,\n InboxNotificationsQueryCriteria,\n KnowledgeSource,\n LiveblocksOptions,\n MassMutateStorageCallback,\n MassMutateStorageOptions,\n MutateStorageCallback,\n MutateStorageOptions,\n Page,\n PaginationOptions,\n RoomAccesses,\n RoomData,\n RoomPermission,\n RoomsQueryCriteria,\n RoomUser,\n ThreadParticipants,\n UpdateAiCopilotOptions,\n UpdateRoomOptions,\n UpsertRoomOptions,\n WebKnowledgeSourceLink,\n} from \"./client\";\nexport { Liveblocks, LiveblocksError } from \"./client\";\nexport type {\n CommentCreatedEvent,\n CommentDeletedEvent,\n CommentEditedEvent,\n CommentReactionAdded,\n CommentReactionRemoved,\n CustomNotificationEvent,\n NotificationEvent,\n RoomCreatedEvent,\n RoomDeletedEvent,\n StorageUpdatedEvent,\n TextMentionNotificationEvent,\n ThreadCreatedEvent,\n ThreadDeletedEvent,\n ThreadMarkedAsResolvedEvent,\n ThreadMarkedAsUnresolvedEvent,\n ThreadMetadataUpdatedEvent,\n ThreadNotificationEvent,\n UserEnteredEvent,\n UserLeftEvent,\n WebhookEvent,\n WebhookRequest,\n YDocUpdatedEvent,\n} from \"./webhooks\";\nexport {\n isCustomNotificationEvent,\n isTextMentionNotificationEvent,\n isThreadNotificationEvent,\n WebhookHandler,\n} from \"./webhooks\";\nexport type {\n CommentBody,\n CommentBodyBlockElement,\n CommentBodyElement,\n CommentBodyInlineElement,\n CommentBodyLink,\n CommentBodyLinkElementArgs,\n CommentBodyMention,\n CommentBodyMentionElementArgs,\n CommentBodyParagraph,\n CommentBodyParagraphElementArgs,\n CommentBodyText,\n CommentBodyTextElementArgs,\n CommentData,\n CommentUserReaction,\n IUserInfo,\n Json,\n JsonArray,\n JsonObject,\n JsonScalar,\n LiveStructure,\n Lson,\n LsonObject,\n PlainLsonObject,\n ResolveUsersArgs,\n StringifyCommentBodyElements,\n StringifyCommentBodyOptions,\n ThreadData,\n User,\n} from \"@liveblocks/core\";\nexport {\n getMentionsFromCommentBody,\n isNotificationChannelEnabled,\n LiveList,\n LiveMap,\n LiveObject,\n stringifyCommentBody,\n} from \"@liveblocks/core\";\n","declare const __VERSION__: string;\ndeclare const TSUP_FORMAT: string;\n\nexport const PKG_NAME = \"@liveblocks/node\";\nexport const PKG_VERSION = typeof __VERSION__ === \"string\" && __VERSION__;\nexport const PKG_FORMAT = typeof TSUP_FORMAT === \"string\" && TSUP_FORMAT;\n","/**\n * NOTE: only types should be imported from @liveblocks/core.\n * This is because this package is made to be used in Node.js, and\n * @liveblocks/core has browser-specific code.\n */\nimport type {\n Awaitable,\n BaseMetadata,\n BaseUserMeta,\n ClientMsg,\n CommentBody,\n CommentData,\n CommentDataPlain,\n CommentUserReaction,\n CommentUserReactionPlain,\n DAD,\n DE,\n DM,\n DS,\n DU,\n GroupData,\n GroupDataPlain,\n GroupScopes,\n IdTuple,\n InboxNotificationData,\n InboxNotificationDataPlain,\n Json,\n JsonObject,\n KDAD,\n LsonObject,\n NotificationSettings,\n NotificationSettingsPlain,\n Op,\n OptionalTupleUnless,\n PartialNotificationSettings,\n PartialUnless,\n Patchable,\n PlainLsonObject,\n QueryMetadata,\n QueryParams,\n RoomSubscriptionSettings,\n SerializedCrdt,\n StorageUpdate,\n SubscriptionData,\n SubscriptionDataPlain,\n ThreadData,\n ThreadDataPlain,\n ToImmutable,\n URLSafeString,\n UserRoomSubscriptionSettings,\n UserSubscriptionData,\n UserSubscriptionDataPlain,\n} from \"@liveblocks/core\";\nimport {\n checkBounds,\n ClientMsgCode,\n convertToCommentData,\n convertToCommentUserReaction,\n convertToGroupData,\n convertToInboxNotificationData,\n convertToSubscriptionData,\n convertToThreadData,\n convertToUserSubscriptionData,\n createManagedPool,\n createNotificationSettings,\n isPlainObject,\n LiveObject,\n makeAbortController,\n objectToQuery,\n tryParseJson,\n url,\n urljoin,\n} from \"@liveblocks/core\";\n\nimport { asyncConsume, runConcurrently } from \"./lib/itertools\";\nimport { LineStream, NdJsonStream } from \"./lib/ndjson\";\nimport { Session } from \"./Session\";\nimport {\n assertNonEmpty,\n assertSecretKey,\n fetchPolyfill,\n getBaseUrl,\n normalizeStatusCode,\n} from \"./utils\";\n\n// Recursively convert ReadonlyMap<K, V> to { [key: K]: V }\ntype SerializeMaps<T> =\n T extends ReadonlyMap<infer K, infer V>\n ? K extends string\n ? { readonly [P in K]: SerializeMaps<V> }\n : { readonly [key: string]: SerializeMaps<V> }\n : T extends object\n ? { readonly [P in keyof T]: SerializeMaps<T[P]> }\n : T;\n\ntype ToSimplifiedJson<S extends LsonObject> = LsonObject extends S\n ? JsonObject\n : // ToImmutable converts LiveMap instances to ReadonlyMap versions, but\n // the \"simplified JSON\" format actually requires (because of serialization)\n // and converts the maps to plain objects.\n SerializeMaps<ToImmutable<S>>;\n\nexport type LiveblocksOptions = {\n /**\n * The Liveblocks secret key. Must start with \"sk_\".\n * Get it from https://liveblocks.io/dashboard/apikeys\n */\n secret: string;\n\n /**\n * @internal To point the client to a different Liveblocks server. Only\n * useful for Liveblocks developers. Not for end users.\n */\n baseUrl?: string;\n};\n\ntype DateToString<T> = {\n [P in keyof T]: Date extends T[P] ? string : T[P];\n};\n\nexport type CreateSessionOptions<U extends BaseUserMeta = DU> =\n //\n PartialUnless<U[\"info\"], { userInfo: U[\"info\"] }> & {\n tenantId?: string;\n };\n\nexport type IdentifyUserOptions<U extends BaseUserMeta = DU> =\n //\n PartialUnless<U[\"info\"], { userInfo: U[\"info\"] }>;\n\nexport type AuthResponse = {\n status: number;\n body: string;\n error?: Error;\n};\n\ntype Identity = {\n userId: string;\n groupIds: string[];\n tenantId?: string;\n};\n\nexport type ThreadParticipants = {\n participantIds: string[];\n};\n\nexport type CreateThreadOptions<M extends BaseMetadata> = {\n roomId: string;\n data: {\n comment: { userId: string; createdAt?: Date; body: CommentBody };\n } & PartialUnless<M, { metadata: M }>;\n};\n\nexport type RoomPermission =\n | []\n | [\"room:write\"]\n | [\"room:read\", \"room:presence:write\"];\nexport type RoomAccesses = Record<\n string,\n | [\"room:write\"]\n | [\"room:read\", \"room:presence:write\"]\n | [\"room:read\", \"room:presence:write\", \"comments:write\"]\n>;\nexport type RoomMetadata = Record<string, string | string[]>;\ntype QueryRoomMetadata = Record<string, string>;\n\nexport type RoomData = {\n type: \"room\";\n id: string;\n createdAt: Date;\n lastConnectionAt?: Date;\n defaultAccesses: RoomPermission;\n usersAccesses: RoomAccesses;\n groupsAccesses: RoomAccesses;\n metadata: RoomMetadata;\n};\n\ntype RoomDataPlain = DateToString<RoomData>;\n\ntype AiCopilotProviderSettings = {\n maxTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n frequencyPenalty?: number;\n presencePenalty?: number;\n stopSequences?: string[];\n seed?: number;\n maxRetries?: number;\n};\n\ntype OpenAiModel =\n | \"o1\"\n | \"o1-mini\"\n | \"o3\"\n | \"o3-mini\"\n | \"o4-mini\"\n | \"gpt-4.1\"\n | \"gpt-4.1-mini\"\n | \"gpt-4.1-nano\"\n | \"gpt-4o\"\n | \"gpt-4o-mini\"\n | \"gpt-4-turbo\"\n | \"gpt-4\"\n | \"gpt-5\"\n | \"gpt-5-mini\"\n | \"gpt-5-nano\"\n | \"gpt-5-chat-latest\"\n | \"gpt-5.1\"\n | \"gpt-5.1-mini\"\n | \"gpt-5.1-chat-latest\";\n\ntype OpenAiProviderOptions = {\n openai: {\n reasoningEffort?: \"low\" | \"medium\" | \"high\";\n webSearch?: {\n allowedDomains?: string[];\n };\n };\n};\n\ntype AnthropicModel =\n | \"claude-sonnet-4-5-20250929\"\n | \"claude-haiku-4-5-20251001\"\n | \"claude-opus-4-1-20250805\"\n | \"claude-4-opus-20250514\"\n | \"claude-4-sonnet-20250514\"\n | \"claude-3-7-sonnet-20250219\"\n | \"claude-3-5-sonnet-latest\"\n | \"claude-3-5-haiku-latest\"\n | \"claude-3-opus-latest\";\ntype AnthropicProviderOptions = {\n anthropic: {\n thinking?:\n | {\n type: \"enabled\";\n budgetTokens: number;\n }\n | {\n type: \"disabled\";\n };\n webSearch?: {\n allowedDomains?: string[];\n };\n };\n};\n\ntype GoogleModel =\n | \"gemini-2.5-flash\"\n | \"gemini-2.5-pro\"\n | \"gemini-2.0-flash-001\"\n | \"gemini-1.5-flash\"\n | \"gemini-1.5-pro\";\ntype GoogleProviderOptions = {\n google: {\n thinkingConfig?: {\n thinkingBudget?: number;\n };\n };\n};\n\nexport type AiCopilot = {\n type: \"copilot\";\n id: string;\n name: string;\n description?: string;\n\n systemPrompt: string;\n knowledgePrompt?: string;\n\n createdAt: Date;\n updatedAt: Date;\n lastUsedAt?: Date;\n\n settings?: AiCopilotProviderSettings;\n} & (\n | {\n provider: \"openai\";\n providerModel: OpenAiModel;\n providerOptions?: OpenAiProviderOptions;\n }\n | {\n provider: \"anthropic\";\n providerModel: AnthropicModel;\n providerOptions?: AnthropicProviderOptions;\n }\n | {\n provider: \"google\";\n providerModel: GoogleModel;\n providerOptions?: GoogleProviderOptions;\n }\n | {\n provider: \"openai-compatible\";\n providerModel: string;\n compatibleProviderName: string;\n providerBaseUrl: string;\n }\n);\n\ntype AiCopilotPlain = DateToString<AiCopilot>;\nexport type RoomUser<U extends BaseUserMeta = DU> = {\n type: \"user\";\n id: string | null;\n connectionId: number;\n info: U[\"info\"];\n};\n\ntype RequestStorageMutationResponse = {\n actor: number;\n nodes: IdTuple<SerializedCrdt>[];\n};\n\nexport type MutateStorageCallback = (context: {\n root: LiveObject<S>;\n}) => Awaitable<void>;\nexport type MutateStorageOptions = RequestOptions;\n\nexport type MassMutateStorageCallback = (context: {\n room: RoomData;\n root: LiveObject<S>;\n}) => Awaitable<void>;\n\n// prettier-ignore\nexport type MassMutateStorageOptions =\n & MutateStorageOptions\n & { concurrency?: number };\n\n// NOTE: We should _never_ rely on using the default types (DS, DU, DE, ...)\n// inside the Liveblocks implementation. We should only rely on the type\n// \"params\" (S, U, E, ...) instead, where the concrete type is bound to the\n// class. In this case, we're not doing that at the class level, but globally.\n// The idea is that we \"start small\" and could always add them in at the class\n// level later.\ntype E = DE;\ntype M = DM;\ntype S = DS;\ntype U = DU;\n\nexport type RoomsQueryCriteria = {\n userId?: string;\n groupIds?: string[];\n /**\n * The query to filter rooms by. It is based on our query language.\n * @example\n * ```\n * {\n * query: 'metadata[\"status\"]:\"open\" AND roomId^\"liveblocks:\"'\n * }\n * ```\n * @example\n * ```\n * {\n * query: {\n * metadata: {\n * status: \"open\",\n * },\n * roomId: {\n * startsWith: \"liveblocks:\"\n * }\n * }\n * }\n * ```\n */\n query?:\n | string\n | {\n metadata?: QueryRoomMetadata;\n roomId?: {\n startsWith: string;\n };\n };\n};\n\nexport type InboxNotificationsQueryCriteria = {\n userId: string;\n tenantId?: string;\n /**\n * The query to filter inbox notifications by. It is based on our query language.\n *\n * @example\n * ```\n * {\n * query: \"unread:true\"\n * }\n * ```\n *\n * @example\n * ```\n * {\n * query: {\n * unread: true\n * }\n * }\n * ```\n *\n */\n query?: string | { unread: boolean };\n};\n\nexport type PaginationOptions = {\n limit?: number;\n startingAfter?: string;\n};\n\nexport type Page<T> = {\n nextCursor: string | null;\n data: T[];\n};\n\n// prettier-ignore\nexport type GetRoomsOptions =\n & RoomsQueryCriteria\n & PaginationOptions\n\n// prettier-ignore\nexport type GetInboxNotificationsOptions =\n & InboxNotificationsQueryCriteria\n & PaginationOptions;\n\nexport type CreateRoomOptions = {\n defaultAccesses: RoomPermission;\n groupsAccesses?: RoomAccesses;\n usersAccesses?: RoomAccesses;\n metadata?: RoomMetadata;\n tenantId?: string;\n};\n\nexport type UpdateRoomOptions = {\n defaultAccesses?: RoomPermission | null;\n groupsAccesses?: Record<\n string,\n [\"room:write\"] | [\"room:read\", \"room:presence:write\"] | null\n >;\n usersAccesses?: Record<\n string,\n [\"room:write\"] | [\"room:read\", \"room:presence:write\"] | null\n >;\n metadata?: Record<string, string | string[] | null>;\n};\n\nexport type UpsertRoomOptions = {\n update: UpdateRoomOptions;\n create?: CreateRoomOptions;\n};\n\nexport type GetAiCopilotsOptions = PaginationOptions;\n\nexport type CreateAiCopilotOptions = {\n name: string;\n description?: string;\n\n systemPrompt: string;\n knowledgePrompt?: string;\n\n settings?: AiCopilotProviderSettings;\n\n providerApiKey: string;\n} & (\n | {\n provider: \"openai\";\n providerModel: OpenAiModel;\n\n providerOptions?: OpenAiProviderOptions;\n }\n | {\n provider: \"anthropic\";\n providerModel: AnthropicModel;\n providerOptions?: AnthropicProviderOptions;\n }\n | {\n provider: \"google\";\n providerModel: GoogleModel;\n providerOptions?: GoogleProviderOptions;\n }\n | {\n provider: \"openai-compatible\";\n providerModel: string;\n compatibleProviderName: string;\n providerBaseUrl: string;\n }\n);\n\nexport type UpdateAiCopilotOptions = {\n name?: string;\n description?: string | null;\n\n systemPrompt?: string;\n knowledgePrompt?: string | null;\n\n settings?: AiCopilotProviderSettings | null;\n\n providerApiKey?: string;\n} & (\n | {\n provider?: \"openai\";\n /**\n * The provider model to use.\n */\n providerModel?: OpenAiModel;\n /**\n * The provider options to use. Replaces the entire existing provider options; no deep merge of the nested fields occurs.\n */\n providerOptions?: OpenAiProviderOptions | null;\n compatibleProviderName?: never;\n providerBaseUrl?: never;\n }\n | {\n provider?: \"anthropic\";\n /**\n * The provider model to use.\n */\n providerModel?: AnthropicModel;\n /**\n * The provider options to use. Replaces the entire existing provider options; no deep merge of the nested fields occurs..\n */\n providerOptions?: AnthropicProviderOptions | null;\n compatibleProviderName?: never;\n providerBaseUrl?: never;\n }\n | {\n provider?: \"google\";\n /**\n * The provider model to use.\n */\n providerModel?: GoogleModel;\n /**\n * The provider options to use. Replaces the entire existing provider options; no deep merge of the nested fields occurs.\n */\n providerOptions?: GoogleProviderOptions | null;\n compatibleProviderName?: never;\n providerBaseUrl?: never;\n }\n | {\n provider?: \"openai-compatible\";\n /**\n * The provider model to use.\n */\n providerModel?: string;\n compatibleProviderName?: string;\n providerBaseUrl?: string;\n providerOptions?: never;\n }\n);\n\nexport type CreateWebKnowledgeSourceOptions = {\n copilotId: string;\n url: string;\n type: \"individual_link\" | \"crawl\" | \"sitemap\";\n};\n\nexport type CreateFileKnowledgeSourceOptions = {\n copilotId: string;\n file: File;\n};\n\nexport type GetKnowledgeSourcesOptions = {\n copilotId: string;\n} & PaginationOptions;\n\nexport type GetWebKnowledgeSourceLinksOptions = {\n copilotId: string;\n knowledgeSourceId: string;\n} & PaginationOptions;\n\ntype KnowledgeSourcePlain = DateToString<KnowledgeSource>;\n\nexport type KnowledgeSource = (\n | {\n type: \"ai-knowledge-web-source\";\n link: {\n url: string;\n type: \"individual_link\" | \"crawl\" | \"sitemap\";\n };\n }\n | {\n type: \"ai-knowledge-file-source\";\n file: {\n name: string;\n mimeType: string;\n };\n }\n) & {\n id: string;\n createdAt: Date;\n updatedAt: Date;\n lastIndexedAt: Date;\n} & (\n | { status: \"ingesting\" | \"ready\" }\n | { status: \"error\"; errorMessage: string }\n );\n\ntype WebKnowledgeSourceLinkPlain = DateToString<WebKnowledgeSourceLink>;\n\nexport type WebKnowledgeSourceLink = {\n id: string;\n url: string;\n status: \"ingesting\" | \"ready\" | \"error\";\n createdAt: Date;\n lastIndexedAt: Date;\n};\n\nexport type RequestOptions = {\n signal?: AbortSignal;\n};\n\n/**\n * Converts ISO-formatted date strings to Date instances on RoomDataPlain\n * values.\n */\nfunction inflateRoomData(room: RoomDataPlain): RoomData {\n const createdAt = new Date(room.createdAt);\n const lastConnectionAt = room.lastConnectionAt\n ? new Date(room.lastConnectionAt)\n : undefined;\n\n return {\n ...room,\n createdAt,\n lastConnectionAt,\n };\n}\n\nfunction inflateAiCopilot(copilot: AiCopilotPlain): AiCopilot {\n return {\n ...copilot,\n createdAt: new Date(copilot.createdAt),\n updatedAt: new Date(copilot.updatedAt),\n lastUsedAt: copilot.lastUsedAt ? new Date(copilot.lastUsedAt) : undefined,\n };\n}\n\nfunction inflateKnowledgeSource(source: KnowledgeSourcePlain): KnowledgeSource {\n return {\n ...source,\n createdAt: new Date(source.createdAt),\n updatedAt: new Date(source.updatedAt),\n lastIndexedAt: new Date(source.lastIndexedAt),\n };\n}\n\nfunction inflateWebKnowledgeSourceLink(\n link: WebKnowledgeSourceLinkPlain\n): WebKnowledgeSourceLink {\n return {\n ...link,\n createdAt: new Date(link.createdAt),\n lastIndexedAt: new Date(link.lastIndexedAt),\n };\n}\n\n/**\n * Interact with the Liveblocks API from your Node.js backend.\n */\nexport class Liveblocks {\n readonly #secret: string;\n readonly #baseUrl: URL;\n\n /**\n * Interact with the Liveblocks API from your Node.js backend.\n */\n constructor(options: LiveblocksOptions) {\n const options_ = options as Record<string, unknown>;\n const secret = options_.secret;\n assertSecretKey(secret, \"secret\");\n this.#secret = secret;\n this.#baseUrl = new URL(getBaseUrl(options.baseUrl));\n }\n\n async #post(\n path: URLSafeString,\n json: Json,\n options?: RequestOptions\n ): Promise<Response> {\n const url = urljoin(this.#baseUrl, path);\n const headers = {\n Authorization: `Bearer ${this.#secret}`,\n \"Content-Type\": \"application/json\",\n };\n const fetch = await fetchPolyfill();\n const res = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(json),\n signal: options?.signal,\n });\n return res;\n }\n\n async #putBinary(\n path: URLSafeString,\n body: Uint8Array,\n params?: QueryParams,\n options?: RequestOptions\n ): Promise<Response> {\n const url = urljoin(this.#baseUrl, path, params);\n const headers = {\n Authorization: `Bearer ${this.#secret}`,\n \"Content-Type\": \"application/octet-stream\",\n };\n const fetch = await fetchPolyfill();\n return await fetch(url, {\n method: \"PUT\",\n headers,\n body,\n signal: options?.signal,\n });\n }\n\n async #delete(\n path: URLSafeString,\n params?: QueryParams,\n options?: RequestOptions\n ): Promise<Response> {\n const url = urljoin(this.#baseUrl, path, params);\n const headers = {\n Authorization: `Bearer ${this.#secret}`,\n };\n const fetch = await fetchPolyfill();\n const res = await fetch(url, {\n method: \"DELETE\",\n headers,\n signal: options?.signal,\n });\n return res;\n }\n\n async #get(\n path: URLSafeString,\n params?: QueryParams,\n options?: RequestOptions\n ): Promise<Response> {\n const url = urljoin(this.#baseUrl, path, params);\n const headers = {\n Authorization: `Bearer ${this.#secret}`,\n };\n const fetch = await fetchPolyfill();\n const res = await fetch(url, {\n method: \"GET\",\n headers,\n signal: options?.signal,\n });\n return res;\n }\n\n /* -------------------------------------------------------------------------------------------------\n * Authentication\n * -----------------------------------------------------------------------------------------------*/\n\n /**\n * Prepares a new session to authorize a user to access Liveblocks.\n *\n * IMPORTANT:\n * Always make sure that you trust the user making the request to your\n * backend before calling .prepareSession()!\n *\n * @param userId Tell Liveblocks the user ID of the user to authorize. Must\n * uniquely identify the user account in your system. The uniqueness of this\n * value will determine how many MAUs will be counted/billed.\n *\n * @param tenantId (optional) The tenant ID to authorize the user for.\n *\n * @param options.userInfo Custom metadata to attach to this user. Data you\n * add here will be visible to all other clients in the room, through the\n * `other.info` property.\n *\n */\n prepareSession(\n userId: string,\n ...rest: OptionalTupleUnless<\n CreateSessionOptions<U>,\n [options: CreateSessionOptions<U>]\n >\n ): Session {\n const options = rest[0];\n return new Session(\n this.#post.bind(this),\n userId,\n options?.userInfo,\n options?.tenantId\n );\n }\n\n /**\n * Call this to authenticate the user as an actor you want to allow to use\n * Liveblocks.\n *\n * You should use this method only if you want to manage your permissions\n * through the Liveblocks Permissions API. This method is more complicated to\n * set up, but allows for finer-grained specification of permissions.\n *\n * Calling `.identifyUser()` only lets you securely identify a user (and what\n * groups they belong to). What permissions this user will end up having is\n * determined by whatever permissions you assign the user/group in your\n * Liveblocks account, through the Permissions API:\n * https://liveblocks.io/docs/rooms/permissions\n *\n * IMPORTANT:\n * Always verify that you trust the user making the request before calling\n * .identifyUser()!\n *\n * @param identity Tell Liveblocks the user ID of the user to authenticate.\n * Must uniquely identify the user account in your system. The uniqueness of\n * this value will determine how many MAUs will be counted/billed.\n *\n * If you also want to assign which groups this user belongs to, use the\n * object form and specify the `groupIds` property. Those `groupIds` should\n * match the groupIds you assigned permissions to via the Liveblocks\n * Permissions API, see\n * https://liveblocks.io/docs/rooms/permissions#permissions-levels-groups-accesses-example\n *\n * @param options.userInfo Custom metadata to attach to this user. Data you\n * add here will be visible to all other clients in the room, through the\n * `other.info` property.\n */\n // These fields define the security identity of the user. Whatever you pass in here will define which\n public async identifyUser(\n identity:\n | string // Shorthand for userId\n | Identity,\n ...rest: OptionalTupleUnless<\n IdentifyUserOptions<U>,\n [options: IdentifyUserOptions<U>]\n >\n ): Promise<AuthResponse> {\n const options = rest[0];\n\n const path = url`/v2/identify-user`;\n\n const { userId, groupIds, tenantId } =\n typeof identity === \"string\"\n ? { userId: identity, groupIds: undefined, tenantId: undefined }\n : identity;\n\n assertNonEmpty(userId, \"userId\");\n\n const body = {\n userId,\n groupIds,\n tenantId,\n userInfo: options?.userInfo,\n };\n\n try {\n const resp = await this.#post(path, body);\n\n return {\n status: normalizeStatusCode(resp.status),\n body: await resp.text(),\n };\n } catch (er) {\n return {\n status: 503 /* Service Unavailable */,\n body: `Call to ${urljoin(\n this.#baseUrl,\n path\n )} failed. See \"error\" for more information.`,\n error: er as Error | undefined,\n };\n }\n }\n\n /* -------------------------------------------------------------------------------------------------\n * Room\n * -----------------------------------------------------------------------------------------------*/\n\n /**\n * Returns a list of your rooms. The rooms are returned sorted by creation date, from newest to oldest. You can filter rooms by metadata, users accesses and groups accesses.\n * @param params.limit (optional) A limit on the number of rooms to be returned. The limit can range between 1 and 100, and defaults to 20.\n * @param params.startingAfter (optional) A cursor used for pagination. You get the value from the response of the previous page.\n * @param params.userId (optional) A filter on users accesses.\n * @param params.metadata (optional) A filter on metadata. Multiple metadata keys can be used to filter rooms.\n * @param params.groupIds (optional) A filter on groups accesses. Multiple groups can be used.\n * @param params.tenantId (optional) A filter on tenant ID.\n * @param params.query (optional) A query to filter rooms by. It is based on our query language. You can filter by metadata and room ID.\n * @param options.signal (optional) An abort signal to cancel the request.\n * @returns A list of rooms.\n */\n public async getRooms(\n params: GetRoomsOptions = {},\n o