jopi-toolkit 3.0.15 → 3.0.24

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 (37) hide show
  1. package/dist/jk_app/common.d.ts +2 -2
  2. package/dist/jk_app/common.js +7 -12
  3. package/dist/jk_app/common.js.map +1 -1
  4. package/dist/jk_data/index.d.ts +32 -17
  5. package/dist/jk_data/index.js +55 -25
  6. package/dist/jk_data/index.js.map +1 -1
  7. package/dist/jk_events/index.js +14 -6
  8. package/dist/jk_events/index.js.map +1 -1
  9. package/dist/jk_fs/jBundler_ifServer.d.ts +3 -3
  10. package/dist/jk_fs/jBundler_ifServer.js +26 -5
  11. package/dist/jk_fs/jBundler_ifServer.js.map +1 -1
  12. package/dist/jk_schemas/index.d.ts +82 -6
  13. package/dist/jk_schemas/index.js +48 -5
  14. package/dist/jk_schemas/index.js.map +1 -1
  15. package/dist/jk_term/index.d.ts +2 -0
  16. package/dist/jk_term/index.js +2 -0
  17. package/dist/jk_term/index.js.map +1 -1
  18. package/package.json +4 -8
  19. package/src/jk_app/common.ts +7 -17
  20. package/src/jk_data/index.js +68 -30
  21. package/src/jk_data/index.ts +86 -49
  22. package/src/jk_events/index.js +15 -7
  23. package/src/jk_events/index.ts +18 -7
  24. package/src/jk_fs/jBundler_ifServer.js +44 -9
  25. package/src/jk_fs/jBundler_ifServer.ts +26 -5
  26. package/src/jk_schemas/index.js +50 -5
  27. package/src/jk_schemas/index.ts +140 -11
  28. package/src/jk_term/index.js +2 -0
  29. package/src/jk_term/index.ts +3 -0
  30. package/dist/jk_schemas/jkSchemas.d.ts +0 -188
  31. package/dist/jk_schemas/jkSchemas.js +0 -257
  32. package/dist/jk_schemas/jkSchemas.js.map +0 -1
  33. package/dist/jk_translate/index.d.ts +0 -21
  34. package/dist/jk_translate/index.js +0 -56
  35. package/dist/jk_translate/index.js.map +0 -1
  36. package/src/jk_translate/index.js +0 -56
  37. package/src/jk_translate/index.ts +0 -85
