@iblai/data-layer 1.19.1 → 1.20.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/index.js CHANGED
@@ -39082,13 +39082,13 @@ const SPEND_CAPS_REDUCER_PATH = 'spendCapsApiSlice';
39082
39082
  * provider rate limit, which also uses status 429.
39083
39083
  */
39084
39084
  const SPEND_CAP_EXCEEDED_ERROR_CODE = 'spend_cap_exceeded';
39085
- const encodePathSegment$1 = (value) => encodeURIComponent(value);
39086
- const tenantSpendCapPath = (org) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/spend-caps/tenant/`;
39087
- const agentSpendCapPath = (org, mentorId) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/agents/${encodePathSegment$1(mentorId)}/spend-cap/`;
39088
- const agentUserSpendCapsPath = (org, mentorId) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/agents/${encodePathSegment$1(mentorId)}/spend-caps/users/`;
39089
- const userSpendCapPath = (org, mentorId, username) => `${agentUserSpendCapsPath(org, mentorId)}${encodePathSegment$1(username)}/`;
39090
- const spendCapStatusPath = (org, userId) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/spend-caps/status/${encodePathSegment$1(userId)}/`;
39091
- const agentSpendCapsListPath = (org) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/spend-caps/agents/`;
39085
+ const encodePathSegment$2 = (value) => encodeURIComponent(value);
39086
+ const tenantSpendCapPath = (org) => `/api/ai-mentor/orgs/${encodePathSegment$2(org)}/spend-caps/tenant/`;
39087
+ const agentSpendCapPath = (org, mentorId) => `/api/ai-mentor/orgs/${encodePathSegment$2(org)}/agents/${encodePathSegment$2(mentorId)}/spend-cap/`;
39088
+ const agentUserSpendCapsPath = (org, mentorId) => `/api/ai-mentor/orgs/${encodePathSegment$2(org)}/agents/${encodePathSegment$2(mentorId)}/spend-caps/users/`;
39089
+ const userSpendCapPath = (org, mentorId, username) => `${agentUserSpendCapsPath(org, mentorId)}${encodePathSegment$2(username)}/`;
39090
+ const spendCapStatusPath = (org, userId) => `/api/ai-mentor/orgs/${encodePathSegment$2(org)}/spend-caps/status/${encodePathSegment$2(userId)}/`;
39091
+ const agentSpendCapsListPath = (org) => `/api/ai-mentor/orgs/${encodePathSegment$2(org)}/spend-caps/agents/`;
39092
39092
  const SPEND_CAPS_ENDPOINTS = {
39093
39093
  GET_TENANT_SPEND_CAP: {
39094
39094
  service: exports.SERVICES.DM,
@@ -46300,6 +46300,12 @@ function filterSlashSkills(skills, query) {
46300
46300
  });
46301
46301
  }
46302
46302
 
46303
+ // Backend contract: dl_iblai_services_app/views/custom_domain.py.
46304
+ // The listing is the unified one: it carries both the sign-in/app SPA domains
46305
+ // and the domains of deployed apps (`spa: 'vercel'`), which are mirrored here
46306
+ // by the hosting service. Only the SPA rows may be deleted through
46307
+ // /api/custom-domains/<id>/delete/ — a hosted row answers 400 and has to go
46308
+ // through the hosting domains route, so that Vercel is told as well.
46303
46309
  const CUSTOM_DOMAIN_REDUCER_PATH = 'customDomainApiSlice';
46304
46310
  const CUSTOM_DOMAIN_ENDPOINTS = {
46305
46311
  GET_CUSTOM_DOMAINS: {
@@ -46314,36 +46320,6 @@ const CUSTOM_DOMAIN_ENDPOINTS = {
46314
46320
  service: exports.SERVICES.DM,
46315
46321
  path: (domain_id) => `/api/custom-domains/${domain_id}/delete/`,
46316
46322
  },
46317
- /* GET_MENTOR_USER_SETTINGS: {
46318
- service: SERVICES.AXD,
46319
- path: (tenantKey: string, username: string, mentorId: string) =>
46320
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/mentors/${mentorId}/mentor-user-settings/`,
46321
- },
46322
- UPDATE_MENTOR_USER_SETTINGS: {
46323
- service: SERVICES.AXD,
46324
- path: (tenantKey: string, username: string, mentorId: string) =>
46325
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/mentors/${mentorId}/mentor-user-settings/`,
46326
- },
46327
- DELETE_MEMORY: {
46328
- service: SERVICES.AXD,
46329
- path: (tenantKey: string, username: string, memoryId: string) =>
46330
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/memory-entries/${memoryId}/`,
46331
- },
46332
- DELETE_MEMORY_BY_CATEGORY: {
46333
- service: SERVICES.AXD,
46334
- path: (tenantKey: string, username: string, category: string) =>
46335
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/memory-entries/${category}/`,
46336
- },
46337
- UPDATE_MEMORY_ENTRY: {
46338
- service: SERVICES.AXD,
46339
- path: (tenantKey: string, username: string, entryId: string) =>
46340
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/memory-entries/${entryId}/`,
46341
- },
46342
- CREATE_MEMORY: {
46343
- service: SERVICES.AXD,
46344
- path: (tenantKey: string, username: string) =>
46345
- `/api/ai-mentor/orgs/${tenantKey}/users/${username}/memories/`,
46346
- }, */
46347
46323
  };
