@hexclave/js 1.0.70 → 1.0.71
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/dist/{admin-app-impl-DxZSp6ov.d.ts → admin-app-impl-BBSNNr6S.d.ts} +41 -2
- package/dist/admin-app-impl-BBSNNr6S.d.ts.map +1 -0
- package/dist/clickmap/clickmap-core.d.ts +1 -1
- package/dist/clickmap/clickmap-core.js +4 -4
- package/dist/clickmap/index.d.ts +1 -1
- package/dist/clickmap/index.js +1 -1
- package/dist/{client-app-DBcv6rRn.d.ts → client-app-C42iaDoZ.d.ts} +41 -2
- package/dist/client-app-C42iaDoZ.d.ts.map +1 -0
- package/dist/dev-tool/dev-tool-core.d.ts +1 -1
- package/dist/dev-tool/dev-tool-core.js +2 -2
- package/dist/dev-tool/index.d.ts +1 -1
- package/dist/dev-tool/index.js +1 -1
- package/dist/esm/clickmap/clickmap-core.js +4 -4
- package/dist/esm/clickmap/index.js +1 -1
- package/dist/esm/dev-tool/dev-tool-core.js +2 -2
- package/dist/esm/dev-tool/index.js +1 -1
- package/dist/esm/lib/auth.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +39 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js +98 -0
- package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +2 -2
- package/dist/esm/lib/hexclave-app/apps/implementations/common.js +4 -4
- package/dist/esm/lib/hexclave-app/apps/implementations/event-tracker.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/redirect-page-urls.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/implementations/session-replay.test.js +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts +41 -2
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.d.ts.map +1 -1
- package/dist/esm/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/esm/lib/hexclave-app/index.d.ts +2 -1
- package/dist/esm/lib/hexclave-app/workflows.d.ts +125 -0
- package/dist/esm/lib/hexclave-app/workflows.d.ts.map +1 -0
- package/dist/esm/lib/hexclave-app/workflows.js +110 -0
- package/dist/esm/lib/hexclave-app/workflows.js.map +1 -0
- package/dist/esm/lib/hexclave-app/workflows.test.d.ts +1 -0
- package/dist/esm/lib/hexclave-app/workflows.test.js +25 -0
- package/dist/esm/lib/hexclave-app/workflows.test.js.map +1 -0
- package/dist/esm/pushed-config-error-overlay/index.js +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/lib/auth.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js +98 -0
- package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.js.map +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +2 -2
- package/dist/lib/hexclave-app/apps/implementations/common.js +4 -4
- package/dist/lib/hexclave-app/apps/implementations/event-tracker.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/index.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/implementations/redirect-page-urls.js +1 -1
- package/dist/lib/hexclave-app/apps/implementations/server-app-impl.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/implementations/session-replay.test.js +1 -1
- package/dist/lib/hexclave-app/apps/index.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.d.ts +3 -2
- package/dist/lib/hexclave-app/apps/interfaces/admin-app.js.map +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/client-app.d.ts +1 -1
- package/dist/lib/hexclave-app/apps/interfaces/server-app.d.ts +1 -1
- package/dist/lib/hexclave-app/index.d.ts +3 -2
- package/dist/lib/hexclave-app/projects/index.d.ts +1 -1
- package/dist/lib/hexclave-app/teams/index.d.ts +1 -1
- package/dist/lib/hexclave-app/users/index.d.ts +1 -1
- package/dist/lib/hexclave-app/workflows.d.ts +2 -0
- package/dist/lib/hexclave-app/workflows.js +116 -0
- package/dist/lib/hexclave-app/workflows.js.map +1 -0
- package/dist/lib/hexclave-app/workflows.test.d.ts +1 -0
- package/dist/lib/hexclave-app/workflows.test.js +24 -0
- package/dist/lib/hexclave-app/workflows.test.js.map +1 -0
- package/dist/pushed-config-error-overlay/index.d.ts +1 -1
- package/dist/pushed-config-error-overlay/index.js +1 -1
- package/dist/workflows-DEb7pIuQ.d.ts +125 -0
- package/dist/workflows-DEb7pIuQ.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/lib/hexclave-app/apps/implementations/admin-app-impl.ts +119 -0
- package/src/lib/hexclave-app/apps/interfaces/admin-app.ts +19 -0
- package/src/lib/hexclave-app/index.ts +15 -0
- package/src/lib/hexclave-app/workflows.test.ts +28 -0
- package/src/lib/hexclave-app/workflows.ts +245 -0
- package/dist/admin-app-impl-DxZSp6ov.d.ts.map +0 -1
- package/dist/client-app-DBcv6rRn.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-app.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/interfaces/admin-app.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport type { AnalyticsClickmapOptions, AnalyticsClickmapResponse, AnalyticsClickmapTokenResponse } from \"@hexclave/shared/dist/interface/admin-metrics\";\nimport type { AdminGetSessionReplayChunkEventsResponse, AdminGetSessionReplayAllEventsResponse } from \"@hexclave/shared/dist/interface/crud/session-replays\";\nimport type { Transaction, TransactionType } from \"@hexclave/shared/dist/interface/crud/transactions\";\nimport { InternalSession } from \"@hexclave/shared/dist/sessions\";\nimport type { MoneyAmount } from \"@hexclave/shared/dist/utils/currency-constants\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { AsyncStoreProperty, EmailConfig } from \"../../common\";\nimport { AdminEmailOutbox, AdminSentEmail } from \"../../email\";\nimport { InternalApiKey, InternalApiKeyCreateOptions, InternalApiKeyFirstView } from \"../../internal-api-keys\";\nimport { AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions } from \"../../permissions\";\nimport type { PlanUsage } from \"../../plan-usage\";\nimport { AdminProject } from \"../../projects\";\nimport { _HexclaveAdminAppImpl } from \"../implementations\";\nimport { StackServerApp, StackServerAppConstructorOptions } from \"./server-app\";\n\nexport type EmailOutboxListOptions = {\n status?: string,\n simpleStatus?: string,\n userId?: string,\n limit?: number,\n cursor?: string,\n};\n\nexport type EmailOutboxListResult = {\n items: AdminEmailOutbox[],\n nextCursor: string | null,\n};\n\nexport type EmailOutboxUpdateOptions = {\n isPaused?: boolean,\n scheduledAtMillis?: number,\n cancel?: boolean,\n tsxSource?: string,\n themeId?: string | null,\n};\n\nexport type ManagedEmailProviderSetupResult = {\n domainId: string,\n subdomain: string,\n senderLocalPart: string,\n nameServerRecords: string[],\n status: ManagedEmailProviderStatus[\"status\"],\n};\n\nexport type ManagedEmailProviderStatus = {\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n};\n\nexport type ManagedEmailProviderListItem = {\n domainId: string,\n subdomain: string,\n senderLocalPart: string,\n status: ManagedEmailProviderStatus[\"status\"],\n nameServerRecords: string[],\n};\n\nimport type { AdminSessionReplay, ListSessionReplayChunksOptions, ListSessionReplayChunksResult, ListSessionReplaysOptions, ListSessionReplaysResult, SessionReplayAllEventsResult } from \"../../session-replays\";\nexport type { AdminSessionReplay, AdminSessionReplayChunk, ListSessionReplaysOptions, ListSessionReplaysResult, ListSessionReplayChunksOptions, ListSessionReplayChunksResult, SessionReplayAllEventsResult } from \"../../session-replays\";\n\n\n/** @deprecated Use `HexclaveAdminAppConstructorOptions` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = (\n & StackServerAppConstructorOptions<HasTokenStore, ProjectId>\n & {\n superSecretAdminKey?: string,\n projectOwnerSession?: InternalSession | (() => Promise<string | null>),\n }\n);\n\n\n/** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (\n & AsyncStoreProperty<\"project\", [], AdminProject, false>\n & AsyncStoreProperty<\"planUsage\", [], PlanUsage, false>\n & AsyncStoreProperty<\"internalApiKeys\", [], InternalApiKey[], true>\n & AsyncStoreProperty<\"teamPermissionDefinitions\", [], AdminTeamPermissionDefinition[], true>\n & AsyncStoreProperty<\"projectPermissionDefinitions\", [], AdminProjectPermissionDefinition[], true>\n & AsyncStoreProperty<\"emailThemes\", [], { id: string, displayName: string }[], true>\n & AsyncStoreProperty<\"emailPreview\", [{ themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string }], string, false>\n & AsyncStoreProperty<\"emailTemplates\", [], { id: string, displayName: string, themeId?: string, tsxSource: string }[], true>\n & AsyncStoreProperty<\"emailDrafts\", [], { id: string, displayName: string, themeId: string | undefined | false, tsxSource: string, sentAt: Date | null }[], true>\n & AsyncStoreProperty<\"stripeAccountInfo\", [], { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean } | null, false>\n & AsyncStoreProperty<\n \"transactions\",\n [{\n cursor?: string,\n limit?: number,\n type?: TransactionType,\n customerType?: 'user' | 'team' | 'custom',\n customerId?: string,\n }],\n { transactions: Transaction[], nextCursor: string | null },\n true\n >\n & {\n createInternalApiKey(options: InternalApiKeyCreateOptions): Promise<InternalApiKeyFirstView>,\n\n createTeamPermissionDefinition(data: AdminTeamPermissionDefinitionCreateOptions): Promise<AdminTeamPermission>,\n updateTeamPermissionDefinition(permissionId: string, data: AdminTeamPermissionDefinitionUpdateOptions): Promise<void>,\n deleteTeamPermissionDefinition(permissionId: string): Promise<void>,\n /**\n * @param options.query Free-text search; matches against permission ID and description.\n */\n listTeamPermissionDefinitionsPaginated(options: { limit: number, cursor?: string, query?: string }): Promise<{ items: AdminTeamPermissionDefinition[], nextCursor: string | null }>,\n\n createProjectPermissionDefinition(data: AdminProjectPermissionDefinitionCreateOptions): Promise<AdminProjectPermission>,\n updateProjectPermissionDefinition(permissionId: string, data: AdminProjectPermissionDefinitionUpdateOptions): Promise<void>,\n deleteProjectPermissionDefinition(permissionId: string): Promise<void>,\n\n\n sendTestEmail(options: {\n recipientEmail: string,\n emailConfig: EmailConfig,\n }): Promise<Result<undefined, { errorMessage: string }>>,\n\n sendTestWebhook(options: { endpointId: string }): Promise<Result<undefined, { errorMessage: string }>>,\n\n sendSignInInvitationEmail(email: string, callbackUrl: string): Promise<void>,\n\n listSentEmails(): Promise<AdminSentEmail[]>,\n setupManagedEmailProvider(options: { subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderSetupResult>,\n checkManagedEmailStatus(options: { domainId: string, subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderStatus>,\n listManagedEmailDomains(): Promise<ManagedEmailProviderListItem[]>,\n applyManagedEmailProvider(options: { domainId: string }): Promise<{ status: \"applied\" }>,\n deleteManagedEmailDomain(options: { resendDomainId: string }): Promise<{ status: \"deleted\" }>,\n\n createEmailTheme(displayName: string): Promise<{ id: string }>,\n updateEmailTheme(id: string, tsxSource: string): Promise<void>,\n deleteEmailTheme(id: string): Promise<void>,\n saveChatMessage(threadId: string, message: any): Promise<void>,\n listChatMessages(threadId: string): Promise<{ messages: Array<any> }>,\n rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsxSource: string }>,\n updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ renderedHtml: string }>,\n createEmailTemplate(displayName: string): Promise<{ id: string }>,\n deleteEmailTemplate(id: string): Promise<void>,\n\n setupPayments(): Promise<{ url: string }>,\n createStripeWidgetAccountSession(): Promise<{ client_secret: string }>,\n getPaymentMethodConfigs(): Promise<{ configId: string, methods: Array<{ id: string, name: string, enabled: boolean, available: boolean, overridable: boolean }> } | null>,\n updatePaymentMethodConfigs(configId: string, updates: Record<string, 'on' | 'off'>): Promise<void>,\n createEmailDraft(options: { displayName: string, themeId?: string | undefined | false, tsxSource?: string }): Promise<{ id: string }>,\n updateEmailDraft(id: string, data: { displayName?: string, themeId?: string | undefined | false, tsxSource?: string }): Promise<void>,\n deleteEmailDraft(id: string): Promise<void>,\n refreshEmailDrafts(): Promise<void>,\n createItemQuantityChange(options: (\n { userId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { teamId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { customCustomerId: string, itemId: string, quantity: number, expiresAt?: string, description?: string }\n )): Promise<void>,\n refundTransaction(options: {\n type: \"subscription\" | \"one-time-purchase\",\n id: string,\n invoiceId?: string,\n amountUsd: MoneyAmount,\n endAction?: \"now\" | \"at-period-end\",\n }): Promise<{ refundTransactionId: string }>,\n getAnalyticsClickmap(options: AnalyticsClickmapOptions): Promise<AnalyticsClickmapResponse>,\n createAnalyticsClickmapToken(options: { origin: string }): Promise<AnalyticsClickmapTokenResponse>,\n\n listSessionReplays(options?: ListSessionReplaysOptions): Promise<ListSessionReplaysResult>,\n getSessionReplay(sessionReplayId: string): Promise<AdminSessionReplay>,\n listSessionReplayChunks(sessionReplayId: string, options?: ListSessionReplayChunksOptions): Promise<ListSessionReplayChunksResult>,\n getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise<AdminGetSessionReplayChunkEventsResponse>,\n getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number, limit?: number }): Promise<SessionReplayAllEventsResult>,\n\n // Email Outbox methods\n listOutboxEmails(options?: EmailOutboxListOptions): Promise<EmailOutboxListResult>,\n getOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n updateOutboxEmail(id: string, options: EmailOutboxUpdateOptions): Promise<AdminEmailOutbox>,\n pauseOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n unpauseOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n cancelOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n }\n & StackServerApp<HasTokenStore, ProjectId>\n);\n/** @deprecated Use `HexclaveAdminAppConstructor` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminAppConstructor = {\n new <\n HasTokenStore extends boolean,\n ProjectId extends string\n >(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>): StackAdminApp<HasTokenStore, ProjectId>,\n new(options: StackAdminAppConstructorOptions<boolean, string>): StackAdminApp<boolean, string>,\n};\nexport type HexclaveAdminAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = StackAdminAppConstructorOptions<HasTokenStore, ProjectId>;\nexport type HexclaveAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = StackAdminApp<HasTokenStore, ProjectId>;\nexport type HexclaveAdminAppConstructor = StackAdminAppConstructor;\nexport const HexclaveAdminApp: HexclaveAdminAppConstructor = _HexclaveAdminAppImpl;\n/** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport const StackAdminApp: StackAdminAppConstructor = HexclaveAdminApp;\n"],"mappings":";;AA8LA,MAAa,mBAAgD;;AAE7D,MAAa,gBAA0C"}
|
|
1
|
+
{"version":3,"file":"admin-app.js","names":[],"sources":["../../../../../../src/lib/hexclave-app/apps/interfaces/admin-app.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport type { AnalyticsClickmapOptions, AnalyticsClickmapResponse, AnalyticsClickmapTokenResponse } from \"@hexclave/shared/dist/interface/admin-metrics\";\nimport type { AdminGetSessionReplayChunkEventsResponse, AdminGetSessionReplayAllEventsResponse } from \"@hexclave/shared/dist/interface/crud/session-replays\";\nimport type { Transaction, TransactionType } from \"@hexclave/shared/dist/interface/crud/transactions\";\nimport { InternalSession } from \"@hexclave/shared/dist/sessions\";\nimport type { MoneyAmount } from \"@hexclave/shared/dist/utils/currency-constants\";\nimport { Result } from \"@hexclave/shared/dist/utils/results\";\nimport { AsyncStoreProperty, EmailConfig } from \"../../common\";\nimport { AdminEmailOutbox, AdminSentEmail } from \"../../email\";\nimport { InternalApiKey, InternalApiKeyCreateOptions, InternalApiKeyFirstView } from \"../../internal-api-keys\";\nimport { AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions } from \"../../permissions\";\nimport type { PlanUsage } from \"../../plan-usage\";\nimport { AdminProject } from \"../../projects\";\nimport type { AdminWorkflow, AdminWorkflowRun, AdminWorkflowRunDetails, AdminWorkflowRunsFilter, AdminWorkflowSyncResult, AdminWorkflowUpgradeResult, AdminWorkflowVersion } from \"../../workflows\";\nimport { _HexclaveAdminAppImpl } from \"../implementations\";\nimport { StackServerApp, StackServerAppConstructorOptions } from \"./server-app\";\n\nexport type EmailOutboxListOptions = {\n status?: string,\n simpleStatus?: string,\n userId?: string,\n limit?: number,\n cursor?: string,\n};\n\nexport type EmailOutboxListResult = {\n items: AdminEmailOutbox[],\n nextCursor: string | null,\n};\n\nexport type EmailOutboxUpdateOptions = {\n isPaused?: boolean,\n scheduledAtMillis?: number,\n cancel?: boolean,\n tsxSource?: string,\n themeId?: string | null,\n};\n\nexport type ManagedEmailProviderSetupResult = {\n domainId: string,\n subdomain: string,\n senderLocalPart: string,\n nameServerRecords: string[],\n status: ManagedEmailProviderStatus[\"status\"],\n};\n\nexport type ManagedEmailProviderStatus = {\n status: \"pending_dns\" | \"pending_verification\" | \"verified\" | \"applied\" | \"failed\",\n};\n\nexport type ManagedEmailProviderListItem = {\n domainId: string,\n subdomain: string,\n senderLocalPart: string,\n status: ManagedEmailProviderStatus[\"status\"],\n nameServerRecords: string[],\n};\n\nimport type { AdminSessionReplay, ListSessionReplayChunksOptions, ListSessionReplayChunksResult, ListSessionReplaysOptions, ListSessionReplaysResult, SessionReplayAllEventsResult } from \"../../session-replays\";\nexport type { AdminSessionReplay, AdminSessionReplayChunk, ListSessionReplaysOptions, ListSessionReplaysResult, ListSessionReplayChunksOptions, ListSessionReplayChunksResult, SessionReplayAllEventsResult } from \"../../session-replays\";\nexport type { AdminWorkflow, AdminWorkflowDivergenceDiagnostic, AdminWorkflowRun, AdminWorkflowRunDetails, AdminWorkflowRunsFilter, AdminWorkflowRunState, AdminWorkflowStep, AdminWorkflowStepAttempt, AdminWorkflowSyncResult, AdminWorkflowTrigger, AdminWorkflowUpgradeResult, AdminWorkflowVersion } from \"../../workflows\";\n\n\n/** @deprecated Use `HexclaveAdminAppConstructorOptions` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = (\n & StackServerAppConstructorOptions<HasTokenStore, ProjectId>\n & {\n superSecretAdminKey?: string,\n projectOwnerSession?: InternalSession | (() => Promise<string | null>),\n }\n);\n\n\n/** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = (\n & AsyncStoreProperty<\"project\", [], AdminProject, false>\n & AsyncStoreProperty<\"planUsage\", [], PlanUsage, false>\n & AsyncStoreProperty<\"internalApiKeys\", [], InternalApiKey[], true>\n & AsyncStoreProperty<\"teamPermissionDefinitions\", [], AdminTeamPermissionDefinition[], true>\n & AsyncStoreProperty<\"projectPermissionDefinitions\", [], AdminProjectPermissionDefinition[], true>\n & AsyncStoreProperty<\"emailThemes\", [], { id: string, displayName: string }[], true>\n & AsyncStoreProperty<\"emailPreview\", [{ themeId?: string | null | false, themeTsxSource?: string, templateId?: string, templateTsxSource?: string }], string, false>\n & AsyncStoreProperty<\"emailTemplates\", [], { id: string, displayName: string, themeId?: string, tsxSource: string }[], true>\n & AsyncStoreProperty<\"emailDrafts\", [], { id: string, displayName: string, themeId: string | undefined | false, tsxSource: string, sentAt: Date | null }[], true>\n & AsyncStoreProperty<\"workflows\", [], AdminWorkflow[], true>\n & AsyncStoreProperty<\"stripeAccountInfo\", [], { account_id: string, charges_enabled: boolean, details_submitted: boolean, payouts_enabled: boolean } | null, false>\n & AsyncStoreProperty<\n \"transactions\",\n [{\n cursor?: string,\n limit?: number,\n type?: TransactionType,\n customerType?: 'user' | 'team' | 'custom',\n customerId?: string,\n }],\n { transactions: Transaction[], nextCursor: string | null },\n true\n >\n & {\n createInternalApiKey(options: InternalApiKeyCreateOptions): Promise<InternalApiKeyFirstView>,\n\n createTeamPermissionDefinition(data: AdminTeamPermissionDefinitionCreateOptions): Promise<AdminTeamPermission>,\n updateTeamPermissionDefinition(permissionId: string, data: AdminTeamPermissionDefinitionUpdateOptions): Promise<void>,\n deleteTeamPermissionDefinition(permissionId: string): Promise<void>,\n /**\n * @param options.query Free-text search; matches against permission ID and description.\n */\n listTeamPermissionDefinitionsPaginated(options: { limit: number, cursor?: string, query?: string }): Promise<{ items: AdminTeamPermissionDefinition[], nextCursor: string | null }>,\n\n createProjectPermissionDefinition(data: AdminProjectPermissionDefinitionCreateOptions): Promise<AdminProjectPermission>,\n updateProjectPermissionDefinition(permissionId: string, data: AdminProjectPermissionDefinitionUpdateOptions): Promise<void>,\n deleteProjectPermissionDefinition(permissionId: string): Promise<void>,\n\n\n sendTestEmail(options: {\n recipientEmail: string,\n emailConfig: EmailConfig,\n }): Promise<Result<undefined, { errorMessage: string }>>,\n\n sendTestWebhook(options: { endpointId: string }): Promise<Result<undefined, { errorMessage: string }>>,\n\n sendSignInInvitationEmail(email: string, callbackUrl: string): Promise<void>,\n\n listSentEmails(): Promise<AdminSentEmail[]>,\n setupManagedEmailProvider(options: { subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderSetupResult>,\n checkManagedEmailStatus(options: { domainId: string, subdomain: string, senderLocalPart: string }): Promise<ManagedEmailProviderStatus>,\n listManagedEmailDomains(): Promise<ManagedEmailProviderListItem[]>,\n applyManagedEmailProvider(options: { domainId: string }): Promise<{ status: \"applied\" }>,\n deleteManagedEmailDomain(options: { resendDomainId: string }): Promise<{ status: \"deleted\" }>,\n\n createEmailTheme(displayName: string): Promise<{ id: string }>,\n updateEmailTheme(id: string, tsxSource: string): Promise<void>,\n deleteEmailTheme(id: string): Promise<void>,\n saveChatMessage(threadId: string, message: any): Promise<void>,\n listChatMessages(threadId: string): Promise<{ messages: Array<any> }>,\n rewriteTemplateSourceWithAI(templateTsxSource: string): Promise<{ tsxSource: string }>,\n updateEmailTemplate(id: string, tsxSource: string, themeId: string | null | false): Promise<{ renderedHtml: string }>,\n createEmailTemplate(displayName: string): Promise<{ id: string }>,\n deleteEmailTemplate(id: string): Promise<void>,\n\n // Workflows (internal-project gated; see the Workflows v1 spec). The\n // management verbs live on the admin app only in v1.\n createWorkflow(options: { id: string, displayName?: string, source: string }): Promise<AdminWorkflowSyncResult>,\n updateWorkflowSource(workflowId: string, source: string): Promise<AdminWorkflowSyncResult>,\n deleteWorkflow(workflowId: string): Promise<void>,\n listWorkflowVersions(workflowId: string): Promise<AdminWorkflowVersion[]>,\n listWorkflowRuns: {\n (workflowId: string, filter: AdminWorkflowRunsFilter & { includeState: true }): Promise<{ runs: AdminWorkflowRunDetails[], nextCursor: string | null }>,\n (workflowId: string, filter?: AdminWorkflowRunsFilter): Promise<{ runs: AdminWorkflowRun[], nextCursor: string | null }>,\n },\n getWorkflowRun(runId: string): Promise<AdminWorkflowRunDetails>,\n cancelWorkflowRuns(workflowId: string, filter?: { runKey?: string, runId?: string, state?: \"queued\" | \"running\" | \"sleeping\", version?: number }): Promise<{ canceledCount: number }>,\n upgradeWorkflowRuns(workflowId: string, options: { toVersion: number, runKey?: string, fromVersion?: number }): Promise<AdminWorkflowUpgradeResult>,\n retryWorkflowRun(runId: string): Promise<void>,\n sendWorkflowEvent(name: string, data?: unknown): Promise<{ eventId: string }>,\n\n setupPayments(): Promise<{ url: string }>,\n createStripeWidgetAccountSession(): Promise<{ client_secret: string }>,\n getPaymentMethodConfigs(): Promise<{ configId: string, methods: Array<{ id: string, name: string, enabled: boolean, available: boolean, overridable: boolean }> } | null>,\n updatePaymentMethodConfigs(configId: string, updates: Record<string, 'on' | 'off'>): Promise<void>,\n createEmailDraft(options: { displayName: string, themeId?: string | undefined | false, tsxSource?: string }): Promise<{ id: string }>,\n updateEmailDraft(id: string, data: { displayName?: string, themeId?: string | undefined | false, tsxSource?: string }): Promise<void>,\n deleteEmailDraft(id: string): Promise<void>,\n refreshEmailDrafts(): Promise<void>,\n createItemQuantityChange(options: (\n { userId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { teamId: string, itemId: string, quantity: number, expiresAt?: string, description?: string } |\n { customCustomerId: string, itemId: string, quantity: number, expiresAt?: string, description?: string }\n )): Promise<void>,\n refundTransaction(options: {\n type: \"subscription\" | \"one-time-purchase\",\n id: string,\n invoiceId?: string,\n amountUsd: MoneyAmount,\n endAction?: \"now\" | \"at-period-end\",\n }): Promise<{ refundTransactionId: string }>,\n getAnalyticsClickmap(options: AnalyticsClickmapOptions): Promise<AnalyticsClickmapResponse>,\n createAnalyticsClickmapToken(options: { origin: string }): Promise<AnalyticsClickmapTokenResponse>,\n\n listSessionReplays(options?: ListSessionReplaysOptions): Promise<ListSessionReplaysResult>,\n getSessionReplay(sessionReplayId: string): Promise<AdminSessionReplay>,\n listSessionReplayChunks(sessionReplayId: string, options?: ListSessionReplayChunksOptions): Promise<ListSessionReplayChunksResult>,\n getSessionReplayChunkEvents(sessionReplayId: string, chunkId: string): Promise<AdminGetSessionReplayChunkEventsResponse>,\n getSessionReplayEvents(sessionReplayId: string, options?: { offset?: number, limit?: number }): Promise<SessionReplayAllEventsResult>,\n\n // Email Outbox methods\n listOutboxEmails(options?: EmailOutboxListOptions): Promise<EmailOutboxListResult>,\n getOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n updateOutboxEmail(id: string, options: EmailOutboxUpdateOptions): Promise<AdminEmailOutbox>,\n pauseOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n unpauseOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n cancelOutboxEmail(id: string): Promise<AdminEmailOutbox>,\n }\n & StackServerApp<HasTokenStore, ProjectId>\n);\n/** @deprecated Use `HexclaveAdminAppConstructor` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport type StackAdminAppConstructor = {\n new <\n HasTokenStore extends boolean,\n ProjectId extends string\n >(options: StackAdminAppConstructorOptions<HasTokenStore, ProjectId>): StackAdminApp<HasTokenStore, ProjectId>,\n new(options: StackAdminAppConstructorOptions<boolean, string>): StackAdminApp<boolean, string>,\n};\nexport type HexclaveAdminAppConstructorOptions<HasTokenStore extends boolean, ProjectId extends string> = StackAdminAppConstructorOptions<HasTokenStore, ProjectId>;\nexport type HexclaveAdminApp<HasTokenStore extends boolean = boolean, ProjectId extends string = string> = StackAdminApp<HasTokenStore, ProjectId>;\nexport type HexclaveAdminAppConstructor = StackAdminAppConstructor;\nexport const HexclaveAdminApp: HexclaveAdminAppConstructor = _HexclaveAdminAppImpl;\n/** @deprecated Use `HexclaveAdminApp` from the `@hexclave/*` package instead — same symbol, new brand name. See https://docs.hexclave.com/migration. */\nexport const StackAdminApp: StackAdminAppConstructor = HexclaveAdminApp;\n"],"mappings":";;AAiNA,MAAa,mBAAgD;;AAE7D,MAAa,gBAA0C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HexclaveAdminApp, HexclaveAdminAppConstructor, HexclaveAdminAppConstructorOptions, HexclaveClientApp, HexclaveClientAppConstructor, HexclaveClientAppConstructorOptions, HexclaveClientAppJson, HexclaveServerApp, HexclaveServerAppConstructor, HexclaveServerAppConstructorOptions, StackAdminApp, StackAdminAppConstructor, StackAdminAppConstructorOptions, StackClientApp, StackClientAppConstructor, StackClientAppConstructorOptions, StackClientAppJson, StackServerApp, StackServerAppConstructor, StackServerAppConstructorOptions } from "./apps/index.js";
|
|
2
2
|
import { GetCurrentUserOptions, GetCurrentUserOptions as GetUserOptions, HandlerUrlOptions, HandlerUrls, OAuthScopesOnSignIn, ResolvedHandlerUrls, hexclaveAppInternalsSymbol } from "./common.js";
|
|
3
3
|
import { getPagePrompt } from "./url-targets.js";
|
|
4
|
+
import { AdminWorkflow, AdminWorkflowDivergenceDiagnostic, AdminWorkflowRun, AdminWorkflowRunDetails, AdminWorkflowRunState, AdminWorkflowRunsFilter, AdminWorkflowStep, AdminWorkflowStepAttempt, AdminWorkflowSyncResult, AdminWorkflowTrigger, AdminWorkflowUpgradeResult, AdminWorkflowVersion } from "./workflows.js";
|
|
4
5
|
import { EmailOutboxListOptions, EmailOutboxListResult, EmailOutboxUpdateOptions } from "./apps/interfaces/admin-app.js";
|
|
5
6
|
import { AdminDomainConfig, AdminEmailConfig, AdminOAuthProviderConfig, AdminProjectConfig, AdminProjectConfigUpdateOptions, OAuthProviderConfig, ProjectConfig } from "./project-configs/index.js";
|
|
6
7
|
import { InternalApiKey, InternalApiKeyBase, InternalApiKeyBaseCrudRead, InternalApiKeyCreateOptions, InternalApiKeyFirstView } from "./internal-api-keys/index.js";
|
|
@@ -12,4 +13,4 @@ import { AdminDeploymentDomainJson, AdminDeploymentEnvVarJson, AdminDeploymentEn
|
|
|
12
13
|
import { PlanUsage, PlanUsageKind, PlanUsageNextPlanId, PlanUsagePlanId, PlanUsageRow } from "./plan-usage/index.js";
|
|
13
14
|
import { EditableTeamMemberProfile, ReceivedTeamInvitation, SentTeamInvitation, ServerListUsersOptions, ServerTeam, ServerTeamCreateOptions, ServerTeamMemberProfile, ServerTeamUpdateOptions, ServerTeamUser, Team, TeamCreateOptions, TeamInvitation, TeamMemberProfile, TeamUpdateOptions, TeamUser } from "./teams/index.js";
|
|
14
15
|
import { Auth, CurrentInternalServerUser, CurrentInternalUser, CurrentServerUser, CurrentUser, OAuthProvider, ServerOAuthProvider, ServerUser, User } from "./users/index.js";
|
|
15
|
-
export { type AdminDeploymentDomainJson, type AdminDeploymentEnvVarJson, type AdminDeploymentEnvVarOptions, type AdminDeploymentRunJson, type AdminDeploymentServiceBuildOptions, type AdminDeploymentServiceJson, type AdminDomainConfig, type AdminEmailConfig, type AdminEmailOutbox, type AdminEmailOutboxRecipient, type AdminEmailOutboxSimpleStatus, type AdminEmailOutboxStatus, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSendAttemptError, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, type Connection, type ContactChannel, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type EmailOutboxListOptions, type EmailOutboxListResult, type EmailOutboxUpdateOptions, type GetCurrentUserOptions, type GetUserOptions, type HandlerUrlOptions, type HandlerUrls, HexclaveAdminApp, type HexclaveAdminAppConstructor, type HexclaveAdminAppConstructorOptions, HexclaveClientApp, type HexclaveClientAppConstructor, type HexclaveClientAppConstructorOptions, type HexclaveClientAppJson, HexclaveServerApp, type HexclaveServerAppConstructor, type HexclaveServerAppConstructorOptions, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, type PlanUsage, type PlanUsageKind, type PlanUsageNextPlanId, type PlanUsagePlanId, type PlanUsageRow, type Project, type ProjectConfig, type PushedConfigSource, type ReceivedTeamInvitation, type ResolvedHandlerUrls, type SentTeamInvitation, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamInvitation, type TeamMemberProfile, type TeamUpdateOptions, type TeamUser, type User, getPagePrompt, hexclaveAppInternalsSymbol };
|
|
16
|
+
export { type AdminDeploymentDomainJson, type AdminDeploymentEnvVarJson, type AdminDeploymentEnvVarOptions, type AdminDeploymentRunJson, type AdminDeploymentServiceBuildOptions, type AdminDeploymentServiceJson, type AdminDomainConfig, type AdminEmailConfig, type AdminEmailOutbox, type AdminEmailOutboxRecipient, type AdminEmailOutboxSimpleStatus, type AdminEmailOutboxStatus, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSendAttemptError, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type AdminWorkflow, type AdminWorkflowDivergenceDiagnostic, type AdminWorkflowRun, type AdminWorkflowRunDetails, type AdminWorkflowRunState, type AdminWorkflowRunsFilter, type AdminWorkflowStep, type AdminWorkflowStepAttempt, type AdminWorkflowSyncResult, type AdminWorkflowTrigger, type AdminWorkflowUpgradeResult, type AdminWorkflowVersion, type Auth, type Connection, type ContactChannel, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type EmailOutboxListOptions, type EmailOutboxListResult, type EmailOutboxUpdateOptions, type GetCurrentUserOptions, type GetUserOptions, type HandlerUrlOptions, type HandlerUrls, HexclaveAdminApp, type HexclaveAdminAppConstructor, type HexclaveAdminAppConstructorOptions, HexclaveClientApp, type HexclaveClientAppConstructor, type HexclaveClientAppConstructorOptions, type HexclaveClientAppJson, HexclaveServerApp, type HexclaveServerAppConstructor, type HexclaveServerAppConstructorOptions, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, type PlanUsage, type PlanUsageKind, type PlanUsageNextPlanId, type PlanUsagePlanId, type PlanUsageRow, type Project, type ProjectConfig, type PushedConfigSource, type ReceivedTeamInvitation, type ResolvedHandlerUrls, type SentTeamInvitation, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamInvitation, type TeamMemberProfile, type TeamUpdateOptions, type TeamUser, type User, getPagePrompt, hexclaveAppInternalsSymbol };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { WorkflowDivergenceDiagnosticJson, WorkflowRunDetailsJson, WorkflowRunJson, WorkflowSummaryJson, WorkflowSyncResultJson, WorkflowVersionJson } from "@hexclave/shared/dist/interface/workflows";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/hexclave-app/workflows.d.ts
|
|
4
|
+
type AdminWorkflowTrigger = {
|
|
5
|
+
type: "event";
|
|
6
|
+
eventType: string;
|
|
7
|
+
} | {
|
|
8
|
+
type: "schedule";
|
|
9
|
+
cron: string;
|
|
10
|
+
timezone: string;
|
|
11
|
+
};
|
|
12
|
+
type AdminWorkflow = {
|
|
13
|
+
id: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
latestVersion: number;
|
|
16
|
+
triggers: AdminWorkflowTrigger[];
|
|
17
|
+
stats: {
|
|
18
|
+
activeRuns: number;
|
|
19
|
+
sleepingRuns: number;
|
|
20
|
+
failed7d: number;
|
|
21
|
+
runVolume14d: number[];
|
|
22
|
+
};
|
|
23
|
+
createdAtMillis: number;
|
|
24
|
+
lastDeployedAtMillis: number;
|
|
25
|
+
};
|
|
26
|
+
type AdminWorkflowRunState = "queued" | "running" | "sleeping" | "completed" | "failed" | "canceled";
|
|
27
|
+
type AdminWorkflowDivergenceDiagnostic = {
|
|
28
|
+
reason: WorkflowDivergenceDiagnosticJson["reason"];
|
|
29
|
+
suspendedStepKey: string | null;
|
|
30
|
+
foundStepKey: string | null;
|
|
31
|
+
consumedStepKeys: string[];
|
|
32
|
+
unconsumedStepKeys: string[];
|
|
33
|
+
details: string;
|
|
34
|
+
};
|
|
35
|
+
type AdminWorkflowRun = {
|
|
36
|
+
id: string;
|
|
37
|
+
workflowId: string;
|
|
38
|
+
runKey: string | null;
|
|
39
|
+
state: AdminWorkflowRunState;
|
|
40
|
+
version: number;
|
|
41
|
+
triggerType: string;
|
|
42
|
+
triggerSummary: string;
|
|
43
|
+
currentStepId: string | null;
|
|
44
|
+
stepsRecorded: number;
|
|
45
|
+
errorSummary: string | null;
|
|
46
|
+
failureKind: "user" | "platform" | null;
|
|
47
|
+
lastUpgradeDivergence: AdminWorkflowDivergenceDiagnostic | null;
|
|
48
|
+
createdAtMillis: number;
|
|
49
|
+
completedAtMillis: number | null;
|
|
50
|
+
nextWakeAtMillis: number | null;
|
|
51
|
+
};
|
|
52
|
+
type AdminWorkflowStep = {
|
|
53
|
+
stepKey: string;
|
|
54
|
+
stepId: string;
|
|
55
|
+
kind: "run" | "sleep";
|
|
56
|
+
result: unknown;
|
|
57
|
+
resultSizeBytes: number;
|
|
58
|
+
attempts: number;
|
|
59
|
+
executedAtVersion: number;
|
|
60
|
+
elapsedMs: number | null;
|
|
61
|
+
createdAtMillis: number;
|
|
62
|
+
};
|
|
63
|
+
type AdminWorkflowStepAttempt = {
|
|
64
|
+
stepKey: string;
|
|
65
|
+
stepId: string; /** 0 for the original execution; incremented by each manual retry of the run. */
|
|
66
|
+
retryEpoch: number;
|
|
67
|
+
attempt: number;
|
|
68
|
+
outcome: "succeeded" | "failed";
|
|
69
|
+
error: {
|
|
70
|
+
name: string;
|
|
71
|
+
message: string;
|
|
72
|
+
stack?: string;
|
|
73
|
+
} | null;
|
|
74
|
+
failureKind: "user" | "platform" | null;
|
|
75
|
+
logs: string | null;
|
|
76
|
+
startedAtMillis: number;
|
|
77
|
+
finishedAtMillis: number;
|
|
78
|
+
};
|
|
79
|
+
type AdminWorkflowRunDetails = AdminWorkflowRun & {
|
|
80
|
+
triggerPayload: unknown;
|
|
81
|
+
steps: AdminWorkflowStep[];
|
|
82
|
+
stepAttempts: AdminWorkflowStepAttempt[];
|
|
83
|
+
};
|
|
84
|
+
type AdminWorkflowVersion = {
|
|
85
|
+
workflowId: string;
|
|
86
|
+
version: number;
|
|
87
|
+
sourceHash: string;
|
|
88
|
+
source: string;
|
|
89
|
+
runtimeEnvVersion: string;
|
|
90
|
+
isLatest: boolean;
|
|
91
|
+
inFlightRuns: number;
|
|
92
|
+
createdAtMillis: number;
|
|
93
|
+
};
|
|
94
|
+
type AdminWorkflowSyncResult = {
|
|
95
|
+
workflowId: string;
|
|
96
|
+
version: number;
|
|
97
|
+
created: boolean;
|
|
98
|
+
inFlightRunsOnOlderVersions: number;
|
|
99
|
+
};
|
|
100
|
+
type AdminWorkflowUpgradeResult = {
|
|
101
|
+
upgradedCount: number;
|
|
102
|
+
skipped: {
|
|
103
|
+
runId: string;
|
|
104
|
+
runKey: string | null;
|
|
105
|
+
fromVersion: number;
|
|
106
|
+
diagnostic: AdminWorkflowDivergenceDiagnostic;
|
|
107
|
+
}[];
|
|
108
|
+
};
|
|
109
|
+
type AdminWorkflowRunsFilter = {
|
|
110
|
+
state?: AdminWorkflowRunState;
|
|
111
|
+
version?: number;
|
|
112
|
+
runKey?: string;
|
|
113
|
+
cursor?: string;
|
|
114
|
+
limit?: number; /** Include each run's memoized steps and attempt history. */
|
|
115
|
+
includeState?: boolean;
|
|
116
|
+
};
|
|
117
|
+
declare function adminWorkflowFromCrud(crud: WorkflowSummaryJson): AdminWorkflow;
|
|
118
|
+
declare function adminWorkflowRunFromCrud(crud: WorkflowRunJson): AdminWorkflowRun;
|
|
119
|
+
declare function isWorkflowRunDetailsJson(crud: WorkflowRunJson): crud is WorkflowRunDetailsJson;
|
|
120
|
+
declare function adminWorkflowRunDetailsFromCrud(crud: WorkflowRunDetailsJson): AdminWorkflowRunDetails;
|
|
121
|
+
declare function adminWorkflowVersionFromCrud(crud: WorkflowVersionJson): AdminWorkflowVersion;
|
|
122
|
+
declare function adminWorkflowSyncResultFromCrud(crud: WorkflowSyncResultJson): AdminWorkflowSyncResult;
|
|
123
|
+
//#endregion
|
|
124
|
+
export { AdminWorkflow, AdminWorkflowDivergenceDiagnostic, AdminWorkflowRun, AdminWorkflowRunDetails, AdminWorkflowRunState, AdminWorkflowRunsFilter, AdminWorkflowStep, AdminWorkflowStepAttempt, AdminWorkflowSyncResult, AdminWorkflowTrigger, AdminWorkflowUpgradeResult, AdminWorkflowVersion, adminWorkflowFromCrud, adminWorkflowRunDetailsFromCrud, adminWorkflowRunFromCrud, adminWorkflowSyncResultFromCrud, adminWorkflowVersionFromCrud, isWorkflowRunDetailsJson };
|
|
125
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","names":[],"sources":["../../../../src/lib/hexclave-app/workflows.ts"],"mappings":";;;KAiBY,oBAAA;EACN,IAAA;EAAe,SAAA;AAAA;EACf,IAAA;EAAkB,IAAA;EAAc,QAAA;AAAA;AAAA,KAE1B,aAAA;EACV,EAAA;EACA,WAAA;EACA,aAAA;EACA,QAAA,EAAU,oBAAoB;EAC9B,KAAA;IACE,UAAA;IACA,YAAA;IACA,QAAA;IACA,YAAA;EAAA;EAEF,eAAA;EACA,oBAAA;AAAA;AAAA,KAGU,qBAAA;AAAA,KAEA,iCAAA;EACV,MAAA,EAAQ,gCAAgC;EACxC,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,kBAAA;EACA,OAAA;AAAA;AAAA,KAGU,gBAAA;EACV,EAAA;EACA,UAAA;EACA,MAAA;EACA,KAAA,EAAO,qBAAA;EACP,OAAA;EACA,WAAA;EACA,cAAA;EACA,aAAA;EACA,aAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA,EAAuB,iCAAiC;EACxD,eAAA;EACA,iBAAA;EACA,gBAAA;AAAA;AAAA,KAGU,iBAAA;EACV,OAAA;EACA,MAAA;EACA,IAAA;EACA,MAAA;EACA,eAAA;EACA,QAAA;EACA,iBAAA;EACA,SAAA;EACA,eAAA;AAAA;AAAA,KAGU,wBAAA;EACV,OAAA;EACA,MAAA,UAvBA;EAyBA,UAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;IAAS,IAAA;IAAc,OAAA;IAAiB,KAAA;EAAA;EACxC,WAAA;EACA,IAAA;EACA,eAAA;EACA,gBAAA;AAAA;AAAA,KAGU,uBAAA,GAA0B,gBAAA;EACpC,cAAA;EACA,KAAA,EAAO,iBAAA;EACP,YAAA,EAAc,wBAAA;AAAA;AAAA,KAGJ,oBAAA;EACV,UAAA;EACA,OAAA;EACA,UAAA;EACA,MAAA;EACA,iBAAA;EACA,QAAA;EACA,YAAA;EACA,eAAA;AAAA;AAAA,KAGU,uBAAA;EACV,UAAA;EACA,OAAA;EACA,OAAA;EACA,2BAAA;AAAA;AAAA,KAGU,0BAAA;EACV,aAAA;EACA,OAAA;IACE,KAAA;IACA,MAAA;IACA,WAAA;IACA,UAAA,EAAY,iCAAiC;EAAA;AAAA;AAAA,KAIrC,uBAAA;EACV,KAAA,GAAQ,qBAAqB;EAC7B,OAAA;EACA,MAAA;EACA,MAAA;EACA,KAAA,WApCsC;EAsCtC,YAAA;AAAA;AAAA,iBAGc,qBAAA,CAAsB,IAAA,EAAM,mBAAA,GAAsB,aAAa;AAAA,iBA+B/D,wBAAA,CAAyB,IAAA,EAAM,eAAA,GAAkB,gBAAgB;AAAA,iBAoBjE,wBAAA,CAAyB,IAAA,EAAM,eAAA,GAAkB,IAAA,IAAQ,sBAAsB;AAAA,iBAQ/E,+BAAA,CAAgC,IAAA,EAAM,sBAAA,GAAyB,uBAAuB;AAAA,iBA8BtF,4BAAA,CAA6B,IAAA,EAAM,mBAAA,GAAsB,oBAAoB;AAAA,iBAa7E,+BAAA,CAAgC,IAAA,EAAM,sBAAA,GAAyB,uBAAuB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
//#region src/lib/hexclave-app/workflows.ts
|
|
2
|
+
function adminWorkflowFromCrud(crud) {
|
|
3
|
+
return {
|
|
4
|
+
id: crud.id,
|
|
5
|
+
displayName: crud.display_name,
|
|
6
|
+
latestVersion: crud.latest_version,
|
|
7
|
+
triggers: crud.triggers.map((trigger) => trigger.type === "event" ? {
|
|
8
|
+
type: "event",
|
|
9
|
+
eventType: trigger.event_type
|
|
10
|
+
} : {
|
|
11
|
+
type: "schedule",
|
|
12
|
+
cron: trigger.cron,
|
|
13
|
+
timezone: trigger.timezone
|
|
14
|
+
}),
|
|
15
|
+
stats: {
|
|
16
|
+
activeRuns: crud.stats.active_runs,
|
|
17
|
+
sleepingRuns: crud.stats.sleeping_runs,
|
|
18
|
+
failed7d: crud.stats.failed_7d,
|
|
19
|
+
runVolume14d: crud.stats.run_volume_14d
|
|
20
|
+
},
|
|
21
|
+
createdAtMillis: crud.created_at_millis,
|
|
22
|
+
lastDeployedAtMillis: crud.last_deployed_at_millis
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function adminDivergenceFromCrud(crud) {
|
|
26
|
+
if (crud == null) return null;
|
|
27
|
+
return {
|
|
28
|
+
reason: crud.reason,
|
|
29
|
+
suspendedStepKey: crud.suspended_step_key,
|
|
30
|
+
foundStepKey: crud.found_step_key,
|
|
31
|
+
consumedStepKeys: crud.consumed_step_keys,
|
|
32
|
+
unconsumedStepKeys: crud.unconsumed_step_keys,
|
|
33
|
+
details: crud.details
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function adminWorkflowRunFromCrud(crud) {
|
|
37
|
+
return {
|
|
38
|
+
id: crud.id,
|
|
39
|
+
workflowId: crud.workflow_id,
|
|
40
|
+
runKey: crud.run_key,
|
|
41
|
+
state: crud.state,
|
|
42
|
+
version: crud.version,
|
|
43
|
+
triggerType: crud.trigger_type,
|
|
44
|
+
triggerSummary: crud.trigger_summary,
|
|
45
|
+
currentStepId: crud.current_step_id,
|
|
46
|
+
stepsRecorded: crud.steps_recorded,
|
|
47
|
+
errorSummary: crud.error_summary,
|
|
48
|
+
failureKind: crud.failure_kind,
|
|
49
|
+
lastUpgradeDivergence: adminDivergenceFromCrud(crud.last_upgrade_divergence),
|
|
50
|
+
createdAtMillis: crud.created_at_millis,
|
|
51
|
+
completedAtMillis: crud.completed_at_millis,
|
|
52
|
+
nextWakeAtMillis: crud.next_wake_at_millis
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function isWorkflowRunDetailsJson(crud) {
|
|
56
|
+
return "trigger_payload" in crud && "steps" in crud && Array.isArray(crud.steps) && "step_attempts" in crud && Array.isArray(crud.step_attempts);
|
|
57
|
+
}
|
|
58
|
+
function adminWorkflowRunDetailsFromCrud(crud) {
|
|
59
|
+
return {
|
|
60
|
+
...adminWorkflowRunFromCrud(crud),
|
|
61
|
+
triggerPayload: crud.trigger_payload,
|
|
62
|
+
steps: crud.steps.map((step) => ({
|
|
63
|
+
stepKey: step.step_key,
|
|
64
|
+
stepId: step.step_id,
|
|
65
|
+
kind: step.kind,
|
|
66
|
+
result: step.result,
|
|
67
|
+
resultSizeBytes: step.result_size_bytes,
|
|
68
|
+
attempts: step.attempts,
|
|
69
|
+
executedAtVersion: step.executed_at_version,
|
|
70
|
+
elapsedMs: step.elapsed_ms,
|
|
71
|
+
createdAtMillis: step.created_at_millis
|
|
72
|
+
})),
|
|
73
|
+
stepAttempts: crud.step_attempts.map((attempt) => ({
|
|
74
|
+
stepKey: attempt.step_key,
|
|
75
|
+
stepId: attempt.step_id,
|
|
76
|
+
retryEpoch: attempt.retry_epoch,
|
|
77
|
+
attempt: attempt.attempt,
|
|
78
|
+
outcome: attempt.outcome,
|
|
79
|
+
error: attempt.error,
|
|
80
|
+
failureKind: attempt.failure_kind,
|
|
81
|
+
logs: attempt.logs,
|
|
82
|
+
startedAtMillis: attempt.started_at_millis,
|
|
83
|
+
finishedAtMillis: attempt.finished_at_millis
|
|
84
|
+
}))
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function adminWorkflowVersionFromCrud(crud) {
|
|
88
|
+
return {
|
|
89
|
+
workflowId: crud.workflow_id,
|
|
90
|
+
version: crud.version,
|
|
91
|
+
sourceHash: crud.source_hash,
|
|
92
|
+
source: crud.source,
|
|
93
|
+
runtimeEnvVersion: crud.runtime_env_version,
|
|
94
|
+
isLatest: crud.is_latest,
|
|
95
|
+
inFlightRuns: crud.in_flight_runs,
|
|
96
|
+
createdAtMillis: crud.created_at_millis
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function adminWorkflowSyncResultFromCrud(crud) {
|
|
100
|
+
return {
|
|
101
|
+
workflowId: crud.workflow_id,
|
|
102
|
+
version: crud.version,
|
|
103
|
+
created: crud.created,
|
|
104
|
+
inFlightRunsOnOlderVersions: crud.in_flight_runs_on_older_versions
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
export { adminWorkflowFromCrud, adminWorkflowRunDetailsFromCrud, adminWorkflowRunFromCrud, adminWorkflowSyncResultFromCrud, adminWorkflowVersionFromCrud, isWorkflowRunDetailsJson };
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","names":[],"sources":["../../../../src/lib/hexclave-app/workflows.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport type {\n WorkflowDivergenceDiagnosticJson,\n WorkflowRunDetailsJson,\n WorkflowRunJson,\n WorkflowSummaryJson,\n WorkflowSyncResultJson,\n WorkflowVersionJson,\n} from \"@hexclave/shared/dist/interface/workflows\";\n\n// SDK-side (camelCase) types + converters for the workflows admin surface.\n// The wire types live in @hexclave/shared/dist/interface/workflows; these\n// mirror them 1:1 so the dashboard never touches snake_case.\n\nexport type AdminWorkflowTrigger =\n | { type: \"event\", eventType: string }\n | { type: \"schedule\", cron: string, timezone: string };\n\nexport type AdminWorkflow = {\n id: string,\n displayName: string,\n latestVersion: number,\n triggers: AdminWorkflowTrigger[],\n stats: {\n activeRuns: number,\n sleepingRuns: number,\n failed7d: number,\n runVolume14d: number[],\n },\n createdAtMillis: number,\n lastDeployedAtMillis: number,\n};\n\nexport type AdminWorkflowRunState = \"queued\" | \"running\" | \"sleeping\" | \"completed\" | \"failed\" | \"canceled\";\n\nexport type AdminWorkflowDivergenceDiagnostic = {\n reason: WorkflowDivergenceDiagnosticJson[\"reason\"],\n suspendedStepKey: string | null,\n foundStepKey: string | null,\n consumedStepKeys: string[],\n unconsumedStepKeys: string[],\n details: string,\n};\n\nexport type AdminWorkflowRun = {\n id: string,\n workflowId: string,\n runKey: string | null,\n state: AdminWorkflowRunState,\n version: number,\n triggerType: string,\n triggerSummary: string,\n currentStepId: string | null,\n stepsRecorded: number,\n errorSummary: string | null,\n failureKind: \"user\" | \"platform\" | null,\n lastUpgradeDivergence: AdminWorkflowDivergenceDiagnostic | null,\n createdAtMillis: number,\n completedAtMillis: number | null,\n nextWakeAtMillis: number | null,\n};\n\nexport type AdminWorkflowStep = {\n stepKey: string,\n stepId: string,\n kind: \"run\" | \"sleep\",\n result: unknown,\n resultSizeBytes: number,\n attempts: number,\n executedAtVersion: number,\n elapsedMs: number | null,\n createdAtMillis: number,\n};\n\nexport type AdminWorkflowStepAttempt = {\n stepKey: string,\n stepId: string,\n /** 0 for the original execution; incremented by each manual retry of the run. */\n retryEpoch: number,\n attempt: number,\n outcome: \"succeeded\" | \"failed\",\n error: { name: string, message: string, stack?: string } | null,\n failureKind: \"user\" | \"platform\" | null,\n logs: string | null,\n startedAtMillis: number,\n finishedAtMillis: number,\n};\n\nexport type AdminWorkflowRunDetails = AdminWorkflowRun & {\n triggerPayload: unknown,\n steps: AdminWorkflowStep[],\n stepAttempts: AdminWorkflowStepAttempt[],\n};\n\nexport type AdminWorkflowVersion = {\n workflowId: string,\n version: number,\n sourceHash: string,\n source: string,\n runtimeEnvVersion: string,\n isLatest: boolean,\n inFlightRuns: number,\n createdAtMillis: number,\n};\n\nexport type AdminWorkflowSyncResult = {\n workflowId: string,\n version: number,\n created: boolean,\n inFlightRunsOnOlderVersions: number,\n};\n\nexport type AdminWorkflowUpgradeResult = {\n upgradedCount: number,\n skipped: {\n runId: string,\n runKey: string | null,\n fromVersion: number,\n diagnostic: AdminWorkflowDivergenceDiagnostic,\n }[],\n};\n\nexport type AdminWorkflowRunsFilter = {\n state?: AdminWorkflowRunState,\n version?: number,\n runKey?: string,\n cursor?: string,\n limit?: number,\n /** Include each run's memoized steps and attempt history. */\n includeState?: boolean,\n};\n\nexport function adminWorkflowFromCrud(crud: WorkflowSummaryJson): AdminWorkflow {\n return {\n id: crud.id,\n displayName: crud.display_name,\n latestVersion: crud.latest_version,\n triggers: crud.triggers.map((trigger) => trigger.type === \"event\"\n ? { type: \"event\", eventType: trigger.event_type }\n : { type: \"schedule\", cron: trigger.cron, timezone: trigger.timezone }),\n stats: {\n activeRuns: crud.stats.active_runs,\n sleepingRuns: crud.stats.sleeping_runs,\n failed7d: crud.stats.failed_7d,\n runVolume14d: crud.stats.run_volume_14d,\n },\n createdAtMillis: crud.created_at_millis,\n lastDeployedAtMillis: crud.last_deployed_at_millis,\n };\n}\n\nfunction adminDivergenceFromCrud(crud: WorkflowDivergenceDiagnosticJson | null): AdminWorkflowDivergenceDiagnostic | null {\n if (crud == null) return null;\n return {\n reason: crud.reason,\n suspendedStepKey: crud.suspended_step_key,\n foundStepKey: crud.found_step_key,\n consumedStepKeys: crud.consumed_step_keys,\n unconsumedStepKeys: crud.unconsumed_step_keys,\n details: crud.details,\n };\n}\n\nexport function adminWorkflowRunFromCrud(crud: WorkflowRunJson): AdminWorkflowRun {\n return {\n id: crud.id,\n workflowId: crud.workflow_id,\n runKey: crud.run_key,\n state: crud.state,\n version: crud.version,\n triggerType: crud.trigger_type,\n triggerSummary: crud.trigger_summary,\n currentStepId: crud.current_step_id,\n stepsRecorded: crud.steps_recorded,\n errorSummary: crud.error_summary,\n failureKind: crud.failure_kind,\n lastUpgradeDivergence: adminDivergenceFromCrud(crud.last_upgrade_divergence),\n createdAtMillis: crud.created_at_millis,\n completedAtMillis: crud.completed_at_millis,\n nextWakeAtMillis: crud.next_wake_at_millis,\n };\n}\n\nexport function isWorkflowRunDetailsJson(crud: WorkflowRunJson): crud is WorkflowRunDetailsJson {\n return \"trigger_payload\" in crud\n && \"steps\" in crud\n && Array.isArray(crud.steps)\n && \"step_attempts\" in crud\n && Array.isArray(crud.step_attempts);\n}\n\nexport function adminWorkflowRunDetailsFromCrud(crud: WorkflowRunDetailsJson): AdminWorkflowRunDetails {\n return {\n ...adminWorkflowRunFromCrud(crud),\n triggerPayload: crud.trigger_payload,\n steps: crud.steps.map((step) => ({\n stepKey: step.step_key,\n stepId: step.step_id,\n kind: step.kind,\n result: step.result,\n resultSizeBytes: step.result_size_bytes,\n attempts: step.attempts,\n executedAtVersion: step.executed_at_version,\n elapsedMs: step.elapsed_ms,\n createdAtMillis: step.created_at_millis,\n })),\n stepAttempts: crud.step_attempts.map((attempt) => ({\n stepKey: attempt.step_key,\n stepId: attempt.step_id,\n retryEpoch: attempt.retry_epoch,\n attempt: attempt.attempt,\n outcome: attempt.outcome,\n error: attempt.error,\n failureKind: attempt.failure_kind,\n logs: attempt.logs,\n startedAtMillis: attempt.started_at_millis,\n finishedAtMillis: attempt.finished_at_millis,\n })),\n };\n}\n\nexport function adminWorkflowVersionFromCrud(crud: WorkflowVersionJson): AdminWorkflowVersion {\n return {\n workflowId: crud.workflow_id,\n version: crud.version,\n sourceHash: crud.source_hash,\n source: crud.source,\n runtimeEnvVersion: crud.runtime_env_version,\n isLatest: crud.is_latest,\n inFlightRuns: crud.in_flight_runs,\n createdAtMillis: crud.created_at_millis,\n };\n}\n\nexport function adminWorkflowSyncResultFromCrud(crud: WorkflowSyncResultJson): AdminWorkflowSyncResult {\n return {\n workflowId: crud.workflow_id,\n version: crud.version,\n created: crud.created,\n inFlightRunsOnOlderVersions: crud.in_flight_runs_on_older_versions,\n };\n}\n"],"mappings":";AAuIA,SAAgB,sBAAsB,MAA0C;CAC9E,OAAO;EACL,IAAI,KAAK;EACT,aAAa,KAAK;EAClB,eAAe,KAAK;EACpB,UAAU,KAAK,SAAS,KAAK,YAAY,QAAQ,SAAS,UACtD;GAAE,MAAM;GAAS,WAAW,QAAQ;EAAW,IAC/C;GAAE,MAAM;GAAY,MAAM,QAAQ;GAAM,UAAU,QAAQ;EAAS,CAAC;EACxE,OAAO;GACL,YAAY,KAAK,MAAM;GACvB,cAAc,KAAK,MAAM;GACzB,UAAU,KAAK,MAAM;GACrB,cAAc,KAAK,MAAM;EAC3B;EACA,iBAAiB,KAAK;EACtB,sBAAsB,KAAK;CAC7B;AACF;AAEA,SAAS,wBAAwB,MAAyF;CACxH,IAAI,QAAQ,MAAM,OAAO;CACzB,OAAO;EACL,QAAQ,KAAK;EACb,kBAAkB,KAAK;EACvB,cAAc,KAAK;EACnB,kBAAkB,KAAK;EACvB,oBAAoB,KAAK;EACzB,SAAS,KAAK;CAChB;AACF;AAEA,SAAgB,yBAAyB,MAAyC;CAChF,OAAO;EACL,IAAI,KAAK;EACT,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,aAAa,KAAK;EAClB,gBAAgB,KAAK;EACrB,eAAe,KAAK;EACpB,eAAe,KAAK;EACpB,cAAc,KAAK;EACnB,aAAa,KAAK;EAClB,uBAAuB,wBAAwB,KAAK,uBAAuB;EAC3E,iBAAiB,KAAK;EACtB,mBAAmB,KAAK;EACxB,kBAAkB,KAAK;CACzB;AACF;AAEA,SAAgB,yBAAyB,MAAuD;CAC9F,OAAO,qBAAqB,QACvB,WAAW,QACX,MAAM,QAAQ,KAAK,KAAK,KACxB,mBAAmB,QACnB,MAAM,QAAQ,KAAK,aAAa;AACvC;AAEA,SAAgB,gCAAgC,MAAuD;CACrG,OAAO;EACL,GAAG,yBAAyB,IAAI;EAChC,gBAAgB,KAAK;EACrB,OAAO,KAAK,MAAM,KAAK,UAAU;GAC/B,SAAS,KAAK;GACd,QAAQ,KAAK;GACb,MAAM,KAAK;GACX,QAAQ,KAAK;GACb,iBAAiB,KAAK;GACtB,UAAU,KAAK;GACf,mBAAmB,KAAK;GACxB,WAAW,KAAK;GAChB,iBAAiB,KAAK;EACxB,EAAE;EACF,cAAc,KAAK,cAAc,KAAK,aAAa;GACjD,SAAS,QAAQ;GACjB,QAAQ,QAAQ;GAChB,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,SAAS,QAAQ;GACjB,OAAO,QAAQ;GACf,aAAa,QAAQ;GACrB,MAAM,QAAQ;GACd,iBAAiB,QAAQ;GACzB,kBAAkB,QAAQ;EAC5B,EAAE;CACJ;AACF;AAEA,SAAgB,6BAA6B,MAAiD;CAC5F,OAAO;EACL,YAAY,KAAK;EACjB,SAAS,KAAK;EACd,YAAY,KAAK;EACjB,QAAQ,KAAK;EACb,mBAAmB,KAAK;EACxB,UAAU,KAAK;EACf,cAAc,KAAK;EACnB,iBAAiB,KAAK;CACxB;AACF;AAEA,SAAgB,gCAAgC,MAAuD;CACrG,OAAO;EACL,YAAY,KAAK;EACjB,SAAS,KAAK;EACd,SAAS,KAAK;EACd,6BAA6B,KAAK;CACpC;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { adminWorkflowVersionFromCrud } from "./workflows.js";
|
|
3
|
+
//#region src/lib/hexclave-app/workflows.test.ts
|
|
4
|
+
describe("adminWorkflowVersionFromCrud", () => {
|
|
5
|
+
it("preserves the deployment source hash", () => {
|
|
6
|
+
expect(adminWorkflowVersionFromCrud({
|
|
7
|
+
workflow_id: "daily-report",
|
|
8
|
+
version: 3,
|
|
9
|
+
source: "export default 1",
|
|
10
|
+
source_hash: "0123456789abcdef",
|
|
11
|
+
runtime_env_version: "v1",
|
|
12
|
+
is_latest: true,
|
|
13
|
+
in_flight_runs: 2,
|
|
14
|
+
created_at_millis: 1234
|
|
15
|
+
})).toMatchObject({
|
|
16
|
+
workflowId: "daily-report",
|
|
17
|
+
version: 3,
|
|
18
|
+
sourceHash: "0123456789abcdef"
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export {};
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=workflows.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.test.js","names":[],"sources":["../../../../src/lib/hexclave-app/workflows.test.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\nimport type { WorkflowVersionJson } from \"@hexclave/shared/dist/interface/workflows\";\nimport { describe, expect, it } from \"vitest\";\nimport { adminWorkflowVersionFromCrud } from \"./workflows\";\n\ndescribe(\"adminWorkflowVersionFromCrud\", () => {\n it(\"preserves the deployment source hash\", () => {\n const version: WorkflowVersionJson = {\n workflow_id: \"daily-report\",\n version: 3,\n source: \"export default 1\",\n source_hash: \"0123456789abcdef\",\n runtime_env_version: \"v1\",\n is_latest: true,\n in_flight_runs: 2,\n created_at_millis: 1234,\n };\n\n expect(adminWorkflowVersionFromCrud(version)).toMatchObject({\n workflowId: \"daily-report\",\n version: 3,\n sourceHash: \"0123456789abcdef\",\n });\n });\n});\n"],"mappings":";;;AAQA,SAAS,sCAAsC;CAC7C,GAAG,8CAA8C;EAY/C,OAAO,6BAA6B;GAVlC,aAAa;GACb,SAAS;GACT,QAAQ;GACR,aAAa;GACb,qBAAqB;GACrB,WAAW;GACX,gBAAgB;GAChB,mBAAmB;EAGqB,CAAC,CAAC,CAAC,CAAC,cAAc;GAC1D,YAAY;GACZ,SAAS;GACT,YAAY;EACd,CAAC;CACH,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { runAsynchronously } from "@hexclave/shared/dist/utils/promises";
|
|
2
|
+
import { isLocalhost } from "@hexclave/shared/dist/utils/urls";
|
|
2
3
|
import { canMountIntoDom, getGlobalUiInstance, h, setGlobalUiInstance, setHtml } from "../in-page-ui/dom.js";
|
|
3
4
|
import { getInPageUiBaseCSS } from "../in-page-ui/base-styles.js";
|
|
4
5
|
import { captureError } from "@hexclave/shared/dist/utils/errors";
|
|
5
|
-
import { isLocalhost } from "@hexclave/shared/dist/utils/urls";
|
|
6
6
|
import { envVars } from "../generated/env.js";
|
|
7
7
|
//#region src/pushed-config-error-overlay/index.ts
|
|
8
8
|
const GLOBAL_INSTANCE_KEY = "__hexclave-pushed-config-error-overlay";
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,12 @@ import { S as AdminSentEmail, b as AdminEmailOutboxStatus, d as AdminEmailOutbox
|
|
|
3
3
|
import { a as InternalApiKeyFirstView, i as InternalApiKeyCreateOptions, n as InternalApiKeyBase, r as InternalApiKeyBaseCrudRead, t as InternalApiKey } from "./index-TUtJOdMm.js";
|
|
4
4
|
import { a as AdminTeamPermission, c as AdminTeamPermissionDefinitionUpdateOptions, i as AdminProjectPermissionDefinitionUpdateOptions, n as AdminProjectPermissionDefinition, o as AdminTeamPermissionDefinition, r as AdminProjectPermissionDefinitionCreateOptions, s as AdminTeamPermissionDefinitionCreateOptions, t as AdminProjectPermission } from "./index-DSzMf-rS.js";
|
|
5
5
|
import { a as PlanUsageRow, i as PlanUsagePlanId, n as PlanUsageKind, r as PlanUsageNextPlanId, t as PlanUsage } from "./index-B594jg4e.js";
|
|
6
|
+
import { a as AdminWorkflowRunState, c as AdminWorkflowStepAttempt, d as AdminWorkflowUpgradeResult, f as AdminWorkflowVersion, i as AdminWorkflowRunDetails, l as AdminWorkflowSyncResult, n as AdminWorkflowDivergenceDiagnostic, o as AdminWorkflowRunsFilter, r as AdminWorkflowRun, s as AdminWorkflowStep, t as AdminWorkflow, u as AdminWorkflowTrigger } from "./workflows-DEb7pIuQ.js";
|
|
6
7
|
import { r as OAuthConnection, t as Connection } from "./index-ClBTM-St.js";
|
|
7
8
|
import { i as ServerContactChannel, t as ContactChannel } from "./index-DN04TjLM.js";
|
|
8
|
-
import { $ as TeamCreateOptions, B as StackServerAppConstructor, D as HexclaveAdminApp, E as EmailOutboxUpdateOptions, F as StackAdminAppConstructorOptions, H as EditableTeamMemberProfile, I as HexclaveServerApp, J as ServerTeamCreateOptions, K as ServerListUsersOptions, L as HexclaveServerAppConstructor, N as StackAdminApp, O as HexclaveAdminAppConstructor, Ot as User, P as StackAdminAppConstructor, Q as Team, R as HexclaveServerAppConstructorOptions, St as ServerUser, T as EmailOutboxListResult, U as ReceivedTeamInvitation, V as StackServerAppConstructorOptions, W as SentTeamInvitation, X as ServerTeamUpdateOptions, Y as ServerTeamMemberProfile, Z as ServerTeamUser, _ as AdminProjectCreateOptions, _t as OAuthProvider, a as StackClientApp, c as StackClientAppJson, d as AdminDeploymentEnvVarOptions, et as TeamInvitation, f as AdminDeploymentRunJson, ft as CurrentInternalServerUser, g as AdminProject, h as AdminOwnedProject, ht as CurrentUser, i as HexclaveClientAppJson, it as TeamUser, k as HexclaveAdminAppConstructorOptions, l as AdminDeploymentDomainJson, m as AdminDeploymentServiceJson, mt as CurrentServerUser, n as HexclaveClientAppConstructor, o as StackClientAppConstructor, p as AdminDeploymentServiceBuildOptions, pt as CurrentInternalUser, q as ServerTeam, r as HexclaveClientAppConstructorOptions, rt as TeamUpdateOptions, s as StackClientAppConstructorOptions, t as HexclaveClientApp, tt as TeamMemberProfile, u as AdminDeploymentEnvVarJson, ut as Auth, v as AdminProjectUpdateOptions, w as EmailOutboxListOptions, x as PushedConfigSource, xt as ServerOAuthProvider, y as Project, z as StackServerApp } from "./client-app-
|
|
9
|
+
import { $ as TeamCreateOptions, B as StackServerAppConstructor, D as HexclaveAdminApp, E as EmailOutboxUpdateOptions, F as StackAdminAppConstructorOptions, H as EditableTeamMemberProfile, I as HexclaveServerApp, J as ServerTeamCreateOptions, K as ServerListUsersOptions, L as HexclaveServerAppConstructor, N as StackAdminApp, O as HexclaveAdminAppConstructor, Ot as User, P as StackAdminAppConstructor, Q as Team, R as HexclaveServerAppConstructorOptions, St as ServerUser, T as EmailOutboxListResult, U as ReceivedTeamInvitation, V as StackServerAppConstructorOptions, W as SentTeamInvitation, X as ServerTeamUpdateOptions, Y as ServerTeamMemberProfile, Z as ServerTeamUser, _ as AdminProjectCreateOptions, _t as OAuthProvider, a as StackClientApp, c as StackClientAppJson, d as AdminDeploymentEnvVarOptions, et as TeamInvitation, f as AdminDeploymentRunJson, ft as CurrentInternalServerUser, g as AdminProject, h as AdminOwnedProject, ht as CurrentUser, i as HexclaveClientAppJson, it as TeamUser, k as HexclaveAdminAppConstructorOptions, l as AdminDeploymentDomainJson, m as AdminDeploymentServiceJson, mt as CurrentServerUser, n as HexclaveClientAppConstructor, o as StackClientAppConstructor, p as AdminDeploymentServiceBuildOptions, pt as CurrentInternalUser, q as ServerTeam, r as HexclaveClientAppConstructorOptions, rt as TeamUpdateOptions, s as StackClientAppConstructorOptions, t as HexclaveClientApp, tt as TeamMemberProfile, u as AdminDeploymentEnvVarJson, ut as Auth, v as AdminProjectUpdateOptions, w as EmailOutboxListOptions, x as PushedConfigSource, xt as ServerOAuthProvider, y as Project, z as StackServerApp } from "./client-app-C42iaDoZ.js";
|
|
9
10
|
import { a as AdminProjectConfigUpdateOptions, i as AdminProjectConfig, n as AdminEmailConfig, o as OAuthProviderConfig, r as AdminOAuthProviderConfig, s as ProjectConfig, t as AdminDomainConfig } from "./index-Dq4xsW7_.js";
|
|
10
11
|
import { r as getPagePrompt } from "./url-targets-BJgkwPGW.js";
|
|
11
12
|
import { getConvexProvidersConfig } from "./integrations/convex.js";
|
|
12
13
|
import { HexclaveConfig, StackConfig, defineHexclaveConfig, defineStackConfig } from "@hexclave/shared/config";
|
|
13
|
-
export { type AdminDeploymentDomainJson, type AdminDeploymentEnvVarJson, type AdminDeploymentEnvVarOptions, type AdminDeploymentRunJson, type AdminDeploymentServiceBuildOptions, type AdminDeploymentServiceJson, type AdminDomainConfig, type AdminEmailConfig, type AdminEmailOutbox, type AdminEmailOutboxRecipient, type AdminEmailOutboxSimpleStatus, type AdminEmailOutboxStatus, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSendAttemptError, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type Auth, type Connection, type ContactChannel, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type EmailOutboxListOptions, type EmailOutboxListResult, type EmailOutboxUpdateOptions, type GetCurrentUserOptions, type GetCurrentUserOptions as GetUserOptions, type HandlerUrlOptions, type HandlerUrls, HexclaveAdminApp, type HexclaveAdminAppConstructor, type HexclaveAdminAppConstructorOptions, HexclaveClientApp, type HexclaveClientAppConstructor, type HexclaveClientAppConstructorOptions, type HexclaveClientAppJson, type HexclaveConfig, HexclaveServerApp, type HexclaveServerAppConstructor, type HexclaveServerAppConstructorOptions, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, type PlanUsage, type PlanUsageKind, type PlanUsageNextPlanId, type PlanUsagePlanId, type PlanUsageRow, type Project, type ProjectConfig, type PushedConfigSource, type ReceivedTeamInvitation, type ResolvedHandlerUrls, type SentTeamInvitation, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, type StackConfig, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamInvitation, type TeamMemberProfile, type TeamUpdateOptions, type TeamUser, type User, defineHexclaveConfig, defineStackConfig, getConvexProvidersConfig, getPagePrompt, hexclaveAppInternalsSymbol };
|
|
14
|
+
export { type AdminDeploymentDomainJson, type AdminDeploymentEnvVarJson, type AdminDeploymentEnvVarOptions, type AdminDeploymentRunJson, type AdminDeploymentServiceBuildOptions, type AdminDeploymentServiceJson, type AdminDomainConfig, type AdminEmailConfig, type AdminEmailOutbox, type AdminEmailOutboxRecipient, type AdminEmailOutboxSimpleStatus, type AdminEmailOutboxStatus, type AdminOAuthProviderConfig, type AdminOwnedProject, type AdminProject, type AdminProjectConfig, type AdminProjectConfigUpdateOptions, type AdminProjectCreateOptions, type AdminProjectPermission, type AdminProjectPermissionDefinition, type AdminProjectPermissionDefinitionCreateOptions, type AdminProjectPermissionDefinitionUpdateOptions, type AdminProjectUpdateOptions, type AdminSendAttemptError, type AdminSentEmail, type AdminTeamPermission, type AdminTeamPermissionDefinition, type AdminTeamPermissionDefinitionCreateOptions, type AdminTeamPermissionDefinitionUpdateOptions, type AdminWorkflow, type AdminWorkflowDivergenceDiagnostic, type AdminWorkflowRun, type AdminWorkflowRunDetails, type AdminWorkflowRunState, type AdminWorkflowRunsFilter, type AdminWorkflowStep, type AdminWorkflowStepAttempt, type AdminWorkflowSyncResult, type AdminWorkflowTrigger, type AdminWorkflowUpgradeResult, type AdminWorkflowVersion, type Auth, type Connection, type ContactChannel, type CurrentInternalServerUser, type CurrentInternalUser, type CurrentServerUser, type CurrentUser, type EditableTeamMemberProfile, type EmailOutboxListOptions, type EmailOutboxListResult, type EmailOutboxUpdateOptions, type GetCurrentUserOptions, type GetCurrentUserOptions as GetUserOptions, type HandlerUrlOptions, type HandlerUrls, HexclaveAdminApp, type HexclaveAdminAppConstructor, type HexclaveAdminAppConstructorOptions, HexclaveClientApp, type HexclaveClientAppConstructor, type HexclaveClientAppConstructorOptions, type HexclaveClientAppJson, type HexclaveConfig, HexclaveServerApp, type HexclaveServerAppConstructor, type HexclaveServerAppConstructorOptions, type InternalApiKey, type InternalApiKeyBase, type InternalApiKeyBaseCrudRead, type InternalApiKeyCreateOptions, type InternalApiKeyFirstView, type OAuthConnection, type OAuthProvider, type OAuthProviderConfig, type OAuthScopesOnSignIn, type PlanUsage, type PlanUsageKind, type PlanUsageNextPlanId, type PlanUsagePlanId, type PlanUsageRow, type Project, type ProjectConfig, type PushedConfigSource, type ReceivedTeamInvitation, type ResolvedHandlerUrls, type SentTeamInvitation, type ServerContactChannel, type ServerListUsersOptions, type ServerOAuthProvider, type ServerTeam, type ServerTeamCreateOptions, type ServerTeamMemberProfile, type ServerTeamUpdateOptions, type ServerTeamUser, type ServerUser, StackAdminApp, type StackAdminAppConstructor, type StackAdminAppConstructorOptions, StackClientApp, type StackClientAppConstructor, type StackClientAppConstructorOptions, type StackClientAppJson, type StackConfig, StackServerApp, type StackServerAppConstructor, type StackServerAppConstructorOptions, type Team, type TeamCreateOptions, type TeamInvitation, type TeamMemberProfile, type TeamUpdateOptions, type TeamUser, type User, defineHexclaveConfig, defineStackConfig, getConvexProvidersConfig, getPagePrompt, hexclaveAppInternalsSymbol };
|
package/dist/lib/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
let _hexclave_shared_dist_utils_strings = require("@hexclave/shared/dist/utils/strings");
|
|
3
2
|
let _hexclave_shared_dist_utils_errors = require("@hexclave/shared/dist/utils/errors");
|
|
3
|
+
let _hexclave_shared_dist_utils_strings = require("@hexclave/shared/dist/utils/strings");
|
|
4
4
|
let _hexclave_shared = require("@hexclave/shared");
|
|
5
5
|
let _hexclave_shared_dist_utils_results = require("@hexclave/shared/dist/utils/results");
|
|
6
6
|
let ___utils_url_js = require("../utils/url.js");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as _HexclaveAdminAppImplIncomplete } from "../../../../admin-app-impl-
|
|
1
|
+
import { t as _HexclaveAdminAppImplIncomplete } from "../../../../admin-app-impl-BBSNNr6S.js";
|
|
2
2
|
export { _HexclaveAdminAppImplIncomplete };
|
|
@@ -9,6 +9,7 @@ let ______common_js = require("../../common.js");
|
|
|
9
9
|
let ______internal_api_keys_index_js = require("../../internal-api-keys/index.js");
|
|
10
10
|
let ______permissions_index_js = require("../../permissions/index.js");
|
|
11
11
|
let ______projects_index_js = require("../../projects/index.js");
|
|
12
|
+
let ______workflows_js = require("../../workflows.js");
|
|
12
13
|
let __server_app_impl_js = require("./server-app-impl.js");
|
|
13
14
|
//#region src/lib/hexclave-app/apps/implementations/admin-app-impl.ts
|
|
14
15
|
/**
|
|
@@ -84,6 +85,9 @@ var _HexclaveAdminAppImplIncomplete = class extends __server_app_impl_js._Hexcla
|
|
|
84
85
|
this._adminEmailDraftsCache = (0, __common_js.createCache)(async () => {
|
|
85
86
|
return await this._interface.listInternalEmailDrafts();
|
|
86
87
|
});
|
|
88
|
+
this._adminWorkflowsCache = (0, __common_js.createCache)(async () => {
|
|
89
|
+
return await this._interface.listWorkflows();
|
|
90
|
+
});
|
|
87
91
|
this._adminTeamPermissionDefinitionsCache = (0, __common_js.createCache)(async () => {
|
|
88
92
|
return await this._interface.listTeamPermissionDefinitions();
|
|
89
93
|
});
|
|
@@ -405,6 +409,100 @@ var _HexclaveAdminAppImplIncomplete = class extends __server_app_impl_js._Hexcla
|
|
|
405
409
|
tsxSource: template.tsx_source
|
|
406
410
|
}));
|
|
407
411
|
}
|
|
412
|
+
async listWorkflows() {
|
|
413
|
+
return _hexclave_shared_dist_utils_results.Result.orThrow(await this._adminWorkflowsCache.getOrWait([], "write-only")).map(______workflows_js.adminWorkflowFromCrud);
|
|
414
|
+
}
|
|
415
|
+
async createWorkflow(options) {
|
|
416
|
+
const result = await this._interface.createWorkflow({
|
|
417
|
+
id: options.id,
|
|
418
|
+
display_name: options.displayName,
|
|
419
|
+
source: options.source
|
|
420
|
+
});
|
|
421
|
+
await this._adminWorkflowsCache.refresh([]);
|
|
422
|
+
return (0, ______workflows_js.adminWorkflowSyncResultFromCrud)(result);
|
|
423
|
+
}
|
|
424
|
+
async updateWorkflowSource(workflowId, source) {
|
|
425
|
+
const result = await this._interface.updateWorkflowSource(workflowId, source);
|
|
426
|
+
await this._adminWorkflowsCache.refresh([]);
|
|
427
|
+
return (0, ______workflows_js.adminWorkflowSyncResultFromCrud)(result);
|
|
428
|
+
}
|
|
429
|
+
async deleteWorkflow(workflowId) {
|
|
430
|
+
await this._interface.deleteWorkflow(workflowId);
|
|
431
|
+
await this._adminWorkflowsCache.refresh([]);
|
|
432
|
+
}
|
|
433
|
+
async listWorkflowVersions(workflowId) {
|
|
434
|
+
return (await this._interface.listWorkflowVersions(workflowId)).map(______workflows_js.adminWorkflowVersionFromCrud);
|
|
435
|
+
}
|
|
436
|
+
async listWorkflowRuns(workflowId, filter = {}) {
|
|
437
|
+
if (filter.includeState === true) {
|
|
438
|
+
const result = await this._interface.listWorkflowRuns(workflowId, {
|
|
439
|
+
state: filter.state,
|
|
440
|
+
version: filter.version,
|
|
441
|
+
run_key: filter.runKey,
|
|
442
|
+
cursor: filter.cursor,
|
|
443
|
+
limit: filter.limit,
|
|
444
|
+
include_state: true
|
|
445
|
+
});
|
|
446
|
+
return {
|
|
447
|
+
runs: result.runs.map((run) => (0, ______workflows_js.adminWorkflowRunDetailsFromCrud)((0, ______workflows_js.isWorkflowRunDetailsJson)(run) ? run : (0, _hexclave_shared_dist_utils_errors.throwErr)("Workflow runs response omitted state after include_state=true"))),
|
|
448
|
+
nextCursor: result.next_cursor
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
const result = await this._interface.listWorkflowRuns(workflowId, {
|
|
452
|
+
state: filter.state,
|
|
453
|
+
version: filter.version,
|
|
454
|
+
run_key: filter.runKey,
|
|
455
|
+
cursor: filter.cursor,
|
|
456
|
+
limit: filter.limit
|
|
457
|
+
});
|
|
458
|
+
return {
|
|
459
|
+
runs: result.runs.map(______workflows_js.adminWorkflowRunFromCrud),
|
|
460
|
+
nextCursor: result.next_cursor
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
async getWorkflowRun(runId) {
|
|
464
|
+
return (0, ______workflows_js.adminWorkflowRunDetailsFromCrud)(await this._interface.getWorkflowRun(runId));
|
|
465
|
+
}
|
|
466
|
+
async cancelWorkflowRuns(workflowId, filter = {}) {
|
|
467
|
+
const result = await this._interface.cancelWorkflowRuns(workflowId, {
|
|
468
|
+
run_key: filter.runKey,
|
|
469
|
+
run_id: filter.runId,
|
|
470
|
+
state: filter.state,
|
|
471
|
+
version: filter.version
|
|
472
|
+
});
|
|
473
|
+
await this._adminWorkflowsCache.refresh([]);
|
|
474
|
+
return { canceledCount: result.canceled_count };
|
|
475
|
+
}
|
|
476
|
+
async upgradeWorkflowRuns(workflowId, options) {
|
|
477
|
+
const result = await this._interface.upgradeWorkflowRuns(workflowId, {
|
|
478
|
+
to_version: options.toVersion,
|
|
479
|
+
run_key: options.runKey,
|
|
480
|
+
from_version: options.fromVersion
|
|
481
|
+
});
|
|
482
|
+
return {
|
|
483
|
+
upgradedCount: result.upgraded_count,
|
|
484
|
+
skipped: result.skipped.map((skip) => ({
|
|
485
|
+
runId: skip.run_id,
|
|
486
|
+
runKey: skip.run_key,
|
|
487
|
+
fromVersion: skip.from_version,
|
|
488
|
+
diagnostic: {
|
|
489
|
+
reason: skip.diagnostic.reason,
|
|
490
|
+
suspendedStepKey: skip.diagnostic.suspended_step_key,
|
|
491
|
+
foundStepKey: skip.diagnostic.found_step_key,
|
|
492
|
+
consumedStepKeys: skip.diagnostic.consumed_step_keys,
|
|
493
|
+
unconsumedStepKeys: skip.diagnostic.unconsumed_step_keys,
|
|
494
|
+
details: skip.diagnostic.details
|
|
495
|
+
}
|
|
496
|
+
}))
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
async retryWorkflowRun(runId) {
|
|
500
|
+
await this._interface.retryWorkflowRun(runId);
|
|
501
|
+
await this._adminWorkflowsCache.refresh([]);
|
|
502
|
+
}
|
|
503
|
+
async sendWorkflowEvent(name, data) {
|
|
504
|
+
return { eventId: (await this._interface.sendWorkflowEvent(name, data ?? null)).event_id };
|
|
505
|
+
}
|
|
408
506
|
async listEmailDrafts() {
|
|
409
507
|
return _hexclave_shared_dist_utils_results.Result.orThrow(await this._adminEmailDraftsCache.getOrWait([], "write-only")).map((draft) => ({
|
|
410
508
|
id: draft.id,
|