@@ -1,257 +0,0 @@
1
- // noinspection JSUnusedGlobalSymbols
2
- import { generateUUIDv4 } from "jopi-toolkit/jk_tools";
3
- //region Validation
4
- /**
5
- * Throwing this error allows it to be caught
6
- * when validating an object.
7
- */
8
- class SchemaError extends Error {
9
- errorMessage;
10
- errorCode;
11
- constructor(errorMessage, errorCode) {
12
- super("");
13
- this.errorMessage = errorMessage;
14
- this.errorCode = errorCode;
15
- }
16
- }
17
- /**
18
- * Declare an error when validating a schema.
19
- * Must be called when validating or normalizing.
20
- */
21
- export function declareError(message, errorCode) {
22
- throw new SchemaError(message, errorCode);
23
- }
24
- export function validateSchema(data, schema) {
25
- // Normalize the data.
26
- // It's a step where we apply automatic corrections.
27
- //
28
- if (schema.schemaMeta.normalize) {
29
- try {
30
- schema.schemaMeta.normalize(data);
31
- }
32
- catch (e) {
33
- if (e instanceof SchemaError) {
34
- return {
35
- globalError: e.errorMessage || `Schema validation failed`,
36
- globalErrorCode: e.errorCode || "SCHEMA_VALIDATION_FAILED"
37
- };
38
- }
39
- else {
40
- throw e;
41
- }
42
- }
43
- }
44
- // >>> Check each field individually.
45
- // Each time it will:
46
- // - Normalize the value.
47
- // - Check if optional + undefined.
48
- // - Apply validator for the field type.
49
- let fieldErrors;
50
- for (let fieldName in schema.desc) {
51
- let defaultErrorMessage;
52
- try {
53
- const field = schema.desc[fieldName];
54
- const value = data[fieldName];
55
- if (field.normalize) {
56
- defaultErrorMessage = field.errorMessage_theValueIsInvalid;
57
- field.normalize(value, data);
58
- }
59
- if (!field.optional) {
60
- if (value === undefined) {
61
- if (field.errorMessage_isRequired) {
62
- declareError(field.errorMessage_isRequired, "VALUE_REQUIRED");
63
- }
64
- else if (field.errorMessage_theValueIsInvalid) {
65
- declareError(field.errorMessage_theValueIsInvalid, "VALUE_REQUIRED");
66
- }
67
- else {
68
- declareError(`Field ${fieldName} is required`, "VALUE_REQUIRED");
69
- }
70
- }
71
- }
72
- let typeValidator = byTypeValidator[field.type];
73
- if (typeValidator) {
74
- typeValidator(value, field);
75
- }
76
- if (field.validator) {
77
- defaultErrorMessage = field.errorMessage_theValueIsInvalid;
78
- field.validator(value, data);
79
- }
80
- }
81
- catch (e) {
82
- if (e instanceof SchemaError) {
83
- if (!fieldErrors)
84
- fieldErrors = {};
85
- fieldErrors[fieldName] = {
86
- fieldName,
87
- message: e.errorMessage || defaultErrorMessage || `Field ${fieldName} is invalid`,
88
- code: e.errorCode || "FIELD_VALIDATION_FAILED"
89
- };
90
- }
91
- else {
92
- throw e;
93
- }
94
- }
95
- }
96
- // >>> Validate the whole fields.
97
- // Allow validating if values are ok with each others.
98
- if (schema.schemaMeta.validate) {
99
- try {
100
- schema.schemaMeta.validate(data);
101
- }
102
- catch (e) {
103
- if (e instanceof SchemaError) {
104
- return {
105
- globalError: e.errorMessage || `Schema validation failed`,
106
- globalErrorCode: e.errorCode || "SCHEMA_VALIDATION_FAILED",
107
- fields: fieldErrors
108
- };
109
- }
110
- else {
111
- throw e;
112
- }
113
- }
114
- }
115
- // No error ? --> undefined.
116
- // Otherwise returns the errors.
117
- //
118
- if (!fieldErrors)
119
- return undefined;
120
- return { fields: fieldErrors };
121
- }
122
- const byTypeValidator = {};
123
- export function registerSchema(schemaId, schema, meta) {
124
- if (!schemaId) {
125
- throw new Error("jk_schemas - Schema id required. If you need an uid you can use: " + generateUUIDv4());
126
- }
127
- gRegistry[schemaId] = { schema, meta };
128
- }
129
- export function getSchemaMeta(schemaId) {
130
- const entry = gRegistry[schemaId];
131
- if (entry)
132
- return entry.schema;
133
- return undefined;
134
- }
135
- export function getSchema(schemaId) {
136
- const entry = gRegistry[schemaId];
137
- if (entry)
138
- return entry.schema;
139
- return undefined;
140
- }
141
- export function requireSchema(schemaId) {
142
- const s = getSchema(schemaId);
143
- if (!s) {
144
- throw new Error(`jk_schemas - Schema ${schemaId} not found`);
145
- }
146
- return s;
147
- }
148
- const gRegistry = {};
149
- //endregion
150
- //region Schema
151
- export function schema(descriptor, meta) {
152
- return { desc: descriptor, schemaMeta: meta || {} };
153
- }
154
- export function toJson(schema) {
155
- return schema;
156
- }
157
- export function string(title, optional, infos) {
158
- if (!optional) {
159
- if (!infos)
160
- infos = {};
161
- if (infos.minLength === undefined)
162
- infos.minLength = 1;
163
- }
164
- return { ...infos, title, optional, type: "string" };
165
- }
166
- byTypeValidator["string"] = (v, f) => {
167
- if (typeof v !== "string") {
168
- declareError(f.errorMessage_theValueIsInvalid || `Value must be a string`, "INVALID_TYPE");
169
- return;
170
- }
171
- let sf = f;
172
- if ((sf.minLength !== undefined) && (v.length < sf.minLength)) {
173
- declareError(sf.errorMessage_minLength || `Value must be at least ${sf.minLength} characters long`, "INVALID_LENGTH");
174
- return;
175
- }
176
- if ((sf.maxLength !== undefined) && (v.length > sf.maxLength)) {
177
- declareError(sf.errorMessage_maxLength || `Value must be less than ${sf.maxLength} characters long`, "INVALID_LENGTH");
178
- return;
179
- }
180
- };
181
- export function boolean(title, optional, infos) {
182
- return { ...infos, title, optional, type: "boolean" };
183
- }
184
- byTypeValidator["boolean"] = (v, f) => {
185
- if (typeof v !== "boolean") {
186
- declareError(f.errorMessage_theValueIsInvalid || `Value must be a boolean`, "INVALID_TYPE");
187
- }
188
- let sf = f;
189
- if (sf.requireTrue) {
190
- if (v !== true) {
191
- declareError(sf.errorMessage_requireTrue || `Value must be true`, "INVALID_VALUE");
192
- }
193
- }
194
- else if (sf.requireFalse) {
195
- if (v !== false) {
196
- declareError(sf.errorMessage_requireFalse || `Value must be false`, "INVALID_VALUE");
197
- }
198
- }
199
- };
200
- export function number(title, optional, infos) {
201
- return { ...infos, title, optional, type: "number" };
202
- }
203
- export function formatNumber(value, fieldNumber, defaultLocalFormat = "en-US", defaultCurrency = "USD") {
204
- const amount = parseFloat(value);
205
- let localFormat = fieldNumber.localFormat || defaultLocalFormat;
206
- switch (fieldNumber.displayType) {
207
- case "currency":
208
- return new Intl.NumberFormat(localFormat, {
209
- style: "currency",
210
- currency: fieldNumber.currency || defaultCurrency,
211
- }).format(amount);
212
- default:
213
- return new Intl.NumberFormat(localFormat, { style: fieldNumber.displayType || "decimal" }).format(amount);
214
- }
215
- }
216
- byTypeValidator["number"] = (v, f) => {
217
- if (typeof v !== "number") {
218
- declareError(f.errorMessage_theValueIsInvalid || `Value must be a number`, "INVALID_TYPE");
219
- }
220
- let sf = f;
221
- if ((sf.minValue !== undefined) && (v < sf.minValue)) {
222
- declareError(sf.errorMessage_minValue || `Value must be at least ${sf.minValue}`, "INVALID_LENGTH");
223
- return;
224
- }
225
- if ((sf.maxValue !== undefined) && (v > sf.maxValue)) {
226
- declareError(sf.errorMessage_maxValue || `Value must be less than ${sf.maxValue}`, "INVALID_LENGTH");
227
- return;
228
- }
229
- };
230
- //endregion
231
- //region Currency
232
- export function currency(title, optional, infos) {
233
- return number(title, optional, { ...infos, displayType: "currency" });
234
- }
235
- //endregion
236
- //region Percent
237
- export function percent(title, optional, infos) {
238
- return number(title, optional, { ...infos, displayType: "percent" });
239
- }
240
- export function file(title, optional, infos) {
241
- return { ...infos, title, optional, type: "file" };
242
- }
243
- //endregion
244
- //endregion
245
- /*const MAKE_OPTIONAL = true;
246
- //
247
- const UserSchema1 = schema({
248
- testOptional: string("testOptional", true),
249
- testString: string("testString", MAKE_OPTIONAL),
250
- testBool: boolean("testBool", MAKE_OPTIONAL),
251
- testNumber: number("testNumber", MAKE_OPTIONAL),
252
- testFile: file("testFile", MAKE_OPTIONAL)
253
- })
254
-
255
- type UserDataType1 = SchemaToType<typeof UserSchema1>;
256
- let ud1: UserDataType1 = {};*/
257
- //# sourceMappingURL=jkSchemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jkSchemas.js","sourceRoot":"","sources":["../../src/jk_schemas/jkSchemas.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- export interface TranslationRequest {
2
- /**
3
- * The default value for the translation.
4
- */
5
- default?: string;
6
- /**
7
- * The parameters to use for values with parameters
8
- */
9
- params?: any;
10
- /**
11
- * If 'count' is more than one, then use plural form.
12
- */
13
- count?: number;
14
- }
15
- export declare function setLanguage(languageName: string): void;
16
- export declare function translate(key: string, p: TranslationRequest): string;
17
- export declare function translateTo(language: string, key: string, p: TranslationRequest): string;
18
- export declare function addTranslation(language: string, key: string, value: string): void;
19
- export declare function addTranslations(language: string, newTranslations: {
20
- [key: string]: string;
21
- }): void;
@@ -1,56 +0,0 @@
1
- let gCurrentLanguage = 'en';
2
- const gTranslations = {};
3
- export function setLanguage(languageName) {
4
- gCurrentLanguage = languageName;
5
- }
6
- export function translate(key, p) {
7
- return translateTo(gCurrentLanguage, key, p);
8
- }
9
- export function translateTo(language, key, p) {
10
- // Does it exist?
11
- if (!gTranslations[language]) {
12
- gTranslations[language] = {};
13
- }
14
- let translation;
15
- // Must use plural?
16
- //
17
- let translationKey = key;
18
- //
19
- if ((p.count !== undefined) && (p.count > 1)) {
20
- const pluralKey = `${key}_plural`;
21
- translation = gTranslations[language][pluralKey];
22
- }
23
- // Get the translation.
24
- if (!translation) {
25
- translation = gTranslations[language][translationKey];
26
- }
27
- // Not found?
28
- if (!translation) {
29
- if (p.default) {
30
- gTranslations[language][translationKey] = p.default;
31
- return p.default;
32
- }
33
- translation = `[trNotFound:${key}]`;
34
- }
35
- // Replace the parameters in the translation.
36
- if (p.params && translation.includes("$")) {
37
- for (const [paramKey, paramValue] of Object.entries(p.params)) {
38
- const placeholder = "$" + paramKey;
39
- translation = translation.replace(placeholder, String(paramValue));
40
- }
41
- }
42
- return translation;
43
- }
44
- export function addTranslation(language, key, value) {
45
- if (!gTranslations[language]) {
46
- gTranslations[language] = {};
47
- }
48
- gTranslations[language][key] = value;
49
- }
50
- export function addTranslations(language, newTranslations) {
51
- if (!gTranslations[language]) {
52
- gTranslations[language] = {};
53
- }
54
- Object.assign(gTranslations[language], newTranslations);
55
- }
56
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jk_translate/index.ts"],"names":[],"mappings":"AAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAC5B,MAAM,aAAa,GAAsD,EAAE,CAAC;AAmB5E,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC5C,gBAAgB,GAAG,YAAY,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,CAAqB;IACxD,OAAO,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAW,EAAE,CAAqB;IAC5E,iBAAiB;IACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,WAA+B,CAAC;IAEpC,mBAAmB;IACnB,EAAE;IACF,IAAI,cAAc,GAAG,GAAG,CAAC;IACzB,EAAE;IACF,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;QAClC,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED,aAAa;IACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACpD,OAAO,CAAC,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;IACxC,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,WAAW,GAAG,GAAG,GAAG,QAAQ,CAAC;YACnC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,GAAW,EAAE,KAAa;IACvE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IACD,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,eAA0C;IACxF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,56 +0,0 @@
1
- var gCurrentLanguage = 'en';
2
- var gTranslations = {};
3
- export function setLanguage(languageName) {
4
- gCurrentLanguage = languageName;
5
- }
6
- export function translate(key, p) {
7
- return translateTo(gCurrentLanguage, key, p);
8
- }
9
- export function translateTo(language, key, p) {
10
- // Does it exist?
11
- if (!gTranslations[language]) {
12
- gTranslations[language] = {};
13
- }
14
- var translation;
15
- // Must use plural?
16
- //
17
- var translationKey = key;
18
- //
19
- if ((p.count !== undefined) && (p.count > 1)) {
20
- var pluralKey = "".concat(key, "_plural");
21
- translation = gTranslations[language][pluralKey];
22
- }
23
- // Get the translation.
24
- if (!translation) {
25
- translation = gTranslations[language][translationKey];
26
- }
27
- // Not found?
28
- if (!translation) {
29
- if (p.default) {
30
- gTranslations[language][translationKey] = p.default;
31
- return p.default;
32
- }
33
- translation = "[trNotFound:".concat(key, "]");
34
- }
35
- // Replace the parameters in the translation.
36
- if (p.params && translation.includes("$")) {
37
- for (var _i = 0, _a = Object.entries(p.params); _i < _a.length; _i++) {
38
- var _b = _a[_i], paramKey = _b[0], paramValue = _b[1];
39
- var placeholder = "$" + paramKey;
40
- translation = translation.replace(placeholder, String(paramValue));
41
- }
42
- }
43
- return translation;
44
- }
45
- export function addTranslation(language, key, value) {
46
- if (!gTranslations[language]) {
47
- gTranslations[language] = {};
48
- }
49
- gTranslations[language][key] = value;
50
- }
51
- export function addTranslations(language, newTranslations) {
52
- if (!gTranslations[language]) {
53
- gTranslations[language] = {};
54
- }
55
- Object.assign(gTranslations[language], newTranslations);
56
- }
@@ -1,85 +0,0 @@
1
- let gCurrentLanguage = 'en';
2
- const gTranslations: { [language: string]: { [key: string]: string } } = {};
3
-
4
- export interface TranslationRequest {
5
- /**
6
- * The default value for the translation.
7
- */
8
- default?: string;
9
-
10
- /**
11
- * The parameters to use for values with parameters
12
- */
13
- params?: any;
14
-
15
- /**
16
- * If 'count' is more than one, then use plural form.
17
- */
18
- count?: number;
19
- }
20
-
21
- export function setLanguage(languageName: string): void {
22
- gCurrentLanguage = languageName;
23
- }
24
-
25
- export function translate(key: string, p: TranslationRequest): string {
26
- return translateTo(gCurrentLanguage, key, p);
27
- }
28
-
29
- export function translateTo(language: string, key: string, p: TranslationRequest): string {
30
- // Does it exist?
31
- if (!gTranslations[language]) {
32
- gTranslations[language] = {};
33
- }
34
-
35
- let translation: string | undefined;
36
-
37
- // Must use plural?
38
- //
39
- let translationKey = key;
40
- //
41
- if ((p.count !== undefined) && (p.count > 1)) {
42
- const pluralKey = `${key}_plural`;
43
- translation = gTranslations[language][pluralKey]
44
- }
45
-
46
- // Get the translation.
47
- if (!translation) {
48
- translation = gTranslations[language][translationKey];
49
- }
50
-
51
- // Not found?
52
- if (!translation) {
53
- if (p.default) {
54
- gTranslations[language][translationKey] = p.default;
55
- return p.default;
56
- }
57
-
58
- translation = `[trNotFound:${key}]`;
59
- }
60
-
61
- // Replace the parameters in the translation.
62
- if (p.params && translation.includes("$")) {
63
- for (const [paramKey, paramValue] of Object.entries(p.params)) {
64
- const placeholder = "$" + paramKey;
65
- translation = translation.replace(placeholder, String(paramValue));
66
- }
67
- }
68
-
69
- return translation;
70
- }
71
-
72
- export function addTranslation(language: string, key: string, value: string): void {
73
- if (!gTranslations[language]) {
74
- gTranslations[language] = {};
75
- }
76
- gTranslations[language][key] = value;
77
- }
78
-
79
- export function addTranslations(language: string, newTranslations: { [key: string]: string }): void {
80
- if (!gTranslations[language]) {
81
- gTranslations[language] = {};
82
- }
83
-
84
- Object.assign(gTranslations[language], newTranslations);
85
- }