nextjs-cms 0.5.9 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/axios/axiosInstance.d.ts +1 -1
- package/dist/api/axios/axiosInstance.js +8 -8
- package/dist/api/index.d.ts +855 -855
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +12 -12
- package/dist/api/lib/serverActions.d.ts +239 -239
- package/dist/api/lib/serverActions.d.ts.map +1 -1
- package/dist/api/lib/serverActions.js +834 -834
- package/dist/api/root.d.ts +828 -828
- package/dist/api/root.js +30 -30
- package/dist/api/routers/accountSettings.d.ts +60 -60
- package/dist/api/routers/accountSettings.js +108 -108
- package/dist/api/routers/admins.d.ts +105 -105
- package/dist/api/routers/admins.js +219 -219
- package/dist/api/routers/auth.d.ts +47 -47
- package/dist/api/routers/auth.js +25 -25
- package/dist/api/routers/categorySection.d.ts +103 -103
- package/dist/api/routers/categorySection.js +38 -38
- package/dist/api/routers/cmsSettings.d.ts +48 -48
- package/dist/api/routers/cmsSettings.js +51 -51
- package/dist/api/routers/cpanel.d.ts +83 -83
- package/dist/api/routers/cpanel.js +216 -216
- package/dist/api/routers/files.d.ts +47 -47
- package/dist/api/routers/files.js +23 -23
- package/dist/api/routers/gallery.d.ts +35 -35
- package/dist/api/routers/gallery.js +62 -62
- package/dist/api/routers/googleAnalytics.d.ts +30 -30
- package/dist/api/routers/googleAnalytics.js +7 -7
- package/dist/api/routers/hasItemsSection.d.ts +139 -139
- package/dist/api/routers/hasItemsSection.js +34 -34
- package/dist/api/routers/navigation.d.ts +51 -51
- package/dist/api/routers/navigation.js +11 -11
- package/dist/api/routers/simpleSection.d.ts +57 -57
- package/dist/api/routers/simpleSection.js +12 -12
- package/dist/api/trpc.d.ts +106 -106
- package/dist/api/trpc.js +72 -72
- package/dist/auth/axios/axiosInstance.d.ts +1 -1
- package/dist/auth/axios/axiosInstance.js +8 -8
- package/dist/auth/csrf.d.ts +29 -29
- package/dist/auth/csrf.js +76 -76
- package/dist/auth/hooks/index.d.ts +3 -3
- package/dist/auth/hooks/index.d.ts.map +1 -1
- package/dist/auth/hooks/index.js +3 -3
- package/dist/auth/hooks/useAxiosPrivate.d.ts +4 -4
- package/dist/auth/hooks/useAxiosPrivate.js +74 -74
- package/dist/auth/hooks/useRefreshToken.d.ts +6 -6
- package/dist/auth/hooks/useRefreshToken.js +79 -79
- package/dist/auth/index.d.ts +22 -22
- package/dist/auth/index.js +44 -44
- package/dist/auth/jwt.d.ts +5 -5
- package/dist/auth/jwt.js +25 -25
- package/dist/auth/lib/actions.d.ts +32 -32
- package/dist/auth/lib/actions.d.ts.map +1 -1
- package/dist/auth/lib/actions.js +209 -209
- package/dist/auth/lib/client.d.ts +3 -3
- package/dist/auth/lib/client.js +46 -46
- package/dist/auth/lib/index.d.ts +2 -2
- package/dist/auth/lib/index.d.ts.map +1 -1
- package/dist/auth/lib/index.js +2 -2
- package/dist/auth/react.d.ts +105 -105
- package/dist/auth/react.d.ts.map +1 -1
- package/dist/auth/react.js +347 -347
- package/dist/auth/trpc.d.ts +5 -5
- package/dist/auth/trpc.d.ts.map +1 -1
- package/dist/auth/trpc.js +81 -81
- package/dist/core/config/config-loader.d.ts +91 -91
- package/dist/core/config/config-loader.js +230 -230
- package/dist/core/config/index.d.ts +2 -2
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +42 -42
- package/dist/core/db/index.d.ts +1 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +1 -1
- package/dist/core/db/table-checker/DbTable.d.ts +5 -5
- package/dist/core/db/table-checker/DbTable.js +5 -5
- package/dist/core/db/table-checker/MysqlTable.d.ts +33 -33
- package/dist/core/db/table-checker/MysqlTable.d.ts.map +1 -1
- package/dist/core/db/table-checker/MysqlTable.js +94 -94
- package/dist/core/db/table-checker/index.d.ts +1 -1
- package/dist/core/db/table-checker/index.d.ts.map +1 -1
- package/dist/core/db/table-checker/index.js +1 -1
- package/dist/core/factories/FieldFactory.d.ts +123 -123
- package/dist/core/factories/FieldFactory.d.ts.map +1 -1
- package/dist/core/factories/FieldFactory.js +411 -411
- package/dist/core/factories/SectionFactory.d.ts +109 -109
- package/dist/core/factories/SectionFactory.d.ts.map +1 -1
- package/dist/core/factories/SectionFactory.js +415 -415
- package/dist/core/factories/index.d.ts +2 -2
- package/dist/core/factories/index.d.ts.map +1 -1
- package/dist/core/factories/index.js +2 -2
- package/dist/core/fields/checkbox.d.ts +62 -62
- package/dist/core/fields/checkbox.d.ts.map +1 -1
- package/dist/core/fields/checkbox.js +62 -62
- package/dist/core/fields/color.d.ts +83 -83
- package/dist/core/fields/color.d.ts.map +1 -1
- package/dist/core/fields/color.js +91 -91
- package/dist/core/fields/date.d.ts +99 -99
- package/dist/core/fields/date.d.ts.map +1 -1
- package/dist/core/fields/date.js +108 -108
- package/dist/core/fields/document.d.ts +179 -179
- package/dist/core/fields/document.d.ts.map +1 -1
- package/dist/core/fields/document.js +277 -277
- package/dist/core/fields/field-group.d.ts +17 -17
- package/dist/core/fields/field-group.d.ts.map +1 -1
- package/dist/core/fields/field-group.js +6 -6
- package/dist/core/fields/field.d.ts +125 -125
- package/dist/core/fields/field.d.ts.map +1 -1
- package/dist/core/fields/field.js +148 -148
- package/dist/core/fields/fileField.d.ts +14 -14
- package/dist/core/fields/fileField.d.ts.map +1 -1
- package/dist/core/fields/fileField.js +5 -5
- package/dist/core/fields/index.d.ts +64 -64
- package/dist/core/fields/index.d.ts.map +1 -1
- package/dist/core/fields/index.js +18 -18
- package/dist/core/fields/map.d.ts +166 -166
- package/dist/core/fields/map.d.ts.map +1 -1
- package/dist/core/fields/map.js +152 -152
- package/dist/core/fields/number.d.ts +185 -185
- package/dist/core/fields/number.d.ts.map +1 -1
- package/dist/core/fields/number.js +241 -241
- package/dist/core/fields/password.d.ts +108 -108
- package/dist/core/fields/password.d.ts.map +1 -1
- package/dist/core/fields/password.js +133 -133
- package/dist/core/fields/photo.d.ts +288 -288
- package/dist/core/fields/photo.d.ts.map +1 -1
- package/dist/core/fields/photo.js +410 -410
- package/dist/core/fields/richText.d.ts +294 -294
- package/dist/core/fields/richText.d.ts.map +1 -1
- package/dist/core/fields/richText.js +338 -338
- package/dist/core/fields/select.d.ts +365 -365
- package/dist/core/fields/select.d.ts.map +1 -1
- package/dist/core/fields/select.js +499 -499
- package/dist/core/fields/selectMultiple.d.ts +235 -235
- package/dist/core/fields/selectMultiple.d.ts.map +1 -1
- package/dist/core/fields/selectMultiple.js +417 -417
- package/dist/core/fields/tags.d.ts +130 -130
- package/dist/core/fields/tags.d.ts.map +1 -1
- package/dist/core/fields/tags.js +105 -105
- package/dist/core/fields/text.d.ts +135 -135
- package/dist/core/fields/text.d.ts.map +1 -1
- package/dist/core/fields/text.js +157 -157
- package/dist/core/fields/textArea.d.ts +106 -106
- package/dist/core/fields/textArea.d.ts.map +1 -1
- package/dist/core/fields/textArea.js +126 -126
- package/dist/core/fields/video.d.ts +147 -147
- package/dist/core/fields/video.d.ts.map +1 -1
- package/dist/core/fields/video.js +248 -248
- package/dist/core/helpers/entity.d.ts +7 -7
- package/dist/core/helpers/entity.js +27 -27
- package/dist/core/helpers/index.d.ts +4 -4
- package/dist/core/helpers/index.d.ts.map +1 -1
- package/dist/core/helpers/index.js +3 -3
- package/dist/core/index.d.ts +7 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -7
- package/dist/core/sections/category.d.ts +282 -282
- package/dist/core/sections/category.d.ts.map +1 -1
- package/dist/core/sections/category.js +147 -147
- package/dist/core/sections/hasItems.d.ts +631 -631
- package/dist/core/sections/hasItems.d.ts.map +1 -1
- package/dist/core/sections/hasItems.js +144 -144
- package/dist/core/sections/index.d.ts +4 -4
- package/dist/core/sections/index.d.ts.map +1 -1
- package/dist/core/sections/index.js +4 -4
- package/dist/core/sections/section.d.ts +225 -225
- package/dist/core/sections/section.d.ts.map +1 -1
- package/dist/core/sections/section.js +341 -341
- package/dist/core/sections/simple.d.ts +98 -98
- package/dist/core/sections/simple.d.ts.map +1 -1
- package/dist/core/sections/simple.js +95 -95
- package/dist/core/security/dom.d.ts +10 -10
- package/dist/core/security/dom.js +92 -92
- package/dist/core/submit/ItemEditSubmit.d.ts +75 -75
- package/dist/core/submit/ItemEditSubmit.js +186 -186
- package/dist/core/submit/NewItemSubmit.d.ts +13 -13
- package/dist/core/submit/NewItemSubmit.js +93 -93
- package/dist/core/submit/SimpleSectionSubmit.d.ts +12 -12
- package/dist/core/submit/SimpleSectionSubmit.js +93 -93
- package/dist/core/submit/index.d.ts +4 -4
- package/dist/core/submit/index.js +4 -4
- package/dist/core/submit/submit.d.ts +115 -115
- package/dist/core/submit/submit.js +479 -479
- package/dist/core/types/index.d.ts +279 -279
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -1
- package/dist/db/client.d.ts +8 -8
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +19 -19
- package/dist/db/config.d.ts +5 -5
- package/dist/db/config.js +22 -22
- package/dist/db/drizzle.config.d.ts +5 -5
- package/dist/db/drizzle.config.js +18 -18
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.js +3 -3
- package/dist/db/schema.d.ts +638 -638
- package/dist/db/schema.js +73 -73
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/translations/index.d.ts +2 -2
- package/dist/translations/index.js +15 -15
- package/dist/utils/CpanelApi.d.ts +24 -24
- package/dist/utils/CpanelApi.js +64 -64
- package/dist/utils/constants.d.ts +13 -13
- package/dist/utils/constants.js +61 -61
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/utils.d.ts +59 -59
- package/dist/utils/utils.js +132 -132
- package/dist/validators/checkbox.d.ts +3 -3
- package/dist/validators/checkbox.d.ts.map +1 -1
- package/dist/validators/checkbox.js +12 -12
- package/dist/validators/color.d.ts +3 -3
- package/dist/validators/color.d.ts.map +1 -1
- package/dist/validators/color.js +7 -7
- package/dist/validators/date.d.ts +3 -3
- package/dist/validators/date.d.ts.map +1 -1
- package/dist/validators/date.js +5 -5
- package/dist/validators/document.d.ts +3 -3
- package/dist/validators/document.d.ts.map +1 -1
- package/dist/validators/document.js +57 -57
- package/dist/validators/index.d.ts +14 -14
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +14 -14
- package/dist/validators/map.d.ts +3 -3
- package/dist/validators/map.d.ts.map +1 -1
- package/dist/validators/map.js +5 -5
- package/dist/validators/number.d.ts +3 -3
- package/dist/validators/number.d.ts.map +1 -1
- package/dist/validators/number.js +20 -20
- package/dist/validators/password.d.ts +3 -3
- package/dist/validators/password.d.ts.map +1 -1
- package/dist/validators/password.js +11 -11
- package/dist/validators/photo.d.ts +3 -3
- package/dist/validators/photo.d.ts.map +1 -1
- package/dist/validators/photo.js +100 -100
- package/dist/validators/richText.d.ts +3 -3
- package/dist/validators/richText.d.ts.map +1 -1
- package/dist/validators/richText.js +8 -8
- package/dist/validators/select-multiple.d.ts +9 -9
- package/dist/validators/select-multiple.d.ts.map +1 -1
- package/dist/validators/select-multiple.js +20 -20
- package/dist/validators/select.d.ts +3 -3
- package/dist/validators/select.d.ts.map +1 -1
- package/dist/validators/select.js +5 -5
- package/dist/validators/text.d.ts +3 -3
- package/dist/validators/text.d.ts.map +1 -1
- package/dist/validators/text.js +7 -7
- package/dist/validators/textarea.d.ts +3 -3
- package/dist/validators/textarea.d.ts.map +1 -1
- package/dist/validators/textarea.js +7 -7
- package/dist/validators/video.d.ts +3 -3
- package/dist/validators/video.d.ts.map +1 -1
- package/dist/validators/video.js +57 -57
- package/package.json +2 -3
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
import type { BaseFieldConfig } from
|
|
2
|
-
import { Field } from
|
|
3
|
-
import { entityKind } from
|
|
4
|
-
import * as z from 'zod';
|
|
5
|
-
declare const configSchema: z.ZodObject<{
|
|
6
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
7
|
-
minLength: z.ZodOptional<z.ZodNumber>;
|
|
8
|
-
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
9
|
-
/**
|
|
10
|
-
* Whether to sanitize the value before saving it to the database.
|
|
11
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
12
|
-
* If false, the value will be saved as is (raw input).
|
|
13
|
-
* @default false
|
|
14
|
-
*/
|
|
15
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
-
}, z.core.$strict>;
|
|
17
|
-
type Config = z.infer<typeof configSchema>;
|
|
18
|
-
export declare class TextAreaField extends Field<'textarea', Config> {
|
|
19
|
-
static readonly [entityKind]: string;
|
|
20
|
-
readonly maxLength: number | undefined;
|
|
21
|
-
readonly minLength: number | undefined;
|
|
22
|
-
readonly placeholder: string | undefined;
|
|
23
|
-
readonly sanitize: boolean;
|
|
24
|
-
constructor(config: BaseFieldConfig<Config>);
|
|
25
|
-
exportForClient(): {
|
|
26
|
-
maxLength: number | undefined;
|
|
27
|
-
minLength: number | undefined;
|
|
28
|
-
placeholder: string | undefined;
|
|
29
|
-
sanitize: boolean;
|
|
30
|
-
type: "textarea";
|
|
31
|
-
name: string;
|
|
32
|
-
label: string;
|
|
33
|
-
required: boolean;
|
|
34
|
-
conditionalFields: import("../types.js").ConditionalField[];
|
|
35
|
-
readonly: boolean;
|
|
36
|
-
defaultValue: any;
|
|
37
|
-
value: any;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Sanitize the value
|
|
41
|
-
*/
|
|
42
|
-
private sanitizeValue;
|
|
43
|
-
/**
|
|
44
|
-
* Get the value of the field
|
|
45
|
-
*/
|
|
46
|
-
getValue(): string | undefined;
|
|
47
|
-
checkRequired(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Prepare the field for submission
|
|
50
|
-
*/
|
|
51
|
-
prepareForSubmission(): Promise<void>;
|
|
52
|
-
}
|
|
53
|
-
export type TextAreaFieldClientConfig = ReturnType<TextAreaField['exportForClient']>;
|
|
54
|
-
declare const optionsSchema: z.ZodObject<{
|
|
55
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
56
|
-
minLength: z.ZodOptional<z.ZodNumber>;
|
|
57
|
-
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
58
|
-
/**
|
|
59
|
-
* Whether to sanitize the value before saving it to the database.
|
|
60
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
61
|
-
* If false, the value will be saved as is (raw input).
|
|
62
|
-
* @default false
|
|
63
|
-
*/
|
|
64
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
-
name: z.ZodString;
|
|
66
|
-
label: z.ZodOptional<z.ZodString>;
|
|
67
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
-
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
69
|
-
order: z.ZodOptional<z.ZodNumber>;
|
|
70
|
-
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types.js").ConditionalRule, import("../types.js").ConditionalRule>>>;
|
|
71
|
-
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
72
|
-
}, z.core.$strict>;
|
|
73
|
-
declare const textAreaFieldConfigSchema: z.ZodObject<{
|
|
74
|
-
type: z.ZodLiteral<"textarea">;
|
|
75
|
-
build: z.ZodFunction<z.core.$ZodFunctionArgs, z.ZodCustom<TextAreaField, TextAreaField>>;
|
|
76
|
-
placeholder: z.ZodOptional<z.ZodString>;
|
|
77
|
-
minLength: z.ZodOptional<z.ZodNumber>;
|
|
78
|
-
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
79
|
-
/**
|
|
80
|
-
* Whether to sanitize the value before saving it to the database.
|
|
81
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
82
|
-
* If false, the value will be saved as is (raw input).
|
|
83
|
-
* @default false
|
|
84
|
-
*/
|
|
85
|
-
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
-
name: z.ZodString;
|
|
87
|
-
label: z.ZodOptional<z.ZodString>;
|
|
88
|
-
required: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
-
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
90
|
-
order: z.ZodOptional<z.ZodNumber>;
|
|
91
|
-
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types.js").ConditionalRule, import("../types.js").ConditionalRule>>>;
|
|
92
|
-
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
93
|
-
}, z.core.$strict>;
|
|
94
|
-
/**
|
|
95
|
-
* TextArea field configuration type
|
|
96
|
-
* This is a plain object that can be serialized and used anywhere
|
|
97
|
-
* The build() method allows creating a TextAreaField instance when needed
|
|
98
|
-
*/
|
|
99
|
-
export type TextAreaFieldConfig = z.infer<typeof textAreaFieldConfigSchema>;
|
|
100
|
-
/**
|
|
101
|
-
* Helper function to create a textarea field configuration
|
|
102
|
-
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
103
|
-
* @param field
|
|
104
|
-
*/
|
|
105
|
-
export declare function textAreaField(field: z.infer<typeof optionsSchema>): TextAreaFieldConfig;
|
|
106
|
-
export {};
|
|
1
|
+
import type { BaseFieldConfig } from './field.js';
|
|
2
|
+
import { Field } from './field.js';
|
|
3
|
+
import { entityKind } from '../helpers/index.js';
|
|
4
|
+
import * as z from 'zod';
|
|
5
|
+
declare const configSchema: z.ZodObject<{
|
|
6
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
7
|
+
minLength: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
/**
|
|
10
|
+
* Whether to sanitize the value before saving it to the database.
|
|
11
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
12
|
+
* If false, the value will be saved as is (raw input).
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
}, z.core.$strict>;
|
|
17
|
+
type Config = z.infer<typeof configSchema>;
|
|
18
|
+
export declare class TextAreaField extends Field<'textarea', Config> {
|
|
19
|
+
static readonly [entityKind]: string;
|
|
20
|
+
readonly maxLength: number | undefined;
|
|
21
|
+
readonly minLength: number | undefined;
|
|
22
|
+
readonly placeholder: string | undefined;
|
|
23
|
+
readonly sanitize: boolean;
|
|
24
|
+
constructor(config: BaseFieldConfig<Config>);
|
|
25
|
+
exportForClient(): {
|
|
26
|
+
maxLength: number | undefined;
|
|
27
|
+
minLength: number | undefined;
|
|
28
|
+
placeholder: string | undefined;
|
|
29
|
+
sanitize: boolean;
|
|
30
|
+
type: "textarea";
|
|
31
|
+
name: string;
|
|
32
|
+
label: string;
|
|
33
|
+
required: boolean;
|
|
34
|
+
conditionalFields: import("../types/index.js").ConditionalField[];
|
|
35
|
+
readonly: boolean;
|
|
36
|
+
defaultValue: any;
|
|
37
|
+
value: any;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Sanitize the value
|
|
41
|
+
*/
|
|
42
|
+
private sanitizeValue;
|
|
43
|
+
/**
|
|
44
|
+
* Get the value of the field
|
|
45
|
+
*/
|
|
46
|
+
getValue(): string | undefined;
|
|
47
|
+
checkRequired(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Prepare the field for submission
|
|
50
|
+
*/
|
|
51
|
+
prepareForSubmission(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
export type TextAreaFieldClientConfig = ReturnType<TextAreaField['exportForClient']>;
|
|
54
|
+
declare const optionsSchema: z.ZodObject<{
|
|
55
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
56
|
+
minLength: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
58
|
+
/**
|
|
59
|
+
* Whether to sanitize the value before saving it to the database.
|
|
60
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
61
|
+
* If false, the value will be saved as is (raw input).
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
name: z.ZodString;
|
|
66
|
+
label: z.ZodOptional<z.ZodString>;
|
|
67
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
69
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types/index.js").ConditionalRule, import("../types/index.js").ConditionalRule>>>;
|
|
71
|
+
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
72
|
+
}, z.core.$strict>;
|
|
73
|
+
declare const textAreaFieldConfigSchema: z.ZodObject<{
|
|
74
|
+
type: z.ZodLiteral<"textarea">;
|
|
75
|
+
build: z.ZodFunction<z.core.$ZodFunctionArgs, z.ZodCustom<TextAreaField, TextAreaField>>;
|
|
76
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
77
|
+
minLength: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
/**
|
|
80
|
+
* Whether to sanitize the value before saving it to the database.
|
|
81
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
82
|
+
* If false, the value will be saved as is (raw input).
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
sanitize: z.ZodOptional<z.ZodBoolean>;
|
|
86
|
+
name: z.ZodString;
|
|
87
|
+
label: z.ZodOptional<z.ZodString>;
|
|
88
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
90
|
+
order: z.ZodOptional<z.ZodNumber>;
|
|
91
|
+
conditionalRules: z.ZodOptional<z.ZodArray<z.ZodCustom<import("../types/index.js").ConditionalRule, import("../types/index.js").ConditionalRule>>>;
|
|
92
|
+
adminGenerated: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<false>, z.ZodLiteral<"readonly">]>>;
|
|
93
|
+
}, z.core.$strict>;
|
|
94
|
+
/**
|
|
95
|
+
* TextArea field configuration type
|
|
96
|
+
* This is a plain object that can be serialized and used anywhere
|
|
97
|
+
* The build() method allows creating a TextAreaField instance when needed
|
|
98
|
+
*/
|
|
99
|
+
export type TextAreaFieldConfig = z.infer<typeof textAreaFieldConfigSchema>;
|
|
100
|
+
/**
|
|
101
|
+
* Helper function to create a textarea field configuration
|
|
102
|
+
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
103
|
+
* @param field
|
|
104
|
+
*/
|
|
105
|
+
export declare function textAreaField(field: z.infer<typeof optionsSchema>): TextAreaFieldConfig;
|
|
106
|
+
export {};
|
|
107
107
|
//# sourceMappingURL=textArea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textArea.d.ts","sourceRoot":"","sources":["../../../src/core/fields/textArea.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"textArea.d.ts","sourceRoot":"","sources":["../../../src/core/fields/textArea.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,EAAyB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,QAAA,MAAM,YAAY;;;;IAId;;;;;OAKG;;kBAEL,CAAA;AAEF,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AAE1C,qBAAa,aAAc,SAAQ,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;IACxD,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAkB;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAQ3B,eAAe;;;;;;;;;;;;;;IAU/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,aAAa;IAWb;;OAEG;IACG,oBAAoB;CAuB7B;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEpF,QAAA,MAAM,aAAa;;;;IAnGf;;;;;OAKG;;;;;;;;;kBAiGL,CAAA;AAEF,QAAA,MAAM,yBAAyB;;;;;;IAxG3B;;;;;OAKG;;;;;;;;;kBAuGL,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG,mBAAmB,CAmBvF"}
|
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
import { Field, baseFieldConfigSchema } from
|
|
2
|
-
import { entityKind } from
|
|
3
|
-
import * as z from 'zod';
|
|
4
|
-
import { escapeHTML } from
|
|
5
|
-
const configSchema = z.strictObject({
|
|
6
|
-
placeholder: z.string().optional().describe('The placeholder text for the field'),
|
|
7
|
-
minLength: z.number().optional().describe('The minimum length of the field value'),
|
|
8
|
-
maxLength: z.number().optional().describe('The maximum length of the field value'),
|
|
9
|
-
/**
|
|
10
|
-
* Whether to sanitize the value before saving it to the database.
|
|
11
|
-
* If true, the value will be escaped to prevent XSS attacks.
|
|
12
|
-
* If false, the value will be saved as is (raw input).
|
|
13
|
-
* @default false
|
|
14
|
-
*/
|
|
15
|
-
sanitize: z.boolean().optional().describe('Sanitize the value before saving'),
|
|
16
|
-
});
|
|
17
|
-
export class TextAreaField extends Field {
|
|
18
|
-
static [entityKind] = 'TextAreaField';
|
|
19
|
-
maxLength;
|
|
20
|
-
minLength;
|
|
21
|
-
placeholder;
|
|
22
|
-
sanitize;
|
|
23
|
-
constructor(config) {
|
|
24
|
-
super(config, 'textarea');
|
|
25
|
-
this.maxLength = config.maxLength;
|
|
26
|
-
this.minLength = config.minLength;
|
|
27
|
-
this.placeholder = config.placeholder;
|
|
28
|
-
this.sanitize = config.sanitize ?? false;
|
|
29
|
-
}
|
|
30
|
-
exportForClient() {
|
|
31
|
-
return {
|
|
32
|
-
...super.exportForClient(),
|
|
33
|
-
maxLength: this.maxLength,
|
|
34
|
-
minLength: this.minLength,
|
|
35
|
-
placeholder: this.placeholder,
|
|
36
|
-
sanitize: this.sanitize,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Sanitize the value
|
|
41
|
-
*/
|
|
42
|
-
sanitizeValue() {
|
|
43
|
-
/**
|
|
44
|
-
* Check if the value is not undefined
|
|
45
|
-
*/
|
|
46
|
-
if (this.value !== undefined && this.sanitize) {
|
|
47
|
-
/**
|
|
48
|
-
* Sanitize the value
|
|
49
|
-
*/
|
|
50
|
-
this.value = escapeHTML(this.value);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Get the value of the field
|
|
55
|
-
*/
|
|
56
|
-
getValue() {
|
|
57
|
-
return this.value;
|
|
58
|
-
}
|
|
59
|
-
checkRequired() {
|
|
60
|
-
/**
|
|
61
|
-
* Check if the field is required
|
|
62
|
-
*/
|
|
63
|
-
if (this.required) {
|
|
64
|
-
if (!this.value || this.value.trim().length === 0) {
|
|
65
|
-
throw new Error(`Field ${this.label} is required`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Prepare the field for submission
|
|
71
|
-
*/
|
|
72
|
-
async prepareForSubmission() {
|
|
73
|
-
/**
|
|
74
|
-
* Sanitize the value
|
|
75
|
-
*/
|
|
76
|
-
this.sanitizeValue();
|
|
77
|
-
/**
|
|
78
|
-
* Check minimum length
|
|
79
|
-
*/
|
|
80
|
-
if (this.minLength) {
|
|
81
|
-
if (this.minLength > this.value.length) {
|
|
82
|
-
throw new Error(`Field ${this.label} must be at least ${this.minLength} characters long`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Check maximum length
|
|
87
|
-
*/
|
|
88
|
-
if (this.maxLength) {
|
|
89
|
-
if (this.maxLength < this.value.length) {
|
|
90
|
-
throw new Error(`Field ${this.label} must be at most ${this.maxLength} characters long`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const optionsSchema = z.strictObject({
|
|
96
|
-
...baseFieldConfigSchema.shape,
|
|
97
|
-
...configSchema.shape,
|
|
98
|
-
});
|
|
99
|
-
const textAreaFieldConfigSchema = z.strictObject({
|
|
100
|
-
...optionsSchema.shape,
|
|
101
|
-
type: z.literal('textarea').describe('The type of the field'),
|
|
102
|
-
build: z.function().output(z.instanceof(TextAreaField)).describe('Build a TextAreaField instance from this config'),
|
|
103
|
-
});
|
|
104
|
-
/**
|
|
105
|
-
* Helper function to create a textarea field configuration
|
|
106
|
-
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
107
|
-
* @param field
|
|
108
|
-
*/
|
|
109
|
-
export function textAreaField(field) {
|
|
110
|
-
/**
|
|
111
|
-
* Validate the field config
|
|
112
|
-
*/
|
|
113
|
-
const result = optionsSchema.safeParse(field);
|
|
114
|
-
if (!result.success) {
|
|
115
|
-
throw new Error(`[Field: ${field.name}]: ${z.prettifyError(result.error)}`);
|
|
116
|
-
}
|
|
117
|
-
const config = {
|
|
118
|
-
...field,
|
|
119
|
-
type: 'textarea',
|
|
120
|
-
build() {
|
|
121
|
-
// Use the original field config directly (it doesn't have build() method)
|
|
122
|
-
return new TextAreaField(field);
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
return config;
|
|
126
|
-
}
|
|
1
|
+
import { Field, baseFieldConfigSchema } from './field.js';
|
|
2
|
+
import { entityKind } from '../helpers/index.js';
|
|
3
|
+
import * as z from 'zod';
|
|
4
|
+
import { escapeHTML } from '../security/dom.js';
|
|
5
|
+
const configSchema = z.strictObject({
|
|
6
|
+
placeholder: z.string().optional().describe('The placeholder text for the field'),
|
|
7
|
+
minLength: z.number().optional().describe('The minimum length of the field value'),
|
|
8
|
+
maxLength: z.number().optional().describe('The maximum length of the field value'),
|
|
9
|
+
/**
|
|
10
|
+
* Whether to sanitize the value before saving it to the database.
|
|
11
|
+
* If true, the value will be escaped to prevent XSS attacks.
|
|
12
|
+
* If false, the value will be saved as is (raw input).
|
|
13
|
+
* @default false
|
|
14
|
+
*/
|
|
15
|
+
sanitize: z.boolean().optional().describe('Sanitize the value before saving'),
|
|
16
|
+
});
|
|
17
|
+
export class TextAreaField extends Field {
|
|
18
|
+
static [entityKind] = 'TextAreaField';
|
|
19
|
+
maxLength;
|
|
20
|
+
minLength;
|
|
21
|
+
placeholder;
|
|
22
|
+
sanitize;
|
|
23
|
+
constructor(config) {
|
|
24
|
+
super(config, 'textarea');
|
|
25
|
+
this.maxLength = config.maxLength;
|
|
26
|
+
this.minLength = config.minLength;
|
|
27
|
+
this.placeholder = config.placeholder;
|
|
28
|
+
this.sanitize = config.sanitize ?? false;
|
|
29
|
+
}
|
|
30
|
+
exportForClient() {
|
|
31
|
+
return {
|
|
32
|
+
...super.exportForClient(),
|
|
33
|
+
maxLength: this.maxLength,
|
|
34
|
+
minLength: this.minLength,
|
|
35
|
+
placeholder: this.placeholder,
|
|
36
|
+
sanitize: this.sanitize,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sanitize the value
|
|
41
|
+
*/
|
|
42
|
+
sanitizeValue() {
|
|
43
|
+
/**
|
|
44
|
+
* Check if the value is not undefined
|
|
45
|
+
*/
|
|
46
|
+
if (this.value !== undefined && this.sanitize) {
|
|
47
|
+
/**
|
|
48
|
+
* Sanitize the value
|
|
49
|
+
*/
|
|
50
|
+
this.value = escapeHTML(this.value);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the value of the field
|
|
55
|
+
*/
|
|
56
|
+
getValue() {
|
|
57
|
+
return this.value;
|
|
58
|
+
}
|
|
59
|
+
checkRequired() {
|
|
60
|
+
/**
|
|
61
|
+
* Check if the field is required
|
|
62
|
+
*/
|
|
63
|
+
if (this.required) {
|
|
64
|
+
if (!this.value || this.value.trim().length === 0) {
|
|
65
|
+
throw new Error(`Field ${this.label} is required`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Prepare the field for submission
|
|
71
|
+
*/
|
|
72
|
+
async prepareForSubmission() {
|
|
73
|
+
/**
|
|
74
|
+
* Sanitize the value
|
|
75
|
+
*/
|
|
76
|
+
this.sanitizeValue();
|
|
77
|
+
/**
|
|
78
|
+
* Check minimum length
|
|
79
|
+
*/
|
|
80
|
+
if (this.minLength) {
|
|
81
|
+
if (this.minLength > this.value.length) {
|
|
82
|
+
throw new Error(`Field ${this.label} must be at least ${this.minLength} characters long`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check maximum length
|
|
87
|
+
*/
|
|
88
|
+
if (this.maxLength) {
|
|
89
|
+
if (this.maxLength < this.value.length) {
|
|
90
|
+
throw new Error(`Field ${this.label} must be at most ${this.maxLength} characters long`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const optionsSchema = z.strictObject({
|
|
96
|
+
...baseFieldConfigSchema.shape,
|
|
97
|
+
...configSchema.shape,
|
|
98
|
+
});
|
|
99
|
+
const textAreaFieldConfigSchema = z.strictObject({
|
|
100
|
+
...optionsSchema.shape,
|
|
101
|
+
type: z.literal('textarea').describe('The type of the field'),
|
|
102
|
+
build: z.function().output(z.instanceof(TextAreaField)).describe('Build a TextAreaField instance from this config'),
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* Helper function to create a textarea field configuration
|
|
106
|
+
* Returns a config object with a build() method that can be serialized and used anywhere
|
|
107
|
+
* @param field
|
|
108
|
+
*/
|
|
109
|
+
export function textAreaField(field) {
|
|
110
|
+
/**
|
|
111
|
+
* Validate the field config
|
|
112
|
+
*/
|
|
113
|
+
const result = optionsSchema.safeParse(field);
|
|
114
|
+
if (!result.success) {
|
|
115
|
+
throw new Error(`[Field: ${field.name}]: ${z.prettifyError(result.error)}`);
|
|
116
|
+
}
|
|
117
|
+
const config = {
|
|
118
|
+
...field,
|
|
119
|
+
type: 'textarea',
|
|
120
|
+
build() {
|
|
121
|
+
// Use the original field config directly (it doesn't have build() method)
|
|
122
|
+
return new TextAreaField(field);
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
return config;
|
|
126
|
+
}
|