hh-contracts 0.0.108 → 0.0.110
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/common/constants/app-statuses.constant.js +6 -0
- package/build/common/constants/icon.constants.js +4 -0
- package/build/index.js +1 -0
- package/build/users/contracts/assign-user-role.contract.js +15 -0
- package/build/users/contracts/create-user.contract.js +14 -0
- package/build/users/contracts/delete-user.contract.js +46 -0
- package/build/users/contracts/find-many-users.contract.js +71 -0
- package/build/users/contracts/find-user.contract.js +13 -0
- package/build/users/contracts/index.js +23 -0
- package/build/users/contracts/replace-user-role-assignments.contract.js +15 -0
- package/build/users/contracts/update-user.contract.js +14 -0
- package/build/users/index.js +20 -0
- package/build/users/user-role-assignments.models.js +107 -0
- package/build/users/user.models.js +80 -0
- package/build/users/users.api.js +17 -0
- package/package.json +15 -3
- package/app-menu/get.query.ts +0 -17
- package/app-menu/index.ts +0 -1
- package/common/constants/app-ability.constant.ts +0 -22
- package/common/constants/app-errors.constant.ts +0 -235
- package/common/constants/app-statuses.constant.ts +0 -26
- package/common/constants/array-splitter.constant.ts +0 -1
- package/common/constants/default-pagination-config.constant.ts +0 -5
- package/common/constants/domain-name.constant.ts +0 -8
- package/common/constants/entity.constant.ts +0 -10
- package/common/constants/http-method.constant.ts +0 -9
- package/common/constants/icon.constants.ts +0 -85
- package/common/constants/index.ts +0 -18
- package/common/constants/kind-of-app.constant.ts +0 -7
- package/common/constants/locales.constant.ts +0 -26
- package/common/constants/navigation-item-type.constant.ts +0 -6
- package/common/constants/order-direction.constant.ts +0 -10
- package/common/constants/role-types.constant.ts +0 -8
- package/common/constants/route-component-key.constants.ts +0 -5
- package/common/constants/slug.constant.ts +0 -8
- package/common/constants/time-zone.constant.ts +0 -4
- package/common/constants/translatable-field.constant.ts +0 -10
- package/common/index.ts +0 -5
- package/common/models/boolean-query-param.schema.ts +0 -8
- package/common/models/common-query-params.schema.ts +0 -10
- package/common/models/domain-name.schema.ts +0 -14
- package/common/models/icon-key.schema.ts +0 -4
- package/common/models/index.ts +0 -15
- package/common/models/info.schema.ts +0 -8
- package/common/models/language-keys.schema.ts +0 -4
- package/common/models/navigation-item.schemas.ts +0 -29
- package/common/models/order.schema.ts +0 -7
- package/common/models/pagination.schema.ts +0 -18
- package/common/models/search.schema.ts +0 -5
- package/common/models/slug.schema.ts +0 -14
- package/common/models/timestamp.schemas.ts +0 -14
- package/common/models/timezone.schema.ts +0 -10
- package/common/models/translations.schemas.ts +0 -14
- package/common/models/uuid.schemas.ts +0 -9
- package/common/types/index.ts +0 -1
- package/common/types/optionalized.type.ts +0 -40
- package/common/utils/create-api/create-api.ts +0 -28
- package/common/utils/create-api/index.ts +0 -2
- package/common/utils/create-api/types.ts +0 -34
- package/common/utils/index.ts +0 -2
- package/common/utils/zod-message-key/index.ts +0 -1
- package/common/utils/zod-message-key/types.ts +0 -7
- package/common/utils/zod-message-key/zod-message-key.util.ts +0 -31
- package/companies/company.models.ts +0 -11
- package/companies/index.ts +0 -1
- package/hotels/amenities/hotel-amenity.model.ts +0 -10
- package/hotels/amenities/index.ts +0 -1
- package/hotels/constants/hotel-amenity.constant.ts +0 -18
- package/hotels/constants/hotel-contact-type.constant.ts +0 -12
- package/hotels/constants/hotel-feature.constant.ts +0 -14
- package/hotels/constants/hotel-integration-connection-state.constant.ts +0 -13
- package/hotels/constants/hotel-integration-credential-status.constant.ts +0 -12
- package/hotels/constants/hotel-integration-provider.constant.ts +0 -11
- package/hotels/constants/hotel-integration-sync-status.constant.ts +0 -13
- package/hotels/constants/hotel-policy-type.constant.ts +0 -15
- package/hotels/constants/hotel-rating-source.constant.ts +0 -12
- package/hotels/constants/index.ts +0 -9
- package/hotels/contacts/hotel-contact.model.ts +0 -15
- package/hotels/contacts/index.ts +0 -1
- package/hotels/contracts/create-hotel.contract.ts +0 -16
- package/hotels/contracts/delete-hotel.contract.ts +0 -12
- package/hotels/contracts/find-hotel.contract.ts +0 -27
- package/hotels/contracts/find-many-hotels.contract.ts +0 -41
- package/hotels/contracts/index.ts +0 -5
- package/hotels/contracts/update-hotel.contract.ts +0 -17
- package/hotels/domains/contracts/find-hotel-domain-settings.contract.ts +0 -13
- package/hotels/domains/contracts/index.ts +0 -2
- package/hotels/domains/contracts/update-hotel-domain-settings.contract.ts +0 -16
- package/hotels/domains/hotel-domains.api.ts +0 -11
- package/hotels/domains/hotel-domains.schema.ts +0 -25
- package/hotels/domains/index.ts +0 -3
- package/hotels/features/hotel-feature.model.ts +0 -14
- package/hotels/features/index.ts +0 -1
- package/hotels/hotel.models.ts +0 -72
- package/hotels/hotels.api.ts +0 -22
- package/hotels/index.ts +0 -14
- package/hotels/integrations/configs/index.ts +0 -1
- package/hotels/integrations/configs/opera-integration-config.model.ts +0 -6
- package/hotels/integrations/contracts/create-hotel-integration.contract.ts +0 -21
- package/hotels/integrations/contracts/delete-hotel-integration.contract.ts +0 -14
- package/hotels/integrations/contracts/find-all-hotel-integrations.contract.ts +0 -18
- package/hotels/integrations/contracts/find-hotel-integration.contract.ts +0 -15
- package/hotels/integrations/contracts/index.ts +0 -5
- package/hotels/integrations/contracts/update-hotel-integration.contract.ts +0 -21
- package/hotels/integrations/hotel-integration.model.ts +0 -80
- package/hotels/integrations/hotel-integrations.api.ts +0 -16
- package/hotels/integrations/index.ts +0 -3
- package/hotels/location/hotel-location.model.ts +0 -17
- package/hotels/location/index.ts +0 -1
- package/hotels/policies/hotel-policy.model.ts +0 -16
- package/hotels/policies/index.ts +0 -1
- package/hotels/ratings/hotel-rating.model.ts +0 -15
- package/hotels/ratings/index.ts +0 -1
- package/hotels/sites/contracts/find-hotel-site-page-by-lang.contract.ts +0 -26
- package/hotels/sites/contracts/index.ts +0 -1
- package/hotels/sites/hotel-pages.api.ts +0 -24
- package/hotels/sites/index.ts +0 -2
- package/hotels/themes/constants/accent-colors.constant.ts +0 -18
- package/hotels/themes/constants/fonts.constant.ts +0 -9
- package/hotels/themes/constants/index.ts +0 -3
- package/hotels/themes/constants/radius.constant.ts +0 -12
- package/hotels/themes/contracts/find-hotel-theme.contract.ts +0 -13
- package/hotels/themes/contracts/index.ts +0 -1
- package/hotels/themes/hotel-themes.api.ts +0 -20
- package/hotels/themes/index.ts +0 -4
- package/hotels/themes/theme.models.ts +0 -13
- package/index.ts +0 -10
- package/pages/constants/block-type.constant.ts +0 -11
- package/pages/constants/cta-actions.constant.ts +0 -5
- package/pages/constants/hero.constants.ts +0 -18
- package/pages/constants/image-loading.constant.ts +0 -8
- package/pages/constants/index.ts +0 -5
- package/pages/constants/media.constants.ts +0 -20
- package/pages/index.ts +0 -2
- package/pages/models/blocks/base-block.schema.ts +0 -11
- package/pages/models/blocks/block.schemas.ts +0 -57
- package/pages/models/blocks/cta.schema.ts +0 -58
- package/pages/models/blocks/hero-block.schema.ts +0 -27
- package/pages/models/blocks/html-block.schema.ts +0 -14
- package/pages/models/blocks/index.ts +0 -6
- package/pages/models/blocks/media.schemas.ts +0 -66
- package/pages/models/index.ts +0 -2
- package/pages/models/page.schema.ts +0 -29
- package/permissions/contracts/create-permission.contract.ts +0 -18
- package/permissions/contracts/delete-permission.contract.ts +0 -12
- package/permissions/contracts/find-all-permission.contract.ts +0 -13
- package/permissions/contracts/find-many-permission.contract.ts +0 -40
- package/permissions/contracts/find-permission.contract.ts +0 -13
- package/permissions/contracts/index.ts +0 -6
- package/permissions/contracts/update-permission.contract.ts +0 -17
- package/permissions/index.ts +0 -3
- package/permissions/permission.models.ts +0 -37
- package/permissions/permissions.api.ts +0 -15
- package/permissions/permisson-conditions.model.ts +0 -7
- package/roles/contracts/create-role.contract.ts +0 -16
- package/roles/contracts/delete-role.contract.ts +0 -12
- package/roles/contracts/find-many-roles.contract.ts +0 -55
- package/roles/contracts/find-role.contract.ts +0 -13
- package/roles/contracts/index.ts +0 -5
- package/roles/contracts/update-role.contract.ts +0 -17
- package/roles/index.ts +0 -3
- package/roles/role.models.ts +0 -52
- package/roles/roles.api.ts +0 -14
- package/tenants/contracts/index.ts +0 -1
- package/tenants/contracts/resolve-tenant.contract.ts +0 -32
- package/tenants/index.ts +0 -3
- package/tenants/tenant.model.ts +0 -19
- package/tenants/tenants.api.ts +0 -10
- package/translate/contracts/index.ts +0 -2
- package/translate/contracts/translate-object.contract.ts +0 -54
- package/translate/contracts/translate-text.contract.ts +0 -24
- package/translate/index.ts +0 -2
- package/translate/translate.api.ts +0 -11
- package/translate/translate.schemas.ts +0 -7
- package/translations/index.ts +0 -4
- package/translations/resolve-translation-value-type.helper.ts +0 -14
- package/translations/translation-value-type-policy.ts +0 -22
- package/translations/translation-value-types.constant.ts +0 -10
- package/translations/translation.models.ts +0 -13
- package/tsconfig.json +0 -112
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { BLOCK_TYPE_VALUES } from '../../constants';
|
|
3
|
-
|
|
4
|
-
export const BaseBlockSchema = z.object({
|
|
5
|
-
id: z.uuid(),
|
|
6
|
-
key: z.string(),
|
|
7
|
-
order: z.number().int().nonnegative(),
|
|
8
|
-
type: z.enum(BLOCK_TYPE_VALUES),
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
export type TBaseBlock = z.infer<typeof BaseBlockSchema>;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HeroTranslationSchema, HeroBlockSchema, THeroBlock } from './hero-block.schema';
|
|
3
|
-
import { HtmlBlockSchema, HtmlTranslationSchema, THtmlBlock } from './html-block.schema';
|
|
4
|
-
import {
|
|
5
|
-
ButtonCtaBlockSchema,
|
|
6
|
-
ButtonCtaTranslationSchema,
|
|
7
|
-
CtaBlockSchema,
|
|
8
|
-
CtaTranslationSchema,
|
|
9
|
-
LinkCtaBlockSchema,
|
|
10
|
-
LinkCtaTranslationSchema,
|
|
11
|
-
TCtaBlock,
|
|
12
|
-
} from './cta.schema';
|
|
13
|
-
import { BLOCK_TYPES } from '../../constants';
|
|
14
|
-
import { BaseBlockSchema } from './base-block.schema';
|
|
15
|
-
import { TBaseBlock } from './base-block.schema';
|
|
16
|
-
|
|
17
|
-
// Контейнерный блок: тип с рекурсией по детям
|
|
18
|
-
export type TContainerBlock = TBaseBlock & {
|
|
19
|
-
type: typeof BLOCK_TYPES.container;
|
|
20
|
-
config?: { gap?: number };
|
|
21
|
-
children: TBlock[];
|
|
22
|
-
};
|
|
23
|
-
export const ContainerBlockSchema = BaseBlockSchema.extend({
|
|
24
|
-
type: z.literal(BLOCK_TYPES.container),
|
|
25
|
-
config: z.object({
|
|
26
|
-
gap: z.number().int().nonnegative().default(0),
|
|
27
|
-
}),
|
|
28
|
-
children: z.array(z.lazy(() => BlockSchema)),
|
|
29
|
-
});
|
|
30
|
-
export const ContainerTranslationSchema = z.object({
|
|
31
|
-
type: z.literal(BLOCK_TYPES.container),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Общий тип блока: union с контейнером
|
|
35
|
-
export type TBlock = THeroBlock | TContainerBlock | THtmlBlock | TCtaBlock;
|
|
36
|
-
// Схема блока (union) с явной аннотацией и z.lazy
|
|
37
|
-
export const BlockSchema: z.ZodType<TBlock> = z.lazy(() =>
|
|
38
|
-
z.discriminatedUnion('type', [
|
|
39
|
-
HeroBlockSchema,
|
|
40
|
-
ContainerBlockSchema,
|
|
41
|
-
HtmlBlockSchema,
|
|
42
|
-
LinkCtaBlockSchema,
|
|
43
|
-
ButtonCtaBlockSchema,
|
|
44
|
-
]),
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
export const BlockTranslationSchema = z.discriminatedUnion('type', [
|
|
48
|
-
HeroTranslationSchema,
|
|
49
|
-
ContainerTranslationSchema,
|
|
50
|
-
HtmlTranslationSchema,
|
|
51
|
-
LinkCtaTranslationSchema,
|
|
52
|
-
ButtonCtaTranslationSchema,
|
|
53
|
-
]);
|
|
54
|
-
export type TBlockTranslation = z.infer<typeof BlockTranslationSchema>;
|
|
55
|
-
// Переводы по ключу блока (контейнер не имеет собственных переводов)
|
|
56
|
-
export const BlocksTranslationSchema = z.record(z.string(), BlockTranslationSchema);
|
|
57
|
-
export type TBlocksTranslation = z.infer<typeof BlocksTranslationSchema>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { BLOCK_TYPES, CTA_ACTIONS_VALUES } from '../../constants';
|
|
3
|
-
import { ICON_POSITION_VALUES, IconKeySchema } from '../../../common';
|
|
4
|
-
import { BaseBlockSchema } from './base-block.schema';
|
|
5
|
-
|
|
6
|
-
const BaseCtaConfigSchema = z.object({
|
|
7
|
-
key: z.string(),
|
|
8
|
-
iconKey: IconKeySchema.optional(),
|
|
9
|
-
iconPosition: z.enum(ICON_POSITION_VALUES).optional(),
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const BaseCtaBlockSchema = BaseBlockSchema.extend({
|
|
13
|
-
...BaseCtaConfigSchema.omit({ key: true }).shape,
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
const CtaLinkSchema = z.object({
|
|
17
|
-
type: z.literal(BLOCK_TYPES.linkCta),
|
|
18
|
-
href: z.url(),
|
|
19
|
-
});
|
|
20
|
-
const LinkCtaConfigSchema = BaseCtaConfigSchema.extend(CtaLinkSchema.shape);
|
|
21
|
-
export const LinkCtaBlockSchema = BaseCtaBlockSchema.extend(CtaLinkSchema.shape);
|
|
22
|
-
|
|
23
|
-
const CtaButtonSchema = z.object({
|
|
24
|
-
type: z.literal(BLOCK_TYPES.buttonCta),
|
|
25
|
-
action: z.enum(CTA_ACTIONS_VALUES).optional(),
|
|
26
|
-
});
|
|
27
|
-
const ButtonCtaConfigSchema = BaseCtaConfigSchema.extend(CtaButtonSchema.shape);
|
|
28
|
-
export const ButtonCtaBlockSchema = BaseCtaBlockSchema.extend(CtaButtonSchema.shape);
|
|
29
|
-
|
|
30
|
-
export const CtaBlockSchema = z.discriminatedUnion('type', [
|
|
31
|
-
LinkCtaBlockSchema,
|
|
32
|
-
ButtonCtaBlockSchema,
|
|
33
|
-
]);
|
|
34
|
-
export type TCtaBlock = z.infer<typeof CtaBlockSchema>;
|
|
35
|
-
|
|
36
|
-
export const CtaConfigSchema = z.discriminatedUnion('type', [
|
|
37
|
-
LinkCtaConfigSchema,
|
|
38
|
-
ButtonCtaConfigSchema,
|
|
39
|
-
]);
|
|
40
|
-
export type TCtaConfig = z.infer<typeof CtaConfigSchema>;
|
|
41
|
-
|
|
42
|
-
export const CtaTranslationSchema = z.object({
|
|
43
|
-
label: z.string().optional(),
|
|
44
|
-
iconAlt: z.string().optional(),
|
|
45
|
-
});
|
|
46
|
-
export type TCtaTranslation = z.infer<typeof CtaTranslationSchema>;
|
|
47
|
-
|
|
48
|
-
export const LinkCtaTranslationSchema = z.object({
|
|
49
|
-
type: z.literal(BLOCK_TYPES.linkCta),
|
|
50
|
-
...CtaTranslationSchema.shape,
|
|
51
|
-
});
|
|
52
|
-
export type TLinkCtaTranslation = z.infer<typeof LinkCtaTranslationSchema>;
|
|
53
|
-
|
|
54
|
-
export const ButtonCtaTranslationSchema = z.object({
|
|
55
|
-
type: z.literal(BLOCK_TYPES.buttonCta),
|
|
56
|
-
...CtaTranslationSchema.shape,
|
|
57
|
-
});
|
|
58
|
-
export type TButtonCtaTranslation = z.infer<typeof ButtonCtaTranslationSchema>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HERO_VARIANT_VALUES, HERO_HEIGHT_VALUES, BLOCK_TYPES } from '../../constants';
|
|
3
|
-
import { BaseBlockSchema } from './base-block.schema';
|
|
4
|
-
import { MediaSchema } from './media.schemas';
|
|
5
|
-
import { CtaConfigSchema, CtaTranslationSchema } from './cta.schema';
|
|
6
|
-
|
|
7
|
-
export const HeroBlockSchema = BaseBlockSchema.extend({
|
|
8
|
-
type: z.literal(BLOCK_TYPES.hero),
|
|
9
|
-
variant: z.enum(HERO_VARIANT_VALUES),
|
|
10
|
-
config: z.object({
|
|
11
|
-
height: z.enum(HERO_HEIGHT_VALUES),
|
|
12
|
-
media: z.array(MediaSchema),
|
|
13
|
-
ctas: z.array(CtaConfigSchema),
|
|
14
|
-
}),
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
export type THeroBlock = z.infer<typeof HeroBlockSchema>;
|
|
18
|
-
|
|
19
|
-
export const HeroTranslationSchema = z.object({
|
|
20
|
-
type: z.literal(BLOCK_TYPES.hero),
|
|
21
|
-
headline: z.string(),
|
|
22
|
-
subheadline: z.string().optional(),
|
|
23
|
-
description: z.string().optional(),
|
|
24
|
-
media: z.record(z.string(), z.object({ alt: z.string() })).optional(),
|
|
25
|
-
ctas: z.record(z.string(), CtaTranslationSchema).optional(),
|
|
26
|
-
});
|
|
27
|
-
export type THeroTranslation = z.infer<typeof HeroTranslationSchema>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { BLOCK_TYPES } from '../../constants';
|
|
3
|
-
import { BaseBlockSchema } from './base-block.schema';
|
|
4
|
-
|
|
5
|
-
export const HtmlBlockSchema = BaseBlockSchema.extend({
|
|
6
|
-
type: z.literal(BLOCK_TYPES.html),
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
export const HtmlTranslationSchema = z.object({
|
|
10
|
-
type: z.literal(BLOCK_TYPES.html),
|
|
11
|
-
content: z.string().optional(),
|
|
12
|
-
});
|
|
13
|
-
export type THtmlBlock = z.infer<typeof HtmlBlockSchema>;
|
|
14
|
-
export type THtmlTranslation = z.infer<typeof HtmlTranslationSchema>;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
IMAGE_LOADING,
|
|
4
|
-
IMAGE_LOADING_VALUES,
|
|
5
|
-
MEDIA_PRIORITIES,
|
|
6
|
-
MEDIA_PRIORITY_VALUES,
|
|
7
|
-
MEDIA_TYPES,
|
|
8
|
-
} from '../../constants';
|
|
9
|
-
|
|
10
|
-
// Базовые медиа типы
|
|
11
|
-
const BaseMediaSchema = z.object({
|
|
12
|
-
key: z.string(),
|
|
13
|
-
priority: z.array(z.enum(MEDIA_PRIORITY_VALUES)).default([MEDIA_PRIORITIES.all]),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export const MediaSourceSchema = z.object({
|
|
17
|
-
src: z.url(),
|
|
18
|
-
media: z.string().optional(),
|
|
19
|
-
type: z.string().optional(),
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
export const ImageMediaSchema = BaseMediaSchema.extend({
|
|
23
|
-
type: z.literal(MEDIA_TYPES.image),
|
|
24
|
-
sources: z.array(MediaSourceSchema),
|
|
25
|
-
alt: z.string().optional(),
|
|
26
|
-
loading: z.enum(IMAGE_LOADING_VALUES).default(IMAGE_LOADING.lazy),
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
export const VideoMediaSchema = BaseMediaSchema.extend({
|
|
30
|
-
type: z.literal(MEDIA_TYPES.video),
|
|
31
|
-
src: z.url(),
|
|
32
|
-
poster: z.url().optional(),
|
|
33
|
-
muted: z.boolean().default(true),
|
|
34
|
-
loop: z.boolean().default(false),
|
|
35
|
-
autoplay: z.boolean().default(true),
|
|
36
|
-
controls: z.boolean().default(false),
|
|
37
|
-
alt: z.string().optional(),
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
export const SliderImageSchema = z.object({
|
|
41
|
-
key: z.string(),
|
|
42
|
-
src: z.url(),
|
|
43
|
-
alt: z.string().optional(),
|
|
44
|
-
title: z.string().optional(),
|
|
45
|
-
description: z.string().optional(),
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
export const SliderMediaSchema = BaseMediaSchema.extend({
|
|
49
|
-
type: z.literal(MEDIA_TYPES.slider),
|
|
50
|
-
images: z.array(SliderImageSchema),
|
|
51
|
-
autoplay: z.boolean().default(true),
|
|
52
|
-
interval: z.number().min(1000).default(5000),
|
|
53
|
-
showDots: z.boolean().default(true),
|
|
54
|
-
showArrows: z.boolean().default(true),
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
export const MediaSchema = z.discriminatedUnion('type', [
|
|
58
|
-
ImageMediaSchema,
|
|
59
|
-
VideoMediaSchema,
|
|
60
|
-
SliderMediaSchema,
|
|
61
|
-
]);
|
|
62
|
-
|
|
63
|
-
export type TMediaConfig = z.infer<typeof MediaSchema>;
|
|
64
|
-
export type TImageMedia = z.infer<typeof ImageMediaSchema>;
|
|
65
|
-
export type TVideoMedia = z.infer<typeof VideoMediaSchema>;
|
|
66
|
-
export type TSliderMedia = z.infer<typeof SliderMediaSchema>;
|
package/pages/models/index.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { AppStatuses, LanguageKeysSchema, makeTranslations, SlugSchema } from '../../common';
|
|
3
|
-
import { BlocksTranslationSchema, BlockSchema } from './blocks';
|
|
4
|
-
|
|
5
|
-
const MetaSchema = z.object({
|
|
6
|
-
slug: SlugSchema,
|
|
7
|
-
status: z.enum(AppStatuses.PAGE_VALUES),
|
|
8
|
-
revision: z.number().int().nonnegative().default(0),
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
export const PageLangTranslationSchema = z.object({
|
|
12
|
-
seo: z
|
|
13
|
-
.object({
|
|
14
|
-
title: z.string().optional(),
|
|
15
|
-
description: z.string().optional(),
|
|
16
|
-
ogImage: z.string().optional(),
|
|
17
|
-
})
|
|
18
|
-
.default({}),
|
|
19
|
-
blocks: BlocksTranslationSchema.default({}),
|
|
20
|
-
});
|
|
21
|
-
const TranslationsSchema = makeTranslations(PageLangTranslationSchema);
|
|
22
|
-
|
|
23
|
-
export const PageSchema = z.object({
|
|
24
|
-
meta: MetaSchema,
|
|
25
|
-
blocks: z.array(BlockSchema),
|
|
26
|
-
translations: TranslationsSchema,
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
export type TPage = z.infer<typeof PageSchema>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
4
|
-
import { PermissionWriteSchema, PermissionDetailSchema } from '../permission.models';
|
|
5
|
-
|
|
6
|
-
const CreatePermissionContractRequestSchema = PermissionWriteSchema;
|
|
7
|
-
|
|
8
|
-
export namespace CreatePermissionContract {
|
|
9
|
-
export const getUrl = PERMISSIONS_API.create;
|
|
10
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.create;
|
|
11
|
-
export const httpMethod = HTTP_METHODS.post;
|
|
12
|
-
|
|
13
|
-
export const RequestSchema = CreatePermissionContractRequestSchema;
|
|
14
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
15
|
-
|
|
16
|
-
export const ResponseSchema = PermissionDetailSchema;
|
|
17
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
18
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
4
|
-
|
|
5
|
-
export namespace DeletePermissionContract {
|
|
6
|
-
export const getUrl = PERMISSIONS_API.delete;
|
|
7
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.delete;
|
|
8
|
-
export const httpMethod = HTTP_METHODS.delete;
|
|
9
|
-
|
|
10
|
-
export const ResponseSchema = z.void();
|
|
11
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
12
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { PermissionListItemSchema } from '../permission.models';
|
|
4
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
5
|
-
|
|
6
|
-
export namespace FindAllPermissionsContract {
|
|
7
|
-
export const getUrl = PERMISSIONS_API.findAll;
|
|
8
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.findAll;
|
|
9
|
-
export const httpMethod = HTTP_METHODS.get;
|
|
10
|
-
|
|
11
|
-
export const ResponseSchema = z.array(PermissionListItemSchema);
|
|
12
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
13
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS, CommonQueryParamsSchema, PaginationResponseSchema } from '../../common';
|
|
3
|
-
import { PermissionListItemSchema } from '../permission.models';
|
|
4
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
5
|
-
|
|
6
|
-
const BaseQuerySchema = PermissionListItemSchema.pick({
|
|
7
|
-
subject: true,
|
|
8
|
-
action: true,
|
|
9
|
-
}).partial();
|
|
10
|
-
|
|
11
|
-
const OrderBySchema = PermissionListItemSchema.omit({ conditions: true }).keyof();
|
|
12
|
-
|
|
13
|
-
const FindManyPermissionsContractRequestSchema = BaseQuerySchema.extend({
|
|
14
|
-
...CommonQueryParamsSchema.shape,
|
|
15
|
-
orderBy: OrderBySchema.optional(),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
const FindManyPermissionsContractResponseSchema = z
|
|
19
|
-
.object({
|
|
20
|
-
permissions: z.array(PermissionListItemSchema),
|
|
21
|
-
})
|
|
22
|
-
.extend(PaginationResponseSchema.shape);
|
|
23
|
-
|
|
24
|
-
export namespace FindManyPermissionsContract {
|
|
25
|
-
export const getUrl = PERMISSIONS_API.findMany;
|
|
26
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.findMany;
|
|
27
|
-
export const httpMethod = HTTP_METHODS.get;
|
|
28
|
-
|
|
29
|
-
export const BaseFilterSchema = BaseQuerySchema;
|
|
30
|
-
export type TBaseFilter = z.infer<typeof BaseFilterSchema>;
|
|
31
|
-
|
|
32
|
-
export const SORTING_KEYS = OrderBySchema.options;
|
|
33
|
-
export type TSortingKey = z.infer<typeof OrderBySchema>;
|
|
34
|
-
|
|
35
|
-
export const RequestSchema = FindManyPermissionsContractRequestSchema;
|
|
36
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
37
|
-
|
|
38
|
-
export const ResponseSchema = FindManyPermissionsContractResponseSchema;
|
|
39
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
40
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { PermissionDetailSchema } from '../permission.models';
|
|
4
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
5
|
-
|
|
6
|
-
export namespace FindPermissionContract {
|
|
7
|
-
export const getUrl = PERMISSIONS_API.find;
|
|
8
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.find;
|
|
9
|
-
export const httpMethod = HTTP_METHODS.get;
|
|
10
|
-
|
|
11
|
-
export const ResponseSchema = PermissionDetailSchema;
|
|
12
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
13
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './create-permission.contract';
|
|
2
|
-
export * from './delete-permission.contract';
|
|
3
|
-
export * from './update-permission.contract';
|
|
4
|
-
export * from './find-permission.contract';
|
|
5
|
-
export * from './find-many-permission.contract';
|
|
6
|
-
export * from './find-all-permission.contract';
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { PermissionDetailSchema } from '../permission.models';
|
|
4
|
-
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
5
|
-
import { CreatePermissionContract } from './create-permission.contract';
|
|
6
|
-
|
|
7
|
-
export namespace UpdatePermissionContract {
|
|
8
|
-
export const getUrl = PERMISSIONS_API.update;
|
|
9
|
-
export const endpoint = PERMISSIONS_CONTROLLER.endpoints.update;
|
|
10
|
-
export const httpMethod = HTTP_METHODS.put;
|
|
11
|
-
|
|
12
|
-
export const RequestSchema = CreatePermissionContract.RequestSchema;
|
|
13
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
14
|
-
|
|
15
|
-
export const ResponseSchema = PermissionDetailSchema;
|
|
16
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
17
|
-
}
|
package/permissions/index.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { AppAbility, TimestampSchema, UuidSchema, makeTranslations } from '../common';
|
|
3
|
-
import { PermissionConditionFlagsSchema } from './permisson-conditions.model';
|
|
4
|
-
|
|
5
|
-
export const PermissionSchema = z.object({
|
|
6
|
-
action: z.enum(AppAbility.ACTION_VALUES),
|
|
7
|
-
subject: z.enum(AppAbility.SUBJECT_VALUES),
|
|
8
|
-
conditions: PermissionConditionFlagsSchema,
|
|
9
|
-
});
|
|
10
|
-
export type TPermission = z.infer<typeof PermissionSchema>;
|
|
11
|
-
|
|
12
|
-
export const PermissionPersistedSchema = PermissionSchema.extend({
|
|
13
|
-
id: UuidSchema,
|
|
14
|
-
...TimestampSchema.shape,
|
|
15
|
-
});
|
|
16
|
-
export type TPermissionPersisted = z.infer<typeof PermissionPersistedSchema>;
|
|
17
|
-
|
|
18
|
-
export const PermissionTranslationsSchema = z.object({
|
|
19
|
-
name: z.string().min(3),
|
|
20
|
-
description: z.string().optional(),
|
|
21
|
-
});
|
|
22
|
-
export type TPermissionTranslations = z.infer<typeof PermissionTranslationsSchema>;
|
|
23
|
-
|
|
24
|
-
export const PermissionWriteSchema = PermissionSchema.extend({
|
|
25
|
-
translations: makeTranslations(PermissionTranslationsSchema),
|
|
26
|
-
});
|
|
27
|
-
export type TPermissionWrite = z.infer<typeof PermissionWriteSchema>;
|
|
28
|
-
|
|
29
|
-
export const PermissionDetailSchema = PermissionPersistedSchema.extend({
|
|
30
|
-
translations: makeTranslations(PermissionTranslationsSchema),
|
|
31
|
-
});
|
|
32
|
-
export type TPermissionDetail = z.infer<typeof PermissionDetailSchema>;
|
|
33
|
-
|
|
34
|
-
export const PermissionListItemSchema = PermissionPersistedSchema.extend({
|
|
35
|
-
name: z.string().nullable(),
|
|
36
|
-
});
|
|
37
|
-
export type TPermissionListItem = z.infer<typeof PermissionListItemSchema>;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { createApi, TController } from '../common/utils';
|
|
2
|
-
|
|
3
|
-
export const PERMISSIONS_CONTROLLER = {
|
|
4
|
-
prefix: 'permissions',
|
|
5
|
-
endpoints: {
|
|
6
|
-
find: ':id',
|
|
7
|
-
findMany: '',
|
|
8
|
-
findAll: 'all',
|
|
9
|
-
create: '',
|
|
10
|
-
update: ':id',
|
|
11
|
-
delete: ':id',
|
|
12
|
-
},
|
|
13
|
-
} as const satisfies TController;
|
|
14
|
-
|
|
15
|
-
export const PERMISSIONS_API = createApi(PERMISSIONS_CONTROLLER);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { RoleWriteSchema, RoleDetailSchema } from '../role.models';
|
|
4
|
-
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
-
|
|
6
|
-
export namespace CreateRoleContract {
|
|
7
|
-
export const getUrl = ROLES_API.create;
|
|
8
|
-
export const endpoint = ROLES_CONTROLLER.endpoints.create;
|
|
9
|
-
export const httpMethod = HTTP_METHODS.post;
|
|
10
|
-
|
|
11
|
-
export const RequestSchema = RoleWriteSchema;
|
|
12
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
13
|
-
|
|
14
|
-
export const ResponseSchema = RoleDetailSchema;
|
|
15
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
16
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
4
|
-
|
|
5
|
-
export namespace DeleteRoleContract {
|
|
6
|
-
export const getUrl = ROLES_API.delete;
|
|
7
|
-
export const endpoint = ROLES_CONTROLLER.endpoints.delete;
|
|
8
|
-
export const httpMethod = HTTP_METHODS.delete;
|
|
9
|
-
|
|
10
|
-
export const ResponseSchema = z.void();
|
|
11
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
12
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
HTTP_METHODS,
|
|
4
|
-
CommonQueryParamsSchema,
|
|
5
|
-
PaginationResponseSchema,
|
|
6
|
-
UuidArraySchema,
|
|
7
|
-
BooleanQueryParamSchema,
|
|
8
|
-
UuidArrayQueryParamSchema,
|
|
9
|
-
} from '../../common';
|
|
10
|
-
import { RoleListItemSchema } from '../role.models';
|
|
11
|
-
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
12
|
-
|
|
13
|
-
const BaseQuerySchema = RoleListItemSchema.pick({
|
|
14
|
-
type: true,
|
|
15
|
-
})
|
|
16
|
-
.extend({
|
|
17
|
-
isActive: BooleanQueryParamSchema.optional(),
|
|
18
|
-
permissionIds: UuidArrayQueryParamSchema.optional(),
|
|
19
|
-
})
|
|
20
|
-
.partial();
|
|
21
|
-
|
|
22
|
-
const OrderBySchema = RoleListItemSchema.omit({
|
|
23
|
-
id: true,
|
|
24
|
-
permissions: true,
|
|
25
|
-
description: true,
|
|
26
|
-
}).keyof();
|
|
27
|
-
|
|
28
|
-
const FindManyRolesContractRequestSchema = BaseQuerySchema.extend({
|
|
29
|
-
...CommonQueryParamsSchema.shape,
|
|
30
|
-
orderBy: OrderBySchema.optional(),
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const FindManyRolesContractResponseSchema = z
|
|
34
|
-
.object({
|
|
35
|
-
roles: z.array(RoleListItemSchema),
|
|
36
|
-
})
|
|
37
|
-
.extend(PaginationResponseSchema.shape);
|
|
38
|
-
|
|
39
|
-
export namespace FindManyRolesContract {
|
|
40
|
-
export const getUrl = ROLES_API.findMany;
|
|
41
|
-
export const endpoint = ROLES_CONTROLLER.endpoints.findMany;
|
|
42
|
-
export const httpMethod = HTTP_METHODS.get;
|
|
43
|
-
|
|
44
|
-
export const BaseFilterSchema = BaseQuerySchema;
|
|
45
|
-
export type TBaseFilter = z.input<typeof BaseFilterSchema>;
|
|
46
|
-
|
|
47
|
-
export const SORTING_KEYS = OrderBySchema.options;
|
|
48
|
-
export type TSortingKey = z.infer<typeof OrderBySchema>;
|
|
49
|
-
|
|
50
|
-
export const RequestSchema = FindManyRolesContractRequestSchema;
|
|
51
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
52
|
-
|
|
53
|
-
export const ResponseSchema = FindManyRolesContractResponseSchema;
|
|
54
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
55
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { RoleDetailSchema } from '../role.models';
|
|
4
|
-
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
-
|
|
6
|
-
export namespace FindRoleContract {
|
|
7
|
-
export const getUrl = ROLES_API.find;
|
|
8
|
-
export const endpoint = ROLES_CONTROLLER.endpoints.find;
|
|
9
|
-
export const httpMethod = HTTP_METHODS.get;
|
|
10
|
-
|
|
11
|
-
export const ResponseSchema = RoleDetailSchema;
|
|
12
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
13
|
-
}
|
package/roles/contracts/index.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import { HTTP_METHODS } from '../../common';
|
|
3
|
-
import { RoleDetailSchema } from '../role.models';
|
|
4
|
-
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
-
import { CreateRoleContract } from './create-role.contract';
|
|
6
|
-
|
|
7
|
-
export namespace UpdateRoleContract {
|
|
8
|
-
export const getUrl = ROLES_API.update;
|
|
9
|
-
export const endpoint = ROLES_CONTROLLER.endpoints.update;
|
|
10
|
-
export const httpMethod = HTTP_METHODS.put;
|
|
11
|
-
|
|
12
|
-
export const RequestSchema = CreateRoleContract.RequestSchema;
|
|
13
|
-
export type TRequest = z.infer<typeof RequestSchema>;
|
|
14
|
-
|
|
15
|
-
export const ResponseSchema = RoleDetailSchema;
|
|
16
|
-
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
17
|
-
}
|
package/roles/index.ts
DELETED
package/roles/role.models.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
ROLE_TYPE_VALUES,
|
|
4
|
-
TimestampSchema,
|
|
5
|
-
UuidArraySchema,
|
|
6
|
-
UuidSchema,
|
|
7
|
-
makeTranslations,
|
|
8
|
-
} from '../common';
|
|
9
|
-
import { PermissionListItemSchema } from '../permissions';
|
|
10
|
-
|
|
11
|
-
export const RoleSchema = z.object({
|
|
12
|
-
type: z.enum(ROLE_TYPE_VALUES),
|
|
13
|
-
isActive: z.boolean().optional(),
|
|
14
|
-
isDefault: z.boolean().optional(),
|
|
15
|
-
});
|
|
16
|
-
export type TRole = z.infer<typeof RoleSchema>;
|
|
17
|
-
|
|
18
|
-
export const RolePersistedSchema = RoleSchema.required({ isActive: true, isDefault: true }).extend({
|
|
19
|
-
id: UuidSchema,
|
|
20
|
-
...TimestampSchema.shape,
|
|
21
|
-
});
|
|
22
|
-
export type TRolePersisted = z.infer<typeof RolePersistedSchema>;
|
|
23
|
-
|
|
24
|
-
export const RoleTranslationsSchema = z.object({
|
|
25
|
-
name: z.string().min(3),
|
|
26
|
-
description: z.string().optional(),
|
|
27
|
-
});
|
|
28
|
-
export type TRoleTranslations = z.infer<typeof RoleTranslationsSchema>;
|
|
29
|
-
|
|
30
|
-
export const RoleWriteSchema = RoleSchema.extend({
|
|
31
|
-
translations: makeTranslations(RoleTranslationsSchema),
|
|
32
|
-
permissionIds: UuidArraySchema.optional(),
|
|
33
|
-
});
|
|
34
|
-
export type TRoleWrite = z.infer<typeof RoleWriteSchema>;
|
|
35
|
-
|
|
36
|
-
export const RoleDetailSchema = RolePersistedSchema.extend({
|
|
37
|
-
translations: makeTranslations(RoleTranslationsSchema),
|
|
38
|
-
permissionIds: UuidArraySchema.optional(),
|
|
39
|
-
});
|
|
40
|
-
export type TRoleDetail = z.infer<typeof RoleDetailSchema>;
|
|
41
|
-
|
|
42
|
-
export const RoleListItemSchema = RolePersistedSchema.extend({
|
|
43
|
-
name: z.string().nullable(),
|
|
44
|
-
description: z.string().nullable(),
|
|
45
|
-
permissions: z.array(
|
|
46
|
-
PermissionListItemSchema.pick({
|
|
47
|
-
id: true,
|
|
48
|
-
name: true,
|
|
49
|
-
}),
|
|
50
|
-
),
|
|
51
|
-
});
|
|
52
|
-
export type TRoleListItem = z.infer<typeof RoleListItemSchema>;
|