@betterinternship/core 2.10.1 → 2.12.1
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/lib/broker/base.process.d.ts +2 -2
- package/dist/lib/broker/base.process.js +2 -2
- package/dist/lib/broker/base.task.d.ts +40 -40
- package/dist/lib/broker/broker.d.ts +28 -28
- package/dist/lib/broker/broker.js +111 -111
- package/dist/lib/chat/chat.d.ts +51 -51
- package/dist/lib/chat/chat.js +183 -183
- package/dist/lib/chat/index.d.ts +2 -2
- package/dist/lib/chat/index.js +2 -2
- package/dist/lib/chat/pb.d.ts +3 -3
- package/dist/lib/chat/pb.js +15 -15
- package/dist/lib/email/email.d.ts +22 -22
- package/dist/lib/email/email.js +170 -170
- package/dist/lib/env.d.ts +1 -1
- package/dist/lib/env.js +3 -3
- package/dist/lib/forms/constants/index.js +2 -2
- package/dist/lib/forms/field-preset-templates.d.ts +1 -1
- package/dist/lib/forms/field-preset-templates.js +26 -8
- package/dist/lib/forms/field-preset-templates.js.map +1 -1
- package/dist/lib/forms/fields.client.d.ts +1 -1
- package/dist/lib/forms/fields.client.js +2 -0
- package/dist/lib/forms/fields.client.js.map +1 -1
- package/dist/lib/forms/form-metadata.d.ts +2 -0
- package/dist/lib/forms/form-metadata.js.map +1 -1
- package/dist/lib/forms/index.d.ts +1 -0
- package/dist/lib/forms/index.js +1 -0
- package/dist/lib/forms/index.js.map +1 -1
- package/dist/lib/forms/signature-image.d.ts +38 -0
- package/dist/lib/forms/signature-image.js +107 -0
- package/dist/lib/forms/signature-image.js.map +1 -0
- package/dist/lib/forms/validator-ir.d.ts +8 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export const SIGNATURE_IMAGE_KIND = 'signature-image';
|
|
2
|
+
export const SIGNATURE_IMAGE_FIELD_PREFIX = '__signatureImage:';
|
|
3
|
+
export const SIGNATURE_IMAGE_MIME_TYPES = [
|
|
4
|
+
'image/png',
|
|
5
|
+
'image/jpeg',
|
|
6
|
+
];
|
|
7
|
+
export const getSignatureImageFieldKey = (fieldKey) => `${SIGNATURE_IMAGE_FIELD_PREFIX}${fieldKey}`;
|
|
8
|
+
export const createSignatureImageValue = (input) => ({
|
|
9
|
+
kind: SIGNATURE_IMAGE_KIND,
|
|
10
|
+
source: input.source,
|
|
11
|
+
image: 'image' in input
|
|
12
|
+
? input.image
|
|
13
|
+
: {
|
|
14
|
+
storage: 'inline',
|
|
15
|
+
dataUrl: input.dataUrl,
|
|
16
|
+
mimeType: input.mimeType,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
export const serializeSignatureImageValue = (value) => JSON.stringify(value);
|
|
20
|
+
export const parseSignatureImageValue = (value) => {
|
|
21
|
+
if (typeof value !== 'string' || !value.trim())
|
|
22
|
+
return null;
|
|
23
|
+
try {
|
|
24
|
+
const parsed = JSON.parse(value);
|
|
25
|
+
if (!parsed || parsed.kind !== SIGNATURE_IMAGE_KIND)
|
|
26
|
+
return null;
|
|
27
|
+
if (parsed.source !== 'draw' && parsed.source !== 'upload')
|
|
28
|
+
return null;
|
|
29
|
+
const image = normalizeSignatureImagePayload(parsed);
|
|
30
|
+
if (!image)
|
|
31
|
+
return null;
|
|
32
|
+
return {
|
|
33
|
+
kind: SIGNATURE_IMAGE_KIND,
|
|
34
|
+
source: parsed.source,
|
|
35
|
+
image,
|
|
36
|
+
...(image.storage === 'inline'
|
|
37
|
+
? {
|
|
38
|
+
dataUrl: image.dataUrl,
|
|
39
|
+
mimeType: image.mimeType,
|
|
40
|
+
}
|
|
41
|
+
: {
|
|
42
|
+
mimeType: image.mimeType,
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export const isInlineSignatureImagePayload = (value) => {
|
|
51
|
+
if (!value || typeof value !== 'object')
|
|
52
|
+
return false;
|
|
53
|
+
const image = value;
|
|
54
|
+
if (image.storage !== 'inline')
|
|
55
|
+
return false;
|
|
56
|
+
if (image.mimeType !== 'image/png' && image.mimeType !== 'image/jpeg')
|
|
57
|
+
return false;
|
|
58
|
+
if (typeof image.dataUrl !== 'string')
|
|
59
|
+
return false;
|
|
60
|
+
return image.dataUrl.startsWith(`data:${image.mimeType};base64,`);
|
|
61
|
+
};
|
|
62
|
+
export const isBucketSignatureImagePayload = (value) => {
|
|
63
|
+
if (!value || typeof value !== 'object')
|
|
64
|
+
return false;
|
|
65
|
+
const image = value;
|
|
66
|
+
if (image.storage !== 'bucket')
|
|
67
|
+
return false;
|
|
68
|
+
if (image.mimeType !== 'image/png' && image.mimeType !== 'image/jpeg')
|
|
69
|
+
return false;
|
|
70
|
+
if (typeof image.bucket !== 'string' || !image.bucket.trim())
|
|
71
|
+
return false;
|
|
72
|
+
if (typeof image.path !== 'string' || !image.path.trim())
|
|
73
|
+
return false;
|
|
74
|
+
if (image.publicUrl !== undefined && typeof image.publicUrl !== 'string')
|
|
75
|
+
return false;
|
|
76
|
+
if (image.signedUrl !== undefined && typeof image.signedUrl !== 'string')
|
|
77
|
+
return false;
|
|
78
|
+
if (image.sizeBytes !== undefined && typeof image.sizeBytes !== 'number')
|
|
79
|
+
return false;
|
|
80
|
+
return true;
|
|
81
|
+
};
|
|
82
|
+
export const normalizeSignatureImagePayload = (value) => {
|
|
83
|
+
if (!value || typeof value !== 'object')
|
|
84
|
+
return null;
|
|
85
|
+
const parsed = value;
|
|
86
|
+
if (isInlineSignatureImagePayload(parsed.image))
|
|
87
|
+
return parsed.image;
|
|
88
|
+
if (isBucketSignatureImagePayload(parsed.image))
|
|
89
|
+
return parsed.image;
|
|
90
|
+
if (parsed.mimeType &&
|
|
91
|
+
parsed.dataUrl &&
|
|
92
|
+
isInlineSignatureImagePayload({
|
|
93
|
+
storage: 'inline',
|
|
94
|
+
mimeType: parsed.mimeType,
|
|
95
|
+
dataUrl: parsed.dataUrl,
|
|
96
|
+
})) {
|
|
97
|
+
return {
|
|
98
|
+
storage: 'inline',
|
|
99
|
+
mimeType: parsed.mimeType,
|
|
100
|
+
dataUrl: parsed.dataUrl,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
};
|
|
105
|
+
export const isSignatureImageValue = (value) => parseSignatureImageValue(value) !== null;
|
|
106
|
+
export const isSerializedSignatureImageValue = (value) => parseSignatureImageValue(value) !== null;
|
|
107
|
+
//# sourceMappingURL=signature-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature-image.js","sourceRoot":"","sources":["../../../lib/forms/signature-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ValidatorBaseType = 'text' | 'number' | 'date' | 'enum' | 'array' | 'checkbox' | 'textarea' | 'time' | 'email' | 'phone' | 'url' | 'signature' | 'image';
|
|
1
|
+
export type ValidatorBaseType = 'text' | 'number' | 'date' | 'enum' | 'array' | 'checkbox' | 'textarea' | 'time' | 'email' | 'phone' | 'url' | 'signature' | 'image' | 'radio';
|
|
2
2
|
type ValidatorRuleRequired = {
|
|
3
3
|
kind: 'required';
|
|
4
4
|
message?: string;
|
|
@@ -123,6 +123,7 @@ type PhoneRule = ValidatorRuleRequired;
|
|
|
123
123
|
type UrlRule = ValidatorRuleRequired;
|
|
124
124
|
type SignatureRule = ValidatorRuleRequired;
|
|
125
125
|
type ImageRule = ValidatorRuleRequired;
|
|
126
|
+
type RadioRule = ValidatorRuleRequired;
|
|
126
127
|
type ValidatorIRMeta = {
|
|
127
128
|
mode?: 'builder' | 'imported';
|
|
128
129
|
importStatus?: 'exact' | 'partial' | 'custom';
|
|
@@ -193,5 +194,10 @@ type ValidatorIRImage = {
|
|
|
193
194
|
baseType: 'image';
|
|
194
195
|
rules: ImageRule[];
|
|
195
196
|
} & ValidatorIRMeta;
|
|
196
|
-
|
|
197
|
+
type ValidatorIRRadio = {
|
|
198
|
+
version: 0;
|
|
199
|
+
baseType: 'radio';
|
|
200
|
+
rules: RadioRule[];
|
|
201
|
+
} & ValidatorIRMeta;
|
|
202
|
+
export type ValidatorIRv0 = ValidatorIRText | ValidatorIRNumber | ValidatorIRDate | ValidatorIREnum | ValidatorIRArray | ValidatorIRCheckbox | ValidatorIRTextarea | ValidatorIRTime | ValidatorIREmail | ValidatorIRPhone | ValidatorIRUrl | ValidatorIRSignature | ValidatorIRImage | ValidatorIRRadio;
|
|
197
203
|
export {};
|