@kanian77/pastry-shared 0.0.4 → 0.0.6

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 (39) hide show
  1. package/dist/types/PermissionsEnum.d.ts +5 -1
  2. package/dist/types/PermissionsEnum.d.ts.map +1 -1
  3. package/dist/types/PermissionsEnum.js +4 -0
  4. package/dist/types/PermissionsEnum.js.map +1 -1
  5. package/dist/zod-schemas/baseZodPermissionSchema.d.ts +1 -0
  6. package/dist/zod-schemas/baseZodPermissionSchema.d.ts.map +1 -1
  7. package/package.json +1 -1
  8. package/src/functions/getEnvFile.ts +0 -19
  9. package/src/functions/index.ts +0 -2
  10. package/src/functions/isNotNullNorUndefined.ts +0 -5
  11. package/src/index.ts +0 -4
  12. package/src/types/ContentStatusEnum.ts +0 -7
  13. package/src/types/EnvFileNames.ts +0 -7
  14. package/src/types/Envs.ts +0 -7
  15. package/src/types/FindAllBySchemaIdOptions.ts +0 -10
  16. package/src/types/FindAllBySchemaIdsOptions.ts +0 -10
  17. package/src/types/FindAllOptions.ts +0 -11
  18. package/src/types/FindByDerivedSchemaFromSlugOptions.ts +0 -10
  19. package/src/types/PAGINATION_DEFAULTS.ts +0 -8
  20. package/src/types/PaginatedResult.ts +0 -9
  21. package/src/types/PaginationMeta.ts +0 -11
  22. package/src/types/PaginationParams.ts +0 -7
  23. package/src/types/PermissionsEnum.ts +0 -10
  24. package/src/types/PhoneNumberTypes.ts +0 -8
  25. package/src/types/RelationTypeEnum.ts +0 -4
  26. package/src/types/SortConfig.ts +0 -7
  27. package/src/types/TokenPayloadInterface.ts +0 -12
  28. package/src/types/UserRoleEnum.ts +0 -7
  29. package/src/types/UserTypeEnum.ts +0 -4
  30. package/src/types/index.ts +0 -17
  31. package/src/zod-schemas/baseZodContentRelationSchema.ts +0 -14
  32. package/src/zod-schemas/baseZodContentSchema.ts +0 -24
  33. package/src/zod-schemas/baseZodEntitySchema.ts +0 -13
  34. package/src/zod-schemas/baseZodPermissionSchema.ts +0 -8
  35. package/src/zod-schemas/baseZodSchemaSchema.ts +0 -142
  36. package/src/zod-schemas/baseZodUserRoleSchema.ts +0 -12
  37. package/src/zod-schemas/baseZodUserSchema.ts +0 -16
  38. package/src/zod-schemas/index.ts +0 -8
  39. package/src/zod-schemas/phoneNumberSchema.ts +0 -10
@@ -6,6 +6,10 @@ export declare enum PermissionsEnum {
6
6
  SCHEMA_CREATE = "SCHEMA_CREATE",
7
7
  SCHEMA_READ = "SCHEMA_READ",
8
8
  SCHEMA_UPDATE = "SCHEMA_UPDATE",
9
- SCHEMA_DELETE = "SCHEMA_DELETE"
9
+ SCHEMA_DELETE = "SCHEMA_DELETE",
10
+ USER_CREATE = "USER_CREATE",
11
+ USER_READ = "USER_READ",
12
+ USER_UPDATE = "USER_UPDATE",
13
+ USER_DELETE = "USER_DELETE"
10
14
  }
11
15
  //# sourceMappingURL=PermissionsEnum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionsEnum.d.ts","sourceRoot":"","sources":["../../src/types/PermissionsEnum.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAClC"}
