@scm-manager/ui-api 3.8.1-20250505-081427 → 3.8.1-20250510-092900

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/build/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _scm_manager_ui_types from '@scm-manager/ui-types';
2
- import { IndexResources, HalRepresentation, Me, GroupCollection, Group, GroupCreation, UserCollection, User, PermissionOverview, UserCreation, SelectValue, Namespace, RepositoryCollection, RepositoryCreation, Repository, RepositoryTypeCollection, ExportInfo, Paths, NamespaceCollection, NamespaceStrategies, BranchCollection, Branch, BranchDetails, BranchCreation, NamespaceAndName, ChangesetCollection, Changeset, TagCollection, Tag, Config, UpdateInfo, PluginCollection, PendingPlugins, Plugin, RepositoryRoleCollection, RepositoryRole, RepositoryRoleCreation, RepositoryVerbs, PermissionCollection, PermissionCreateEntry, Permission, GlobalPermissionsCollection, File as File$1, RepositoryType, RepositoryUrlImport, Diff, NotificationCollection, Notification, AlertsResponse, ApiKeysCollection, ApiKeyCreation, ApiKeyWithToken, ApiKey, PublicKeysCollection, PublicKeyCreation, PublicKey, ContentType, AnnotatedSource, SearchableType, QueryResult, LoginInfo, Option, AutocompleteObject } from '@scm-manager/ui-types';
2
+ import { IndexResources, HalRepresentation, Me, GroupCollection, Group, GroupCreation, UserCollection, User, PermissionOverview, UserCreation, SelectValue, Namespace, RepositoryCollection, RepositoryCreation, Repository, RepositoryTypeCollection, ExportInfo, Paths, NamespaceCollection, NamespaceStrategies, BranchCollection, Branch, BranchDetails, BranchCreation, NamespaceAndName, ChangesetCollection, Changeset, TagCollection, Tag, Config, UpdateInfo, PluginCollection, PendingPlugins, Plugin, RepositoryRoleCollection, RepositoryRole, RepositoryRoleCreation, RepositoryVerbs, PermissionCollection, PermissionCreateEntry, Permission, GlobalPermissionsCollection, File as File$1, RepositoryType, RepositoryUrlImport, Diff, NotificationCollection, Notification, AlertsResponse, ApiKeysCollection, ApiKeyCreation, ApiKeyWithToken, ApiKey, PublicKeysCollection, PublicKeyCreation, PublicKey, ContentType, AnnotatedSource, SearchableType, QueryResult, LoginInfo, PluginCenterAuthenticationInfo, Option, AutocompleteObject } from '@scm-manager/ui-types';
3
3
  export { ContentType } from '@scm-manager/ui-types';
4
4
  import * as react_query from 'react-query';
5
5
  import { UseQueryOptions } from 'react-query/types/react/types';
@@ -749,6 +749,13 @@ declare const useInvalidateSearchIndices: () => {
749
749
  error: Error | null;
750
750
  };
751
751
 
752
+ declare const usePluginCenterAuthInfo: () => ApiResult<PluginCenterAuthenticationInfo>;
753
+ declare const usePluginCenterLogout: (authenticationInfo: PluginCenterAuthenticationInfo) => {
754
+ logout: () => void;
755
+ isLoading: boolean;
756
+ error: Error | null;
757
+ };
758
+
752
759
  declare function createChangesetUrl(repository: Repository, source: string, target: string): string;
753
760
  declare function createDiffUrl(repository: Repository, source: string, target: string): string;
