@arbidocs/react 0.5.97 → 0.5.99
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.
- package/README.md +6 -1
- package/dist/artifacts/index.cjs +13 -13
- package/dist/artifacts/index.js +3 -3
- package/dist/calls/livekit/index.cjs +48 -48
- package/dist/calls/livekit/index.js +3 -3
- package/dist/{chunk-IIOOXKOB.js → chunk-4SH5INC3.js} +4 -4
- package/dist/{chunk-IIOOXKOB.js.map → chunk-4SH5INC3.js.map} +1 -1
- package/dist/{chunk-NJDVQIJR.cjs → chunk-5EELSW26.cjs} +4 -4
- package/dist/{chunk-NJDVQIJR.cjs.map → chunk-5EELSW26.cjs.map} +1 -1
- package/dist/{chunk-HGLS3IC6.js → chunk-5X3JANHT.js} +3 -3
- package/dist/{chunk-HGLS3IC6.js.map → chunk-5X3JANHT.js.map} +1 -1
- package/dist/{chunk-7PMNITKA.js → chunk-6SG2OGDR.js} +11 -2
- package/dist/chunk-6SG2OGDR.js.map +1 -0
- package/dist/{chunk-5RRWRTY3.js → chunk-ALT6ETIE.js} +39 -6
- package/dist/chunk-ALT6ETIE.js.map +1 -0
- package/dist/{chunk-BRFRQWAY.cjs → chunk-HAGC67GL.cjs} +11 -2
- package/dist/chunk-HAGC67GL.cjs.map +1 -0
- package/dist/{chunk-6BXRZYL2.cjs → chunk-ORBUPHMV.cjs} +38 -38
- package/dist/{chunk-6BXRZYL2.cjs.map → chunk-ORBUPHMV.cjs.map} +1 -1
- package/dist/{chunk-7RUVJZZG.cjs → chunk-Q65QCWNI.cjs} +57 -57
- package/dist/{chunk-7RUVJZZG.cjs.map → chunk-Q65QCWNI.cjs.map} +1 -1
- package/dist/{chunk-NR6PUE5O.cjs → chunk-VIOW22Q4.cjs} +44 -44
- package/dist/{chunk-NR6PUE5O.cjs.map → chunk-VIOW22Q4.cjs.map} +1 -1
- package/dist/{chunk-CSYZ3YI4.cjs → chunk-WJME7DI4.cjs} +99 -65
- package/dist/chunk-WJME7DI4.cjs.map +1 -0
- package/dist/{chunk-KZBYWXPS.js → chunk-YIZH5RVW.js} +3 -3
- package/dist/{chunk-KZBYWXPS.js.map → chunk-YIZH5RVW.js.map} +1 -1
- package/dist/{chunk-N3SFVZ7H.js → chunk-ZEGCZATR.js} +3 -3
- package/dist/{chunk-N3SFVZ7H.js.map → chunk-ZEGCZATR.js.map} +1 -1
- package/dist/document-tools/core.cjs +98 -98
- package/dist/document-tools/core.d.cts +2 -2
- package/dist/document-tools/core.d.ts +2 -2
- package/dist/document-tools/core.js +3 -3
- package/dist/document-tools/index.cjs +100 -100
- package/dist/document-tools/index.d.cts +1 -1
- package/dist/document-tools/index.d.ts +1 -1
- package/dist/document-tools/index.js +4 -4
- package/dist/index.cjs +1693 -1553
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +222 -92
- package/dist/index.d.ts +222 -92
- package/dist/index.js +407 -281
- package/dist/index.js.map +1 -1
- package/dist/{query-keys.d-D6SAUl7S.d.ts → query-keys.d-O3lHn6rp.d.cts} +9 -0
- package/dist/{query-keys.d-D6SAUl7S.d.cts → query-keys.d-O3lHn6rp.d.ts} +9 -0
- package/package.json +3 -3
- package/dist/chunk-5RRWRTY3.js.map +0 -1
- package/dist/chunk-7PMNITKA.js.map +0 -1
- package/dist/chunk-BRFRQWAY.cjs.map +0 -1
- package/dist/chunk-CSYZ3YI4.cjs.map +0 -1
|
@@ -317,6 +317,15 @@ var mailQueryKeys = {
|
|
|
317
317
|
allMessages: () => ["arbi", "mail", "messages"],
|
|
318
318
|
messages: (accountId, folderId, query, cursor) => ["arbi", "mail", "messages", accountId, folderId, query, cursor],
|
|
319
319
|
message: (accountId, messageId) => ["arbi", "mail", "message", accountId, messageId],
|
|
320
|
+
/** Every conversation list: the prefix a flag or move patches or refreshes. */
|
|
321
|
+
allConversations: () => ["arbi", "mail", "conversations"],
|
|
322
|
+
conversations: (accountId, folderId, query, cursor) => ["arbi", "mail", "conversations", accountId, folderId, query, cursor],
|
|
323
|
+
/** Every thread read of an account. */
|
|
324
|
+
accountThreads: (accountId) => ["arbi", "mail", "thread", accountId],
|
|
325
|
+
thread: (accountId, threadId, folderId) => ["arbi", "mail", "thread", accountId, threadId, folderId],
|
|
326
|
+
/** The key the user's client keys older native mail with: outside the `['arbi', 'mail']` prefix, so
|
|
327
|
+
* refreshing mail never fetches it again. */
|
|
328
|
+
threadSecret: () => ["arbi", "mail-thread-secret"],
|
|
320
329
|
/** The projects an email's AI work can be billed to. */
|
|
321
330
|
projects: () => ["arbi", "mail", "projects"],
|
|
322
331
|
/** A saved draft prepared for editing. */
|
|
@@ -339,5 +348,5 @@ exports.mailQueryKeys = mailQueryKeys;
|
|
|
339
348
|
exports.useArbi = useArbi;
|
|
340
349
|
exports.useArbiHost = useArbiHost;
|
|
341
350
|
exports.useDeploymentDomain = useDeploymentDomain;
|
|
342
|
-
//# sourceMappingURL=chunk-
|
|
343
|
-
//# sourceMappingURL=chunk-
|
|
351
|
+
//# sourceMappingURL=chunk-HAGC67GL.cjs.map
|
|
352
|
+
//# sourceMappingURL=chunk-HAGC67GL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/host/config.ts","../src/useArbi.ts","../src/query-keys.ts"],"names":["useContext","ArbiHostContext"],"mappings":"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","file":"chunk-HAGC67GL.cjs","sourcesContent":["/**\n * What a host hands the `@arbidocs/react` hooks, as one configuration (`<ArbiHost config>`). Every\n * field is optional: without one the hooks use their own default. `@arbidocs/blocks` extends it\n * with the blocks domains (environment, billing, viewer, …).\n *\n * A field whose value lives in the host's state is a hook (`use…`), called by the hooks and kits\n * that need it, so the configuration itself stays one stable object for the host's life.\n */\n\nimport { useContext } from 'react'\nimport type { Arbi } from '@arbidocs/sdk/browser'\nimport type { AccountClient } from '../account/client'\nimport type { CalendarSupport } from '../calendar/support'\nimport type { MeetingChatRef } from '../calls/meeting-chat'\nimport type { ActiveCall } from '../calls/session'\nimport type { ArbiChatHost } from '../chat/host'\nimport type { DocumentsSupport } from '../documents/support'\nimport type { MailClient } from '../mail/client'\nimport type { ArbiSessionStore } from '../session/store'\nimport type { DictateContextValue } from '../ui/DictateContext'\nimport type { EntityVocabulary } from '../entities/vocabulary'\nimport type { ArbiHostConnection } from './ArbiHost'\nimport type { ArbiFeatures } from './features'\nimport { ArbiHostContext } from './context'\nimport type { DashboardsHost } from '../datasets/registry'\n\n/** The mail client, and whether mail is on for the signed-in user. */\nexport interface MailHost {\n client: MailClient\n /**\n * Whether mail reads run (signed in and entitled), and the server session the mailbox is\n * unlocked for: unlocking runs again when it changes (`null`: none yet, nothing is unlocked).\n * Absent: on, for one session.\n */\n useStatus?: () => { enabled: boolean; sessionKey: string | null }\n /**\n * The mail waiting in this device's Outbox (written offline), by status, while `enabled` (Mail\n * switched on); the offline status counts it as waiting work. Absent: no Outbox.\n */\n useOutbox?: (enabled: boolean) => ReadonlyArray<{ status: string }>\n /** The Outbox's folder, opened through `openMail({ folder })`. */\n outboxFolder?: string\n}\n\n/** The account client of the settings kits, and whether account reads run (signed in). */\nexport interface AccountHost {\n client: AccountClient\n /** Absent: always. */\n useEnabled?: () => boolean\n}\n\n/** Where the call panel goes in the host's layout. */\nexport type CallSlotMode = 'docked' | 'main'\n\n/** What the calls need from the host: navigation and layout are the host's. */\nexport interface CallsHost {\n /**\n * Show a call's meeting chat: an end-to-end chat, or a workspace meeting thread. Absent: the\n * in-call \"Open meeting chat\" does nothing.\n */\n openMeetingChat?: (ref: MeetingChatRef) => void\n /**\n * Once connected, show the call's conversation (its chat and live transcript) beside the call.\n * Absent: nothing is shown.\n */\n showConversation?: (call: ActiveCall) => void | Promise<void>\n /**\n * The element whose box the shown call fills: the right-hand dock, or (a webinar's audience) the\n * main area. The host claims its slot while `shown` and calls `onLost` when another panel takes\n * it (the call then minimises). Absent: the call floats at the right edge.\n */\n useSlot?: (mode: CallSlotMode, shown: boolean, onLost: () => void) => HTMLElement | null\n}\n\nexport interface ArbiHostConfig {\n /**\n * The SDK on the signed-in session. A host with its own login passes one on its session\n * (`new Arbi({ url, session })`); a blocks-only site gets one from `defaultHost`. A new instance (a\n * new session, a newly opened workspace) re-renders every hook.\n */\n arbi?: Arbi\n /** The session state the kits share. Absent: an in-memory one per top-level host. */\n session?: ArbiSessionStore\n /** Live processing, uploads and the host's document actions. Absent: the package's own. */\n documents?: DocumentsSupport\n /** The calendar kept on this device and account OAuth. Absent: online only, the user's connectors. */\n calendar?: CalendarSupport\n /** Absent: mail on the `arbi` session. */\n mail?: MailHost\n /** Absent: the account on the `arbi` session. */\n account?: AccountHost\n /** Absent: calls open no meeting chat from the room. */\n calls?: CallsHost\n /**\n * The parts of the product the user switches on or off, and where each switch is kept (the user's\n * settings, or this device), read with `useFeature(name)`. The call UI also follows the `calls`\n * feature, on top of the server's calls config. Absent, or a feature not listed: on.\n */\n features?: ArbiFeatures\n /** Dictation for every `dictate` field. Absent: no mic button. */\n dictate?: DictateContextValue\n /** The sign-in layer of a blocks-only site (`defaultHost` in `@arbidocs/blocks/connect`). */\n connection?: ArbiHostConnection\n /** Where the chat engine's side effects go (documents shown, mail drafts, used-up quota). */\n chat?: ArbiChatHost\n /**\n * The site's words for the entities (`{ PROJECT: 'Matter' }`), read by every kit through\n * `getEntityLabel`. Absent: the registry's (\"Project\", \"Workspace\", \"Thread\", …).\n */\n vocabulary?: EntityVocabulary\n /**\n * What the site calls its assistant where people address it: the `@<name>` offered in a chat's\n * mention menu, the draft a shared thread starts with, and the name a message is routed to the\n * assistant on. Absent: \"ARBI\".\n */\n assistantName?: string\n /**\n * Charts and dashboards: more data sources (an external feed, a source relabelled in the site's\n * words) and where saved dashboards are kept. Absent: the built-in sources, saved in a database.\n */\n dashboards?: DashboardsHost\n}\n\n/** The host configuration in scope (`{}` outside an `<ArbiHost>`). */\nexport function useArbiHost(): ArbiHostConfig {\n return useContext(ArbiHostContext) as ArbiHostConfig\n}\n","/**\n * The `Arbi` of the host configuration (`<ArbiHost config={{ arbi }}>`).\n */\n\nimport type { Arbi } from '@arbidocs/sdk/browser'\nimport { useArbiHost } from './host/config'\n\nexport function useArbi(): Arbi {\n const { arbi } = useArbiHost()\n if (!arbi) {\n throw new Error('useArbi() needs an <ArbiHost> whose config has an `arbi`')\n }\n return arbi\n}\n\n/**\n * The deployment domain the user's keys are derived for, as the host's `Arbi` computes it\n * (`deploymentDomain`, else the API URL's hostname). `undefined` without one. The document tools\n * default their `deploymentDomain` (needed for e-signing) to it.\n */\nexport function useDeploymentDomain(): string | undefined {\n return useArbiHost().arbi?.getDeploymentDomain()\n}\n","/**\n * The one query-key factory of the ARBI front end: every React Query key and mutation key the\n * packages and the app use is built here, under `['arbi', …]`. Literal key arrays anywhere else\n * fail the `arbi/query-keys-from-factory` lint rule and `query-keys.guard.test.ts`, so a key can't\n * drift from the queries it names (a stale literal reads or invalidates nothing, silently).\n *\n * Dependency-free on purpose (types only): e2e helpers import it and pass keys into the page.\n */\n\nimport type {\n CalendarWindow,\n ListEventsParams,\n OverlayLayerName,\n RoomQuery,\n} from '@arbidocs/sdk/browser'\n\nexport const arbiQueryKeys = {\n fileShares: () => ['arbi', 'fileShares'] as const,\n fileShare: (id: string) => ['arbi', 'fileShare', id] as const,\n fileSharePdf: (id: string, status?: string) => ['arbi', 'fileSharePdf', id, status] as const,\n workspaces: () => ['arbi', 'workspaces'] as const,\n /** Every workspace's member list: what a workspace switch drops. */\n allWorkspaceUsers: () => ['arbi', 'workspaceUsers'] as const,\n workspaceUsers: (workspaceId: string) => ['arbi', 'workspaceUsers', workspaceId] as const,\n /** Every workspace's documents list: the prefix a write patches when it does not know the workspace. */\n allDocuments: () => ['arbi', 'documents'] as const,\n documents: (workspaceId: string) => ['arbi', 'documents', workspaceId] as const,\n /** One document (a viewer's); writes keep it current next to the list. */\n document: (docId: string) => ['arbi', 'document', docId] as const,\n documentsById: (docIds: string[]) =>\n ['arbi', 'documentsById', [...docIds].sort().join(',')] as const,\n /** Every workspace's near-duplicate pairs. */\n allSimilarDocuments: () => ['arbi', 'similarDocuments'] as const,\n similarDocuments: (workspaceId: string, threshold: number) =>\n ['arbi', 'similarDocuments', workspaceId, threshold] as const,\n /** Every version list: the prefix a new version invalidates. */\n allDocumentVersions: () => ['arbi', 'documentVersions'] as const,\n documentVersions: (docId: string) => ['arbi', 'documentVersions', docId] as const,\n conversations: (workspaceId: string) => ['arbi', 'conversations', workspaceId] as const,\n /** Every workspace's conversation list (and threads): the prefix a conversation write invalidates. */\n allConversations: () => ['arbi', 'conversations'] as const,\n /** A conversation's threads, under the conversations prefix (ids are unique across workspaces). */\n conversationThreads: (conversationId: string) =>\n ['arbi', 'conversations', conversationId, 'threads'] as const,\n /** One stored message with everything the server keeps on it (its trace and metadata). */\n messageDetails: (messageId: string) => ['arbi', 'messageDetails', messageId] as const,\n /** The backend's built-in slash commands. */\n assistantCommands: () => ['arbi', 'assistantCommands'] as const,\n /** Every workspace's tags (lists, tables and kinds): what a cross-workspace change refreshes. */\n allTags: () => ['arbi', 'tags'] as const,\n tags: (workspaceId: string) => ['arbi', 'tags', workspaceId] as const,\n /** Under the workspace's tags: the kinds' fields (refreshed with the tags). */\n tagKinds: (workspaceId: string) => ['arbi', 'tags', workspaceId, 'kinds'] as const,\n /** Every filtered list (a table of tags): what a tag write refreshes, the whole list aside. */\n tagLists: (workspaceId: string) => ['arbi', 'tags', workspaceId, 'list'] as const,\n /** Under the workspace's tags: a tag, doctag or fact write that invalidates `tags` refreshes it. */\n tagList: (workspaceId: string, query: string) =>\n ['arbi', 'tags', workspaceId, 'list', query] as const,\n /** A kind's fields, under the workspace's tags. */\n tagKind: (workspaceId: string, kind: string) =>\n ['arbi', 'tags', workspaceId, 'kind', kind] as const,\n /** A task's history, under the conversations prefix: every conversation write refreshes it. */\n conversationActivity: (conversationId: string) =>\n ['arbi', 'conversations', conversationId, 'activity'] as const,\n thumbnails: (docIds: string[]) => ['arbi', 'thumbnails', [...docIds].sort().join(',')] as const,\n /** Every stage of a document's parsed content. */\n parsedDocument: (docId: string) => ['arbi', 'parsedDoc', docId] as const,\n parsedDoc: (docId: string, stage: string) => ['arbi', 'parsedDoc', docId, stage] as const,\n agents: () => ['arbi', 'agents'] as const,\n sessions: () => ['arbi', 'sessions'] as const,\n health: () => ['arbi', 'health'] as const,\n workflows: () => ['arbi', 'workflows'] as const,\n /** Under `workflows()`: a workflow write or run refreshes its runs too. */\n workflowRuns: (workflowId: string) => ['arbi', 'workflows', workflowId, 'runs'] as const,\n /** Every workspace's facts: the prefix a fact write invalidates. */\n allFacts: () => ['arbi', 'facts'] as const,\n facts: (workspaceId: string) => ['arbi', 'facts', workspaceId] as const,\n configs: () => ['arbi', 'configs'] as const,\n activity: () => ['arbi', 'activity'] as const,\n /** Every transfer query (jobs, lists, plans): what a finished job refreshes. */\n allWorkspaceTransfers: () => ['arbi', 'workspaceTransfers'] as const,\n /** The caller's recent transfer jobs out of a workspace. */\n workspaceTransfers: (workspaceId: string) =>\n ['arbi', 'workspaceTransfers', 'list', workspaceId] as const,\n /** One transfer job's progress. */\n workspaceTransfer: (transferId: string) =>\n ['arbi', 'workspaceTransfers', 'job', transferId] as const,\n /** What a scope (serialised) would take in a workspace, for a mode. */\n workspaceTransferPlan: (workspaceId: string, scope: string, mode: string) =>\n ['arbi', 'workspaceTransfers', 'plan', workspaceId, scope, mode] as const,\n /** A workspace's activity feed (all its pages). */\n workspaceActivity: (workspaceId: string) => ['arbi', 'workspaceActivity', workspaceId] as const,\n projects: () => ['arbi', 'projects'] as const,\n projectUsage: (projectExtId: string, monthsBack: number) =>\n ['arbi', 'projectUsage', projectExtId, monthsBack] as const,\n projectConversationUsage: (projectExtId: string, monthsBack: number) =>\n ['arbi', 'projectUsage', projectExtId, 'byConversation', monthsBack] as const,\n projectInvoices: (projectExtId: string) => ['arbi', 'projectInvoices', projectExtId] as const,\n /** The plans and add-ons on sale. */\n products: () => ['arbi', 'products'] as const,\n /** Prices of a purchase or a change (quotes, previews); nothing is bought. */\n billingQuotes: () => ['arbi', 'billingQuote'] as const,\n userUsageToday: () => ['arbi', 'userUsageToday'] as const,\n currentUser: () => ['arbi', 'currentUser'] as const,\n firmPool: () => ['arbi', 'firmPool'] as const,\n contacts: () => ['arbi', 'contacts'] as const,\n /** Every chat query (the list and each open thread). */\n chats: () => ['arbi', 'chats'] as const,\n /** My chats, raw (titles and last messages are ciphertext), most recently active first. */\n chatList: () => ['arbi', 'chats', 'list'] as const,\n /** One thread's loaded messages, decrypted, oldest first (`ChatThreadData`). */\n chatThread: (chatExtId: string) => ['arbi', 'chats', 'thread', chatExtId] as const,\n /** My own agent's progress on my last message to it (`agent_dm_status`), per agent. */\n agentDmStatus: (agentExtId: string) => ['arbi', 'chats', 'agentStatus', agentExtId] as const,\n /** The paid features this person may use (`/v1/user/entitlements`). */\n entitlements: () => ['arbi', 'entitlements'] as const,\n skills: () => ['arbi', 'skills'] as const,\n /** A skill's main file (SKILL.md), as text. */\n skillSource: (docExtId: string) => ['arbi', 'skills', 'source', docExtId] as const,\n /** An agent's pinned config; `undefined` = the library default config. */\n agentConfig: (agentExtId?: string) => ['arbi', 'agentConfig', agentExtId ?? 'default'] as const,\n agentWorkspaces: (agentExtId: string) => ['arbi', 'agentWorkspaces', agentExtId] as const,\n /** An agent's own login, polled while its controls are open. */\n agentSession: (agentExtId: string) => ['arbi', 'agentSession', agentExtId] as const,\n agentChats: (agentExtId: string) => ['arbi', 'agentChats', agentExtId] as const,\n authorizeLimits: () => ['arbi', 'authorizeLimits'] as const,\n mcpTools: () => ['arbi', 'mcpTools'] as const,\n models: () => ['arbi', 'models'] as const,\n availableModels: () => ['arbi', 'availableModels'] as const,\n modelConnections: (userId?: string) => ['arbi', 'modelConnections', userId] as const,\n directModelUsage: (userId?: string) => ['arbi', 'directModelUsage', userId] as const,\n /** The signed-in user's own profile (name, picture, email). */\n profile: () => ['arbi', 'profile'] as const,\n identity: () => ['arbi', 'identity'] as const,\n /** The signed-in user's settings record (notification preferences, flags). */\n userSettings: () => ['arbi', 'userSettings'] as const,\n /** Every notification list: the prefix a delete, a read receipt or an arrival invalidates. */\n allSupportTickets: () => ['arbi', 'support'] as const,\n supportTickets: () => ['arbi', 'support', 'tickets'] as const,\n supportTicket: (id: number) => ['arbi', 'support', 'tickets', id] as const,\n allNotifications: () => ['arbi', 'notifications'] as const,\n /** The newest `limit` notifications, received and sent. */\n notifications: (limit: number) => ['arbi', 'notifications', limit] as const,\n /** The documents a workspace may use as its Word house template. */\n houseTemplateCandidates: (workspaceId: string) =>\n ['arbi', 'houseTemplateCandidates', workspaceId] as const,\n // ── Storage, archive ────────────────────────────────────────────────────────────────────────\n /** Every storage view (projects, items, names, Recently deleted): what a restore or delete refreshes. */\n storage: () => ['arbi', 'storage'] as const,\n /** What each project stores; no params: every such list. */\n storageProjects: (params?: object) =>\n params === undefined\n ? (['arbi', 'storage', 'projects'] as const)\n : (['arbi', 'storage', 'projects', params] as const),\n /** The largest items stored; no params: every such list. */\n storageItems: (params?: object) =>\n params === undefined\n ? (['arbi', 'storage', 'items'] as const)\n : (['arbi', 'storage', 'items', params] as const),\n /** Decrypted document names of storage items. */\n storageItemNames: (params?: object) =>\n params === undefined\n ? (['arbi', 'storage', 'names'] as const)\n : (['arbi', 'storage', 'names', params] as const),\n /** The deployment's storage day by day. */\n storageSnapshots: (params?: object) =>\n params === undefined\n ? (['arbi', 'storage', 'snapshots'] as const)\n : (['arbi', 'storage', 'snapshots', params] as const),\n /** A workspace's Recently deleted documents; no id: every workspace's. */\n workspaceTrash: (workspaceId?: string) =>\n workspaceId === undefined\n ? (['arbi', 'storage', 'workspaceTrash'] as const)\n : (['arbi', 'storage', 'workspaceTrash', workspaceId] as const),\n /** A workspace's archive state; no id: every workspace's. */\n workspaceArchive: (workspaceId?: string) =>\n workspaceId === undefined\n ? (['arbi', 'workspaceArchive'] as const)\n : (['arbi', 'workspaceArchive', workspaceId] as const),\n // ── Databases ───────────────────────────────────────────────────────────────────────────────\n // Every key below names its workspace right after its kind: a list read in one workspace is never\n // served, or overwritten, in another (the list is the session's open workspace on the server).\n /** Every database query of every workspace (what a write or a switch refreshes). */\n databases: () => ['arbi', 'databases'] as const,\n /** A workspace's databases; no id: every workspace's. */\n databaseList: (workspaceId?: string) =>\n workspaceId === undefined\n ? (['arbi', 'databases', 'list'] as const)\n : (['arbi', 'databases', 'list', workspaceId] as const),\n /** One database of a workspace; no workspace: every one read. */\n database: (workspaceId?: string, databaseId?: string) =>\n workspaceId === undefined\n ? (['arbi', 'databases', 'one'] as const)\n : (['arbi', 'databases', 'one', workspaceId, databaseId ?? ''] as const),\n /**\n * A database's rows (a search); no workspace: every database's, no params: every search of one.\n * `['arbi', 'databases', 'rows', workspaceId, databaseId, params]`.\n */\n databaseRows: (workspaceId?: string, databaseId?: string, params?: object) =>\n workspaceId === undefined\n ? (['arbi', 'databases', 'rows'] as const)\n : params === undefined\n ? (['arbi', 'databases', 'rows', workspaceId, databaseId ?? ''] as const)\n : (['arbi', 'databases', 'rows', workspaceId, databaseId ?? '', params] as const),\n /** The saved dashboards of a store's scope (a workspace). */\n dashboards: (scope: string) => ['arbi', 'dashboards', scope] as const,\n /** A database's rows grouped and measured (a chart); no workspace: every database's. */\n databaseAggregate: (workspaceId?: string, databaseId?: string, request?: object) =>\n workspaceId === undefined\n ? (['arbi', 'databases', 'aggregate'] as const)\n : (['arbi', 'databases', 'aggregate', workspaceId, databaseId ?? '', request ?? {}] as const),\n // ── Configs, health ─────────────────────────────────────────────────────────────────────────\n /** Under `configs()`: the saved configuration versions. */\n configVersions: () => ['arbi', 'configs', 'versions'] as const,\n /** Under `configs()`: the JSON schema of every config model. */\n configSchema: () => ['arbi', 'configs', 'schema'] as const,\n /** Under `configs()`: one configuration. */\n config: (configId: string) => ['arbi', 'configs', 'one', configId] as const,\n /** The remote model providers' health. */\n remoteModels: () => ['arbi', 'remoteModels'] as const,\n // ── Conversations ───────────────────────────────────────────────────────────────────────────\n /** Under the conversations prefix: what a parked run waits for the owner to allow. */\n conversationPendingAuth: (conversationId: string) =>\n ['arbi', 'conversations', conversationId, 'pending-auth'] as const,\n // ── Document tools ──────────────────────────────────────────────────────────────────────────\n /** Signatures on a document (a version); no id: every document's. */\n documentSignatures: (docId?: string, version?: number | null) =>\n docId === undefined\n ? (['arbi', 'documentSignatures'] as const)\n : (['arbi', 'documentSignatures', docId, version ?? null] as const),\n /** The certificate of a signature reference. */\n signatureVerification: (reference: string) =>\n ['arbi', 'signatureVerification', reference] as const,\n /** Every signature request list: what a request write refreshes. */\n signatureRequests: () => ['arbi', 'signatureRequests'] as const,\n signatureRequestsForDocument: (docId: string) =>\n ['arbi', 'signatureRequests', 'document', docId] as const,\n /** Who may sign in a workspace; no id: every workspace's. */\n signatureCandidates: (workspaceId?: string) =>\n workspaceId === undefined\n ? (['arbi', 'signatureRequests', 'candidates'] as const)\n : (['arbi', 'signatureRequests', 'candidates', workspaceId] as const),\n /** The user's saved (informal) signature. */\n savedSignature: () => ['arbi', 'savedSignature'] as const,\n /** An html/react artifact's source. */\n artifactSource: (docId: string) => ['arbi', 'artifactSource', docId] as const,\n /** An artifact's text, under its parsed content (refreshed with it). */\n artifactText: (docId: string) => ['arbi', 'parsedDoc', docId, 'marker', 'artifact-text'] as const,\n /** An image document's bytes as an object URL. */\n assetImage: (docId: string) => ['arbi', 'assetImage', docId] as const,\n // ── Misc ────────────────────────────────────────────────────────────────────────────────────\n /** An agent config's model tier (the builder's badge). */\n agentConfigModel: (configId: string) => ['arbi', 'agentConfigModel', configId] as const,\n /** Under `billingQuotes()`: the price of a plan change. */\n billingPreview: (projectExtId: string, change: unknown) =>\n ['arbi', 'billingQuote', 'preview', projectExtId, change] as const,\n billingPlanQuote: (projectExtId: string | null, body: unknown) =>\n ['arbi', 'billingQuote', 'plan', projectExtId, body] as const,\n billingAddonQuote: (projectExtId: string, kind: string) =>\n ['arbi', 'billingQuote', 'addon', projectExtId, kind] as const,\n /** Under `contacts()`: a search of the people one can reach. */\n contactSearch: (term: string) => ['arbi', 'contacts', 'search', term] as const,\n /** Under the workspace's facts: a filtered list. */\n factList: (workspaceId: string, filter: unknown) =>\n ['arbi', 'facts', workspaceId, filter] as const,\n /**\n * Under `skills()`: a workspace's list, hidden ones included or not. Without a marketplace the\n * server lists the open workspace's skills, so the list is kept per workspace.\n */\n skillList: (workspaceId: string, includeHidden: boolean) =>\n ['arbi', 'skills', 'list', workspaceId, includeHidden] as const,\n /** Under the project's events: one kind, one page size. */\n projectEventList: (projectExtId: string, kind: string, limit: number | 'default') =>\n ['arbi', 'projects', projectExtId, 'events', kind, limit] as const,\n /** The documents pinned for offline reading on this device. */\n offlineDocuments: () => ['arbi', 'offlineDocuments'] as const,\n /** Notifications of one kind for a deployment's user (polled). */\n typedNotifications: (kind: string, apiUrl: string, userId: string | undefined) =>\n ['arbi', 'typedNotifications', kind, apiUrl, userId ?? ''] as const,\n}\n\n/**\n * Keys of the mutations a host may need to follow (its own caches outside these hooks), e.g. with\n * a `MutationCache` subscription: a workflow run creates a task in the host's own task list.\n */\nexport const arbiMutationKeys = {\n /** A member's role changed. */\n setWorkspaceMemberRoles: () => ['arbi', 'workspaces', 'roles'] as const,\n runWorkflow: () => ['arbi', 'workflows', 'run'] as const,\n updateTagKindSchema: () => ['arbi', 'tags', 'kinds', 'update'] as const,\n createTag: () => ['arbi', 'tags', 'create'] as const,\n updateTag: () => ['arbi', 'tags', 'update'] as const,\n deleteTag: () => ['arbi', 'tags', 'delete'] as const,\n extractEntities: () => ['arbi', 'tags', 'entities', 'extract'] as const,\n updateDocuments: () => ['arbi', 'documents', 'update'] as const,\n deleteDocuments: () => ['arbi', 'documents', 'delete'] as const,\n uploadDocuments: () => ['arbi', 'documents', 'upload'] as const,\n uploadUrls: () => ['arbi', 'documents', 'uploadUrls'] as const,\n assignDocTags: () => ['arbi', 'doctags', 'assign'] as const,\n removeDocTags: () => ['arbi', 'doctags', 'remove'] as const,\n updateDocTag: () => ['arbi', 'doctags', 'update'] as const,\n generateDocTags: () => ['arbi', 'doctags', 'generate'] as const,\n /** Members added to or removed from a workspace (leaving included). */\n workspaceMembership: () => ['arbi', 'workspaces', 'members'] as const,\n /** A chat turn being sent (the app's send pipeline). */\n sendMessage: () => ['arbi', 'conversations', 'send'] as const,\n}\n\n/**\n * Query keys of the calendar hooks, all under `['arbi', 'calendar']`. The calendar is the user's,\n * not a workspace's; only the overlays carry the open workspace.\n */\nexport const calendarQueryKeys = {\n all: () => ['arbi', 'calendar'] as const,\n settings: () => ['arbi', 'calendar', 'settings'] as const,\n calendars: () => ['arbi', 'calendar', 'calendars'] as const,\n /** Every event list: the prefix an event write invalidates. */\n events: () => ['arbi', 'calendar', 'events'] as const,\n eventList: (p: ListEventsParams) =>\n [\n 'arbi',\n 'calendar',\n 'events',\n { start: p.start, end: p.end, calendars: p.calendars?.join(',') ?? null },\n ] as const,\n /** Every single event read. */\n eventDetails: () => ['arbi', 'calendar', 'event'] as const,\n event: (id: string, recurrenceId?: string | null) =>\n ['arbi', 'calendar', 'event', id, recurrenceId ?? null] as const,\n shares: (calId: string) => ['arbi', 'calendar', 'shares', calId] as const,\n invitations: () => ['arbi', 'calendar', 'invitations'] as const,\n holidayCountries: () => ['arbi', 'calendar', 'holiday-countries'] as const,\n allRooms: () => ['arbi', 'calendar', 'rooms'] as const,\n rooms: (q: RoomQuery) => ['arbi', 'calendar', 'rooms', q] as const,\n freebusy: (attendees: string[], start: string, end: string) =>\n ['arbi', 'calendar', 'freebusy', attendees.join(','), start, end] as const,\n allLookups: () => ['arbi', 'calendar', 'lookup'] as const,\n lookup: (uid: string) => ['arbi', 'calendar', 'lookup', uid] as const,\n overlays: (workspaceId: string | null, w?: CalendarWindow, layers?: OverlayLayerName[]) =>\n [\n 'arbi',\n 'calendar',\n 'overlays',\n workspaceId,\n w ? { start: w.start, end: w.end, layers: layers?.join(',') } : null,\n ] as const,\n accounts: () => ['arbi', 'calendar', 'accounts'] as const,\n caldavProfiles: () => ['arbi', 'calendar', 'caldav-profiles'] as const,\n bookingPages: () => ['arbi', 'calendar', 'booking-pages'] as const,\n /** The offline outbox (writes made offline, not yet sent). */\n outbox: () => ['arbi', 'calendar', 'outbox'] as const,\n}\n\n/** Query keys of the call hooks, all under `['arbi', 'calls']`. Calls are the user's, not a workspace's. */\nexport const callQueryKeys = {\n all: () => ['arbi', 'calls'] as const,\n config: () => ['arbi', 'calls', 'config'] as const,\n call: (callExtId: string) => ['arbi', 'calls', 'call', callExtId] as const,\n /** Everything about a call's recordings: the prefix a recording event invalidates. */\n recordingsOf: (callExtId: string) => ['arbi', 'calls', 'recordings', callExtId] as const,\n recordings: (callExtId: string) => ['arbi', 'calls', 'recordings', callExtId, 'list'] as const,\n recording: (callExtId: string, recordingExtId: string) =>\n ['arbi', 'calls', 'recordings', callExtId, 'one', recordingExtId] as const,\n inviteLinks: (callExtId: string) => ['arbi', 'calls', 'invite-links', callExtId] as const,\n}\n\nexport const connectorQueryKeys = {\n all: () => ['arbi', 'connectors'] as const,\n catalog: () => ['arbi', 'connectors', 'catalog'] as const,\n mine: () => ['arbi', 'connectors', 'mine'] as const,\n mailboxFolders: (vendor: string) => ['arbi', 'connectors', 'folders', vendor] as const,\n mailboxSyncProgress: (vendor: string, workspaceExtId: string) =>\n ['arbi', 'connectors', 'sync-progress', vendor, workspaceExtId] as const,\n allMailboxSyncProgress: () => ['arbi', 'connectors', 'sync-progress'] as const,\n driveFolders: (vendor: string) => ['arbi', 'connectors', 'drive-folders', vendor] as const,\n driveFolderChildren: (vendor: string, itemId: string) =>\n ['arbi', 'connectors', 'drive-folder-children', vendor, itemId] as const,\n driveFolderDocCount: (vendor: string, itemId: string) =>\n ['arbi', 'connectors', 'drive-folder-doc-count', vendor, itemId] as const,\n driveSyncEstimate: (vendor: string) =>\n ['arbi', 'connectors', 'drive-sync-estimate', vendor] as const,\n driveSyncProgress: (vendor: string) =>\n ['arbi', 'connectors', 'drive-sync-progress', vendor] as const,\n allDriveSyncProgress: () => ['arbi', 'connectors', 'drive-sync-progress'] as const,\n slack: () => ['arbi', 'connectors', 'slack'] as const,\n}\n\nexport const mailQueryKeys = {\n all: () => ['arbi', 'mail'] as const,\n policy: () => ['arbi', 'mail', 'policy'] as const,\n accounts: () => ['arbi', 'mail', 'accounts'] as const,\n unlock: (accountId: string | undefined, sessionKey: string | null) =>\n ['arbi', 'mail', 'unlock', accountId, sessionKey ?? ''] as const,\n allFolders: () => ['arbi', 'mail', 'folders'] as const,\n folders: (accountId: string | undefined) => ['arbi', 'mail', 'folders', accountId] as const,\n allMessages: () => ['arbi', 'mail', 'messages'] as const,\n messages: (\n accountId: string | undefined,\n folderId: string | undefined,\n query: string,\n cursor: string | null\n ) => ['arbi', 'mail', 'messages', accountId, folderId, query, cursor] as const,\n message: (accountId: string | undefined, messageId: string | null | undefined) =>\n ['arbi', 'mail', 'message', accountId, messageId] as const,\n /** Every conversation list: the prefix a flag or move patches or refreshes. */\n allConversations: () => ['arbi', 'mail', 'conversations'] as const,\n conversations: (\n accountId: string | undefined,\n folderId: string | undefined,\n query: string,\n cursor: string | null\n ) => ['arbi', 'mail', 'conversations', accountId, folderId, query, cursor] as const,\n /** Every thread read of an account. */\n accountThreads: (accountId: string) => ['arbi', 'mail', 'thread', accountId] as const,\n thread: (\n accountId: string | undefined,\n threadId: string | null | undefined,\n folderId: string | undefined\n ) => ['arbi', 'mail', 'thread', accountId, threadId, folderId] as const,\n /** The key the user's client keys older native mail with: outside the `['arbi', 'mail']` prefix, so\n * refreshing mail never fetches it again. */\n threadSecret: () => ['arbi', 'mail-thread-secret'] as const,\n /** The projects an email's AI work can be billed to. */\n projects: () => ['arbi', 'mail', 'projects'] as const,\n /** A saved draft prepared for editing. */\n draftCompose: (accountId: string | undefined, draftId: string | undefined) =>\n ['arbi', 'mail', 'draft-compose', accountId, draftId] as const,\n attachmentText: (accountId: string, messageId: string, attachmentId: string) =>\n ['arbi', 'mail', 'attachment-text', accountId, messageId, attachmentId] as const,\n}\n\n/** `pdf`: the document as a PDF; `original`: the stored file (an image, a recording, a sheet). */\nexport type DocumentBytesKind = 'pdf' | 'original'\n\n/** Every version and kind of a document's bytes: the prefix a new version invalidates. */\nexport const documentBytesKey = (\n documentRef: string,\n version?: number | null,\n kind?: DocumentBytesKind\n) =>\n version === undefined\n ? (['arbi', 'documentBytes', documentRef] as const)\n : (['arbi', 'documentBytes', documentRef, version, kind ?? 'pdf'] as const)\n\n/** Whether `queryKey` lies under `prefix` (a factory key): React Query's own prefix match. */\nexport function isUnderQueryKey(queryKey: readonly unknown[], prefix: readonly unknown[]): boolean {\n return prefix.every((part, i) => queryKey[i] === part)\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk5EELSW26_cjs = require('./chunk-5EELSW26.cjs');
|
|
4
4
|
var chunkSUZORMAB_cjs = require('./chunk-SUZORMAB.cjs');
|
|
5
5
|
var chunk2IJP73ZG_cjs = require('./chunk-2IJP73ZG.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkHAGC67GL_cjs = require('./chunk-HAGC67GL.cjs');
|
|
7
7
|
var chunkNDIKMOBJ_cjs = require('./chunk-NDIKMOBJ.cjs');
|
|
8
8
|
var react = require('react');
|
|
9
9
|
var reactQuery = require('@tanstack/react-query');
|
|
@@ -210,7 +210,7 @@ function versionsWithMarkup(versions) {
|
|
|
210
210
|
}
|
|
211
211
|
var SIGNED_UNCHANGED = "The signed PDF is unchanged: the comments are kept beside it as markup.";
|
|
212
212
|
function useDocumentMarkup(documentData, snapshotVersion, currentSigned = false) {
|
|
213
|
-
const { client, notify, saveFile, onDocumentsChanged } =
|
|
213
|
+
const { client, notify, saveFile, onDocumentsChanged } = chunk5EELSW26_cjs.useDocumentTools();
|
|
214
214
|
const documentId = documentData?.external_id;
|
|
215
215
|
const currentVersion = documentData?.current_version ?? 1;
|
|
216
216
|
const shownVersion = snapshotVersion ?? currentVersion;
|
|
@@ -241,11 +241,11 @@ function useDocumentMarkup(documentData, snapshotVersion, currentSigned = false)
|
|
|
241
241
|
const downloadMarkup = react.useCallback(async () => {
|
|
242
242
|
if (!documentId) return;
|
|
243
243
|
if (currentSigned) {
|
|
244
|
-
notify(
|
|
244
|
+
notify(chunk5EELSW26_cjs.SIGNED_LOCKED_REASON, "info");
|
|
245
245
|
return;
|
|
246
246
|
}
|
|
247
247
|
try {
|
|
248
|
-
const { blob, fileName } = await
|
|
248
|
+
const { blob, fileName } = await chunk5EELSW26_cjs.fetchMarkupPdf(
|
|
249
249
|
client,
|
|
250
250
|
documentId,
|
|
251
251
|
snapshotVersion ? snapshotVersion : void 0
|
|
@@ -383,17 +383,17 @@ function useIsOnline() {
|
|
|
383
383
|
);
|
|
384
384
|
}
|
|
385
385
|
function useDocumentBytes(documentRef, options) {
|
|
386
|
-
const { client } =
|
|
386
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
387
387
|
const { version, kind, enabled = true, fallback } = options;
|
|
388
388
|
return reactQuery.useQuery({
|
|
389
|
-
queryKey:
|
|
389
|
+
queryKey: chunkHAGC67GL_cjs.documentBytesKey(documentRef, version ?? null, kind),
|
|
390
390
|
queryFn: async ({ signal }) => {
|
|
391
391
|
if (fallback && typeof navigator !== "undefined" && navigator.onLine === false) {
|
|
392
392
|
const offline = await fallback();
|
|
393
393
|
if (offline) return offline;
|
|
394
394
|
}
|
|
395
395
|
try {
|
|
396
|
-
return await (kind === "original" ?
|
|
396
|
+
return await (kind === "original" ? chunk5EELSW26_cjs.fetchDocumentFile : chunk5EELSW26_cjs.fetchDocumentPdf)(
|
|
397
397
|
client,
|
|
398
398
|
documentRef,
|
|
399
399
|
{ signal }
|
|
@@ -438,10 +438,10 @@ async function fetchDocumentSignatures(client, documentRef) {
|
|
|
438
438
|
return data;
|
|
439
439
|
}
|
|
440
440
|
function useDocumentSignatures(documentId, enabled = true) {
|
|
441
|
-
const { client } =
|
|
441
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
442
442
|
const { docId, version } = chunkNDIKMOBJ_cjs.parseVersionRef(documentId);
|
|
443
443
|
return reactQuery.useQuery({
|
|
444
|
-
queryKey:
|
|
444
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.documentSignatures(docId ?? "", version),
|
|
445
445
|
queryFn: () => fetchDocumentSignatures(client, documentId),
|
|
446
446
|
enabled: enabled && !!docId,
|
|
447
447
|
staleTime: 6e4
|
|
@@ -506,7 +506,7 @@ async function signDocument(client$1, deploymentDomain, {
|
|
|
506
506
|
return signed.data;
|
|
507
507
|
}
|
|
508
508
|
function useSignDocument() {
|
|
509
|
-
const env =
|
|
509
|
+
const env = chunk5EELSW26_cjs.useDocumentTools();
|
|
510
510
|
const queryClient = reactQuery.useQueryClient();
|
|
511
511
|
return reactQuery.useMutation({
|
|
512
512
|
mutationFn: (vars) => {
|
|
@@ -515,7 +515,7 @@ function useSignDocument() {
|
|
|
515
515
|
},
|
|
516
516
|
onSuccess: async (result) => {
|
|
517
517
|
await env.onDocumentsChanged?.([result.doc_ext_id], "signed");
|
|
518
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
518
|
+
await queryClient.invalidateQueries({ queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.documentSignatures() });
|
|
519
519
|
}
|
|
520
520
|
});
|
|
521
521
|
}
|
|
@@ -552,9 +552,9 @@ async function fetchSignatureVerification(client, reference) {
|
|
|
552
552
|
return data;
|
|
553
553
|
}
|
|
554
554
|
function useSignatureVerification(reference) {
|
|
555
|
-
const { client } =
|
|
555
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
556
556
|
return reactQuery.useQuery({
|
|
557
|
-
queryKey:
|
|
557
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.signatureVerification(reference ?? ""),
|
|
558
558
|
queryFn: () => fetchSignatureVerification(client, reference),
|
|
559
559
|
enabled: !!reference,
|
|
560
560
|
retry: false
|
|
@@ -567,7 +567,7 @@ async function matchSignedCopy(file, verification) {
|
|
|
567
567
|
return signature ? { kind: "earlier", signature } : { kind: "none" };
|
|
568
568
|
}
|
|
569
569
|
function useOpenWorkspaceRead() {
|
|
570
|
-
const arbi =
|
|
570
|
+
const arbi = chunkHAGC67GL_cjs.useArbiHost().arbi;
|
|
571
571
|
const workspaceId = arbi?.hasWorkspace ? arbi.getWorkspaceId() : void 0;
|
|
572
572
|
const read = (run) => arbi && workspaceId ? arbi.readInWorkspace(workspaceId, run) : run();
|
|
573
573
|
return { workspaceId, read };
|
|
@@ -661,9 +661,9 @@ async function fetchDocumentSignatureRequests(client, documentId) {
|
|
|
661
661
|
return data;
|
|
662
662
|
}
|
|
663
663
|
function useDocumentSignatureRequests(documentId, enabled = true) {
|
|
664
|
-
const { client } =
|
|
664
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
665
665
|
return reactQuery.useQuery({
|
|
666
|
-
queryKey:
|
|
666
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.signatureRequestsForDocument(documentId ?? ""),
|
|
667
667
|
queryFn: () => fetchDocumentSignatureRequests(client, documentId),
|
|
668
668
|
enabled: enabled && !!documentId,
|
|
669
669
|
staleTime: 15e3
|
|
@@ -706,10 +706,10 @@ async function saveSignatureRequest(client, { documentId, version, fields, messa
|
|
|
706
706
|
}
|
|
707
707
|
function useInvalidateRequests() {
|
|
708
708
|
const queryClient = reactQuery.useQueryClient();
|
|
709
|
-
return () => queryClient.invalidateQueries({ queryKey:
|
|
709
|
+
return () => queryClient.invalidateQueries({ queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.signatureRequests() });
|
|
710
710
|
}
|
|
711
711
|
function useSaveSignatureRequest() {
|
|
712
|
-
const { client } =
|
|
712
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
713
713
|
const invalidate = useInvalidateRequests();
|
|
714
714
|
return reactQuery.useMutation({
|
|
715
715
|
mutationFn: (vars) => saveSignatureRequest(client, vars),
|
|
@@ -717,7 +717,7 @@ function useSaveSignatureRequest() {
|
|
|
717
717
|
});
|
|
718
718
|
}
|
|
719
719
|
function useVoidSignatureRequest() {
|
|
720
|
-
const { client } =
|
|
720
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
721
721
|
const invalidate = useInvalidateRequests();
|
|
722
722
|
return reactQuery.useMutation({
|
|
723
723
|
mutationFn: async (requestId) => {
|
|
@@ -731,7 +731,7 @@ function useVoidSignatureRequest() {
|
|
|
731
731
|
});
|
|
732
732
|
}
|
|
733
733
|
function useDeclineSignatureRequest() {
|
|
734
|
-
const { client } =
|
|
734
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
735
735
|
const invalidate = useInvalidateRequests();
|
|
736
736
|
return reactQuery.useMutation({
|
|
737
737
|
mutationFn: async ({ requestId, reason }) => {
|
|
@@ -771,7 +771,7 @@ async function signSignatureRequest(client$1, deploymentDomain, { request, pdfBl
|
|
|
771
771
|
return signed.data;
|
|
772
772
|
}
|
|
773
773
|
function useSignSignatureRequest() {
|
|
774
|
-
const env =
|
|
774
|
+
const env = chunk5EELSW26_cjs.useDocumentTools();
|
|
775
775
|
const invalidate = useInvalidateRequests();
|
|
776
776
|
const queryClient = reactQuery.useQueryClient();
|
|
777
777
|
return reactQuery.useMutation({
|
|
@@ -783,16 +783,16 @@ function useSignSignatureRequest() {
|
|
|
783
783
|
await invalidate();
|
|
784
784
|
if (result.completed && result.request.doc_ext_id) {
|
|
785
785
|
await env.onDocumentsChanged?.([result.request.doc_ext_id], "signed");
|
|
786
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
786
|
+
await queryClient.invalidateQueries({ queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.documentSignatures() });
|
|
787
787
|
}
|
|
788
788
|
}
|
|
789
789
|
});
|
|
790
790
|
}
|
|
791
791
|
function useSignerCandidates(enabled = true) {
|
|
792
|
-
const { client, user } =
|
|
792
|
+
const { client, user } = chunk5EELSW26_cjs.useDocumentTools();
|
|
793
793
|
const { workspaceId, read } = useOpenWorkspaceRead();
|
|
794
794
|
return reactQuery.useQuery({
|
|
795
|
-
queryKey:
|
|
795
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.signatureCandidates(workspaceId ?? ""),
|
|
796
796
|
queryFn: async () => {
|
|
797
797
|
const { data, error } = await read(() => client.GET("/v1/workspace/users"));
|
|
798
798
|
if (!data) throw new Error(detail(error, "The workspace members could not be read"));
|
|
@@ -830,14 +830,14 @@ async function inviteSigners(client, documentId, emails) {
|
|
|
830
830
|
}
|
|
831
831
|
}
|
|
832
832
|
function useInviteSigners() {
|
|
833
|
-
const { client } =
|
|
833
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
834
834
|
const invalidate = useInvalidateRequests();
|
|
835
835
|
const queryClient = reactQuery.useQueryClient();
|
|
836
836
|
return reactQuery.useMutation({
|
|
837
837
|
mutationFn: ({ documentId, emails }) => inviteSigners(client, documentId, emails),
|
|
838
838
|
onSuccess: async () => {
|
|
839
839
|
await invalidate();
|
|
840
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
840
|
+
await queryClient.invalidateQueries({ queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.signatureCandidates() });
|
|
841
841
|
}
|
|
842
842
|
});
|
|
843
843
|
}
|
|
@@ -874,9 +874,9 @@ async function deleteSavedSignature(client) {
|
|
|
874
874
|
if (!response.ok) throw new Error(detail2(error, "Your saved signature could not be deleted"));
|
|
875
875
|
}
|
|
876
876
|
function useSavedSignature(enabled = true) {
|
|
877
|
-
const { client } =
|
|
877
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
878
878
|
return reactQuery.useQuery({
|
|
879
|
-
queryKey:
|
|
879
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.savedSignature(),
|
|
880
880
|
queryFn: () => fetchSavedSignature(client),
|
|
881
881
|
enabled,
|
|
882
882
|
staleTime: 6e4,
|
|
@@ -884,19 +884,19 @@ function useSavedSignature(enabled = true) {
|
|
|
884
884
|
});
|
|
885
885
|
}
|
|
886
886
|
function useStoreSavedSignature() {
|
|
887
|
-
const { client } =
|
|
887
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
888
888
|
const queryClient = reactQuery.useQueryClient();
|
|
889
889
|
return reactQuery.useMutation({
|
|
890
890
|
mutationFn: (signature) => storeSavedSignature(client, signature),
|
|
891
|
-
onSuccess: (_, signature) => queryClient.setQueryData(
|
|
891
|
+
onSuccess: (_, signature) => queryClient.setQueryData(chunkHAGC67GL_cjs.arbiQueryKeys.savedSignature(), signature)
|
|
892
892
|
});
|
|
893
893
|
}
|
|
894
894
|
function useDeleteSavedSignature() {
|
|
895
|
-
const { client } =
|
|
895
|
+
const { client } = chunk5EELSW26_cjs.useDocumentTools();
|
|
896
896
|
const queryClient = reactQuery.useQueryClient();
|
|
897
897
|
return reactQuery.useMutation({
|
|
898
898
|
mutationFn: () => deleteSavedSignature(client),
|
|
899
|
-
onSuccess: () => queryClient.setQueryData(
|
|
899
|
+
onSuccess: () => queryClient.setQueryData(chunkHAGC67GL_cjs.arbiQueryKeys.savedSignature(), null)
|
|
900
900
|
});
|
|
901
901
|
}
|
|
902
902
|
function pngBytes(base64) {
|
|
@@ -984,14 +984,14 @@ async function signFileShare(client$1, domain, vars) {
|
|
|
984
984
|
}
|
|
985
985
|
function useFileShare(client, shareId, signing) {
|
|
986
986
|
return reactQuery.useQuery({
|
|
987
|
-
queryKey:
|
|
987
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.fileShare(shareId),
|
|
988
988
|
queryFn: () => getFileShare(client, shareId),
|
|
989
989
|
refetchInterval: signing ? false : 5e3
|
|
990
990
|
});
|
|
991
991
|
}
|
|
992
992
|
function useFileSharePdf(client, shareId, share) {
|
|
993
993
|
return reactQuery.useQuery({
|
|
994
|
-
queryKey:
|
|
994
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.fileSharePdf(shareId, share?.status),
|
|
995
995
|
queryFn: () => fileShareBytes(client, shareId, share?.status === "completed" ? "signed" : "view"),
|
|
996
996
|
enabled: !!share?.can_preview,
|
|
997
997
|
staleTime: Infinity
|
|
@@ -999,7 +999,7 @@ function useFileSharePdf(client, shareId, share) {
|
|
|
999
999
|
}
|
|
1000
1000
|
function useFileShares(client) {
|
|
1001
1001
|
return reactQuery.useQuery({
|
|
1002
|
-
queryKey:
|
|
1002
|
+
queryKey: chunkHAGC67GL_cjs.arbiQueryKeys.fileShares(),
|
|
1003
1003
|
queryFn: async () => {
|
|
1004
1004
|
const result = await client.GET("/v1/file-shares");
|
|
1005
1005
|
if (!result.data) throw new Error("Could not load shared files");
|
|
@@ -1085,5 +1085,5 @@ exports.useSignerCandidates = useSignerCandidates;
|
|
|
1085
1085
|
exports.useStoreSavedSignature = useStoreSavedSignature;
|
|
1086
1086
|
exports.useVoidSignatureRequest = useVoidSignatureRequest;
|
|
1087
1087
|
exports.versionsWithMarkup = versionsWithMarkup;
|
|
1088
|
-
//# sourceMappingURL=chunk-
|
|
1089
|
-
//# sourceMappingURL=chunk-
|
|
1088
|
+
//# sourceMappingURL=chunk-ORBUPHMV.cjs.map
|
|
1089
|
+
//# sourceMappingURL=chunk-ORBUPHMV.cjs.map
|