1
+ {"version":3,"file":"PermissionsEnum.d.ts","sourceRoot":"","sources":["../../src/types/PermissionsEnum.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACvB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;CAC9B"}
@@ -8,5 +8,9 @@ export var PermissionsEnum;
8
8
  PermissionsEnum["SCHEMA_READ"] = "SCHEMA_READ";
9
9
  PermissionsEnum["SCHEMA_UPDATE"] = "SCHEMA_UPDATE";
10
10
  PermissionsEnum["SCHEMA_DELETE"] = "SCHEMA_DELETE";
11
+ PermissionsEnum["USER_CREATE"] = "USER_CREATE";
12
+ PermissionsEnum["USER_READ"] = "USER_READ";
13
+ PermissionsEnum["USER_UPDATE"] = "USER_UPDATE";
14
+ PermissionsEnum["USER_DELETE"] = "USER_DELETE";
11
15
  })(PermissionsEnum || (PermissionsEnum = {}));
12
16
  //# sourceMappingURL=PermissionsEnum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionsEnum.js","sourceRoot":"","sources":["../../src/types/PermissionsEnum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACvB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;IAC7B,oDAAiC,CAAA;IACjC,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;IAC3B,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;AACnC,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B"}
1
+ {"version":3,"file":"PermissionsEnum.js","sourceRoot":"","sources":["../../src/types/PermissionsEnum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAaX;AAbD,WAAY,eAAe;IACvB,oDAAiC,CAAA;IACjC,gDAA6B,CAAA;IAC7B,oDAAiC,CAAA;IACjC,oDAAiC,CAAA;IACjC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;IAC3B,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;IAC3B,0CAAuB,CAAA;IACvB,8CAA2B,CAAA;IAC3B,8CAA2B,CAAA;AAC/B,CAAC,EAbW,eAAe,KAAf,eAAe,QAa1B"}
@@ -11,4 +11,5 @@ export declare const baseZodPermissionSchema: z.ZodObject<{
11
11
  action: z.ZodEnum<typeof PermissionsEnum>;
12
12
  roleId: z.ZodUUID;
13
13
  }, z.core.$strip>;
14
+ export type PermissionInterface = z.infer<typeof baseZodPermissionSchema>;
14
15
  //# sourceMappingURL=baseZodPermissionSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseZodPermissionSchema.d.ts","sourceRoot":"","sources":["../../src/zod-schemas/baseZodPermissionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAGlC,CAAC"}
1
+ {"version":3,"file":"baseZodPermissionSchema.d.ts","sourceRoot":"","sources":["../../src/zod-schemas/baseZodPermissionSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAGlC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kanian77/pastry-shared",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "shared constructs for @kanian77/pastry",
5
5
  "author": "Patrick Assoa Adou <kanian77@gmail.com>",
6
6
  "keywords": [
@@ -1,19 +0,0 @@
1
- import { EnvFileNames } from '../types/EnvFileNames';
2
- import { Envs } from '../types/Envs';
3
-
4
- export const getEnvFile = () => {
5
- switch (process.env.ENV) {
6
- case Envs.DEVELOPMENT:
7
- return EnvFileNames.DEVELOPMENT;
8
- case Envs.TESTING:
9
- return EnvFileNames.TESTING;
10
- case Envs.PRODUCTION:
11
- return EnvFileNames.PRODUCTION;
12
- case Envs.DEBUGGING:
13
- return EnvFileNames.DEBUGGING;
14
- case Envs.STAGING:
15
- return EnvFileNames.STAGING;
16
- default:
17
- return undefined;
18
- }
19
- };
@@ -1,2 +0,0 @@
1
- export * from './getEnvFile';
2
- export * from './isNotNullNorUndefined';
@@ -1,5 +0,0 @@
1
- export function isNotNullNorUndefined<T>(
2
- value: T | null | undefined
3
- ): value is T {
4
- return value !== null && value !== undefined;
5
- }
package/src/index.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './functions';
2
- export * from './types';
3
- export * from './zod-schemas';
4
- export { z } from 'zod';
@@ -1,7 +0,0 @@
1
- export enum ContentStatusEnum {
2
- DRAFT = 'draft',
3
- PUBLISHED = 'published',
4
- ARCHIVED = 'archived',
5
- REVIEW = 'review',
6
- DELETED = 'deleted',
7
- }
@@ -1,7 +0,0 @@
1
- export enum EnvFileNames {
2
- PRODUCTION = '.env.prod',
3
- DEVELOPMENT = '.env.development',
4
- TESTING = '.env.testing',
5
- DEBUGGING = '.env.debugging',
6
- STAGING = '.env.staging',
7
- }
package/src/types/Envs.ts DELETED
@@ -1,7 +0,0 @@
1
- export enum Envs {
2
- PRODUCTION = 'prod',
3
- STAGING = 'staging',
4
- DEVELOPMENT = 'dev',
5
- TESTING = 'test',
6
- DEBUGGING = 'debug',
7
- }
@@ -1,10 +0,0 @@
1
- import { PaginationParams } from './PaginationParams';
2
- import { SortConfig } from './SortConfig';
3
- import { FindAllOptions } from './FindAllOptions';
4
-
5
- /**
6
- * Repository options for findAll
7
- */
8
- export interface FindAllBySchemaIdOptions extends FindAllOptions {
9
- schemaId: string;
10
- }
@@ -1,10 +0,0 @@
1
- import { PaginationParams } from './PaginationParams';
2
- import { SortConfig } from './SortConfig';
3
- import { FindAllOptions } from './FindAllOptions';
4
-
5
- /**
6
- * Repository options for findAll
7
- */
8
- export interface FindAllBySchemaIdsOptions extends FindAllOptions {
9
- schemaIds: string[];
10
- }
@@ -1,11 +0,0 @@
1
- import { PaginationParams } from "./PaginationParams";
2
- import { SortConfig } from "./SortConfig";
3
-
4
- /**
5
- * Repository options for findAll
6
- */
7
- export interface FindAllOptions {
8
- withDeleted?: boolean;
9
- pagination?: PaginationParams;
10
- sort?: SortConfig;
11
- }
@@ -1,10 +0,0 @@
1
- import { PaginationParams } from './PaginationParams';
2
- import { SortConfig } from './SortConfig';
3
- import { FindAllOptions } from './FindAllOptions';
4
-
5
- /**
6
- * Repository options for findByDerivedSchemaFromSlug
7
- */
8
- export interface FindByDerivedSchemaFromSlugOptions extends FindAllOptions {
9
- slug: string;
10
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Configuration constants for pagination
3
- */
4
- export const PAGINATION_DEFAULTS = {
5
- PAGE: 1,
6
- LIMIT: 10,
7
- MAX_LIMIT: 100, // Hard cap for safety
8
- };
@@ -1,9 +0,0 @@
1
- import { PaginationMeta } from "./PaginationMeta";
2
-
3
- /**
4
- * Standardized paginated response wrapper
5
- */
6
- export interface PaginatedResult<T> {
7
- data: T[];
8
- meta: PaginationMeta;
9
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Metadata structure for paginated responses
3
- */
4
- export interface PaginationMeta {
5
- page: number;
6
- limit: number;
7
- total: number;
8
- totalPages: number;
9
- hasNextPage: boolean;
10
- hasPrevPage: boolean;
11
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Input parameters for list queries
3
- */
4
- export interface PaginationParams {
5
- page?: number;
6
- limit?: number;
7
- }
@@ -1,10 +0,0 @@
1
- export enum PermissionsEnum {
2
- CONTENT_CREATE = 'CONTENT_CREATE',
3
- CONTENT_READ = 'CONTENT_READ',
4
- CONTENT_UPDATE = 'CONTENT_UPDATE',
5
- CONTENT_DELETE = 'CONTENT_DELETE',
6
- SCHEMA_CREATE = 'SCHEMA_CREATE',
7
- SCHEMA_READ = 'SCHEMA_READ',
8
- SCHEMA_UPDATE = 'SCHEMA_UPDATE',
9
- SCHEMA_DELETE = 'SCHEMA_DELETE',
10
- }
@@ -1,8 +0,0 @@
1
- // an enum called that specifies kinds of phone numbers (cellphone, home, work)
2
- export enum PhoneNumberTypes {
3
- HOME = 'home',
4
- MOBILE = 'mobile',
5
- WORK = 'work',
6
- PAGER = 'pager',
7
- OTHER = 'other',
8
- }
@@ -1,4 +0,0 @@
1
- export enum RelationTypeEnum {
2
- ONE = 'one',
3
- MANY = 'many'
4
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Sorting configuration
3
- */
4
- export interface SortConfig {
5
- field: string;
6
- order: 'asc' | 'desc';
7
- }
@@ -1,12 +0,0 @@
1
- import { UserRoleInterface } from '../zod-schemas';
2
- import { PhoneNumberInterface } from '../zod-schemas/phoneNumberSchema';
3
- export interface TokenPayloadInterface {
4
- userId: string;
5
- firstName: string;
6
- lastName: string;
7
- email?: string;
8
- role: Pick<UserRoleInterface, 'id' | 'slug' | 'name' | 'description'>;
9
- phoneNumber?: PhoneNumberInterface;
10
- exp: number;
11
- iat: number;
12
- }
@@ -1,7 +0,0 @@
1
- export enum UserRoleEnum {
2
- ADMIN = 'admin',
3
- EDITOR = 'editor',
4
- AUTHOR = 'author',
5
- AUTHENTICATED = 'authenticated',
6
- GUEST = 'guest',
7
- }
@@ -1,4 +0,0 @@
1
- export enum UserTypeEnum {
2
- ADMIN = 'ADMIN',
3
- USER = 'USER',
4
- }
@@ -1,17 +0,0 @@
1
- export * from './EnvFileNames';
2
- export * from './Envs';
3
- export * from './ContentStatusEnum';
4
- export * from './RelationTypeEnum';
5
- export * from './UserRoleEnum';
6
- export * from './PermissionsEnum';
7
- export * from './TokenPayloadInterface';
8
- export * from './UserTypeEnum';
9
- export * from './PAGINATION_DEFAULTS';
10
- export * from './PaginationParams';
11
- export * from './PaginatedResult';
12
- export * from './PaginationMeta';
13
- export * from './FindAllOptions';
14
- export * from './SortConfig';
15
- export * from './FindAllBySchemaIdOptions';
16
- export * from './FindByDerivedSchemaFromSlugOptions';
17
- export * from './FindAllBySchemaIdsOptions';
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseZodEntitySchema } from './baseZodEntitySchema';
3
-
4
- export const relationTypeZodEnum = z.enum(['one', 'many']);
5
- export const baseZodContentRelationSchema = baseZodEntitySchema.extend({
6
- sourceContentId: z.uuid(),
7
- targetContentId: z.uuid(),
8
- relationType: relationTypeZodEnum.default('one'),
9
- sourceFieldSlug: z.string().optional(),
10
- });
11
-
12
- export type ContentRelationInterface = z.infer<
13
- typeof baseZodContentRelationSchema
14
- >;
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseZodEntitySchema } from './baseZodEntitySchema';
3
-
4
- // Enum for content status
5
- export const ContentStatusZodEnum = z.enum([
6
- 'draft',
7
- 'published',
8
- 'archived',
9
- 'review',
10
- 'deleted',
11
- ]);
12
-
13
- export const baseZodContentSchema = baseZodEntitySchema.extend({
14
- name: z.string().min(1).max(255),
15
- schemaId: z.uuid(),
16
- definition: z.any(), // Could be refined if you have a known structure
17
- indexes: z.any().optional(),
18
- status: ContentStatusZodEnum.default('draft'),
19
- slug: z.string().max(255).optional(),
20
- metadata: z.any().optional(),
21
- userId: z.uuid(),
22
- });
23
-
24
- export type ContentInterface = z.infer<typeof baseZodContentSchema>;
@@ -1,13 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- export const baseZodEntitySchema = z.object({
4
- id: z.uuid(),
5
- createdAt: z.date(),
6
- updatedAt: z.date().optional(),
7
- createdBy: z.uuid().optional(),
8
- updatedBy: z.uuid().optional(),
9
- deleted: z.boolean().default(false),
10
- deletedAt: z.date().nullable().optional(),
11
- });
12
-
13
- export type BaseEntityInterface = z.infer<typeof baseZodEntitySchema>;
@@ -1,8 +0,0 @@
1
- import { z } from 'zod';
2
- import { PermissionsEnum } from '../types';
3
- import { baseZodEntitySchema } from './baseZodEntitySchema';
4
-
5
- export const baseZodPermissionSchema = baseZodEntitySchema.extend({
6
- action: z.enum(PermissionsEnum),
7
- roleId: z.uuid(),
8
- });
@@ -1,142 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseZodEntitySchema } from './baseZodEntitySchema';
3
- import { RelationTypeEnum } from '../types';
4
-
5
- // Allowed field types
6
- export const FieldTypeEnum = z.enum([
7
- 'text',
8
- 'richText',
9
- 'number',
10
- 'boolean',
11
- 'dateTime',
12
- 'json',
13
- 'relation',
14
- 'media',
15
- 'select',
16
- ]);
17
-
18
- // Base properties shared by all fields
19
- export const BaseFieldSchema = z.object({
20
- slug: z
21
- .string()
22
- .min(3)
23
- .regex(
24
- /^[a-zA-Z0-9_]+$/,
25
- 'API slugs can only contain letters, numbers, and underscores',
26
- ),
27
- label: z.string().min(1),
28
- description: z.string().optional(),
29
- required: z.boolean().default(false),
30
- readOnly: z.boolean().default(false),
31
- definition: z.object().optional(),
32
- });
33
-
34
- // Schema for a simple text field
35
- const TextFieldSchema = BaseFieldSchema.extend({
36
- type: z.literal(FieldTypeEnum.enum.text),
37
- minLength: z.number().int().min(0).optional(),
38
- maxLength: z.number().int().min(1).optional(),
39
- /** * A hint for the admin UI on how to render this field.
40
- */
41
- format: z
42
- .enum(['singleLine', 'multiLine', 'email', 'url', 'slug'])
43
- .default('singleLine'),
44
- defaultValue: z.string().optional(),
45
- });
46
-
47
- // Schema for a rich text (Markdown/WYSIWYG) field
48
- const RichTextFieldSchema = BaseFieldSchema.extend({
49
- type: z.literal(FieldTypeEnum.enum.richText),
50
- editorType: z.enum(['markdown', 'wysiwyg']).default('markdown'),
51
- defaultValue: z.string().optional(),
52
- });
53
-
54
- // Schema for a number field
55
- const NumberFieldSchema = BaseFieldSchema.extend({
56
- type: z.literal(FieldTypeEnum.enum.number),
57
- format: z.enum(['integer', 'decimal']).default('decimal'),
58
- min: z.number().optional(),
59
- max: z.number().optional(),
60
- defaultValue: z.number().optional(),
61
- });
62
-
63
- // Schema for a boolean (toggle/checkbox) field
64
- const BooleanFieldSchema = BaseFieldSchema.extend({
65
- type: z.literal(FieldTypeEnum.enum.boolean),
66
- display: z.enum(['toggle', 'checkbox']).default('toggle'),
67
- defaultValue: z.boolean().optional(),
68
- });
69
-
70
- // Schema for a date/time field
71
- const DateTimeFieldSchema = BaseFieldSchema.extend({
72
- type: z.literal(FieldTypeEnum.enum.dateTime),
73
- format: z.enum(['date', 'dateTime', 'time']).default('dateTime'),
74
- defaultValue: z.date().or(z.string().datetime()).optional(),
75
- });
76
-
77
- // Schema for a "select" (enum) field
78
- const SelectOptionSchema = z.object({
79
- label: z.string(),
80
- value: z.string(),
81
- });
82
-
83
- const SelectFieldSchema = BaseFieldSchema.extend({
84
- type: z.literal(FieldTypeEnum.enum.select),
85
- options: z.array(SelectOptionSchema).min(1, 'Must have at least one option'),
86
- allowMultiple: z.boolean().default(false),
87
- defaultValue: z.string().or(z.array(z.string())).optional(),
88
- });
89
-
90
- // Schema for a relation (e.g., link to a 'User' or 'Category')
91
- const RelationFieldSchema = BaseFieldSchema.extend({
92
- type: z.literal(FieldTypeEnum.enum.relation),
93
- /**
94
- * The apiId of the collection this field relates to.
95
- */
96
- targetCollectionId: z.string(),
97
- relationType: z.enum(RelationTypeEnum),
98
- display: z.enum(['select', 'autocomplete']).default('select'),
99
- });
100
-
101
- // Schema for a file/media upload field
102
- const MediaFieldSchema = BaseFieldSchema.extend({
103
- type: z.literal(FieldTypeEnum.enum.media),
104
- allowMultiple: z.boolean().default(false),
105
- allowedMimeTypes: z.array(z.string()).optional(), // e.g., ['image/jpeg', 'application/pdf']
106
- maxSizeInBytes: z.number().int().min(1).optional(),
107
- });
108
-
109
- // Schema for a raw JSON editor field
110
- const JsonFieldSchema = BaseFieldSchema.extend({
111
- type: z.literal(FieldTypeEnum.enum.json),
112
- defaultValue: z.record(z.string(), z.any()).optional(),
113
- });
114
-
115
- export const FieldSchema = z.discriminatedUnion('type', [
116
- TextFieldSchema,
117
- RichTextFieldSchema,
118
- NumberFieldSchema,
119
- BooleanFieldSchema,
120
- DateTimeFieldSchema,
121
- SelectFieldSchema,
122
- RelationFieldSchema,
123
- MediaFieldSchema,
124
- JsonFieldSchema,
125
- ]);
126
-
127
- export type FieldDefinition = z.infer<typeof FieldSchema>;
128
-
129
- // Base schema definition
130
- export const baseZodSchemaSchema = baseZodEntitySchema.extend({
131
- name: z.string().min(1),
132
- slug: z.string().regex(/^[a-z0-9_\-]+$/), // unique identifier
133
- description: z.string().optional(),
134
- fields: z.array(FieldSchema).min(1),
135
- version: z.number().default(1),
136
- userId: z.uuid(),
137
- parentSchemaId: z.uuid().optional(),
138
- });
139
-
140
- export type FieldType = z.infer<typeof FieldTypeEnum>;
141
- export type Field = z.infer<typeof FieldSchema>;
142
- export type SchemaInterface = z.infer<typeof baseZodSchemaSchema>;
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseZodEntitySchema } from './baseZodEntitySchema';
3
- import { UserRoleEnum } from '../types';
4
-
5
- export const baseZodUserRoleSchema = baseZodEntitySchema.extend({
6
- name: z.string().min(1).max(255),
7
- slug: z.string().max(255).optional(),
8
- description: z.string().optional(),
9
- type: z.enum(UserRoleEnum),
10
- });
11
-
12
- export type UserRoleInterface = z.infer<typeof baseZodUserRoleSchema>;
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import { baseZodEntitySchema } from './baseZodEntitySchema';
3
- import { UserTypeEnum } from '../types';
4
- import { phoneNumberSchema } from './phoneNumberSchema';
5
-
6
- export const baseZodUserSchema = baseZodEntitySchema.extend({
7
- email: z.email().optional(),
8
- password: z.string().optional(),
9
- firstName: z.string().max(255).optional(),
10
- lastName: z.string().max(255).optional(),
11
- roleId: z.uuid(),
12
- phoneNumber: phoneNumberSchema.optional(),
13
- userType: z.enum(UserTypeEnum),
14
- });
15
-
16
- export type UserInterface = z.infer<typeof baseZodUserSchema>;
@@ -1,8 +0,0 @@
1
- export * from './baseZodSchemaSchema';
2
- export * from './baseZodEntitySchema';
3
- export * from './baseZodContentSchema';
4
- export * from './baseZodContentRelationSchema';
5
- export * from './baseZodUserRoleSchema';
6
- export * from './baseZodUserSchema';
7
- export * from './baseZodPermissionSchema';
8
- export * from './phoneNumberSchema';
@@ -1,10 +0,0 @@
1
- import { z } from 'zod';
2
- import { PhoneNumberTypes } from '../types/PhoneNumberTypes';
3
-
4
- export const phoneNumberSchema = z.object({
5
- countryCode: z.string(),
6
- number: z.string(),
7
- type: z.enum(PhoneNumberTypes),
8
- });
9
-
10
- export type PhoneNumberInterface = z.infer<typeof phoneNumberSchema>;