hh-contracts 0.0.6 → 0.0.7

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.
Files changed (92) hide show
  1. package/{dto/app-menu → app-menu}/get.query.ts +1 -1
  2. package/build/{dto/app-menu → app-menu}/get.query.js +1 -1
  3. package/build/common/constants/app-ability.constant.js +26 -0
  4. package/build/common/constants/default-pagination-config.constant.js +8 -0
  5. package/build/common/constants/http-method.constant.js +10 -0
  6. package/build/{constants/icon-keys.constant.js → common/constants/icon-key.constant.js} +2 -2
  7. package/build/common/constants/index.js +23 -0
  8. package/build/{constants → common/constants}/navigation-item-type.constant.js +2 -2
  9. package/build/common/constants/order-direction.constant.js +7 -0
  10. package/build/{constants/route-component-keys.constants.js → common/constants/route-component-key.constants.js} +2 -2
  11. package/build/common/index.js +21 -0
  12. package/build/{models → common/models}/icon-key.schema.js +1 -1
  13. package/build/common/models/index.js +24 -0
  14. package/build/common/models/json.schema.js +6 -0
  15. package/build/{models → common/models}/navigation-item.schemas.js +7 -6
  16. package/build/common/models/order.schema.js +8 -0
  17. package/build/common/models/pagination.schema.js +14 -0
  18. package/build/common/models/search.schema.js +11 -0
  19. package/build/common/models/timestamp.schemas.js +11 -0
  20. package/build/common/transforms/navigation-item.transform.js +17 -0
  21. package/build/common/utils/create-api/create-api.js +27 -0
  22. package/build/{dto → common/utils/create-api}/index.js +1 -1
  23. package/build/common/utils/create-api/types.js +2 -0
  24. package/build/{models → common/utils}/index.js +1 -1
  25. package/build/index.js +3 -6
  26. package/build/permissions/commands/create-permission.command.js +21 -0
  27. package/build/permissions/commands/delete-permission.command.js +13 -0
  28. package/build/permissions/commands/index.js +19 -0
  29. package/build/permissions/commands/update-permission.command.js +15 -0
  30. package/build/{constants → permissions}/index.js +4 -3
  31. package/build/permissions/permission.model.js +14 -0
  32. package/build/permissions/permissions.api.js +15 -0
  33. package/build/permissions/queries/find-many-permission.query.js +33 -0
  34. package/build/permissions/queries/find-permission.query.js +13 -0
  35. package/build/permissions/queries/index.js +18 -0
  36. package/common/constants/app-ability.constant.ts +25 -0
  37. package/common/constants/default-pagination-config.constant.ts +5 -0
  38. package/common/constants/http-method.constant.ts +7 -0
  39. package/{constants/icon-keys.constant.ts → common/constants/icon-key.constant.ts} +2 -2
  40. package/common/constants/index.ts +7 -0
  41. package/common/constants/navigation-item-type.constant.ts +5 -0
  42. package/common/constants/order-direction.constant.ts +6 -0
  43. package/common/constants/route-component-key.constants.ts +5 -0
  44. package/common/index.ts +5 -0
  45. package/common/models/icon-key.schema.ts +4 -0
  46. package/common/models/index.ts +8 -0
  47. package/common/models/json.schema.ts +8 -0
  48. package/common/models/navigation-item.schemas.ts +29 -0
  49. package/common/models/order.schema.ts +6 -0
  50. package/common/models/pagination.schema.ts +12 -0
  51. package/common/models/search.schema.ts +9 -0
  52. package/common/models/timestamp.schemas.ts +10 -0
  53. package/common/utils/create-api/create-api.ts +28 -0
  54. package/common/utils/create-api/index.ts +2 -0
  55. package/common/utils/create-api/types.ts +34 -0
  56. package/common/utils/index.ts +1 -0
  57. package/index.ts +3 -6
  58. package/package.json +1 -1
  59. package/permissions/commands/create-permission.command.ts +24 -0
  60. package/permissions/commands/delete-permission.command.ts +13 -0
  61. package/permissions/commands/index.ts +3 -0
  62. package/permissions/commands/update-permission.command.ts +17 -0
  63. package/permissions/index.ts +4 -0
  64. package/permissions/permission.model.ts +13 -0
  65. package/permissions/permissions.api.ts +14 -0
  66. package/permissions/queries/find-many-permission.query.ts +36 -0
  67. package/permissions/queries/find-permission.query.ts +13 -0
  68. package/permissions/queries/index.ts +2 -0
  69. package/tsconfig.json +102 -101
  70. package/api/index.ts +0 -0
  71. package/build/api/index.js +0 -1
  72. package/build/transforms/navigation-item.transform.js +0 -24
  73. package/constants/index.ts +0 -3
  74. package/constants/navigation-item-type.constant.ts +0 -5
  75. package/constants/route-component-keys.constants.ts +0 -5
  76. package/dto/index.ts +0 -1
  77. package/models/icon-key.schema.ts +0 -4
  78. package/models/index.ts +0 -1
  79. package/models/navigation-item.schemas.ts +0 -29
  80. /package/{dto/app-menu → app-menu}/index.ts +0 -0
  81. /package/build/{dto/app-menu → app-menu}/index.js +0 -0
  82. /package/build/{models → common/models}/info.schema.js +0 -0
  83. /package/build/{transforms → common/transforms}/index.js +0 -0
  84. /package/build/{types → common/types}/index.js +0 -0
  85. /package/build/{types → common/types}/optionalized.type.js +0 -0
  86. /package/build/{types → common/types}/zod.type.js +0 -0
  87. /package/{models → common/models}/info.schema.ts +0 -0
  88. /package/{transforms → common/transforms}/index.ts +0 -0
  89. /package/{transforms → common/transforms}/navigation-item.transform.ts +0 -0
  90. /package/{types → common/types}/index.ts +0 -0
  91. /package/{types → common/types}/optionalized.type.ts +0 -0
  92. /package/{types → common/types}/zod.type.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { NavigationItem } from '../../transforms';