754
761
  declare type UseIncomingChangesetsRequest = {
@@ -818,4 +825,4 @@ declare const RepositoryRevisionContextProvider: FC<{
818
825
  revision?: string;
819
826
  }>;
820
827
 
821
- export { AdditionalMessage, ApiProvider, Props as ApiProviderProps, ApiResult, ApiResultWithFetching, BackendError, BackendErrorContent, BadGatewayError, BaseContext, CONTENT_TYPE_PUBLIC_KEY, CancelablePromise, ConflictError, ConvertToInternalRequest, DeleteFunction, ForbiddenError, LegacyContext, LegacyContextProvider, MissingLinkError, NamespaceAndNameContext, NamespaceAndNameContextProvider, NotFoundError, RepositoryContextProvider, RepositoryRevisionContextProvider, RevertRequest, RevertResponse, SearchOptions, TOKEN_EXPIRED_ERROR_CODE, TokenExpiredError, UnauthorizedError, UseAvailablePluginsOptions, UseDeleteRepositoryOptions, UseGroupsRequest, UseHistoryRequest, UseInstalledPluginsOptions, UseRepositoriesRequest, UseRepositoryRolesRequest, UseSourcesOptions, UseUsersRequest, Violation, apiClient, changesetQueryKey, clearCache, createBackendError, createChangesetUrl, createDiffUrl, createQueryString, createUrl, createUrlWithIdentifiers, extractXsrfTokenFromCookie, fetchResourceFromLocationHeader, getResponseJson, isBackendError, makeCancelable, objectLink, requiredLink, urls, useAlerts, useAnnotations, useApiKeys, useArchiveRepository, useAvailableGlobalPermissions, useAvailablePermissions, useAvailablePlugins, useBranch, useBranchDetails, useBranchDetailsCollection, useBranches, useCancelPendingPlugins, useCancellablePromise, useChangeUserPassword, useChangeset, useChangesets, useClearNotifications, useConfig, useConfigLink, useContainedInTags, useContentType, useConvertToExternal, useConvertToInternal, useCreateApiKey, useCreateBranch, useCreateGroup, useCreatePermission, useCreatePublicKey, useCreateRepository, useCreateRepositoryRole, useCreateTag, useCreateUser, useDefaultBranch, useDeleteApiKey, useDeleteBranch, useDeleteGroup, useDeletePermission, useDeletePublicKey, useDeleteRepository, useDeleteRepositoryRole, useDeleteTag, useDeleteUser, useDiff, useDismissNotification, useExecutePendingPlugins, useExportInfo, useExportRepository, useFileContent, useGroup, useGroupOptions, useGroupPermissions, useGroupSuggestions, useGroups, useHistory, useImportFullRepository, useImportLog, useImportRepositoryFromBundle, useImportRepositoryFromUrl, useIncomingChangesets, useIndex, useIndexJsonResource, useIndexLink, useIndexLinks, useInstallPlugin, useInstalledPlugins, useInvalidateAllCaches, useInvalidateSearchIndices, useJsonResource, useLegacyContext, useLocalStorage, useLogin, useLoginInfo, useLogout, useMe, useNamespace, useNamespaceAndNameContext, useNamespaceOptions, useNamespaceStrategies, useNamespaceSuggestions, useNamespaces, useNotificationSubscription, useNotifications, useOmniSearch, usePaths, usePendingPlugins, usePermissions, usePublicKeys, useReindexRepository, useRenameRepository, useRepositories, useRepository, useRepositoryContext, useRepositoryRevisionContext, useRepositoryRole, useRepositoryRoles, useRepositoryTypes, useRepositoryVerbs, useRequiredIndexLink, useRequiredMe, useRevert, useRunHealthCheck, useSearch, useSearchCounts, useSearchHelpContent, useSearchSyntaxContent, useSearchTypes, useSearchableTypes, useSetGroupPermissions, useSetUserPassword, useSetUserPermissions, useSources, useSubject, useSuggestions, useTag, useTags, useUnarchiveRepository, useUninstallPlugin, useUpdateConfig, useUpdateGroup, useUpdateInfo, useUpdatePermission, useUpdatePlugins, useUpdateRepository, useUpdateRepositoryRole, useUpdateUser, useUser, useUserOptions, useUserPermissionOverview, useUserPermissions, useUserSuggestions, useUsers, useVersion, waitForRestartAfter };
828
+ export { AdditionalMessage, ApiProvider, Props as ApiProviderProps, ApiResult, ApiResultWithFetching, BackendError, BackendErrorContent, BadGatewayError, BaseContext, CONTENT_TYPE_PUBLIC_KEY, CancelablePromise, ConflictError, ConvertToInternalRequest, DeleteFunction, ForbiddenError, LegacyContext, LegacyContextProvider, MissingLinkError, NamespaceAndNameContext, NamespaceAndNameContextProvider, NotFoundError, RepositoryContextProvider, RepositoryRevisionContextProvider, RevertRequest, RevertResponse, SearchOptions, TOKEN_EXPIRED_ERROR_CODE, TokenExpiredError, UnauthorizedError, UseAvailablePluginsOptions, UseDeleteRepositoryOptions, UseGroupsRequest, UseHistoryRequest, UseInstalledPluginsOptions, UseRepositoriesRequest, UseRepositoryRolesRequest, UseSourcesOptions, UseUsersRequest, Violation, apiClient, changesetQueryKey, clearCache, createBackendError, createChangesetUrl, createDiffUrl, createQueryString, createUrl, createUrlWithIdentifiers, extractXsrfTokenFromCookie, fetchResourceFromLocationHeader, getResponseJson, isBackendError, makeCancelable, objectLink, requiredLink, urls, useAlerts, useAnnotations, useApiKeys, useArchiveRepository, useAvailableGlobalPermissions, useAvailablePermissions, useAvailablePlugins, useBranch, useBranchDetails, useBranchDetailsCollection, useBranches, useCancelPendingPlugins, useCancellablePromise, useChangeUserPassword, useChangeset, useChangesets, useClearNotifications, useConfig, useConfigLink, useContainedInTags, useContentType, useConvertToExternal, useConvertToInternal, useCreateApiKey, useCreateBranch, useCreateGroup, useCreatePermission, useCreatePublicKey, useCreateRepository, useCreateRepositoryRole, useCreateTag, useCreateUser, useDefaultBranch, useDeleteApiKey, useDeleteBranch, useDeleteGroup, useDeletePermission, useDeletePublicKey, useDeleteRepository, useDeleteRepositoryRole, useDeleteTag, useDeleteUser, useDiff, useDismissNotification, useExecutePendingPlugins, useExportInfo, useExportRepository, useFileContent, useGroup, useGroupOptions, useGroupPermissions, useGroupSuggestions, useGroups, useHistory, useImportFullRepository, useImportLog, useImportRepositoryFromBundle, useImportRepositoryFromUrl, useIncomingChangesets, useIndex, useIndexJsonResource, useIndexLink, useIndexLinks, useInstallPlugin, useInstalledPlugins, useInvalidateAllCaches, useInvalidateSearchIndices, useJsonResource, useLegacyContext, useLocalStorage, useLogin, useLoginInfo, useLogout, useMe, useNamespace, useNamespaceAndNameContext, useNamespaceOptions, useNamespaceStrategies, useNamespaceSuggestions, useNamespaces, useNotificationSubscription, useNotifications, useOmniSearch, usePaths, usePendingPlugins, usePermissions, usePluginCenterAuthInfo, usePluginCenterLogout, usePublicKeys, useReindexRepository, useRenameRepository, useRepositories, useRepository, useRepositoryContext, useRepositoryRevisionContext, useRepositoryRole, useRepositoryRoles, useRepositoryTypes, useRepositoryVerbs, useRequiredIndexLink, useRequiredMe, useRevert, useRunHealthCheck, useSearch, useSearchCounts, useSearchHelpContent, useSearchSyntaxContent, useSearchTypes, useSearchableTypes, useSetGroupPermissions, useSetUserPassword, useSetUserPermissions, useSources, useSubject, useSuggestions, useTag, useTags, useUnarchiveRepository, useUninstallPlugin, useUpdateConfig, useUpdateGroup, useUpdateInfo, useUpdatePermission, useUpdatePlugins, useUpdateRepository, useUpdateRepositoryRole, useUpdateUser, useUser, useUserOptions, useUserPermissionOverview, useUserPermissions, useUserSuggestions, useUsers, useVersion, waitForRestartAfter };
package/build/index.js CHANGED
@@ -144,6 +144,8 @@ __export(src_exports, {
144
144
  usePaths: () => usePaths,
145
145
  usePendingPlugins: () => usePendingPlugins,
146
146
  usePermissions: () => usePermissions,
147
+ usePluginCenterAuthInfo: () => usePluginCenterAuthInfo,
148
+ usePluginCenterLogout: () => usePluginCenterLogout,
147
149
  usePublicKeys: () => usePublicKeys,
148
150
  useReindexRepository: () => useReindexRepository,
149
151
  useRenameRepository: () => useRenameRepository,
@@ -3283,8 +3285,68 @@ var useInvalidateSearchIndices = () => {
3283
3285
  return useInvalidation(invalidateSearchIndexLink);
3284
3286
  };
3285
3287
 
3286
- // src/compare.ts
3288
+ // src/usePluginCenterAuthInfo.ts
3287
3289
  var import_react_query33 = require("react-query");
3290
+ var import_react_router_dom = require("react-router-dom");
3291
+ var appendQueryParam = (link, name, value) => {
3292
+ let href = link.href;
3293
+ if (href.includes("?")) {
3294
+ href += "&";
3295
+ } else {
3296
+ href += "?";
3297
+ }
3298
+ link.href = href + name + "=" + value;
3299
+ };
3300
+ var usePluginCenterAuthInfo = () => {
3301
+ const link = useIndexLink("pluginCenterAuth");
3302
+ const location = (0, import_react_router_dom.useLocation)();
3303
+ return (0, import_react_query33.useQuery)(
3304
+ ["pluginCenterAuth"],
3305
+ () => {
3306
+ if (!link) {
3307
+ throw new Error("no such plugin center auth link");
3308
+ }
3309
+ return apiClient.get(link).then((response) => response.json()).then((result) => {
3310
+ var _a, _b;
3311
+ if ((_a = result._links) == null ? void 0 : _a.login) {
3312
+ appendQueryParam(result._links.login, "source", location.pathname);
3313
+ }
3314
+ if ((_b = result._links) == null ? void 0 : _b.reconnect) {
3315
+ appendQueryParam(result._links.reconnect, "source", location.pathname);
3316
+ }
3317
+ return result;
3318
+ });
3319
+ },
3320
+ {
3321
+ enabled: !!link
3322
+ }
3323
+ );
3324
+ };
3325
+ var usePluginCenterLogout = (authenticationInfo) => {
3326
+ const queryClient2 = (0, import_react_query33.useQueryClient)();
3327
+ const { mutate, isLoading, error } = (0, import_react_query33.useMutation)(
3328
+ () => {
3329
+ if (!authenticationInfo._links.logout) {
3330
+ throw new Error("authenticationInfo has no logout link");
3331
+ }
3332
+ const logout = authenticationInfo._links.logout;
3333
+ return apiClient.delete(logout.href);
3334
+ },
3335
+ {
3336
+ onSuccess: () => queryClient2.invalidateQueries("pluginCenterAuth")
3337
+ }
3338
+ );
3339
+ return {
3340
+ logout: () => {
3341
+ mutate();
3342
+ },
3343
+ isLoading,
3344
+ error
3345
+ };
3346
+ };
3347
+
3348
+ // src/compare.ts
3349
+ var import_react_query34 = require("react-query");
3288
3350
  function createIncomingUrl(repository, linkName, source, target) {
3289
3351
  const link = repository._links[linkName];
3290
3352
  if (link == null ? void 0 : link.templated) {
@@ -3304,7 +3366,7 @@ function createDiffUrl(repository, source, target) {
3304
3366
  }
3305
3367
  }
3306
3368
  var useIncomingChangesets = (repository, source, target, request) => {
3307
- const queryClient2 = (0, import_react_query33.useQueryClient)();
3369
+ const queryClient2 = (0, import_react_query34.useQueryClient)();
3308
3370
  let link = createChangesetUrl(repository, source, target);
3309
3371
  if ((request == null ? void 0 : request.page) || (request == null ? void 0 : request.limit)) {
3310
3372
  if ((request == null ? void 0 : request.page) && (request == null ? void 0 : request.limit)) {
@@ -3315,7 +3377,7 @@ var useIncomingChangesets = (repository, source, target, request) => {
3315
3377
  link = `${link}?pageSize=${request.limit}`;
3316
3378
  }
3317
3379
  }
3318
- return (0, import_react_query33.useQuery)(
3380
+ return (0, import_react_query34.useQuery)(
3319
3381
  ["repository", repository.namespace, repository.name, "compare", source, target, "changesets", (request == null ? void 0 : request.page) || 0],
3320
3382
  () => apiClient.get(link).then((response) => response.json()),
3321
3383
  {
@@ -3373,12 +3435,12 @@ function useLocalStorage(key, initialValue) {
3373
3435
  }
3374
3436
 
3375
3437
  // src/useAutocompleteOptions.ts
3376
- var import_react_query34 = require("react-query");
3438
+ var import_react_query35 = require("react-query");
3377
3439
  var import_react_i18next = require("react-i18next");
3378
3440
  var defaultLabelFactory = (element) => element.displayName ? `${element.displayName} (${element.id})` : element.id;
3379
3441
  function useAutocompleteOptions(query = "", link, options = {}) {
3380
3442
  const [t] = (0, import_react_i18next.useTranslation)("commons");
3381
- return (0, import_react_query34.useQuery)(
3443
+ return (0, import_react_query35.useQuery)(
3382
3444
  ["options", link, query],
3383
3445
  () => apiClient.get(link + "?q=" + query).then((r) => r.json()).then((json) => {
3384
3446
  const result = json.map((element) => ({
@@ -3429,9 +3491,9 @@ var useUserOptions = (query) => {
3429
3491
 
3430
3492
  // src/ApiProvider.tsx
3431
3493
  var import_react11 = __toESM(require("react"));
3432
- var import_react_query35 = require("react-query");
3494
+ var import_react_query36 = require("react-query");
3433
3495
  var import_devtools = require("react-query/devtools");
3434
- var queryClient = new import_react_query35.QueryClient({
3496
+ var queryClient = new import_react_query36.QueryClient({
3435
3497
  defaultOptions: {
3436
3498
  queries: {
3437
3499
  retry: false
@@ -3455,7 +3517,7 @@ var ApiProvider = ({ children, index, me, onMeFetched, onIndexFetched, devtools
3455
3517
  }
3456
3518
  }
3457
3519
  }, [me, onMeFetched]);
3458
- return /* @__PURE__ */ import_react11.default.createElement(import_react_query35.QueryClientProvider, {
3520
+ return /* @__PURE__ */ import_react11.default.createElement(import_react_query36.QueryClientProvider, {
3459
3521
  client: queryClient
3460
3522
  }, /* @__PURE__ */ import_react11.default.createElement(LegacyContextProvider, {
3461
3523
  onIndexFetched,
@@ -3622,6 +3684,8 @@ var RepositoryRevisionContextProvider = ({ revision, children }) => /* @__PURE__
3622
3684
  usePaths,
3623
3685
  usePendingPlugins,
3624
3686
  usePermissions,
3687
+ usePluginCenterAuthInfo,
3688
+ usePluginCenterLogout,
3625
3689
  usePublicKeys,
3626
3690
  useReindexRepository,
3627
3691
  useRenameRepository,
package/build/index.mjs CHANGED
@@ -3093,8 +3093,68 @@ var useInvalidateSearchIndices = () => {
3093
3093
  return useInvalidation(invalidateSearchIndexLink);
3094
3094
  };
3095
3095
 
3096
+ // src/usePluginCenterAuthInfo.ts
3097
+ import { useMutation as useMutation18, useQuery as useQuery27, useQueryClient as useQueryClient18 } from "react-query";
3098
+ import { useLocation } from "react-router-dom";
3099
+ var appendQueryParam = (link, name, value) => {
3100
+ let href = link.href;
3101
+ if (href.includes("?")) {
3102
+ href += "&";
3103
+ } else {
3104
+ href += "?";
3105
+ }
3106
+ link.href = href + name + "=" + value;
3107
+ };
3108
+ var usePluginCenterAuthInfo = () => {
3109
+ const link = useIndexLink("pluginCenterAuth");
3110
+ const location = useLocation();
3111
+ return useQuery27(
3112
+ ["pluginCenterAuth"],
3113
+ () => {
3114
+ if (!link) {
3115
+ throw new Error("no such plugin center auth link");
3116
+ }
3117
+ return apiClient.get(link).then((response) => response.json()).then((result) => {
3118
+ var _a, _b;
3119
+ if ((_a = result._links) == null ? void 0 : _a.login) {
3120
+ appendQueryParam(result._links.login, "source", location.pathname);
3121
+ }
3122
+ if ((_b = result._links) == null ? void 0 : _b.reconnect) {
3123
+ appendQueryParam(result._links.reconnect, "source", location.pathname);
3124
+ }
3125
+ return result;
3126
+ });
3127
+ },
3128
+ {
3129
+ enabled: !!link
3130
+ }
3131
+ );
3132
+ };
3133
+ var usePluginCenterLogout = (authenticationInfo) => {
3134
+ const queryClient2 = useQueryClient18();
3135
+ const { mutate, isLoading, error } = useMutation18(
3136
+ () => {
3137
+ if (!authenticationInfo._links.logout) {
3138
+ throw new Error("authenticationInfo has no logout link");
3139
+ }
3140
+ const logout = authenticationInfo._links.logout;
3141
+ return apiClient.delete(logout.href);
3142
+ },
3143
+ {
3144
+ onSuccess: () => queryClient2.invalidateQueries("pluginCenterAuth")
3145
+ }
3146
+ );
3147
+ return {
3148
+ logout: () => {
3149
+ mutate();
3150
+ },
3151
+ isLoading,
3152
+ error
3153
+ };
3154
+ };
3155
+
3096
3156
  // src/compare.ts
3097
- import { useQuery as useQuery27, useQueryClient as useQueryClient18 } from "react-query";
3157
+ import { useQuery as useQuery28, useQueryClient as useQueryClient19 } from "react-query";
3098
3158
  function createIncomingUrl(repository, linkName, source, target) {
3099
3159
  const link = repository._links[linkName];
3100
3160
  if (link == null ? void 0 : link.templated) {
@@ -3114,7 +3174,7 @@ function createDiffUrl(repository, source, target) {
3114
3174
  }
3115
3175
  }
3116
3176
  var useIncomingChangesets = (repository, source, target, request) => {
3117
- const queryClient2 = useQueryClient18();
3177
+ const queryClient2 = useQueryClient19();
3118
3178
  let link = createChangesetUrl(repository, source, target);
3119
3179
  if ((request == null ? void 0 : request.page) || (request == null ? void 0 : request.limit)) {
3120
3180
  if ((request == null ? void 0 : request.page) && (request == null ? void 0 : request.limit)) {
@@ -3125,7 +3185,7 @@ var useIncomingChangesets = (repository, source, target, request) => {
3125
3185
  link = `${link}?pageSize=${request.limit}`;
3126
3186
  }
3127
3187
  }
3128
- return useQuery27(
3188
+ return useQuery28(
3129
3189
  ["repository", repository.namespace, repository.name, "compare", source, target, "changesets", (request == null ? void 0 : request.page) || 0],
3130
3190
  () => apiClient.get(link).then((response) => response.json()),
3131
3191
  {
@@ -3183,12 +3243,12 @@ function useLocalStorage(key, initialValue) {
3183
3243
  }
3184
3244
 
3185
3245
  // src/useAutocompleteOptions.ts
3186
- import { useQuery as useQuery28 } from "react-query";
3246
+ import { useQuery as useQuery29 } from "react-query";
3187
3247
  import { useTranslation } from "react-i18next";
3188
3248
  var defaultLabelFactory = (element) => element.displayName ? `${element.displayName} (${element.id})` : element.id;
3189
3249
  function useAutocompleteOptions(query = "", link, options = {}) {
3190
3250
  const [t] = useTranslation("commons");
3191
- return useQuery28(
3251
+ return useQuery29(
3192
3252
  ["options", link, query],
3193
3253
  () => apiClient.get(link + "?q=" + query).then((r) => r.json()).then((json) => {
3194
3254
  const result = json.map((element) => ({
@@ -3431,6 +3491,8 @@ export {
3431
3491
  usePaths,
3432
3492
  usePendingPlugins,
3433
3493
  usePermissions,
3494
+ usePluginCenterAuthInfo,
3495
+ usePluginCenterLogout,
3434
3496
  usePublicKeys,
3435
3497
  useReindexRepository,
3436
3498
  useRenameRepository,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scm-manager/ui-api",
3
- "version": "3.8.1-20250505-081427",
3
+ "version": "3.8.1-20250510-092900",
4
4
  "description": "React hook api for the SCM-Manager backend",
5
5
  "main": "build/index.js",
6
6
  "module": "build/index.mjs",
@@ -26,7 +26,7 @@
26
26
  "react-i18next": "11"
27
27
  },
28
28
  "devDependencies": {
29
- "@scm-manager/ui-types": "3.8.1-20250505-081427",
29
+ "@scm-manager/ui-types": "3.8.1-20250510-092900",
30
30
  "tsup": "^5.12.6",
31
31
  "@types/react-test-renderer": "^17.0.1",
32
32
  "@scm-manager/babel-preset": "^2.13.1",