@betterinternship/core 1.2.9 → 1.2.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.
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import z, { ZodType } from 'zod';
|
|
2
|
-
export declare const SCHEMA_VERSION = 0;
|
|
3
|
-
export interface IFormMetadata {
|
|
4
|
-
name: string;
|
|
5
|
-
label: string;
|
|
6
|
-
schema_version: number;
|
|
7
|
-
schema: IFormField[];
|
|
8
|
-
subscribers: string[];
|
|
9
|
-
required_parties: ('university' | 'entity' | 'student' | 'student-guardian')[];
|
|
10
|
-
email: {
|
|
11
|
-
sender: string;
|
|
12
|
-
subject: string;
|
|
13
|
-
content: string;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export interface IFormField {
|
|
17
|
-
field: string;
|
|
18
|
-
type: 'text' | 'signature';
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
w: number;
|
|
22
|
-
h: number;
|
|
23
|
-
page: number;
|
|
24
|
-
validator: string;
|
|
25
|
-
transformer: string;
|
|
26
|
-
prefiller: string;
|
|
27
|
-
}
|
|
28
|
-
export type IFormFieldValidator = ZodType;
|
|
29
|
-
export type IFormFieldTransformer = ZodType;
|
|
30
|
-
export type IFormFieldPrefiller<SourceDomains extends any[]> = (params: Record<string, SourceDomains[number]>) => string;
|
|
31
|
-
export declare class FormMetadata<SourceDomains extends any[]> {
|
|
32
|
-
private readonly formMetadata;
|
|
33
|
-
private readonly fields;
|
|
34
|
-
constructor(formMetadata: IFormMetadata);
|
|
35
|
-
encodeAsJSON(): string;
|
|
36
|
-
static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
|
|
37
|
-
getField(fieldname: string, params?: any): (Omit<IFormField, 'validator' | 'transformer' | 'prefiller'> & {
|
|
38
|
-
validator: IFormFieldValidator | null;
|
|
39
|
-
transformer: IFormFieldTransformer | null;
|
|
40
|
-
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
41
|
-
}) | null;
|
|
42
|
-
getFields(params?: any): (Omit<IFormField, 'validator' | 'transformer' | 'prefiller'> & {
|
|
43
|
-
validator: IFormFieldValidator | null;
|
|
44
|
-
transformer: IFormFieldTransformer | null;
|
|
45
|
-
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
46
|
-
})[];
|
|
47
|
-
private parseValidator;
|
|
48
|
-
private parseTransformer;
|
|
49
|
-
private parsePrefiller;
|
|
50
|
-
}
|
|
51
|
-
export declare const FormValidatorFactory: {
|
|
52
|
-
isValidEmail: () => z.ZodString;
|
|
53
|
-
isWholeNumber: () => z.ZodNumber;
|
|
54
|
-
isNumber: () => z.ZodNumber;
|
|
55
|
-
inWholeNumberRange: (min: number, max: number) => z.ZodNumber;
|
|
56
|
-
aboveWholeNumber: (min: number) => z.ZodNumber;
|
|
57
|
-
belowWholeNumber: (max: number) => z.ZodNumber;
|
|
58
|
-
};
|
|
1
|
+
import z, { ZodType } from 'zod';
|
|
2
|
+
export declare const SCHEMA_VERSION = 0;
|
|
3
|
+
export interface IFormMetadata {
|
|
4
|
+
name: string;
|
|
5
|
+
label: string;
|
|
6
|
+
schema_version: number;
|
|
7
|
+
schema: IFormField[];
|
|
8
|
+
subscribers: string[];
|
|
9
|
+
required_parties: ('university' | 'entity' | 'student' | 'student-guardian')[];
|
|
10
|
+
email: {
|
|
11
|
+
sender: string;
|
|
12
|
+
subject: string;
|
|
13
|
+
content: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface IFormField {
|
|
17
|
+
field: string;
|
|
18
|
+
type: 'text' | 'signature';
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
w: number;
|
|
22
|
+
h: number;
|
|
23
|
+
page: number;
|
|
24
|
+
validator: string;
|
|
25
|
+
transformer: string;
|
|
26
|
+
prefiller: string;
|
|
27
|
+
}
|
|
28
|
+
export type IFormFieldValidator = ZodType;
|
|
29
|
+
export type IFormFieldTransformer = ZodType;
|
|
30
|
+
export type IFormFieldPrefiller<SourceDomains extends any[]> = (params: Record<string, SourceDomains[number]>) => string;
|
|
31
|
+
export declare class FormMetadata<SourceDomains extends any[]> {
|
|
32
|
+
private readonly formMetadata;
|
|
33
|
+
private readonly fields;
|
|
34
|
+
constructor(formMetadata: IFormMetadata);
|
|
35
|
+
encodeAsJSON(): string;
|
|
36
|
+
static decodeFromJSON<SourceDomains extends any[]>(json: string): FormMetadata<SourceDomains>;
|
|
37
|
+
getField(fieldname: string, params?: any): (Omit<IFormField, 'validator' | 'transformer' | 'prefiller'> & {
|
|
38
|
+
validator: IFormFieldValidator | null;
|
|
39
|
+
transformer: IFormFieldTransformer | null;
|
|
40
|
+
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
41
|
+
}) | null;
|
|
42
|
+
getFields(params?: any): (Omit<IFormField, 'validator' | 'transformer' | 'prefiller'> & {
|
|
43
|
+
validator: IFormFieldValidator | null;
|
|
44
|
+
transformer: IFormFieldTransformer | null;
|
|
45
|
+
prefiller: IFormFieldPrefiller<SourceDomains> | null;
|
|
46
|
+
})[];
|
|
47
|
+
private parseValidator;
|
|
48
|
+
private parseTransformer;
|
|
49
|
+
private parsePrefiller;
|
|
50
|
+
}
|
|
51
|
+
export declare const FormValidatorFactory: {
|
|
52
|
+
isValidEmail: () => z.ZodString;
|
|
53
|
+
isWholeNumber: () => z.ZodNumber;
|
|
54
|
+
isNumber: () => z.ZodNumber;
|
|
55
|
+
inWholeNumberRange: (min: number, max: number) => z.ZodNumber;
|
|
56
|
+
aboveWholeNumber: (min: number) => z.ZodNumber;
|
|
57
|
+
belowWholeNumber: (max: number) => z.ZodNumber;
|
|
58
|
+
};
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormValidatorFactory = exports.FormMetadata = exports.SCHEMA_VERSION = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
exports.SCHEMA_VERSION = 0;
|
|
6
|
-
class FormMetadata {
|
|
7
|
-
formMetadata;
|
|
8
|
-
fields;
|
|
9
|
-
constructor(formMetadata) {
|
|
10
|
-
this.formMetadata = formMetadata;
|
|
11
|
-
this.fields = formMetadata.schema;
|
|
12
|
-
}
|
|
13
|
-
encodeAsJSON() {
|
|
14
|
-
return JSON.stringify(this.formMetadata);
|
|
15
|
-
}
|
|
16
|
-
static decodeFromJSON(json) {
|
|
17
|
-
return JSON.parse(json);
|
|
18
|
-
}
|
|
19
|
-
getField(fieldname, params) {
|
|
20
|
-
const field = this.fields.find((f) => f.field === fieldname);
|
|
21
|
-
if (!field)
|
|
22
|
-
return null;
|
|
23
|
-
return {
|
|
24
|
-
...field,
|
|
25
|
-
validator: this.parseValidator(field.validator, params),
|
|
26
|
-
transformer: this.parseTransformer(field.transformer, params),
|
|
27
|
-
prefiller: this.parsePrefiller(field.prefiller, params),
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
getFields(params) {
|
|
31
|
-
return this.fields
|
|
32
|
-
.map((field) => this.getField(field.field, params))
|
|
33
|
-
.filter((field) => field !== null);
|
|
34
|
-
}
|
|
35
|
-
parseValidator(fieldname, params) {
|
|
36
|
-
const field = this.fields.find((f) => f.field === fieldname);
|
|
37
|
-
if (!field)
|
|
38
|
-
return null;
|
|
39
|
-
const validator = field.validator;
|
|
40
|
-
const ret = `return ${validator}`;
|
|
41
|
-
const evaluator = new Function('z', 'params', ret);
|
|
42
|
-
return evaluator(zod_1.default, params ?? {});
|
|
43
|
-
}
|
|
44
|
-
parseTransformer(fieldname, params) {
|
|
45
|
-
const field = this.fields.find((f) => f.field === fieldname);
|
|
46
|
-
if (!field)
|
|
47
|
-
return null;
|
|
48
|
-
const transformer = field.transformer;
|
|
49
|
-
const ret = `return ${transformer}`;
|
|
50
|
-
const evaluator = new Function('z', 'params', ret);
|
|
51
|
-
return evaluator(zod_1.default, params ?? {});
|
|
52
|
-
}
|
|
53
|
-
parsePrefiller(fieldname, params) {
|
|
54
|
-
const field = this.fields.find((f) => f.field === fieldname);
|
|
55
|
-
if (!field)
|
|
56
|
-
return null;
|
|
57
|
-
const prefiller = field.prefiller;
|
|
58
|
-
const ret = `return ${prefiller}`;
|
|
59
|
-
const evaluator = new Function('params', ret);
|
|
60
|
-
return evaluator(params ?? {});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.FormMetadata = FormMetadata;
|
|
64
|
-
exports.FormValidatorFactory = {
|
|
65
|
-
isValidEmail: () => zod_1.default
|
|
66
|
-
.string()
|
|
67
|
-
.regex(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, 'Invalid email format'),
|
|
68
|
-
isWholeNumber: () => zod_1.default.number().int().nonnegative(),
|
|
69
|
-
isNumber: () => zod_1.default.number().int().nonnegative(),
|
|
70
|
-
inWholeNumberRange: (min, max) => zod_1.default.number().min(min).max(max),
|
|
71
|
-
aboveWholeNumber: (min) => zod_1.default.number().int().min(min),
|
|
72
|
-
belowWholeNumber: (max) => zod_1.default.number().int().max(max),
|
|
73
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FormValidatorFactory = exports.FormMetadata = exports.SCHEMA_VERSION = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.SCHEMA_VERSION = 0;
|
|
6
|
+
class FormMetadata {
|
|
7
|
+
formMetadata;
|
|
8
|
+
fields;
|
|
9
|
+
constructor(formMetadata) {
|
|
10
|
+
this.formMetadata = formMetadata;
|
|
11
|
+
this.fields = formMetadata.schema;
|
|
12
|
+
}
|
|
13
|
+
encodeAsJSON() {
|
|
14
|
+
return JSON.stringify(this.formMetadata);
|
|
15
|
+
}
|
|
16
|
+
static decodeFromJSON(json) {
|
|
17
|
+
return JSON.parse(json);
|
|
18
|
+
}
|
|
19
|
+
getField(fieldname, params) {
|
|
20
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
21
|
+
if (!field)
|
|
22
|
+
return null;
|
|
23
|
+
return {
|
|
24
|
+
...field,
|
|
25
|
+
validator: this.parseValidator(field.validator, params),
|
|
26
|
+
transformer: this.parseTransformer(field.transformer, params),
|
|
27
|
+
prefiller: this.parsePrefiller(field.prefiller, params),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
getFields(params) {
|
|
31
|
+
return this.fields
|
|
32
|
+
.map((field) => this.getField(field.field, params))
|
|
33
|
+
.filter((field) => field !== null);
|
|
34
|
+
}
|
|
35
|
+
parseValidator(fieldname, params) {
|
|
36
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
37
|
+
if (!field)
|
|
38
|
+
return null;
|
|
39
|
+
const validator = field.validator;
|
|
40
|
+
const ret = `return ${validator}`;
|
|
41
|
+
const evaluator = new Function('z', 'params', ret);
|
|
42
|
+
return evaluator(zod_1.default, params ?? {});
|
|
43
|
+
}
|
|
44
|
+
parseTransformer(fieldname, params) {
|
|
45
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
46
|
+
if (!field)
|
|
47
|
+
return null;
|
|
48
|
+
const transformer = field.transformer;
|
|
49
|
+
const ret = `return ${transformer}`;
|
|
50
|
+
const evaluator = new Function('z', 'params', ret);
|
|
51
|
+
return evaluator(zod_1.default, params ?? {});
|
|
52
|
+
}
|
|
53
|
+
parsePrefiller(fieldname, params) {
|
|
54
|
+
const field = this.fields.find((f) => f.field === fieldname);
|
|
55
|
+
if (!field)
|
|
56
|
+
return null;
|
|
57
|
+
const prefiller = field.prefiller;
|
|
58
|
+
const ret = `return ${prefiller}`;
|
|
59
|
+
const evaluator = new Function('params', ret);
|
|
60
|
+
return evaluator(params ?? {});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.FormMetadata = FormMetadata;
|
|
64
|
+
exports.FormValidatorFactory = {
|
|
65
|
+
isValidEmail: () => zod_1.default
|
|
66
|
+
.string()
|
|
67
|
+
.regex(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, 'Invalid email format'),
|
|
68
|
+
isWholeNumber: () => zod_1.default.number().int().nonnegative(),
|
|
69
|
+
isNumber: () => zod_1.default.number().int().nonnegative(),
|
|
70
|
+
inWholeNumberRange: (min, max) => zod_1.default.number().min(min).max(max),
|
|
71
|
+
aboveWholeNumber: (min) => zod_1.default.number().int().min(min),
|
|
72
|
+
belowWholeNumber: (max) => zod_1.default.number().int().max(max),
|
|
73
|
+
};
|
|
74
74
|
//# sourceMappingURL=form-metadata.js.map
|