@carlonicora/nextjs-jsonapi 3.23.0 → 3.24.0
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/{AssistantMessageInterface-CuaMDs2i.d.ts → AssistantMessageInterface-1Kbz8RVs.d.ts} +34 -1
- package/dist/{AssistantMessageInterface-Du3ShThp.d.mts → AssistantMessageInterface-CoxJyuFM.d.mts} +34 -1
- package/dist/{BlockNoteEditor-BUSOUPQ7.js → BlockNoteEditor-PTD2V4CH.js} +19 -19
- package/dist/{BlockNoteEditor-BUSOUPQ7.js.map → BlockNoteEditor-PTD2V4CH.js.map} +1 -1
- package/dist/{BlockNoteEditor-W42IQTGL.mjs → BlockNoteEditor-Q2WEDMKJ.mjs} +4 -4
- package/dist/{BlockNoteViewer-FQ23TZ3J.mjs → BlockNoteViewer-WO6GTDSI.mjs} +2 -2
- package/dist/{BlockNoteViewer-MCX53AR4.js → BlockNoteViewer-WOXEJ6RM.js} +3 -3
- package/dist/{BlockNoteViewer-MCX53AR4.js.map → BlockNoteViewer-WOXEJ6RM.js.map} +1 -1
- package/dist/billing/index.js +401 -401
- package/dist/billing/index.mjs +3 -3
- package/dist/{chunk-O5MKEU7G.mjs → chunk-2O3SFHQ7.mjs} +36 -38
- package/dist/{chunk-O5MKEU7G.mjs.map → chunk-2O3SFHQ7.mjs.map} +1 -1
- package/dist/{chunk-FXWO5J2R.js → chunk-3D2MCVRZ.js} +7 -7
- package/dist/{chunk-FXWO5J2R.js.map → chunk-3D2MCVRZ.js.map} +1 -1
- package/dist/{chunk-VR65NRE4.js → chunk-3YJF7QY4.js} +1338 -1115
- package/dist/chunk-3YJF7QY4.js.map +1 -0
- package/dist/{chunk-GFLEFIAW.mjs → chunk-GJHKOG5L.mjs} +1399 -1176
- package/dist/chunk-GJHKOG5L.mjs.map +1 -0
- package/dist/{chunk-JZUBFAAY.mjs → chunk-HAI7G6MD.mjs} +2 -2
- package/dist/{chunk-YCHPWXHD.js → chunk-IV4DTYXN.js} +36 -38
- package/dist/chunk-IV4DTYXN.js.map +1 -0
- package/dist/client/index.d.mts +13 -2
- package/dist/client/index.d.ts +13 -2
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +87 -28
- package/dist/components/index.d.ts +87 -28
- package/dist/components/index.js +8 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +7 -3
- package/dist/contexts/index.d.mts +11 -2
- package/dist/contexts/index.d.ts +11 -2
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +27 -5
- package/dist/core/index.d.ts +27 -5
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +101 -101
- package/dist/features/tokenusage/index.mjs +3 -3
- package/dist/index.d.mts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +3 -3
- package/dist/index.mjs +2 -2
- package/dist/{oauth.interface-CD90ycYz.d.ts → oauth.interface-BZKZAPRw.d.ts} +8 -1
- package/dist/{oauth.interface-DRE3NAKc.d.mts → oauth.interface-nVwnzxJw.d.mts} +8 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/package.json +1 -1
- package/src/components/forms/__tests__/EditorSheet.test.tsx +5 -3
- package/src/core/utils/__tests__/translateResponse.test.ts +3 -1
- package/src/features/assistant/components/containers/AssistantContainer.tsx +105 -36
- package/src/features/assistant/components/containers/__tests__/AssistantContainer.spec.tsx +163 -1
- package/src/features/assistant/components/parts/AssistantComposer.tsx +38 -15
- package/src/features/assistant/components/parts/AssistantEmptyState.tsx +5 -3
- package/src/features/assistant/components/parts/AssistantSidebar.tsx +26 -7
- package/src/features/assistant/components/parts/__tests__/AssistantComposer.spec.tsx +8 -0
- package/src/features/assistant/components/parts/__tests__/AssistantSidebar.spec.tsx +7 -0
- package/src/features/assistant/contexts/AssistantContext.tsx +91 -7
- package/src/features/assistant/contexts/__tests__/AssistantContext.spec.tsx +196 -0
- package/src/features/assistant-action/components/AssistantContainerWithApprovals.tsx +23 -1
- package/src/features/assistant-message/components/EntityMentionLink.tsx +28 -0
- package/src/features/assistant-message/components/__tests__/EntityMentionLink.spec.tsx +58 -0
- package/src/features/assistant-message/components/index.ts +1 -0
- package/src/features/assistant-message/components/parts/tabs/ContentsTab.tsx +1 -1
- package/src/features/assistant-message/components/parts/tabs/ReferencesTab.tsx +2 -2
- package/src/features/auth/components/forms/__tests__/Logout.spec.tsx +3 -2
- package/src/features/oauth/components/OAuthClientForm.tsx +21 -4
- package/src/features/oauth/components/__tests__/OAuthClientForm.spec.tsx +63 -0
- package/src/features/oauth/components/consent/OAuthCompanySelector.tsx +54 -0
- package/src/features/oauth/components/consent/OAuthConsentActions.tsx +5 -2
- package/src/features/oauth/components/consent/OAuthConsentHeader.tsx +10 -6
- package/src/features/oauth/components/consent/OAuthConsentScreen.tsx +33 -13
- package/src/features/oauth/components/consent/OAuthScopeList.tsx +4 -1
- package/src/features/oauth/components/consent/__tests__/OAuthConsentHeader.spec.tsx +25 -0
- package/src/features/oauth/components/consent/__tests__/OAuthConsentScreen.spec.tsx +126 -0
- package/src/features/oauth/components/consent/index.ts +1 -0
- package/src/features/oauth/data/__tests__/oauth.service.spec.ts +103 -0
- package/src/features/oauth/data/oauth.service.ts +3 -13
- package/src/features/oauth/data/oauth.ts +30 -1
- package/src/features/oauth/hooks/useOAuthConsent.ts +34 -3
- package/src/features/oauth/interfaces/oauth.interface.ts +11 -25
- package/src/hooks/__tests__/useDataListRetriever.test.ts +1 -1
- package/dist/AssistantInterface-RvZzlcA_.d.ts +0 -36
- package/dist/AssistantInterface-jL56dyNc.d.mts +0 -36
- package/dist/chunk-GFLEFIAW.mjs.map +0 -1
- package/dist/chunk-VR65NRE4.js.map +0 -1
- package/dist/chunk-YCHPWXHD.js.map +0 -1
- /package/dist/{BlockNoteEditor-W42IQTGL.mjs.map → BlockNoteEditor-Q2WEDMKJ.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-FQ23TZ3J.mjs.map → BlockNoteViewer-WO6GTDSI.mjs.map} +0 -0
- /package/dist/{chunk-JZUBFAAY.mjs.map → chunk-HAI7G6MD.mjs.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { A as ApiResponseInterface } from './ApiResponseInterface-CWLvSCvS.js';
|
|
|
6
6
|
import { A as AbstractApiData } from './AbstractApiData-DtitRWPz.js';
|
|
7
7
|
import { A as AbstractService } from './AbstractService-V3VGQMhL.js';
|
|
8
8
|
export { H as HttpMethod, N as NextRef, P as PreviousRef, S as SelfRef, T as TotalRef, g as getGlobalErrorHandler, s as setGlobalErrorHandler } from './AbstractService-V3VGQMhL.js';
|
|
9
|
-
export {
|
|
9
|
+
export { A as AssistantInput, b as AssistantInterface, e as AssistantMessageInput, f as AssistantMessageInterface, c as AssistantMessageRole, d as AssistantMessageType, B as BreadcrumbItemData, g as ChunkInterface, C as ChunkRelationshipMeta, H as HowToInput, a as HowToInterface } from './AssistantMessageInterface-1Kbz8RVs.js';
|
|
10
10
|
export { C as ContentFields, D as D3Link, a as D3Node, R as RoleFields, U as UserFields } from './content.fields-1AlHDtDb.js';
|
|
11
11
|
export { ClassValue } from 'clsx';
|
|
12
12
|
export { h as AiConnection, l as AiConnectionEnvDefaults, i as AiConnectionFields, n as AiConnectionInput, m as AiConnectionInterface, p as AiConnectionModule, o as AiConnectionService, j as AiProviderFieldDescriptor, k as AiProviderRegistry, A as AuthComponent, H as HandbookPageInterface, q as HandbookSectionInterface, P as PasskeyInterface, T as TotpAuthenticatorInterface, b as getIcon, a as getIconByModule, c as getIconByModuleName, g as getInitials, d as getLucideIcon, e as getLucideIconByModule, f as getLucideIconByModuleName } from './HandbookSectionInterface-OePKPbqN.js';
|
|
@@ -15,9 +15,8 @@ export { A as AuthInput, b as AuthInterface, a as AuthQuery } from './auth.inter
|
|
|
15
15
|
export { A as AuthService, C as CompanyService, a as ContentService, F as FeatureService, N as NotificationService, P as PushService, R as RoleService, b as S3Input, c as S3Interface, S as S3Service, T as TwoFactorChallengeInterface, U as UserService } from './s3.service-DJHqEZAp.js';
|
|
16
16
|
export { I as InvoiceStatus, M as MeterInterface, o as MeterSummaryInterface, P as PaymentMethodInterface, e as PriceRecurring, q as PromotionCodeValidationResult, c as ProrationLineItem, b as ProrationPreviewInterface, R as ReportUsageInput, S as StripeCustomerInterface, a as StripeInvoiceInterface, f as StripePriceInput, d as StripePriceInterface, h as StripeProductInput, g as StripeProductInterface, l as StripeSubscriptionCreateMeta, m as StripeSubscriptionCreateResponse, k as StripeSubscriptionInput, j as StripeSubscriptionInterface, n as StripeUsageInterface, i as SubscriptionStatus, p as UsageRecordInterface, U as UsageSummaryInterface } from './stripe-promotion-code.interface-C3qqh3mi.js';
|
|
17
17
|
export { b as CompanyInput, c as CompanyInterface, a as ContentInput, C as ContentInterface, d as NotificationInput, N as NotificationInterface, R as RoleInput, e as RoleInterface, f as UserInput, U as UserInterface } from './notification.interface-CjzV_KII.js';
|
|
18
|
-
export { A as AssistantInput, a as AssistantInterface } from './AssistantInterface-RvZzlcA_.js';
|
|
19
18
|
export { F as FeatureInterface, M as ModuleInterface } from './feature.interface-BO25VLlx.js';
|
|
20
|
-
export { A as AVAILABLE_OAUTH_SCOPES, D as DEFAULT_GRANT_TYPES, g as OAUTH_SCOPE_DISPLAY, b as OAuthClientCreateRequest, c as OAuthClientCreateResponse, a as OAuthClientInput, O as OAuthClientInterface, f as OAuthConsentInfo, d as OAuthConsentRequest, e as OAuthScopeInfo } from './oauth.interface-
|
|
19
|
+
export { A as AVAILABLE_OAUTH_SCOPES, D as DEFAULT_GRANT_TYPES, g as OAUTH_SCOPE_DISPLAY, b as OAuthClientCreateRequest, c as OAuthClientCreateResponse, a as OAuthClientInput, O as OAuthClientInterface, f as OAuthConsentInfo, d as OAuthConsentRequest, e as OAuthScopeInfo } from './oauth.interface-BZKZAPRw.js';
|
|
21
20
|
export { b as TokenUsageAdminBreakdownModule, T as TokenUsageAdminSummaryModule, a as TokenUsageAdminTimelineModule, c as configureTokenUsage, g as getTokenUsageCurrency, t as tokenUsageModules } from './config-B6UB7j69.js';
|
|
22
21
|
export { I as I18nConfig, f as configureI18n, c as configureJsonApi, g as getApiUrl, b as getAppUrl, a as getPublicApiUrl, e as getStripePublishableKey, d as getTrackablePages } from './config-Cd5xTEfZ.js';
|
|
23
22
|
export { Q as QuestionnaireField, a as QuestionnaireFieldType, b as QuestionnaireOption, W as WaitlistConfig, c as configureWaitlist, g as getWaitlistConfig } from './waitlist.config-kPfjImle.js';
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunk3D2MCVRZjs = require('./chunk-3D2MCVRZ.js');
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -244,7 +244,7 @@ var _chunkFXWO5J2Rjs = require('./chunk-FXWO5J2R.js');
|
|
|
244
244
|
|
|
245
245
|
|
|
246
246
|
|
|
247
|
-
var
|
|
247
|
+
var _chunkIV4DTYXNjs = require('./chunk-IV4DTYXN.js');
|
|
248
248
|
require('./chunk-LXKSUWAV.js');
|
|
249
249
|
require('./chunk-IBS6NI7D.js');
|
|
250
250
|
|
|
@@ -515,5 +515,5 @@ require('./chunk-7QVYU63E.js');
|
|
|
515
515
|
|
|
516
516
|
|
|
517
517
|
|
|
518
|
-
exports.ACTION_TYPES = _chunkFXWO5J2Rjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkYCHPWXHDjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkYCHPWXHDjs.AbstractApiData; exports.AbstractService = _chunkYCHPWXHDjs.AbstractService; exports.Action = _chunkYCHPWXHDjs.Action; exports.AiConnection = _chunkYCHPWXHDjs.AiConnection; exports.AiConnectionFields = _chunkYCHPWXHDjs.AiConnectionFields; exports.AiConnectionModule = _chunkYCHPWXHDjs.AiConnectionModule; exports.AiConnectionService = _chunkYCHPWXHDjs.AiConnectionService; exports.Assistant = _chunkYCHPWXHDjs.Assistant; exports.AssistantAction = _chunkYCHPWXHDjs.AssistantAction; exports.AssistantActionModule = _chunkYCHPWXHDjs.AssistantActionModule; exports.AssistantActionService = _chunkYCHPWXHDjs.AssistantActionService; exports.AssistantMessage = _chunkYCHPWXHDjs.AssistantMessage; exports.AssistantMessageModule = _chunkYCHPWXHDjs.AssistantMessageModule; exports.AssistantMessageService = _chunkYCHPWXHDjs.AssistantMessageService; exports.AssistantModule = _chunkYCHPWXHDjs.AssistantModule; exports.AssistantService = _chunkYCHPWXHDjs.AssistantService; exports.AuditLog = _chunkYCHPWXHDjs.AuditLog; exports.AuditLogModule = _chunkYCHPWXHDjs.AuditLogModule; exports.AuditLogService = _chunkYCHPWXHDjs.AuditLogService; exports.Auth = _chunkYCHPWXHDjs.Auth; exports.AuthComponent = _chunkYCHPWXHDjs.AuthComponent; exports.AuthModule = _chunkYCHPWXHDjs.AuthModule; exports.AuthService = _chunkYCHPWXHDjs.AuthService; exports.AuthorModule = _chunkYCHPWXHDjs.AuthorModule; exports.BackupCodeVerify = _chunkYCHPWXHDjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkYCHPWXHDjs.BackupCodeVerifyModule; exports.Billing = _chunkYCHPWXHDjs.Billing; exports.BillingModule = _chunkYCHPWXHDjs.BillingModule; exports.BillingService = _chunkYCHPWXHDjs.BillingService; exports.BlockNoteDiffUtil = _chunkYCHPWXHDjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkYCHPWXHDjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkFXWO5J2Rjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkYCHPWXHDjs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkYCHPWXHDjs.Chunk; exports.ChunkModule = _chunkYCHPWXHDjs.ChunkModule; exports.ClientAbstractService = _chunkYCHPWXHDjs.ClientAbstractService; exports.ClientHttpMethod = _chunkYCHPWXHDjs.ClientHttpMethod; exports.Company = _chunkYCHPWXHDjs.Company; exports.CompanyFields = _chunkYCHPWXHDjs.CompanyFields; exports.CompanyModule = _chunkYCHPWXHDjs.CompanyModule; exports.CompanyService = _chunkYCHPWXHDjs.CompanyService; exports.Content = _chunkYCHPWXHDjs.Content; exports.ContentFields = _chunkYCHPWXHDjs.ContentFields; exports.ContentModule = _chunkYCHPWXHDjs.ContentModule; exports.ContentService = _chunkYCHPWXHDjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkYCHPWXHDjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLU7DJ4QFjs.DataClassRegistry; exports.DataClassRegistry = _chunkLU7DJ4QFjs.DataClassRegistry; exports.ENV = _chunkLU7DJ4QFjs.ENV; exports.EndpointCreator = _chunkYCHPWXHDjs.EndpointCreator; exports.EntityAiStatus = _chunkYCHPWXHDjs.EntityAiStatus; exports.Feature = _chunkYCHPWXHDjs.Feature; exports.FeatureModule = _chunkYCHPWXHDjs.FeatureModule; exports.FeatureService = _chunkYCHPWXHDjs.FeatureService; exports.HandbookPage = _chunkYCHPWXHDjs.HandbookPage; exports.HandbookPageFields = _chunkYCHPWXHDjs.HandbookPageFields; exports.HandbookPageModule = _chunkYCHPWXHDjs.HandbookPageModule; exports.HandbookPageService = _chunkYCHPWXHDjs.HandbookPageService; exports.HandbookSection = _chunkYCHPWXHDjs.HandbookSection; exports.HandbookSectionModule = _chunkYCHPWXHDjs.HandbookSectionModule; exports.HandbookSectionService = _chunkYCHPWXHDjs.HandbookSectionService; exports.HandbookThread = _chunkYCHPWXHDjs.HandbookThread; exports.HandbookThreadMessage = _chunkYCHPWXHDjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkYCHPWXHDjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkYCHPWXHDjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkYCHPWXHDjs.HandbookThreadModule; exports.HandbookThreadService = _chunkYCHPWXHDjs.HandbookThreadService; exports.HowTo = _chunkYCHPWXHDjs.HowTo; exports.HowToFields = _chunkYCHPWXHDjs.HowToFields; exports.HowToModule = _chunkYCHPWXHDjs.HowToModule; exports.HowToService = _chunkYCHPWXHDjs.HowToService; exports.HttpMethod = _chunkYCHPWXHDjs.HttpMethod; exports.InvoiceStatus = _chunkYCHPWXHDjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLU7DJ4QFjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkYCHPWXHDjs.MOBILE_BREAKPOINT; exports.Module = _chunkYCHPWXHDjs.Module; exports.ModuleModule = _chunkYCHPWXHDjs.ModuleModule; exports.ModulePaths = _chunkYCHPWXHDjs.ModulePaths; exports.ModulePathsModule = _chunkYCHPWXHDjs.ModulePathsModule; exports.ModuleRegistrar = _chunkYCHPWXHDjs.ModuleRegistrar; exports.ModuleRegistry = _chunkYCHPWXHDjs.ModuleRegistry; exports.Modules = _chunkYCHPWXHDjs.Modules; exports.Notification = _chunkYCHPWXHDjs.Notification; exports.NotificationFields = _chunkYCHPWXHDjs.NotificationFields; exports.NotificationModule = _chunkYCHPWXHDjs.NotificationModule; exports.NotificationService = _chunkYCHPWXHDjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkYCHPWXHDjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkYCHPWXHDjs.OAuthClient; exports.OAuthModule = _chunkYCHPWXHDjs.OAuthModule; exports.OAuthService = _chunkYCHPWXHDjs.OAuthService; exports.Passkey = _chunkYCHPWXHDjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkYCHPWXHDjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkYCHPWXHDjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkYCHPWXHDjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkYCHPWXHDjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkYCHPWXHDjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkYCHPWXHDjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkYCHPWXHDjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkYCHPWXHDjs.PasskeyRename; exports.PasskeyRenameModule = _chunkYCHPWXHDjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkYCHPWXHDjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkYCHPWXHDjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkYCHPWXHDjs.PaymentMethod; exports.PermissionMapping = _chunkYCHPWXHDjs.PermissionMapping; exports.PermissionMappingModule = _chunkYCHPWXHDjs.PermissionMappingModule; exports.Push = _chunkYCHPWXHDjs.Push; exports.PushModule = _chunkYCHPWXHDjs.PushModule; exports.PushService = _chunkYCHPWXHDjs.PushService; exports.RbacMatrixModel = _chunkYCHPWXHDjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkYCHPWXHDjs.RbacMatrixModule; exports.RbacService = _chunkFXWO5J2Rjs.RbacService; exports.ReferralModule = _chunkYCHPWXHDjs.ReferralModule; exports.ReferralService = _chunkYCHPWXHDjs.ReferralService; exports.ReferralStats = _chunkYCHPWXHDjs.ReferralStats; exports.ReferralStatsModule = _chunkYCHPWXHDjs.ReferralStatsModule; exports.RehydrationFactory = _chunkYCHPWXHDjs.RehydrationFactory; exports.Role = _chunkYCHPWXHDjs.Role; exports.RoleFields = _chunkYCHPWXHDjs.RoleFields; exports.RoleModule = _chunkYCHPWXHDjs.RoleModule; exports.RoleService = _chunkYCHPWXHDjs.RoleService; exports.S3 = _chunkYCHPWXHDjs.S3; exports.S3Module = _chunkYCHPWXHDjs.S3Module; exports.S3Service = _chunkYCHPWXHDjs.S3Service; exports.StripeCustomer = _chunkYCHPWXHDjs.StripeCustomer; exports.StripeCustomerModule = _chunkYCHPWXHDjs.StripeCustomerModule; exports.StripeCustomerService = _chunkYCHPWXHDjs.StripeCustomerService; exports.StripeInvoice = _chunkYCHPWXHDjs.StripeInvoice; exports.StripeInvoiceModule = _chunkYCHPWXHDjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkYCHPWXHDjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkYCHPWXHDjs.StripePaymentMethodModule; exports.StripePrice = _chunkYCHPWXHDjs.StripePrice; exports.StripePriceFields = _chunkYCHPWXHDjs.StripePriceFields; exports.StripePriceModule = _chunkYCHPWXHDjs.StripePriceModule; exports.StripePriceService = _chunkYCHPWXHDjs.StripePriceService; exports.StripeProduct = _chunkYCHPWXHDjs.StripeProduct; exports.StripeProductFields = _chunkYCHPWXHDjs.StripeProductFields; exports.StripeProductModule = _chunkYCHPWXHDjs.StripeProductModule; exports.StripeProductService = _chunkYCHPWXHDjs.StripeProductService; exports.StripePromotionCode = _chunkYCHPWXHDjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkYCHPWXHDjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkYCHPWXHDjs.StripePromotionCodeService; exports.StripeSubscription = _chunkYCHPWXHDjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkYCHPWXHDjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkYCHPWXHDjs.StripeSubscriptionService; exports.StripeUsage = _chunkYCHPWXHDjs.StripeUsage; exports.StripeUsageModule = _chunkYCHPWXHDjs.StripeUsageModule; exports.StripeUsageService = _chunkYCHPWXHDjs.StripeUsageService; exports.SubscriptionStatus = _chunkYCHPWXHDjs.SubscriptionStatus; exports.TableOptions = _chunkYCHPWXHDjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkYCHPWXHDjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkYCHPWXHDjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkYCHPWXHDjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkYCHPWXHDjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkYCHPWXHDjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkYCHPWXHDjs.TotpSetup; exports.TotpSetupModule = _chunkYCHPWXHDjs.TotpSetupModule; exports.TotpVerify = _chunkYCHPWXHDjs.TotpVerify; exports.TotpVerifyLogin = _chunkYCHPWXHDjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkYCHPWXHDjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkYCHPWXHDjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkYCHPWXHDjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkYCHPWXHDjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkYCHPWXHDjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkYCHPWXHDjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkYCHPWXHDjs.TwoFactorService; exports.TwoFactorStatus = _chunkYCHPWXHDjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkYCHPWXHDjs.TwoFactorStatusModule; exports.User = _chunkYCHPWXHDjs.User; exports.UserFields = _chunkYCHPWXHDjs.UserFields; exports.UserModule = _chunkYCHPWXHDjs.UserModule; exports.UserService = _chunkYCHPWXHDjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkYCHPWXHDjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkYCHPWXHDjs.Waitlist; exports.WaitlistModule = _chunkYCHPWXHDjs.WaitlistModule; exports.WaitlistService = _chunkYCHPWXHDjs.WaitlistService; exports.WaitlistStats = _chunkYCHPWXHDjs.WaitlistStats; exports.WaitlistStatsModule = _chunkYCHPWXHDjs.WaitlistStatsModule; exports.checkPermissions = _chunkYCHPWXHDjs.checkPermissions; exports.checkPermissionsFromServer = _chunkYCHPWXHDjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkYCHPWXHDjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkYCHPWXHDjs.clearLastApiTotal; exports.cn = _chunkYCHPWXHDjs.cn; exports.composeRefs = _chunkYCHPWXHDjs.composeRefs; exports.configureAuth = _chunkYCHPWXHDjs.configureAuth; exports.configureI18n = _chunkFXWO5J2Rjs.configureI18n; exports.configureJsonApi = _chunkFXWO5J2Rjs.configureJsonApi; exports.configureLogin = _chunkFXWO5J2Rjs.configureLogin; exports.configureReferral = _chunkFXWO5J2Rjs.configureReferral; exports.configureRoles = _chunkFXWO5J2Rjs.configureRoles; exports.configureTokenUsage = _chunkYCHPWXHDjs.configureTokenUsage; exports.configureWaitlist = _chunkFXWO5J2Rjs.configureWaitlist; exports.createJsonApiInclusion = _chunkYCHPWXHDjs.createJsonApiInclusion; exports.dismissToast = _chunkYCHPWXHDjs.dismissToast; exports.entityObjectSchema = _chunkYCHPWXHDjs.entityObjectSchema; exports.exists = _chunkYCHPWXHDjs.exists; exports.formatCodiceFiscale = _chunkYCHPWXHDjs.formatCodiceFiscale; exports.formatDate = _chunkYCHPWXHDjs.formatDate; exports.formatLocalDate = _chunkYCHPWXHDjs.formatLocalDate; exports.formatPartitaIva = _chunkYCHPWXHDjs.formatPartitaIva; exports.getApiUrl = _chunkFXWO5J2Rjs.getApiUrl; exports.getAppUrl = _chunkFXWO5J2Rjs.getAppUrl; exports.getBootstrapper = _chunkLU7DJ4QFjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkYCHPWXHDjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkYCHPWXHDjs.getGlobalErrorHandler; exports.getIcon = _chunkYCHPWXHDjs.getIcon; exports.getIconByModule = _chunkYCHPWXHDjs.getIconByModule; exports.getIconByModuleName = _chunkYCHPWXHDjs.getIconByModuleName; exports.getInitials = _chunkYCHPWXHDjs.getInitials; exports.getLastApiMeta = _chunkYCHPWXHDjs.getLastApiMeta; exports.getLastApiTotal = _chunkYCHPWXHDjs.getLastApiTotal; exports.getLucideIcon = _chunkYCHPWXHDjs.getLucideIcon; exports.getLucideIconByModule = _chunkYCHPWXHDjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkYCHPWXHDjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkFXWO5J2Rjs.getPublicApiUrl; exports.getReferralConfig = _chunkFXWO5J2Rjs.getReferralConfig; exports.getRoleId = _chunkFXWO5J2Rjs.getRoleId; exports.getStripePublishableKey = _chunkFXWO5J2Rjs.getStripePublishableKey; exports.getTableComponents = _chunkYCHPWXHDjs.getTableComponents; exports.getTableOptions = _chunkYCHPWXHDjs.getTableOptions; exports.getTokenHandler = _chunkYCHPWXHDjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkYCHPWXHDjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkFXWO5J2Rjs.getTrackablePages; exports.getValueFromPath = _chunkYCHPWXHDjs.getValueFromPath; exports.getWaitlistConfig = _chunkFXWO5J2Rjs.getWaitlistConfig; exports.handbookPageContent = _chunkYCHPWXHDjs.handbookPageContent; exports.handbookPageSummary = _chunkYCHPWXHDjs.handbookPageSummary; exports.handbookPageTitle = _chunkYCHPWXHDjs.handbookPageTitle; exports.handbookSectionSummary = _chunkYCHPWXHDjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkYCHPWXHDjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLU7DJ4QFjs.hasBootstrapper; exports.isReferralEnabled = _chunkFXWO5J2Rjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkYCHPWXHDjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkFXWO5J2Rjs.isRolesConfigured; exports.rehydrate = _chunkYCHPWXHDjs.rehydrate; exports.rehydrateList = _chunkYCHPWXHDjs.rehydrateList; exports.resetBootstrapStore = _chunkLU7DJ4QFjs.resetBootstrapStore; exports.setBootstrapper = _chunkLU7DJ4QFjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkYCHPWXHDjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkYCHPWXHDjs.setGlobalErrorHandler; exports.showCustomToast = _chunkYCHPWXHDjs.showCustomToast; exports.showError = _chunkYCHPWXHDjs.showError; exports.showToast = _chunkYCHPWXHDjs.showToast; exports.tokenUsageModules = _chunkYCHPWXHDjs.tokenUsageModules; exports.translateData = _chunkLU7DJ4QFjs.translateData; exports.translateResponse = _chunkLU7DJ4QFjs.translateResponse; exports.tryBootstrap = _chunkLU7DJ4QFjs.tryBootstrap; exports.useComposedRefs = _chunkYCHPWXHDjs.useComposedRefs; exports.useIsMobile = _chunkYCHPWXHDjs.useIsMobile; exports.userObjectSchema = _chunkYCHPWXHDjs.userObjectSchema; exports.validateCodiceFiscale = _chunkYCHPWXHDjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkYCHPWXHDjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkYCHPWXHDjs.validatePartitaIva;
|
|
518
|
+
exports.ACTION_TYPES = _chunk3D2MCVRZjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkIV4DTYXNjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkIV4DTYXNjs.AbstractApiData; exports.AbstractService = _chunkIV4DTYXNjs.AbstractService; exports.Action = _chunkIV4DTYXNjs.Action; exports.AiConnection = _chunkIV4DTYXNjs.AiConnection; exports.AiConnectionFields = _chunkIV4DTYXNjs.AiConnectionFields; exports.AiConnectionModule = _chunkIV4DTYXNjs.AiConnectionModule; exports.AiConnectionService = _chunkIV4DTYXNjs.AiConnectionService; exports.Assistant = _chunkIV4DTYXNjs.Assistant; exports.AssistantAction = _chunkIV4DTYXNjs.AssistantAction; exports.AssistantActionModule = _chunkIV4DTYXNjs.AssistantActionModule; exports.AssistantActionService = _chunkIV4DTYXNjs.AssistantActionService; exports.AssistantMessage = _chunkIV4DTYXNjs.AssistantMessage; exports.AssistantMessageModule = _chunkIV4DTYXNjs.AssistantMessageModule; exports.AssistantMessageService = _chunkIV4DTYXNjs.AssistantMessageService; exports.AssistantModule = _chunkIV4DTYXNjs.AssistantModule; exports.AssistantService = _chunkIV4DTYXNjs.AssistantService; exports.AuditLog = _chunkIV4DTYXNjs.AuditLog; exports.AuditLogModule = _chunkIV4DTYXNjs.AuditLogModule; exports.AuditLogService = _chunkIV4DTYXNjs.AuditLogService; exports.Auth = _chunkIV4DTYXNjs.Auth; exports.AuthComponent = _chunkIV4DTYXNjs.AuthComponent; exports.AuthModule = _chunkIV4DTYXNjs.AuthModule; exports.AuthService = _chunkIV4DTYXNjs.AuthService; exports.AuthorModule = _chunkIV4DTYXNjs.AuthorModule; exports.BackupCodeVerify = _chunkIV4DTYXNjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkIV4DTYXNjs.BackupCodeVerifyModule; exports.Billing = _chunkIV4DTYXNjs.Billing; exports.BillingModule = _chunkIV4DTYXNjs.BillingModule; exports.BillingService = _chunkIV4DTYXNjs.BillingService; exports.BlockNoteDiffUtil = _chunkIV4DTYXNjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkIV4DTYXNjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunk3D2MCVRZjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkIV4DTYXNjs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkIV4DTYXNjs.Chunk; exports.ChunkModule = _chunkIV4DTYXNjs.ChunkModule; exports.ClientAbstractService = _chunkIV4DTYXNjs.ClientAbstractService; exports.ClientHttpMethod = _chunkIV4DTYXNjs.ClientHttpMethod; exports.Company = _chunkIV4DTYXNjs.Company; exports.CompanyFields = _chunkIV4DTYXNjs.CompanyFields; exports.CompanyModule = _chunkIV4DTYXNjs.CompanyModule; exports.CompanyService = _chunkIV4DTYXNjs.CompanyService; exports.Content = _chunkIV4DTYXNjs.Content; exports.ContentFields = _chunkIV4DTYXNjs.ContentFields; exports.ContentModule = _chunkIV4DTYXNjs.ContentModule; exports.ContentService = _chunkIV4DTYXNjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkIV4DTYXNjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLU7DJ4QFjs.DataClassRegistry; exports.DataClassRegistry = _chunkLU7DJ4QFjs.DataClassRegistry; exports.ENV = _chunkLU7DJ4QFjs.ENV; exports.EndpointCreator = _chunkIV4DTYXNjs.EndpointCreator; exports.EntityAiStatus = _chunkIV4DTYXNjs.EntityAiStatus; exports.Feature = _chunkIV4DTYXNjs.Feature; exports.FeatureModule = _chunkIV4DTYXNjs.FeatureModule; exports.FeatureService = _chunkIV4DTYXNjs.FeatureService; exports.HandbookPage = _chunkIV4DTYXNjs.HandbookPage; exports.HandbookPageFields = _chunkIV4DTYXNjs.HandbookPageFields; exports.HandbookPageModule = _chunkIV4DTYXNjs.HandbookPageModule; exports.HandbookPageService = _chunkIV4DTYXNjs.HandbookPageService; exports.HandbookSection = _chunkIV4DTYXNjs.HandbookSection; exports.HandbookSectionModule = _chunkIV4DTYXNjs.HandbookSectionModule; exports.HandbookSectionService = _chunkIV4DTYXNjs.HandbookSectionService; exports.HandbookThread = _chunkIV4DTYXNjs.HandbookThread; exports.HandbookThreadMessage = _chunkIV4DTYXNjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkIV4DTYXNjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkIV4DTYXNjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkIV4DTYXNjs.HandbookThreadModule; exports.HandbookThreadService = _chunkIV4DTYXNjs.HandbookThreadService; exports.HowTo = _chunkIV4DTYXNjs.HowTo; exports.HowToFields = _chunkIV4DTYXNjs.HowToFields; exports.HowToModule = _chunkIV4DTYXNjs.HowToModule; exports.HowToService = _chunkIV4DTYXNjs.HowToService; exports.HttpMethod = _chunkIV4DTYXNjs.HttpMethod; exports.InvoiceStatus = _chunkIV4DTYXNjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLU7DJ4QFjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkIV4DTYXNjs.MOBILE_BREAKPOINT; exports.Module = _chunkIV4DTYXNjs.Module; exports.ModuleModule = _chunkIV4DTYXNjs.ModuleModule; exports.ModulePaths = _chunkIV4DTYXNjs.ModulePaths; exports.ModulePathsModule = _chunkIV4DTYXNjs.ModulePathsModule; exports.ModuleRegistrar = _chunkIV4DTYXNjs.ModuleRegistrar; exports.ModuleRegistry = _chunkIV4DTYXNjs.ModuleRegistry; exports.Modules = _chunkIV4DTYXNjs.Modules; exports.Notification = _chunkIV4DTYXNjs.Notification; exports.NotificationFields = _chunkIV4DTYXNjs.NotificationFields; exports.NotificationModule = _chunkIV4DTYXNjs.NotificationModule; exports.NotificationService = _chunkIV4DTYXNjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkIV4DTYXNjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkIV4DTYXNjs.OAuthClient; exports.OAuthModule = _chunkIV4DTYXNjs.OAuthModule; exports.OAuthService = _chunkIV4DTYXNjs.OAuthService; exports.Passkey = _chunkIV4DTYXNjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkIV4DTYXNjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkIV4DTYXNjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkIV4DTYXNjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkIV4DTYXNjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkIV4DTYXNjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkIV4DTYXNjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkIV4DTYXNjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkIV4DTYXNjs.PasskeyRename; exports.PasskeyRenameModule = _chunkIV4DTYXNjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkIV4DTYXNjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkIV4DTYXNjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkIV4DTYXNjs.PaymentMethod; exports.PermissionMapping = _chunkIV4DTYXNjs.PermissionMapping; exports.PermissionMappingModule = _chunkIV4DTYXNjs.PermissionMappingModule; exports.Push = _chunkIV4DTYXNjs.Push; exports.PushModule = _chunkIV4DTYXNjs.PushModule; exports.PushService = _chunkIV4DTYXNjs.PushService; exports.RbacMatrixModel = _chunkIV4DTYXNjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkIV4DTYXNjs.RbacMatrixModule; exports.RbacService = _chunk3D2MCVRZjs.RbacService; exports.ReferralModule = _chunkIV4DTYXNjs.ReferralModule; exports.ReferralService = _chunkIV4DTYXNjs.ReferralService; exports.ReferralStats = _chunkIV4DTYXNjs.ReferralStats; exports.ReferralStatsModule = _chunkIV4DTYXNjs.ReferralStatsModule; exports.RehydrationFactory = _chunkIV4DTYXNjs.RehydrationFactory; exports.Role = _chunkIV4DTYXNjs.Role; exports.RoleFields = _chunkIV4DTYXNjs.RoleFields; exports.RoleModule = _chunkIV4DTYXNjs.RoleModule; exports.RoleService = _chunkIV4DTYXNjs.RoleService; exports.S3 = _chunkIV4DTYXNjs.S3; exports.S3Module = _chunkIV4DTYXNjs.S3Module; exports.S3Service = _chunkIV4DTYXNjs.S3Service; exports.StripeCustomer = _chunkIV4DTYXNjs.StripeCustomer; exports.StripeCustomerModule = _chunkIV4DTYXNjs.StripeCustomerModule; exports.StripeCustomerService = _chunkIV4DTYXNjs.StripeCustomerService; exports.StripeInvoice = _chunkIV4DTYXNjs.StripeInvoice; exports.StripeInvoiceModule = _chunkIV4DTYXNjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkIV4DTYXNjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkIV4DTYXNjs.StripePaymentMethodModule; exports.StripePrice = _chunkIV4DTYXNjs.StripePrice; exports.StripePriceFields = _chunkIV4DTYXNjs.StripePriceFields; exports.StripePriceModule = _chunkIV4DTYXNjs.StripePriceModule; exports.StripePriceService = _chunkIV4DTYXNjs.StripePriceService; exports.StripeProduct = _chunkIV4DTYXNjs.StripeProduct; exports.StripeProductFields = _chunkIV4DTYXNjs.StripeProductFields; exports.StripeProductModule = _chunkIV4DTYXNjs.StripeProductModule; exports.StripeProductService = _chunkIV4DTYXNjs.StripeProductService; exports.StripePromotionCode = _chunkIV4DTYXNjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkIV4DTYXNjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkIV4DTYXNjs.StripePromotionCodeService; exports.StripeSubscription = _chunkIV4DTYXNjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkIV4DTYXNjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkIV4DTYXNjs.StripeSubscriptionService; exports.StripeUsage = _chunkIV4DTYXNjs.StripeUsage; exports.StripeUsageModule = _chunkIV4DTYXNjs.StripeUsageModule; exports.StripeUsageService = _chunkIV4DTYXNjs.StripeUsageService; exports.SubscriptionStatus = _chunkIV4DTYXNjs.SubscriptionStatus; exports.TableOptions = _chunkIV4DTYXNjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkIV4DTYXNjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkIV4DTYXNjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkIV4DTYXNjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkIV4DTYXNjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkIV4DTYXNjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkIV4DTYXNjs.TotpSetup; exports.TotpSetupModule = _chunkIV4DTYXNjs.TotpSetupModule; exports.TotpVerify = _chunkIV4DTYXNjs.TotpVerify; exports.TotpVerifyLogin = _chunkIV4DTYXNjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkIV4DTYXNjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkIV4DTYXNjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkIV4DTYXNjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkIV4DTYXNjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkIV4DTYXNjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkIV4DTYXNjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkIV4DTYXNjs.TwoFactorService; exports.TwoFactorStatus = _chunkIV4DTYXNjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkIV4DTYXNjs.TwoFactorStatusModule; exports.User = _chunkIV4DTYXNjs.User; exports.UserFields = _chunkIV4DTYXNjs.UserFields; exports.UserModule = _chunkIV4DTYXNjs.UserModule; exports.UserService = _chunkIV4DTYXNjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkIV4DTYXNjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkIV4DTYXNjs.Waitlist; exports.WaitlistModule = _chunkIV4DTYXNjs.WaitlistModule; exports.WaitlistService = _chunkIV4DTYXNjs.WaitlistService; exports.WaitlistStats = _chunkIV4DTYXNjs.WaitlistStats; exports.WaitlistStatsModule = _chunkIV4DTYXNjs.WaitlistStatsModule; exports.checkPermissions = _chunkIV4DTYXNjs.checkPermissions; exports.checkPermissionsFromServer = _chunkIV4DTYXNjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkIV4DTYXNjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkIV4DTYXNjs.clearLastApiTotal; exports.cn = _chunkIV4DTYXNjs.cn; exports.composeRefs = _chunkIV4DTYXNjs.composeRefs; exports.configureAuth = _chunkIV4DTYXNjs.configureAuth; exports.configureI18n = _chunk3D2MCVRZjs.configureI18n; exports.configureJsonApi = _chunk3D2MCVRZjs.configureJsonApi; exports.configureLogin = _chunk3D2MCVRZjs.configureLogin; exports.configureReferral = _chunk3D2MCVRZjs.configureReferral; exports.configureRoles = _chunk3D2MCVRZjs.configureRoles; exports.configureTokenUsage = _chunkIV4DTYXNjs.configureTokenUsage; exports.configureWaitlist = _chunk3D2MCVRZjs.configureWaitlist; exports.createJsonApiInclusion = _chunkIV4DTYXNjs.createJsonApiInclusion; exports.dismissToast = _chunkIV4DTYXNjs.dismissToast; exports.entityObjectSchema = _chunkIV4DTYXNjs.entityObjectSchema; exports.exists = _chunkIV4DTYXNjs.exists; exports.formatCodiceFiscale = _chunkIV4DTYXNjs.formatCodiceFiscale; exports.formatDate = _chunkIV4DTYXNjs.formatDate; exports.formatLocalDate = _chunkIV4DTYXNjs.formatLocalDate; exports.formatPartitaIva = _chunkIV4DTYXNjs.formatPartitaIva; exports.getApiUrl = _chunk3D2MCVRZjs.getApiUrl; exports.getAppUrl = _chunk3D2MCVRZjs.getAppUrl; exports.getBootstrapper = _chunkLU7DJ4QFjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkIV4DTYXNjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkIV4DTYXNjs.getGlobalErrorHandler; exports.getIcon = _chunkIV4DTYXNjs.getIcon; exports.getIconByModule = _chunkIV4DTYXNjs.getIconByModule; exports.getIconByModuleName = _chunkIV4DTYXNjs.getIconByModuleName; exports.getInitials = _chunkIV4DTYXNjs.getInitials; exports.getLastApiMeta = _chunkIV4DTYXNjs.getLastApiMeta; exports.getLastApiTotal = _chunkIV4DTYXNjs.getLastApiTotal; exports.getLucideIcon = _chunkIV4DTYXNjs.getLucideIcon; exports.getLucideIconByModule = _chunkIV4DTYXNjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkIV4DTYXNjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunk3D2MCVRZjs.getPublicApiUrl; exports.getReferralConfig = _chunk3D2MCVRZjs.getReferralConfig; exports.getRoleId = _chunk3D2MCVRZjs.getRoleId; exports.getStripePublishableKey = _chunk3D2MCVRZjs.getStripePublishableKey; exports.getTableComponents = _chunkIV4DTYXNjs.getTableComponents; exports.getTableOptions = _chunkIV4DTYXNjs.getTableOptions; exports.getTokenHandler = _chunkIV4DTYXNjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkIV4DTYXNjs.getTokenUsageCurrency; exports.getTrackablePages = _chunk3D2MCVRZjs.getTrackablePages; exports.getValueFromPath = _chunkIV4DTYXNjs.getValueFromPath; exports.getWaitlistConfig = _chunk3D2MCVRZjs.getWaitlistConfig; exports.handbookPageContent = _chunkIV4DTYXNjs.handbookPageContent; exports.handbookPageSummary = _chunkIV4DTYXNjs.handbookPageSummary; exports.handbookPageTitle = _chunkIV4DTYXNjs.handbookPageTitle; exports.handbookSectionSummary = _chunkIV4DTYXNjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkIV4DTYXNjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLU7DJ4QFjs.hasBootstrapper; exports.isReferralEnabled = _chunk3D2MCVRZjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkIV4DTYXNjs.isRemoteImageSrc; exports.isRolesConfigured = _chunk3D2MCVRZjs.isRolesConfigured; exports.rehydrate = _chunkIV4DTYXNjs.rehydrate; exports.rehydrateList = _chunkIV4DTYXNjs.rehydrateList; exports.resetBootstrapStore = _chunkLU7DJ4QFjs.resetBootstrapStore; exports.setBootstrapper = _chunkLU7DJ4QFjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkIV4DTYXNjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkIV4DTYXNjs.setGlobalErrorHandler; exports.showCustomToast = _chunkIV4DTYXNjs.showCustomToast; exports.showError = _chunkIV4DTYXNjs.showError; exports.showToast = _chunkIV4DTYXNjs.showToast; exports.tokenUsageModules = _chunkIV4DTYXNjs.tokenUsageModules; exports.translateData = _chunkLU7DJ4QFjs.translateData; exports.translateResponse = _chunkLU7DJ4QFjs.translateResponse; exports.tryBootstrap = _chunkLU7DJ4QFjs.tryBootstrap; exports.useComposedRefs = _chunkIV4DTYXNjs.useComposedRefs; exports.useIsMobile = _chunkIV4DTYXNjs.useIsMobile; exports.userObjectSchema = _chunkIV4DTYXNjs.userObjectSchema; exports.validateCodiceFiscale = _chunkIV4DTYXNjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkIV4DTYXNjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkIV4DTYXNjs.validatePartitaIva;
|
|
519
519
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
getWaitlistConfig,
|
|
19
19
|
isReferralEnabled,
|
|
20
20
|
isRolesConfigured
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-HAI7G6MD.mjs";
|
|
22
22
|
import {
|
|
23
23
|
AVAILABLE_OAUTH_SCOPES,
|
|
24
24
|
AbstractApiData,
|
|
@@ -244,7 +244,7 @@ import {
|
|
|
244
244
|
validateCodiceFiscale,
|
|
245
245
|
validateItalianTaxCode,
|
|
246
246
|
validatePartitaIva
|
|
247
|
-
} from "./chunk-
|
|
247
|
+
} from "./chunk-2O3SFHQ7.mjs";
|
|
248
248
|
import "./chunk-AUXK7QSA.mjs";
|
|
249
249
|
import "./chunk-C7C7VY4F.mjs";
|
|
250
250
|
import {
|
|
@@ -85,12 +85,14 @@ interface OAuthConsentRequest {
|
|
|
85
85
|
codeChallenge?: string;
|
|
86
86
|
/** PKCE method: 'S256' (recommended) or 'plain' */
|
|
87
87
|
codeChallengeMethod?: string;
|
|
88
|
+
/** The studio (company) the issued tokens are bound to; sent as `company_id` on approve */
|
|
89
|
+
companyId?: string;
|
|
88
90
|
}
|
|
89
91
|
/**
|
|
90
92
|
* Scope information for display in consent screen
|
|
91
93
|
*/
|
|
92
94
|
interface OAuthScopeInfo {
|
|
93
|
-
/** The scope identifier (e.g., '
|
|
95
|
+
/** The scope identifier (e.g., 'read', 'mcp') */
|
|
94
96
|
scope: string;
|
|
95
97
|
/** Human-readable scope name */
|
|
96
98
|
name: string;
|
|
@@ -105,6 +107,11 @@ interface OAuthScopeInfo {
|
|
|
105
107
|
interface OAuthConsentInfo {
|
|
106
108
|
client: OAuthClientInterface;
|
|
107
109
|
scopes: OAuthScopeInfo[];
|
|
110
|
+
/** The caller's companies, ordered by name; the user picks one when there is more than one */
|
|
111
|
+
companies?: Array<{
|
|
112
|
+
id: string;
|
|
113
|
+
name: string;
|
|
114
|
+
}>;
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* Default scope display configuration
|
|
@@ -85,12 +85,14 @@ interface OAuthConsentRequest {
|
|
|
85
85
|
codeChallenge?: string;
|
|
86
86
|
/** PKCE method: 'S256' (recommended) or 'plain' */
|
|
87
87
|
codeChallengeMethod?: string;
|
|
88
|
+
/** The studio (company) the issued tokens are bound to; sent as `company_id` on approve */
|
|
89
|
+
companyId?: string;
|
|
88
90
|
}
|
|
89
91
|
/**
|
|
90
92
|
* Scope information for display in consent screen
|
|
91
93
|
*/
|
|
92
94
|
interface OAuthScopeInfo {
|
|
93
|
-
/** The scope identifier (e.g., '
|
|
95
|
+
/** The scope identifier (e.g., 'read', 'mcp') */
|
|
94
96
|
scope: string;
|
|
95
97
|
/** Human-readable scope name */
|
|
96
98
|
name: string;
|
|
@@ -105,6 +107,11 @@ interface OAuthScopeInfo {
|
|
|
105
107
|
interface OAuthConsentInfo {
|
|
106
108
|
client: OAuthClientInterface;
|
|
107
109
|
scopes: OAuthScopeInfo[];
|
|
110
|
+
/** The caller's companies, ordered by name; the user picks one when there is more than one */
|
|
111
|
+
companies?: Array<{
|
|
112
|
+
id: string;
|
|
113
|
+
name: string;
|
|
114
|
+
}>;
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* Default scope display configuration
|
package/dist/server/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var _chunkIOLU4ASDjs = require('../chunk-IOLU4ASD.js');
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkIV4DTYXNjs = require('../chunk-IV4DTYXN.js');
|
|
19
19
|
require('../chunk-LXKSUWAV.js');
|
|
20
20
|
require('../chunk-IBS6NI7D.js');
|
|
21
21
|
|
|
@@ -87,7 +87,7 @@ var ServerSession = class {
|
|
|
87
87
|
if (!rawModules) return false;
|
|
88
88
|
const modules = JSON.parse(_pako.ungzip.call(void 0, Buffer.from(rawModules, "base64"), { toText: true }));
|
|
89
89
|
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
90
|
-
return
|
|
90
|
+
return _chunkIV4DTYXNjs.checkPermissionsFromServer.call(void 0, {
|
|
91
91
|
module: params.module,
|
|
92
92
|
action: params.action,
|
|
93
93
|
data: params.data,
|
|
@@ -297,5 +297,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, ServerJsonApiDelete, "ServerJsonApiDelete")
|
|
|
297
297
|
|
|
298
298
|
|
|
299
299
|
|
|
300
|
-
exports.ServerAuthService =
|
|
300
|
+
exports.ServerAuthService = _chunkIV4DTYXNjs.AuthService; exports.ServerCompanyService = _chunkIV4DTYXNjs.CompanyService; exports.ServerContentService = _chunkIV4DTYXNjs.ContentService; exports.ServerFeatureService = _chunkIV4DTYXNjs.FeatureService; exports.ServerJsonApiDelete = ServerJsonApiDelete; exports.ServerJsonApiGet = ServerJsonApiGet; exports.ServerJsonApiPatch = ServerJsonApiPatch; exports.ServerJsonApiPost = ServerJsonApiPost; exports.ServerJsonApiPut = ServerJsonApiPut; exports.ServerNotificationService = _chunkIV4DTYXNjs.NotificationService; exports.ServerPushService = _chunkIV4DTYXNjs.PushService; exports.ServerRoleService = _chunkIV4DTYXNjs.RoleService; exports.ServerS3Service = _chunkIV4DTYXNjs.S3Service; exports.ServerSession = ServerSession; exports.ServerUserService = _chunkIV4DTYXNjs.UserService; exports.configureServerJsonApi = configureServerJsonApi; exports.getServerApiUrl = getServerApiUrl; exports.getServerAppUrl = getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = getServerTrackablePages; exports.invalidateCacheTag = invalidateCacheTag; exports.invalidateCacheTags = invalidateCacheTags; exports.serverRequest = _chunkIOLU4ASDjs.serverRequest;
|
|
301
301
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ import userEvent from "@testing-library/user-event";
|
|
|
4
4
|
import { useForm } from "react-hook-form";
|
|
5
5
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { EditorSheet } from "../EditorSheet";
|
|
7
|
+
import { EditorSheet, EditorSheetProps } from "../EditorSheet";
|
|
8
8
|
|
|
9
9
|
// Mock next-intl
|
|
10
10
|
vi.mock("next-intl", () => ({
|
|
@@ -33,12 +33,14 @@ const schema = z.object({
|
|
|
33
33
|
name: z.string().min(1),
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
+
type TestValues = z.infer<typeof schema>;
|
|
37
|
+
|
|
36
38
|
function TestEditor({
|
|
37
39
|
onSubmit = vi.fn().mockResolvedValue({ id: "123" }),
|
|
38
40
|
isEdit = false,
|
|
39
41
|
...props
|
|
40
|
-
}: Partial<
|
|
41
|
-
const form = useForm({
|
|
42
|
+
}: Partial<EditorSheetProps<TestValues>> & { onSubmit?: any }) {
|
|
43
|
+
const form = useForm<TestValues>({
|
|
42
44
|
resolver: zodResolver(schema),
|
|
43
45
|
defaultValues: { name: "" },
|
|
44
46
|
});
|
|
@@ -7,7 +7,9 @@ import { translateResponse } from "../translateResponse";
|
|
|
7
7
|
|
|
8
8
|
class StubData implements Partial<ApiDataInterface> {
|
|
9
9
|
id = "";
|
|
10
|
-
rehydrate():
|
|
10
|
+
rehydrate(): ApiDataInterface {
|
|
11
|
+
return this as unknown as ApiDataInterface;
|
|
12
|
+
}
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
const stubModule = {
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import { MessagesSquareIcon } from "lucide-react";
|
|
4
|
+
import { useTranslations } from "next-intl";
|
|
5
|
+
import { useMemo, type ReactNode } from "react";
|
|
3
6
|
import { RoundPageContainer } from "../../../../components/containers/RoundPageContainer";
|
|
4
7
|
import { Modules } from "../../../../core";
|
|
5
|
-
import
|
|
8
|
+
import { EntityMentionLink } from "../../../assistant-message/components/EntityMentionLink";
|
|
9
|
+
import type { ApprovalActionRenderer, MentionRenderer } from "../../../assistant-message/components/MessageItem";
|
|
10
|
+
import type { AssistantInterface } from "../../data/AssistantInterface";
|
|
6
11
|
import { useAssistantContext } from "../../contexts/AssistantContext";
|
|
7
12
|
import { AssistantSidebar } from "../parts/AssistantSidebar";
|
|
8
13
|
import { AssistantEmptyState } from "../parts/AssistantEmptyState";
|
|
@@ -18,55 +23,119 @@ interface Props {
|
|
|
18
23
|
* plain markdown bubble.
|
|
19
24
|
*/
|
|
20
25
|
renderApprovalAction?: ApprovalActionRenderer;
|
|
26
|
+
/**
|
|
27
|
+
* Renderer for `mention://<type>/<id>` links in assistant answers. Defaults
|
|
28
|
+
* to `EntityMentionLink`, which links registered modules to their page.
|
|
29
|
+
*/
|
|
30
|
+
renderMention?: MentionRenderer;
|
|
31
|
+
/** When true the container renders without the `RoundPageContainer` page chrome (e.g. inside a sheet). */
|
|
32
|
+
embedded?: boolean;
|
|
33
|
+
/** Rendered inside the composer (bottom-left), before the first message of a new thread. */
|
|
34
|
+
renderScopePicker?: () => ReactNode;
|
|
35
|
+
/** Rendered after each thread title in the sidebar. */
|
|
36
|
+
renderThreadBadge?: (thread: AssistantInterface) => ReactNode;
|
|
37
|
+
/** When false, the empty state hides the operator-mode toggle and threads use the default engine. Defaults to true. */
|
|
38
|
+
showOperatorToggle?: boolean;
|
|
21
39
|
}
|
|
22
40
|
|
|
23
|
-
export function AssistantContainer({
|
|
41
|
+
export function AssistantContainer({
|
|
42
|
+
renderApprovalAction,
|
|
43
|
+
renderMention,
|
|
44
|
+
embedded,
|
|
45
|
+
renderScopePicker,
|
|
46
|
+
renderThreadBadge,
|
|
47
|
+
showOperatorToggle = true,
|
|
48
|
+
}: Props = {}) {
|
|
49
|
+
const t = useTranslations();
|
|
24
50
|
const ctx = useAssistantContext();
|
|
25
51
|
const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
|
|
26
52
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
53
|
+
// Memoised: a fresh element on every render fed into RoundPageContainer is
|
|
54
|
+
// the shape that produces React's "Maximum update depth exceeded".
|
|
55
|
+
const details = useMemo(
|
|
56
|
+
() => (
|
|
57
|
+
// The panel supplies its own padding and border; cancel both so the list
|
|
58
|
+
// reads as the panel body rather than a card inside it.
|
|
59
|
+
<div className="-m-4 flex h-full min-h-0 [&>aside]:w-full [&>aside]:border-e-0 [&>aside]:bg-transparent">
|
|
30
60
|
<AssistantSidebar
|
|
31
61
|
threads={ctx.threads}
|
|
32
62
|
activeId={ctx.assistant?.id}
|
|
33
63
|
onSelect={ctx.selectThread}
|
|
34
|
-
|
|
64
|
+
renderThreadBadge={renderThreadBadge}
|
|
35
65
|
/>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
66
|
+
</div>
|
|
67
|
+
),
|
|
68
|
+
[ctx.threads, ctx.assistant?.id, ctx.selectThread, renderThreadBadge],
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const thread = (
|
|
72
|
+
<>
|
|
73
|
+
{!showThread ? (
|
|
74
|
+
<AssistantEmptyState
|
|
75
|
+
onSend={ctx.sendMessage}
|
|
76
|
+
operatorMode={ctx.operatorMode}
|
|
77
|
+
onOperatorModeChange={showOperatorToggle ? ctx.setOperatorMode : undefined}
|
|
78
|
+
composerLeading={renderScopePicker?.()}
|
|
79
|
+
/>
|
|
80
|
+
) : (
|
|
81
|
+
<>
|
|
82
|
+
{ctx.assistant ? (
|
|
83
|
+
<AssistantThreadHeader
|
|
84
|
+
assistant={ctx.assistant}
|
|
85
|
+
onRename={(title) => ctx.renameThread(ctx.assistant!.id, title)}
|
|
86
|
+
onDelete={() => ctx.deleteThread(ctx.assistant!.id)}
|
|
42
87
|
/>
|
|
43
88
|
) : (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
assistant={ctx.assistant}
|
|
48
|
-
onRename={(title) => ctx.renameThread(ctx.assistant!.id, title)}
|
|
49
|
-
onDelete={() => ctx.deleteThread(ctx.assistant!.id)}
|
|
50
|
-
/>
|
|
51
|
-
) : (
|
|
52
|
-
<div className="flex items-center justify-between border-b px-5 py-3" aria-hidden>
|
|
53
|
-
<div className="h-5" />
|
|
54
|
-
</div>
|
|
55
|
-
)}
|
|
56
|
-
<AssistantThread
|
|
57
|
-
messages={ctx.messages}
|
|
58
|
-
sending={ctx.sending}
|
|
59
|
-
status={ctx.status}
|
|
60
|
-
onSelectFollowUp={ctx.sendMessage}
|
|
61
|
-
failedMessageIds={ctx.failedMessageIds}
|
|
62
|
-
onRetry={ctx.retrySend}
|
|
63
|
-
renderApprovalAction={renderApprovalAction}
|
|
64
|
-
/>
|
|
65
|
-
<AssistantComposer onSend={ctx.sendMessage} disabled={ctx.sending} />
|
|
66
|
-
</>
|
|
89
|
+
<div className="flex items-center justify-between border-b px-5 py-3" aria-hidden>
|
|
90
|
+
<div className="h-5" />
|
|
91
|
+
</div>
|
|
67
92
|
)}
|
|
68
|
-
|
|
93
|
+
<AssistantThread
|
|
94
|
+
messages={ctx.messages}
|
|
95
|
+
sending={ctx.sending}
|
|
96
|
+
status={ctx.status}
|
|
97
|
+
onSelectFollowUp={ctx.sendMessage}
|
|
98
|
+
failedMessageIds={ctx.failedMessageIds}
|
|
99
|
+
onRetry={ctx.retrySend}
|
|
100
|
+
renderApprovalAction={renderApprovalAction}
|
|
101
|
+
renderMention={renderMention ?? EntityMentionLink}
|
|
102
|
+
/>
|
|
103
|
+
<AssistantComposer onSend={ctx.sendMessage} disabled={ctx.sending} />
|
|
104
|
+
</>
|
|
105
|
+
)}
|
|
106
|
+
</>
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
if (embedded) {
|
|
110
|
+
return (
|
|
111
|
+
<div className="bg-background flex h-full w-full overflow-hidden rounded-lg border">
|
|
112
|
+
<AssistantSidebar
|
|
113
|
+
threads={ctx.threads}
|
|
114
|
+
activeId={ctx.assistant?.id}
|
|
115
|
+
onSelect={ctx.selectThread}
|
|
116
|
+
onNew={ctx.startNew}
|
|
117
|
+
renderThreadBadge={renderThreadBadge}
|
|
118
|
+
/>
|
|
119
|
+
<main className="flex flex-1 flex-col">{thread}</main>
|
|
69
120
|
</div>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// The page mirrors the conversations page: the thread list lives in the
|
|
125
|
+
// page's details panel, the new-thread action in the page header (set by
|
|
126
|
+
// AssistantProvider), and the conversation fills the card.
|
|
127
|
+
return (
|
|
128
|
+
<RoundPageContainer
|
|
129
|
+
module={Modules.Assistant}
|
|
130
|
+
id={ctx.assistant?.id}
|
|
131
|
+
fullWidth
|
|
132
|
+
forceHeader
|
|
133
|
+
defaultDetailsOpen
|
|
134
|
+
detailsTitle={t("features.assistant.list_title")}
|
|
135
|
+
detailsIcon={<MessagesSquareIcon />}
|
|
136
|
+
details={details}
|
|
137
|
+
>
|
|
138
|
+
<div className="flex h-full min-h-0 w-full flex-col overflow-hidden">{thread}</div>
|
|
70
139
|
</RoundPageContainer>
|
|
71
140
|
);
|
|
72
141
|
}
|
|
@@ -3,7 +3,23 @@ vi.mock("../../../../../contexts/SocketContext", () => ({
|
|
|
3
3
|
}));
|
|
4
4
|
|
|
5
5
|
vi.mock("../../../../../components/containers/RoundPageContainer", () => ({
|
|
6
|
-
RoundPageContainer: ({
|
|
6
|
+
RoundPageContainer: ({
|
|
7
|
+
children,
|
|
8
|
+
details,
|
|
9
|
+
detailsTitle,
|
|
10
|
+
}: {
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
details?: React.ReactNode;
|
|
13
|
+
detailsTitle?: React.ReactNode;
|
|
14
|
+
}) => (
|
|
15
|
+
<div data-testid="round-page-container">
|
|
16
|
+
{children}
|
|
17
|
+
<div data-testid="round-page-details">
|
|
18
|
+
{detailsTitle}
|
|
19
|
+
{details}
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
),
|
|
7
23
|
}));
|
|
8
24
|
|
|
9
25
|
import { describe, it, expect, vi, beforeAll, beforeEach } from "vitest";
|
|
@@ -13,11 +29,40 @@ import { AssistantService } from "../../../data/AssistantService";
|
|
|
13
29
|
import type { JsonApiHydratedDataInterface } from "../../../../../core";
|
|
14
30
|
import { AssistantContainer } from "../AssistantContainer";
|
|
15
31
|
import { ModuleRegistry } from "../../../../../core/registry/ModuleRegistry";
|
|
32
|
+
import { configureI18n } from "../../../../../i18n";
|
|
16
33
|
import { DataClassRegistry } from "../../../../../core/registry/DataClassRegistry";
|
|
17
34
|
import { Assistant } from "../../../data/Assistant";
|
|
18
35
|
import { AssistantMessage } from "../../../../assistant-message/data/AssistantMessage";
|
|
19
36
|
|
|
20
37
|
beforeAll(() => {
|
|
38
|
+
// The package Link resolves its inner component at runtime and throws if i18n
|
|
39
|
+
// was never configured (src/i18n/config.ts).
|
|
40
|
+
configureI18n({
|
|
41
|
+
useRouter: () => ({
|
|
42
|
+
push: vi.fn(),
|
|
43
|
+
replace: vi.fn(),
|
|
44
|
+
back: vi.fn(),
|
|
45
|
+
forward: vi.fn(),
|
|
46
|
+
refresh: vi.fn(),
|
|
47
|
+
prefetch: vi.fn(),
|
|
48
|
+
}),
|
|
49
|
+
useTranslations: () => (key: string) => key,
|
|
50
|
+
usePathname: () => "/",
|
|
51
|
+
Link: ({
|
|
52
|
+
href,
|
|
53
|
+
children,
|
|
54
|
+
prefetch: _prefetch,
|
|
55
|
+
...rest
|
|
56
|
+
}: {
|
|
57
|
+
href: string;
|
|
58
|
+
children: React.ReactNode;
|
|
59
|
+
[key: string]: any;
|
|
60
|
+
}) => (
|
|
61
|
+
<a href={href} {...rest}>
|
|
62
|
+
{children}
|
|
63
|
+
</a>
|
|
64
|
+
),
|
|
65
|
+
});
|
|
21
66
|
Element.prototype.scrollIntoView = vi.fn();
|
|
22
67
|
const assistantModule = { name: "assistants", model: Assistant } as any;
|
|
23
68
|
const assistantMessageModule = { name: "assistant-messages", model: AssistantMessage } as any;
|
|
@@ -25,6 +70,7 @@ beforeAll(() => {
|
|
|
25
70
|
DataClassRegistry.registerObjectClass(assistantMessageModule, AssistantMessage);
|
|
26
71
|
ModuleRegistry.register("Assistant" as any, assistantModule as any);
|
|
27
72
|
ModuleRegistry.register("AssistantMessage" as any, assistantMessageModule as any);
|
|
73
|
+
ModuleRegistry.register("Npc" as any, { name: "npcs", pageUrl: "/npcs" } as any);
|
|
28
74
|
});
|
|
29
75
|
|
|
30
76
|
beforeEach(() => {
|
|
@@ -48,6 +94,17 @@ function buildAssistantDehydrated({
|
|
|
48
94
|
};
|
|
49
95
|
}
|
|
50
96
|
|
|
97
|
+
function buildMessageDehydrated({ id, content }: { id: string; content: string }): JsonApiHydratedDataInterface {
|
|
98
|
+
return {
|
|
99
|
+
jsonApi: {
|
|
100
|
+
type: "assistant-messages",
|
|
101
|
+
id,
|
|
102
|
+
attributes: { role: "user", content, position: 1 },
|
|
103
|
+
},
|
|
104
|
+
included: [],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
51
108
|
describe("AssistantContainer", () => {
|
|
52
109
|
it("shows empty state when no assistant is active", async () => {
|
|
53
110
|
render(
|
|
@@ -98,4 +155,109 @@ describe("AssistantContainer", () => {
|
|
|
98
155
|
// Status line is showing ("thinking…" translation key renders literally in tests).
|
|
99
156
|
expect(screen.getByText("features.assistant.thinking")).toBeInTheDocument();
|
|
100
157
|
});
|
|
158
|
+
|
|
159
|
+
it("passes renderMention through to messages", () => {
|
|
160
|
+
const active = buildAssistantDehydrated({ id: "a1", title: "T" });
|
|
161
|
+
const messages = [buildMessageDehydrated({ id: "m1", content: "Ask [X](mention://npcs/n1) about it." })];
|
|
162
|
+
render(
|
|
163
|
+
<AssistantProvider dehydratedAssistant={active} dehydratedMessages={messages}>
|
|
164
|
+
<AssistantContainer
|
|
165
|
+
renderMention={({ type, id, alias }) => <span data-testid="custom-mention">{`${type}:${id}:${alias}`}</span>}
|
|
166
|
+
/>
|
|
167
|
+
</AssistantProvider>,
|
|
168
|
+
);
|
|
169
|
+
expect(screen.getByTestId("custom-mention")).toHaveTextContent("npcs:n1:X");
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it("uses EntityMentionLink by default", () => {
|
|
173
|
+
const active = buildAssistantDehydrated({ id: "a1", title: "T" });
|
|
174
|
+
const messages = [buildMessageDehydrated({ id: "m1", content: "Ask [X](mention://npcs/n1) about it." })];
|
|
175
|
+
render(
|
|
176
|
+
<AssistantProvider dehydratedAssistant={active} dehydratedMessages={messages}>
|
|
177
|
+
<AssistantContainer />
|
|
178
|
+
</AssistantProvider>,
|
|
179
|
+
);
|
|
180
|
+
expect(screen.getByRole("link", { name: "X" })).toHaveAttribute("href", "/npcs/n1");
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it("embedded renders without RoundPageContainer", async () => {
|
|
184
|
+
const { unmount } = render(
|
|
185
|
+
<AssistantProvider>
|
|
186
|
+
<AssistantContainer />
|
|
187
|
+
</AssistantProvider>,
|
|
188
|
+
);
|
|
189
|
+
expect(screen.getByTestId("round-page-container")).toBeInTheDocument();
|
|
190
|
+
unmount();
|
|
191
|
+
|
|
192
|
+
render(
|
|
193
|
+
<AssistantProvider>
|
|
194
|
+
<AssistantContainer embedded />
|
|
195
|
+
</AssistantProvider>,
|
|
196
|
+
);
|
|
197
|
+
await waitFor(() =>
|
|
198
|
+
expect(screen.getByRole("heading", { name: "features.assistant.empty_state.title" })).toBeInTheDocument(),
|
|
199
|
+
);
|
|
200
|
+
expect(screen.queryByTestId("round-page-container")).not.toBeInTheDocument();
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
it("renderScopePicker shows only before the first message", async () => {
|
|
204
|
+
AssistantService.create = vi.fn().mockImplementation(() => new Promise(() => {}));
|
|
205
|
+
|
|
206
|
+
render(
|
|
207
|
+
<AssistantProvider>
|
|
208
|
+
<AssistantContainer renderScopePicker={() => <div data-testid="scope-picker" />} />
|
|
209
|
+
</AssistantProvider>,
|
|
210
|
+
);
|
|
211
|
+
expect(screen.getByTestId("scope-picker")).toBeInTheDocument();
|
|
212
|
+
|
|
213
|
+
const textarea = await screen.findByRole("textbox");
|
|
214
|
+
const user = (await import("@testing-library/user-event")).default.setup();
|
|
215
|
+
await user.type(textarea, "first one");
|
|
216
|
+
await user.keyboard("{Enter}");
|
|
217
|
+
|
|
218
|
+
await waitFor(() => expect(screen.queryByTestId("scope-picker")).not.toBeInTheDocument());
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
it("shows the operator toggle by default", async () => {
|
|
222
|
+
render(
|
|
223
|
+
<AssistantProvider>
|
|
224
|
+
<AssistantContainer />
|
|
225
|
+
</AssistantProvider>,
|
|
226
|
+
);
|
|
227
|
+
await waitFor(() => expect(screen.getByText("features.assistant.operator_mode")).toBeInTheDocument());
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
it("showOperatorToggle={false} hides the operator toggle", async () => {
|
|
231
|
+
render(
|
|
232
|
+
<AssistantProvider>
|
|
233
|
+
<AssistantContainer showOperatorToggle={false} />
|
|
234
|
+
</AssistantProvider>,
|
|
235
|
+
);
|
|
236
|
+
await waitFor(() =>
|
|
237
|
+
expect(screen.getByRole("heading", { name: "features.assistant.empty_state.title" })).toBeInTheDocument(),
|
|
238
|
+
);
|
|
239
|
+
expect(screen.queryByText("features.assistant.operator_mode")).not.toBeInTheDocument();
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it("page: thread list sits in the details panel, without its own new button", async () => {
|
|
243
|
+
AssistantService.findMany = vi.fn().mockResolvedValue([]);
|
|
244
|
+
render(
|
|
245
|
+
<AssistantProvider>
|
|
246
|
+
<AssistantContainer />
|
|
247
|
+
</AssistantProvider>,
|
|
248
|
+
);
|
|
249
|
+
const details = screen.getByTestId("round-page-details");
|
|
250
|
+
expect(details).toHaveTextContent("features.assistant.list_title");
|
|
251
|
+
await waitFor(() => expect(details).toHaveTextContent("features.assistant.empty_sidebar"));
|
|
252
|
+
expect(screen.queryByRole("button", { name: /features\.assistant\.new/ })).not.toBeInTheDocument();
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
it("embedded: keeps the sidebar with its new button", async () => {
|
|
256
|
+
render(
|
|
257
|
+
<AssistantProvider>
|
|
258
|
+
<AssistantContainer embedded />
|
|
259
|
+
</AssistantProvider>,
|
|
260
|
+
);
|
|
261
|
+
expect(screen.getByRole("button", { name: /features\.assistant\.new/ })).toBeInTheDocument();
|
|
262
|
+
});
|
|
101
263
|
});
|