@naturalcycles/nodejs-lib 13.13.0 → 13.14.0
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/validation/joi/joi.shared.schemas.d.ts +1 -0
- package/dist/validation/joi/joi.shared.schemas.js +5 -1
- package/dist/validation/joi/string.extensions.js +2 -2
- package/package.json +1 -1
- package/src/validation/joi/joi.shared.schemas.ts +5 -0
- package/src/validation/joi/string.extensions.ts +2 -2
|
@@ -14,6 +14,7 @@ export declare const percentageSchema: NumberSchema<number>;
|
|
|
14
14
|
export declare const dateStringSchema: StringSchema<string>;
|
|
15
15
|
export declare const binarySchema: import("joi").BinarySchema<Buffer>;
|
|
16
16
|
export declare const dateObjectSchema: ObjectSchema<any>;
|
|
17
|
+
export declare const dateIntervalStringSchema: StringSchema<string>;
|
|
17
18
|
/**
|
|
18
19
|
* Allows all values of a String Enum.
|
|
19
20
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.baseDBEntitySchema = exports.ipAddressSchema = exports.utcOffsetSchema = exports.userAgentSchema = exports.semVerSchema = exports.SEM_VER_REGEX = exports.emailSchema = exports.verSchema = exports.unixTimestampMillis2000Schema = exports.unixTimestampMillisSchema = exports.unixTimestamp2000Schema = exports.unixTimestampSchema = exports.slugSchema = exports.SLUG_REGEX = exports.idBase64UrlSchema = exports.idBase64Schema = exports.idBase62Schema = exports.idSchema = exports.jwtSchema = exports.JWT_REGEX = exports.base64UrlSchema = exports.base64Schema = exports.base62Schema = exports.BASE64URL_REGEX = exports.BASE64_REGEX = exports.BASE62_REGEX = exports.anyObjectSchema = exports.anySchema = exports.oneOfSchema = exports.objectSchema = exports.arraySchema = exports.urlSchema = exports.numberEnumKeySchema = exports.numberEnumValueSchema = exports.stringEnumKeySchema = exports.stringEnumValueSchema = exports.dateObjectSchema = exports.binarySchema = exports.dateStringSchema = exports.percentageSchema = exports.integerSchema = exports.numberSchemaTyped = exports.numberSchema = exports.stringSchemaTyped = exports.stringSchema = exports.booleanDefaultToFalseSchema = exports.booleanSchema = void 0;
|
|
3
|
+
exports.baseDBEntitySchema = exports.ipAddressSchema = exports.utcOffsetSchema = exports.userAgentSchema = exports.semVerSchema = exports.SEM_VER_REGEX = exports.emailSchema = exports.verSchema = exports.unixTimestampMillis2000Schema = exports.unixTimestampMillisSchema = exports.unixTimestamp2000Schema = exports.unixTimestampSchema = exports.slugSchema = exports.SLUG_REGEX = exports.idBase64UrlSchema = exports.idBase64Schema = exports.idBase62Schema = exports.idSchema = exports.jwtSchema = exports.JWT_REGEX = exports.base64UrlSchema = exports.base64Schema = exports.base62Schema = exports.BASE64URL_REGEX = exports.BASE64_REGEX = exports.BASE62_REGEX = exports.anyObjectSchema = exports.anySchema = exports.oneOfSchema = exports.objectSchema = exports.arraySchema = exports.urlSchema = exports.numberEnumKeySchema = exports.numberEnumValueSchema = exports.stringEnumKeySchema = exports.stringEnumValueSchema = exports.dateIntervalStringSchema = exports.dateObjectSchema = exports.binarySchema = exports.dateStringSchema = exports.percentageSchema = exports.integerSchema = exports.numberSchemaTyped = exports.numberSchema = exports.stringSchemaTyped = exports.stringSchema = exports.booleanDefaultToFalseSchema = exports.booleanSchema = void 0;
|
|
4
4
|
const js_lib_1 = require("@naturalcycles/js-lib");
|
|
5
5
|
const joi_extensions_1 = require("./joi.extensions");
|
|
6
6
|
exports.booleanSchema = joi_extensions_1.Joi.boolean();
|
|
@@ -16,6 +16,10 @@ exports.percentageSchema = joi_extensions_1.Joi.number().integer().min(0).max(10
|
|
|
16
16
|
exports.dateStringSchema = exports.stringSchema.dateString();
|
|
17
17
|
exports.binarySchema = joi_extensions_1.Joi.binary();
|
|
18
18
|
exports.dateObjectSchema = joi_extensions_1.Joi.object().instance(Date);
|
|
19
|
+
const DATE_INTERVAL_REGEX = /^\d{4}-\d{2}-\d{2}\/\d{4}-\d{2}-\d{2}$/;
|
|
20
|
+
exports.dateIntervalStringSchema = exports.stringSchema.regex(DATE_INTERVAL_REGEX).messages({
|
|
21
|
+
'string.pattern.base': `must be a DateInterval string`,
|
|
22
|
+
});
|
|
19
23
|
/**
|
|
20
24
|
* Allows all values of a String Enum.
|
|
21
25
|
*/
|
|
@@ -41,10 +41,10 @@ function stringExtensions(joi) {
|
|
|
41
41
|
let { min, max } = args;
|
|
42
42
|
// Today allows +-14 hours gap to account for different timezones
|
|
43
43
|
if (max === 'today') {
|
|
44
|
-
max = (0, js_lib_1.localTimeNow)().
|
|
44
|
+
max = (0, js_lib_1.localTimeNow)().plus(14, 'hour').toISODate();
|
|
45
45
|
}
|
|
46
46
|
if (min === 'today') {
|
|
47
|
-
min = (0, js_lib_1.localTimeNow)().
|
|
47
|
+
min = (0, js_lib_1.localTimeNow)().minus(14, 'hour').toISODate();
|
|
48
48
|
}
|
|
49
49
|
// console.log('min/max', min, max)
|
|
50
50
|
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(v);
|
package/package.json
CHANGED
|
@@ -24,6 +24,11 @@ export const dateStringSchema = stringSchema.dateString()
|
|
|
24
24
|
export const binarySchema = Joi.binary()
|
|
25
25
|
export const dateObjectSchema = Joi.object().instance(Date)
|
|
26
26
|
|
|
27
|
+
const DATE_INTERVAL_REGEX = /^\d{4}-\d{2}-\d{2}\/\d{4}-\d{2}-\d{2}$/
|
|
28
|
+
export const dateIntervalStringSchema = stringSchema.regex(DATE_INTERVAL_REGEX).messages({
|
|
29
|
+
'string.pattern.base': `must be a DateInterval string`,
|
|
30
|
+
})
|
|
31
|
+
|
|
27
32
|
/**
|
|
28
33
|
* Allows all values of a String Enum.
|
|
29
34
|
*/
|
|
@@ -51,10 +51,10 @@ export function stringExtensions(joi: typeof Joi): Extension {
|
|
|
51
51
|
|
|
52
52
|
// Today allows +-14 hours gap to account for different timezones
|
|
53
53
|
if (max === 'today') {
|
|
54
|
-
max = localTimeNow().
|
|
54
|
+
max = localTimeNow().plus(14, 'hour').toISODate()
|
|
55
55
|
}
|
|
56
56
|
if (min === 'today') {
|
|
57
|
-
min = localTimeNow().
|
|
57
|
+
min = localTimeNow().minus(14, 'hour').toISODate()
|
|
58
58
|
}
|
|
59
59
|
// console.log('min/max', min, max)
|
|
60
60
|
|