46348
46324
  const CUSTOM_DOMAIN_QUERY_KEYS = {
46349
46325
  GET_CUSTOM_DOMAINS: () => ['CUSTOM_DOMAINS'],
@@ -46391,6 +46367,139 @@ const customDomainApiSlice = react.createApi({
46391
46367
  });
46392
46368
  const { useGetCustomDomainsQuery, useLazyGetCustomDomainsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, } = customDomainApiSlice;
46393
46369
 
46370
+ /** A domain serving a deployed app rather than one of the sign-in/app SPAs. */
46371
+ const VERCEL_SPA = 'vercel';
46372
+
46373
+ // Backend contract: ibl_ai_mentor/views/hosting_views.py.
46374
+ // Domains for a hosted app live at two scopes, and the split is deliberate:
46375
+ // 1. Project-scoped — orgs/{org}/users/{username}/providers/vercel/hosting/dns/
46376
+ // Attaching needs a project, and projects belong to the user who deployed
46377
+ // them, so these sit under a user. GET lists, POST attaches, DELETE detaches.
46378
+ // 2. Org-scoped — orgs/{org}/providers/vercel/hosting/domains/{id}/
46379
+ // Re-verifying and dropping a domain are keyed by the CustomDomain row id,
46380
+ // because the screen that lists an organization's domains has neither a user
46381
+ // nor a project to scope by. POST re-verifies (and reclaims a lost domain),
46382
+ // DELETE detaches it everywhere.
46383
+ // The project listing is per user, not per organization — there is no
46384
+ // platform-wide listing, which is why "add a domain" can only offer the caller's
46385
+ // own deployed apps.
46386
+ const HOSTING_REDUCER_PATH = 'hostingApiSlice';
46387
+ const encodePathSegment$1 = (value) => encodeURIComponent(value);
46388
+ const userHostingPath = (org, username) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/users/${encodePathSegment$1(username)}/providers/vercel/hosting`;
46389
+ const hostingProjectsPath = (org, username) => `${userHostingPath(org, username)}/deployment/`;
46390
+ const hostingProjectDomainsPath = (org, username) => `${userHostingPath(org, username)}/dns/`;
46391
+ const hostingDomainPath = (org, domainId) => `/api/ai-mentor/orgs/${encodePathSegment$1(org)}/providers/vercel/hosting/domains/${domainId}/`;
46392
+ const HOSTING_ENDPOINTS = {
46393
+ GET_HOSTING_PROJECTS: {
46394
+ service: exports.SERVICES.DM,
46395
+ path: hostingProjectsPath,
46396
+ },
46397
+ GET_HOSTING_PROJECT_DOMAINS: {
46398
+ service: exports.SERVICES.DM,
46399
+ path: hostingProjectDomainsPath,
46400
+ },
46401
+ CREATE_HOSTING_PROJECT_DOMAIN: {
46402
+ service: exports.SERVICES.DM,
46403
+ path: hostingProjectDomainsPath,
46404
+ },
46405
+ DELETE_HOSTING_PROJECT_DOMAIN: {
46406
+ service: exports.SERVICES.DM,
46407
+ path: hostingProjectDomainsPath,
46408
+ },
46409
+ UPDATE_HOSTING_DOMAIN: {
46410
+ service: exports.SERVICES.DM,
46411
+ path: hostingDomainPath,
46412
+ },
46413
+ DELETE_HOSTING_DOMAIN: {
46414
+ service: exports.SERVICES.DM,
46415
+ path: hostingDomainPath,
46416
+ },
46417
+ };
46418
+ const HOSTING_QUERY_KEYS = {
46419
+ HOSTING_PROJECTS: 'HOSTING_PROJECTS',
46420
+ HOSTING_PROJECT_DOMAINS: 'HOSTING_PROJECT_DOMAINS',
46421
+ };
46422
+
46423
+ const hostingApiSlice = react.createApi({
46424
+ reducerPath: HOSTING_REDUCER_PATH,
46425
+ tagTypes: [HOSTING_QUERY_KEYS.HOSTING_PROJECTS, HOSTING_QUERY_KEYS.HOSTING_PROJECT_DOMAINS],
46426
+ baseQuery: iblFetchBaseQuery,
46427
+ endpoints: (builder) => ({
46428
+ // The caller's own deployed apps. The backend scopes this to the path user,
46429
+ // so an admin cannot list another member's projects through it.
46430
+ getHostingProjects: builder.query({
46431
+ query: (args) => ({
46432
+ url: HOSTING_ENDPOINTS.GET_HOSTING_PROJECTS.path(args.org, args.username),
46433
+ service: HOSTING_ENDPOINTS.GET_HOSTING_PROJECTS.service,
46434
+ }),
46435
+ providesTags: [HOSTING_QUERY_KEYS.HOSTING_PROJECTS],
46436
+ }),
46437
+ getHostingProjectDomains: builder.query({
46438
+ query: (args) => ({
46439
+ url: HOSTING_ENDPOINTS.GET_HOSTING_PROJECT_DOMAINS.path(args.org, args.username),
46440
+ params: args.domain
46441
+ ? { project: args.project, domain: args.domain }
46442
+ : { project: args.project },
46443
+ service: HOSTING_ENDPOINTS.GET_HOSTING_PROJECT_DOMAINS.service,
46444
+ }),
46445
+ providesTags: (result, error, args) => [
46446
+ { type: HOSTING_QUERY_KEYS.HOSTING_PROJECT_DOMAINS, id: args.project },
46447
+ ],
46448
+ }),
46449
+ // Attach a domain the organization owns, or — with `domain` omitted — have
46450
+ // the platform assign a subdomain of its shared zone.
46451
+ createHostingProjectDomain: builder.mutation({
46452
+ query: (args) => ({
46453
+ url: HOSTING_ENDPOINTS.CREATE_HOSTING_PROJECT_DOMAIN.path(args.org, args.username),
46454
+ method: 'POST',
46455
+ body: args.domain
46456
+ ? { project: args.project, domain: args.domain }
46457
+ : { project: args.project },
46458
+ service: HOSTING_ENDPOINTS.CREATE_HOSTING_PROJECT_DOMAIN.service,
46459
+ }),
46460
+ invalidatesTags: (result, error, args) => [
46461
+ HOSTING_QUERY_KEYS.HOSTING_PROJECTS,
46462
+ { type: HOSTING_QUERY_KEYS.HOSTING_PROJECT_DOMAINS, id: args.project },
46463
+ ],
46464
+ }),
46465
+ deleteHostingProjectDomain: builder.mutation({
46466
+ query: (args) => ({
46467
+ url: HOSTING_ENDPOINTS.DELETE_HOSTING_PROJECT_DOMAIN.path(args.org, args.username),
46468
+ method: 'DELETE',
46469
+ params: { project: args.project, domain: args.domain },
46470
+ service: HOSTING_ENDPOINTS.DELETE_HOSTING_PROJECT_DOMAIN.service,
46471
+ }),
46472
+ invalidatesTags: (result, error, args) => [
46473
+ HOSTING_QUERY_KEYS.HOSTING_PROJECTS,
46474
+ { type: HOSTING_QUERY_KEYS.HOSTING_PROJECT_DOMAINS, id: args.project },
46475
+ ],
46476
+ }),
46477
+ // Re-ask whether the DNS records are live, store the answer, and hand back
46478
+ // the records. This is also how a domain lost to another organization comes
46479
+ // back: a successful verification reclaims it.
46480
+ updateHostingDomain: builder.mutation({
46481
+ query: (args) => ({
46482
+ url: HOSTING_ENDPOINTS.UPDATE_HOSTING_DOMAIN.path(args.org, args.domainId),
46483
+ method: 'POST',
46484
+ service: HOSTING_ENDPOINTS.UPDATE_HOSTING_DOMAIN.service,
46485
+ }),
46486
+ invalidatesTags: [HOSTING_QUERY_KEYS.HOSTING_PROJECTS],
46487
+ }),
46488
+ // Removes the domain everywhere, not just from one project: it is detached
46489
+ // at Vercel first, so nothing is left serving a site the organization no
46490
+ // longer tracks.
46491
+ deleteHostingDomain: builder.mutation({
46492
+ query: (args) => ({
46493
+ url: HOSTING_ENDPOINTS.DELETE_HOSTING_DOMAIN.path(args.org, args.domainId),
46494
+ method: 'DELETE',
46495
+ service: HOSTING_ENDPOINTS.DELETE_HOSTING_DOMAIN.service,
46496
+ }),
46497
+ invalidatesTags: [HOSTING_QUERY_KEYS.HOSTING_PROJECTS],
46498
+ }),
46499
+ }),
46500
+ });
46501
+ const { useGetHostingProjectsQuery, useLazyGetHostingProjectsQuery, useGetHostingProjectDomainsQuery, useLazyGetHostingProjectDomainsQuery, useCreateHostingProjectDomainMutation, useDeleteHostingProjectDomainMutation, useUpdateHostingDomainMutation, useDeleteHostingDomainMutation, } = hostingApiSlice;
46502
+
46394
46503
  const PLATFORM_CUSTOM_REDUCER_PATH = "platformCustomApiSlice";
46395
46504
  const PLATFORM_CONFIGURATION_TAG = "PlatformConfiguration";
46396
46505
  const PLATFORM_CUSTOM_ENDPOINTS = {
@@ -48853,6 +48962,7 @@ const mentorReducer = {
48853
48962
  [memoryApiSlice.reducerPath]: memoryApiSlice.reducer,
48854
48963
  [disclaimersApiSlice.reducerPath]: disclaimersApiSlice.reducer,
48855
48964
  [customDomainApiSlice.reducerPath]: customDomainApiSlice.reducer,
48965
+ [hostingApiSlice.reducerPath]: hostingApiSlice.reducer,
48856
48966
  [careerApiSlice.reducerPath]: careerApiSlice.reducer,
48857
48967
  [customAiSearchApiSlice.reducerPath]: customAiSearchApiSlice.reducer,
48858
48968
  [periodicAgentsApiSlice.reducerPath]: periodicAgentsApiSlice.reducer,
@@ -48917,6 +49027,7 @@ const mentorMiddleware = [
48917
49027
  memoryApiSlice.middleware,
48918
49028
  disclaimersApiSlice.middleware,
48919
49029
  customDomainApiSlice.middleware,
49030
+ hostingApiSlice.middleware,
48920
49031
  careerApiSlice.middleware,
48921
49032
  customAiSearchApiSlice.middleware,
48922
49033
  periodicAgentsApiSlice.middleware,
@@ -48970,6 +49081,7 @@ const skillsReducer = {
48970
49081
  [analyticsApiSlice.reducerPath]: analyticsApiSlice.reducer,
48971
49082
  [reportsApiSlice.reducerPath]: reportsApiSlice.reducer,
48972
49083
  [customDomainApiSlice.reducerPath]: customDomainApiSlice.reducer,
49084
+ [hostingApiSlice.reducerPath]: hostingApiSlice.reducer,
48973
49085
  [appApiSlice.reducerPath]: appApiSlice.reducer,
48974
49086
  [customAiSearchApiSlice.reducerPath]: customAiSearchApiSlice.reducer,
48975
49087
  [artifactsApiSlice.reducerPath]: artifactsApiSlice.reducer,
@@ -49017,6 +49129,7 @@ const skillsMiddleware = [
49017
49129
  analyticsApiSlice.middleware,
49018
49130
  reportsApiSlice.middleware,
49019
49131
  customDomainApiSlice.middleware,
49132
+ hostingApiSlice.middleware,
49020
49133
  appApiSlice.middleware,
49021
49134
  customAiSearchApiSlice.middleware,
49022
49135
  artifactsApiSlice.middleware,
@@ -49094,6 +49207,9 @@ exports.GLOBAL_SEARCH_PATH = GLOBAL_SEARCH_PATH;
49094
49207
  exports.GRADING_ENDPOINTS = GRADING_ENDPOINTS;
49095
49208
  exports.GRADING_QUERY_KEYS = GRADING_QUERY_KEYS;
49096
49209
  exports.GRADING_REDUCER_PATH = GRADING_REDUCER_PATH;
49210
+ exports.HOSTING_ENDPOINTS = HOSTING_ENDPOINTS;
49211
+ exports.HOSTING_QUERY_KEYS = HOSTING_QUERY_KEYS;
49212
+ exports.HOSTING_REDUCER_PATH = HOSTING_REDUCER_PATH;
49097
49213
  exports.IblDataLayer = IblDataLayer;
49098
49214
  exports.LOGO_ENDPOINTS = LOGO_ENDPOINTS;
49099
49215
  exports.MCP_ENDPOINTS = MCP_ENDPOINTS;
@@ -49155,6 +49271,7 @@ exports.USER_LLM_USAGE_QUERY_KEYS = USER_LLM_USAGE_QUERY_KEYS;
49155
49271
  exports.USER_LLM_USAGE_REDUCER_PATH = USER_LLM_USAGE_REDUCER_PATH;
49156
49272
  exports.USER_PROGRESS_DATA_POINTS = USER_PROGRESS_DATA_POINTS;
49157
49273
  exports.USER_PROGRESS_SUMMARY_TYPE = USER_PROGRESS_SUMMARY_TYPE;
49274
+ exports.VERCEL_SPA = VERCEL_SPA;
49158
49275
  exports.WATCHED_GROUPS_ENDPOINTS = WATCHED_GROUPS_ENDPOINTS;
49159
49276
  exports.WATCHED_GROUPS_QUERY_KEYS = WATCHED_GROUPS_QUERY_KEYS;
49160
49277
  exports.WATCHED_GROUPS_REDUCER_PATH = WATCHED_GROUPS_REDUCER_PATH;
@@ -49215,6 +49332,7 @@ exports.getNextRecentMessagesPageParam = getNextRecentMessagesPageParam;
49215
49332
  exports.getSpendCapExceededError = getSpendCapExceededError;
49216
49333
  exports.getUserRoleScope = getUserRoleScope;
49217
49334
  exports.gradingApiSlice = gradingApiSlice;
49335
+ exports.hostingApiSlice = hostingApiSlice;
49218
49336
  exports.iblFakeBaseQuery = iblFakeBaseQuery;
49219
49337
  exports.initializeDataLayer = initializeDataLayer;
49220
49338
  exports.isBaseAgentMentor = isBaseAgentMentor;
@@ -49316,6 +49434,7 @@ exports.useCreateExternalMappingMutation = useCreateExternalMappingMutation;
49316
49434
  exports.useCreateGlobalMemoryMutation = useCreateGlobalMemoryMutation;
49317
49435
  exports.useCreateGraderCriterionMutation = useCreateGraderCriterionMutation;
49318
49436
  exports.useCreateGuestCheckoutMutation = useCreateGuestCheckoutMutation;
49437
+ exports.useCreateHostingProjectDomainMutation = useCreateHostingProjectDomainMutation;
49319
49438
  exports.useCreateIntegrationCredentialMutation = useCreateIntegrationCredentialMutation;
49320
49439
  exports.useCreateLLMCredentialMutation = useCreateLLMCredentialMutation;
49321
49440
  exports.useCreateLtiKeyMutation = useCreateLtiKeyMutation;
@@ -49385,6 +49504,8 @@ exports.useDeleteEvalScoreMutation = useDeleteEvalScoreMutation;
49385
49504
  exports.useDeleteExternalMappingMutation = useDeleteExternalMappingMutation;
49386
49505
  exports.useDeleteGlobalMemoryMutation = useDeleteGlobalMemoryMutation;
49387
49506
  exports.useDeleteGraderCriterionMutation = useDeleteGraderCriterionMutation;
49507
+ exports.useDeleteHostingDomainMutation = useDeleteHostingDomainMutation;
49508
+ exports.useDeleteHostingProjectDomainMutation = useDeleteHostingProjectDomainMutation;
49388
49509
  exports.useDeleteIntegrationCredentialMutation = useDeleteIntegrationCredentialMutation;
49389
49510
  exports.useDeleteLtiKeyMutation = useDeleteLtiKeyMutation;
49390
49511
  exports.useDeleteLtiMentorMutation = useDeleteLtiMentorMutation;
@@ -49518,6 +49639,8 @@ exports.useGetGlobalMemoriesQuery = useGetGlobalMemoriesQuery;
49518
49639
  exports.useGetGradeResultQuery = useGetGradeResultQuery;
49519
49640
  exports.useGetGraderCriterionQuery = useGetGraderCriterionQuery;
49520
49641
  exports.useGetGuidedPromptsQuery = useGetGuidedPromptsQuery;
49642
+ exports.useGetHostingProjectDomainsQuery = useGetHostingProjectDomainsQuery;
49643
+ exports.useGetHostingProjectsQuery = useGetHostingProjectsQuery;
49521
49644
  exports.useGetIntegrationCredentialsQuery = useGetIntegrationCredentialsQuery;
49522
49645
  exports.useGetIntegrationCredentialsSchemaQuery = useGetIntegrationCredentialsSchemaQuery;
49523
49646
  exports.useGetIssuersQuery = useGetIssuersQuery;
@@ -49781,6 +49904,8 @@ exports.useLazyGetGlobalMemoriesQuery = useLazyGetGlobalMemoriesQuery;
49781
49904
  exports.useLazyGetGradeResultQuery = useLazyGetGradeResultQuery;
49782
49905
  exports.useLazyGetGraderCriterionQuery = useLazyGetGraderCriterionQuery;
49783
49906
  exports.useLazyGetGuidedPromptsQuery = useLazyGetGuidedPromptsQuery;
49907
+ exports.useLazyGetHostingProjectDomainsQuery = useLazyGetHostingProjectDomainsQuery;
49908
+ exports.useLazyGetHostingProjectsQuery = useLazyGetHostingProjectsQuery;
49784
49909
  exports.useLazyGetIntegrationCredentialsQuery = useLazyGetIntegrationCredentialsQuery;
49785
49910
  exports.useLazyGetIntegrationCredentialsSchemaQuery = useLazyGetIntegrationCredentialsSchemaQuery;
49786
49911
  exports.useLazyGetIssuersQuery = useLazyGetIssuersQuery;
@@ -50029,6 +50154,7 @@ exports.useUpdateEvalDatasetItemMutation = useUpdateEvalDatasetItemMutation;
50029
50154
  exports.useUpdateExamAttemptMutation = useUpdateExamAttemptMutation;
50030
50155
  exports.useUpdateGlobalMemoryMutation = useUpdateGlobalMemoryMutation;
50031
50156
  exports.useUpdateGraderCriterionMutation = useUpdateGraderCriterionMutation;
50157
+ exports.useUpdateHostingDomainMutation = useUpdateHostingDomainMutation;
50032
50158
  exports.useUpdateIntegrationCredentialMutation = useUpdateIntegrationCredentialMutation;
50033
50159
  exports.useUpdateLtiKeyMutation = useUpdateLtiKeyMutation;
50034
50160
  exports.useUpdateLtiMentorMutation = useUpdateLtiMentorMutation;