2
+ import { NavigationItem } from '../common/transforms';
3
3
 
4
4
  const GetAppMenuQueryRequestSchema = z.object({
5
5
  userUuid: z.string().uuid(),
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetAppMenuQuery = void 0;
4
4
  const zod_1 = require("zod");
5
- const transforms_1 = require("../../transforms");
5
+ const transforms_1 = require("../common/transforms");
6
6
  const GetAppMenuQueryRequestSchema = zod_1.z.object({
7
7
  userUuid: zod_1.z.string().uuid(),
8
8
  });
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppAbility = void 0;
4
+ var AppAbility;
5
+ (function (AppAbility) {
6
+ AppAbility.ACTION = {
7
+ manage: 'manage',
8
+ create: 'create',
9
+ read: 'read',
10
+ update: 'update',
11
+ delete: 'delete',
12
+ messaging: 'messaging',
13
+ };
14
+ AppAbility.ACTION_VALUES = Object.values(AppAbility.ACTION);
15
+ AppAbility.SUBJECT = {
16
+ users: 'Users',
17
+ roles: 'Roles',
18
+ permissions: 'Permissions',
19
+ hotels: 'Hotels',
20
+ rooms: 'Rooms',
21
+ roomCategories: 'Room categories',
22
+ hotelsWebsocketClients: 'Hotels websocket clients',
23
+ all: 'all',
24
+ };
25
+ AppAbility.SUBJECT_VALUES = Object.values(AppAbility.SUBJECT);
26
+ })(AppAbility || (exports.AppAbility = AppAbility = {}));
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PAGINATION_CONFIG = void 0;
4
+ exports.DEFAULT_PAGINATION_CONFIG = {
5
+ page: 1,
6
+ pageSize: 10,
7
+ maxPageSize: 250,
8
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTTP_METHOD = void 0;
4
+ exports.HTTP_METHOD = {
5
+ get: 'GET',
6
+ post: 'POST',
7
+ put: 'PUT',
8
+ patch: 'PATCH',
9
+ delete: 'DELETE',
10
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IconKeys = void 0;
4
- exports.IconKeys = {
3
+ exports.ICON_KEY = void 0;
4
+ exports.ICON_KEY = {
5
5
  EyeIcon: 'EyeIcon',
6
6
  EyeSlashIcon: 'EyeSlashIcon',
7
7
  ChevronRightIcon: 'ChevronRightIcon',
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./app-ability.constant"), exports);
18
+ __exportStar(require("./default-pagination-config.constant"), exports);
19
+ __exportStar(require("./http-method.constant"), exports);
20
+ __exportStar(require("./icon-key.constant"), exports);
21
+ __exportStar(require("./navigation-item-type.constant"), exports);
22
+ __exportStar(require("./order-direction.constant"), exports);
23
+ __exportStar(require("./route-component-key.constants"), exports);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NavigationItemTypes = void 0;
4
- exports.NavigationItemTypes = {
3
+ exports.NAVIGATION_ITEM_TYPE = void 0;
4
+ exports.NAVIGATION_ITEM_TYPE = {
5
5
  group: 'group',
6
6
  link: 'link',
7
7
  };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ORDER_DIRECTION = void 0;
4
+ exports.ORDER_DIRECTION = {
5
+ asc: 'asc',
6
+ desc: 'desc',
7
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RouteComponentKeys = void 0;
4
- exports.RouteComponentKeys = {
3
+ exports.ROUTE_COMPONENT_KEY = void 0;
4
+ exports.ROUTE_COMPONENT_KEY = {
5
5
  NavigationItem: 'navigation-item',
6
6
  };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants"), exports);
18
+ __exportStar(require("./models"), exports);
19
+ __exportStar(require("./transforms"), exports);
20
+ __exportStar(require("./types"), exports);
21
+ __exportStar(require("./utils"), exports);
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IconKeySchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
- exports.IconKeySchema = zod_1.z.nativeEnum(constants_1.IconKeys);
6
+ exports.IconKeySchema = zod_1.z.nativeEnum(constants_1.ICON_KEY);
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./icon-key.schema"), exports);
18
+ __exportStar(require("./info.schema"), exports);
19
+ __exportStar(require("./json.schema"), exports);
20
+ __exportStar(require("./navigation-item.schemas"), exports);
21
+ __exportStar(require("./order.schema"), exports);
22
+ __exportStar(require("./pagination.schema"), exports);
23
+ __exportStar(require("./search.schema"), exports);
24
+ __exportStar(require("./timestamp.schemas"), exports);
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const literalSchema = zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.null()]);
6
+ exports.JsonSchema = zod_1.z.lazy(() => zod_1.z.union([literalSchema, zod_1.z.array(exports.JsonSchema), zod_1.z.record(exports.JsonSchema)]));
@@ -5,20 +5,21 @@ const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
6
  const constants_2 = require("../constants");
7
7
  const icon_key_schema_1 = require("./icon-key.schema");
8
- exports.NavigationItemEntityBaseSchema = zod_1.z.object({
8
+ const timestamp_schemas_1 = require("./timestamp.schemas");
9
+ exports.NavigationItemEntityBaseSchema = zod_1.z
10
+ .object({
9
11
  id: zod_1.z.number().int().positive(),
10
12
  parentId: zod_1.z.nullable(zod_1.z.number().int().positive()),
11
13
  label: zod_1.z.string().min(1),
12
14
  description: zod_1.z.nullable(zod_1.z.string().min(1)),
13
15
  iconKey: zod_1.z.nullable(icon_key_schema_1.IconKeySchema),
14
16
  link: zod_1.z.nullable(zod_1.z.string().min(1)),
15
- routeComponentKey: zod_1.z.nullable(zod_1.z.nativeEnum(constants_1.RouteComponentKeys)),
16
- type: zod_1.z.nativeEnum(constants_2.NavigationItemTypes),
17
+ routeComponentKey: zod_1.z.nullable(zod_1.z.nativeEnum(constants_1.ROUTE_COMPONENT_KEY)),
18
+ type: zod_1.z.nativeEnum(constants_2.NAVIGATION_ITEM_TYPE),
17
19
  disabled: zod_1.z.boolean(),
18
20
  order: zod_1.z.number().int().positive(),
19
- createdAt: zod_1.z.date(),
20
- updatedAt: zod_1.z.date(),
21
- });
21
+ })
22
+ .merge(timestamp_schemas_1.TimestampSchema);
22
23
  exports.NavigationItemEntitySchema = exports.NavigationItemEntityBaseSchema.extend({
23
24
  children: zod_1.z.lazy(() => zod_1.z.array(exports.NavigationItemEntitySchema).optional()),
24
25
  });
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const order_direction_constant_1 = require("../constants/order-direction.constant");
6
+ exports.OrderSchema = zod_1.z.object({
7
+ orderDir: zod_1.z.nativeEnum(order_direction_constant_1.ORDER_DIRECTION).optional(),
8
+ });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaginationSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../constants");
6
+ exports.PaginationSchema = zod_1.z.object({
7
+ page: zod_1.z.coerce.number().positive().default(constants_1.DEFAULT_PAGINATION_CONFIG.page),
8
+ pageSize: zod_1.z.coerce
9
+ .number()
10
+ .positive()
11
+ .default(constants_1.DEFAULT_PAGINATION_CONFIG.pageSize)
12
+ .transform(val => Math.min(val, constants_1.DEFAULT_PAGINATION_CONFIG.maxPageSize)),
13
+ total: zod_1.z.coerce.number().positive(),
14
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const pagination_schema_1 = require("./pagination.schema");
6
+ exports.SearchSchema = pagination_schema_1.PaginationSchema.pick({
7
+ page: true,
8
+ pageSize: true,
9
+ }).extend({
10
+ searchText: zod_1.z.string().min(1).optional(),
11
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimestampWithDeletedSchema = exports.TimestampSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.TimestampSchema = zod_1.z.object({
6
+ createdAt: zod_1.z.date(),
7
+ updatedAt: zod_1.z.date(),
8
+ });
9
+ exports.TimestampWithDeletedSchema = exports.TimestampSchema.extend({
10
+ deletedAt: zod_1.z.date().nullable(),
11
+ });
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NavigationItem = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../models");
6
+ const NavigationItemBase = models_1.NavigationItemEntityBaseSchema.transform(({ parentId, description, iconKey, link, routeComponentKey, type, disabled, order, ...rest }) => ({
7
+ ...rest,
8
+ description: description || undefined,
9
+ iconKey: iconKey || undefined,
10
+ link: link || undefined,
11
+ routeComponentKey: routeComponentKey || undefined,
12
+ disabled: disabled === null ? undefined : disabled,
13
+ }));
14
+ exports.NavigationItem = zod_1.z.lazy(() => models_1.NavigationItemEntitySchema.transform(({ children, ...rest }) => ({
15
+ ...NavigationItemBase.parse(rest),
16
+ children: children?.length ? children.map(child => exports.NavigationItem.parse(child)) : undefined,
17
+ })));
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createApi = createApi;
4
+ // Универсальная функция для подстановки параметров в шаблонную строку.
5
+ // Заменяет все вхождения вида ":key" на значение из объекта params.
6
+ function substituteParams(template, params) {
7
+ return template.replace(/:(\w+)/g, (_, key) => {
8
+ if (!(key in params)) {
9
+ throw new Error(`Missing parameter: ${key}`);
10
+ }
11
+ return String(params[key]);
12
+ });
13
+ }
14
+ // Функция генерации универсального API.
15
+ function createApi({ prefix, endpoints }) {
16
+ const api = {};
17
+ for (const key in endpoints) {
18
+ // Для каждого эндпоинта возвращаем функцию, которая принимает объект параметров.
19
+ api[key] = (params) => {
20
+ const usedParams = params ?? {};
21
+ const computedPrefix = substituteParams(prefix, usedParams);
22
+ const computedEndpoint = substituteParams(endpoints[key], usedParams);
23
+ return `${computedPrefix}/${computedEndpoint}`;
24
+ };
25
+ }
26
+ return api;
27
+ }
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./app-menu"), exports);
17
+ __exportStar(require("./create-api"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./navigation-item.schemas"), exports);
17
+ __exportStar(require("./create-api"), exports);
package/build/index.js CHANGED
@@ -14,9 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- // export * from './api';
18
- __exportStar(require("./dto"), exports);
19
- __exportStar(require("./constants"), exports);
20
- __exportStar(require("./models"), exports);
21
- __exportStar(require("./transforms"), exports);
22
- __exportStar(require("./types"), exports);
17
+ __exportStar(require("./common"), exports);
18
+ __exportStar(require("./app-menu"), exports);
19
+ __exportStar(require("./permissions"), exports);
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreatePermissionCommand = void 0;
4
+ const common_1 = require("../../common");
5
+ const permissions_api_1 = require("../permissions.api");
6
+ const permission_model_1 = require("../permission.model");
7
+ const CreatePermissionCommandRequestSchema = permission_model_1.PermissionSchema.omit({
8
+ id: true,
9
+ createdAt: true,
10
+ updatedAt: true,
11
+ }).extend({
12
+ conditions: common_1.JsonSchema.optional().nullable(),
13
+ });
14
+ var CreatePermissionCommand;
15
+ (function (CreatePermissionCommand) {
16
+ CreatePermissionCommand.getUrl = permissions_api_1.PERMISSIONS_API.create;
17
+ CreatePermissionCommand.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.create;
18
+ CreatePermissionCommand.httpMethod = common_1.HTTP_METHOD.post;
19
+ CreatePermissionCommand.RequestSchema = CreatePermissionCommandRequestSchema;
20
+ CreatePermissionCommand.ResponseSchema = permission_model_1.PermissionSchema;
21
+ })(CreatePermissionCommand || (exports.CreatePermissionCommand = CreatePermissionCommand = {}));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeletePermissionCommand = void 0;
4
+ const common_1 = require("../../common");
5
+ const permission_model_1 = require("../permission.model");
6
+ const permissions_api_1 = require("../permissions.api");
7
+ var DeletePermissionCommand;
8
+ (function (DeletePermissionCommand) {
9
+ DeletePermissionCommand.getUrl = permissions_api_1.PERMISSIONS_API.delete;
10
+ DeletePermissionCommand.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.delete;
11
+ DeletePermissionCommand.httpMethod = common_1.HTTP_METHOD.delete;
12
+ DeletePermissionCommand.ResponseSchema = permission_model_1.PermissionSchema;
13
+ })(DeletePermissionCommand || (exports.DeletePermissionCommand = DeletePermissionCommand = {}));
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./create-permission.command"), exports);
18
+ __exportStar(require("./delete-permission.command"), exports);
19
+ __exportStar(require("./update-permission.command"), exports);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdatePermissionCommand = void 0;
4
+ const common_1 = require("../../common");
5
+ const permission_model_1 = require("../permission.model");
6
+ const permissions_api_1 = require("../permissions.api");
7
+ const create_permission_command_1 = require("./create-permission.command");
8
+ var UpdatePermissionCommand;
9
+ (function (UpdatePermissionCommand) {
10
+ UpdatePermissionCommand.getUrl = permissions_api_1.PERMISSIONS_API.update;
11
+ UpdatePermissionCommand.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.update;
12
+ UpdatePermissionCommand.httpMethod = common_1.HTTP_METHOD.patch;
13
+ UpdatePermissionCommand.RequestSchema = create_permission_command_1.CreatePermissionCommand.RequestSchema.partial();
14
+ UpdatePermissionCommand.ResponseSchema = permission_model_1.PermissionSchema;
15
+ })(UpdatePermissionCommand || (exports.UpdatePermissionCommand = UpdatePermissionCommand = {}));
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./icon-keys.constant"), exports);
18
- __exportStar(require("./navigation-item-type.constant"), exports);
19
- __exportStar(require("./route-component-keys.constants"), exports);
17
+ __exportStar(require("./permission.model"), exports);
18
+ __exportStar(require("./permissions.api"), exports);
19
+ __exportStar(require("./commands"), exports);
20
+ __exportStar(require("./queries"), exports);
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../common");
6
+ exports.PermissionSchema = zod_1.z
7
+ .object({
8
+ id: zod_1.z.number().positive(),
9
+ name: zod_1.z.string().trim().min(1).max(50),
10
+ action: zod_1.z.nativeEnum(common_1.AppAbility.ACTION),
11
+ subject: zod_1.z.nativeEnum(common_1.AppAbility.SUBJECT),
12
+ conditions: zod_1.z.unknown().optional().nullable(),
13
+ })
14
+ .merge(common_1.TimestampSchema);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PERMISSIONS_API = exports.PERMISSIONS_CONTROLLER = void 0;
4
+ const utils_1 = require("../common/utils");
5
+ exports.PERMISSIONS_CONTROLLER = {
6
+ prefix: 'permissions',
7
+ endpoints: {
8
+ find: ':id',
9
+ findMany: '',
10
+ create: '',
11
+ update: ':id',
12
+ delete: ':id',
13
+ },
14
+ };
15
+ exports.PERMISSIONS_API = (0, utils_1.createApi)(exports.PERMISSIONS_CONTROLLER);
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindManyPermissionsQuery = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../../common");
6
+ const permission_model_1 = require("../permission.model");
7
+ const permissions_api_1 = require("../permissions.api");
8
+ const BaseQuerySchema = permission_model_1.PermissionSchema.pick({
9
+ subject: true,
10
+ action: true,
11
+ }).partial();
12
+ const OrderBySchema = permission_model_1.PermissionSchema.pick({
13
+ name: true,
14
+ subject: true,
15
+ })
16
+ .keyof()
17
+ .optional();
18
+ const FindManyPermissionsQueryRequestSchema = BaseQuerySchema.extend({ orderBy: OrderBySchema })
19
+ .merge(common_1.OrderSchema)
20
+ .merge(common_1.SearchSchema);
21
+ const FindManyPermissionsQueryResponseSchema = zod_1.z
22
+ .object({
23
+ permissions: zod_1.z.array(permission_model_1.PermissionSchema),
24
+ })
25
+ .merge(common_1.PaginationSchema);
26
+ var FindManyPermissionsQuery;
27
+ (function (FindManyPermissionsQuery) {
28
+ FindManyPermissionsQuery.getUrl = permissions_api_1.PERMISSIONS_API.findMany;
29
+ FindManyPermissionsQuery.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.findMany;
30
+ FindManyPermissionsQuery.httpMethod = common_1.HTTP_METHOD.get;
31
+ FindManyPermissionsQuery.RequestSchema = FindManyPermissionsQueryRequestSchema;
32
+ FindManyPermissionsQuery.ResponseSchema = FindManyPermissionsQueryResponseSchema;
33
+ })(FindManyPermissionsQuery || (exports.FindManyPermissionsQuery = FindManyPermissionsQuery = {}));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindPermissionQuery = void 0;
4
+ const common_1 = require("../../common");
5
+ const permission_model_1 = require("../permission.model");
6
+ const permissions_api_1 = require("../permissions.api");
7
+ var FindPermissionQuery;
8
+ (function (FindPermissionQuery) {
9
+ FindPermissionQuery.getUrl = permissions_api_1.PERMISSIONS_API.find;
10
+ FindPermissionQuery.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.find;
11
+ FindPermissionQuery.httpMethod = common_1.HTTP_METHOD.get;
12
+ FindPermissionQuery.ResponseSchema = permission_model_1.PermissionSchema;
13
+ })(FindPermissionQuery || (exports.FindPermissionQuery = FindPermissionQuery = {}));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./find-many-permission.query"), exports);
18
+ __exportStar(require("./find-permission.query"), exports);
@@ -0,0 +1,25 @@
1
+ export namespace AppAbility {
2
+ export const ACTION = {
3
+ manage: 'manage',
4
+ create: 'create',
5
+ read: 'read',
6
+ update: 'update',
7
+ delete: 'delete',
8
+ messaging: 'messaging',
9
+ } as const;
10
+ export type TAction = (typeof ACTION)[keyof typeof ACTION];
11
+ export const ACTION_VALUES = Object.values(ACTION);
12
+
13
+ export const SUBJECT = {
14
+ users: 'Users',
15
+ roles: 'Roles',
16
+ permissions: 'Permissions',
17
+ hotels: 'Hotels',
18
+ rooms: 'Rooms',
19
+ roomCategories: 'Room categories',
20
+ hotelsWebsocketClients: 'Hotels websocket clients',
21
+ all: 'all',
22
+ } as const;
23
+ export type TSubject = (typeof SUBJECT)[keyof typeof SUBJECT];
24
+ export const SUBJECT_VALUES = Object.values(SUBJECT);
25
+ }
@@ -0,0 +1,5 @@
1
+ export const DEFAULT_PAGINATION_CONFIG = {
2
+ page: 1,
3
+ pageSize: 10,
4
+ maxPageSize: 250,
5
+ };
@@ -0,0 +1,7 @@
1
+ export const HTTP_METHOD = {
2
+ get: 'GET',
3
+ post: 'POST',
4
+ put: 'PUT',
5
+ patch: 'PATCH',
6
+ delete: 'DELETE',
7
+ } as const;
@@ -1,4 +1,4 @@
1
- export const IconKeys = {
1
+ export const ICON_KEY = {
2
2
  EyeIcon: 'EyeIcon',
3
3
  EyeSlashIcon: 'EyeSlashIcon',
4
4
  ChevronRightIcon: 'ChevronRightIcon',
@@ -7,4 +7,4 @@ export const IconKeys = {
7
7
  Bars3CenterLeftIcon: 'Bars3CenterLeftIcon',
8
8
  } as const;
9
9
 
10
- export type TIconKey = (typeof IconKeys)[keyof typeof IconKeys];
10
+ export type TIconKey = (typeof ICON_KEY)[keyof typeof ICON_KEY];
@@ -0,0 +1,7 @@
1
+ export * from './app-ability.constant';
2
+ export * from './default-pagination-config.constant';
3
+ export * from './http-method.constant';
4
+ export * from './icon-key.constant';
5
+ export * from './navigation-item-type.constant';
6
+ export * from './order-direction.constant';
7
+ export * from './route-component-key.constants';
@@ -0,0 +1,5 @@
1
+ export const NAVIGATION_ITEM_TYPE = {
2
+ group: 'group',
3
+ link: 'link',
4
+ } as const;
5
+ export type TNavigationItemType = (typeof NAVIGATION_ITEM_TYPE)[keyof typeof NAVIGATION_ITEM_TYPE];
@@ -0,0 +1,6 @@
1
+ export const ORDER_DIRECTION = {
2
+ asc: 'asc',
3
+ desc: 'desc',
4
+ } as const;
5
+
6
+ export type TOrderDirection = (typeof ORDER_DIRECTION)[keyof typeof ORDER_DIRECTION];
@@ -0,0 +1,5 @@
1
+ export const ROUTE_COMPONENT_KEY = {
2
+ NavigationItem: 'navigation-item',
3
+ } as const;
4
+
5
+ export type TRouteComponentKey = (typeof ROUTE_COMPONENT_KEY)[keyof typeof ROUTE_COMPONENT_KEY];
@@ -0,0 +1,5 @@
1
+ export * from './constants';
2
+ export * from './models';
3
+ export * from './transforms';
4
+ export * from './types';
5
+ export * from './utils';