@strapi/database 5.53.0 → 5.54.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.
|
@@ -31,7 +31,7 @@ const isDate = (value)=>{
|
|
|
31
31
|
};
|
|
32
32
|
const DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
|
|
33
33
|
const PARTIAL_DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;
|
|
34
|
-
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(
|
|
34
|
+
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]{1,3})?$/;
|
|
35
35
|
const parseDateTimeOrTimestamp = (value)=>{
|
|
36
36
|
if (isDate(value)) {
|
|
37
37
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sources":["../../../src/fields/shared/parsers.ts"],"sourcesContent":["import { padCharsEnd, isString, toString } from 'lodash/fp';\nimport * as dateFns from 'date-fns';\n\nimport { InvalidDateTimeError, InvalidDateError, InvalidTimeError } from '../../errors';\n\nconst isDate = (value: unknown): value is Date => {\n return dateFns.isDate(value);\n};\n\nconst DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\nconst PARTIAL_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;\nconst TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(
|
|
1
|
+
{"version":3,"file":"parsers.js","sources":["../../../src/fields/shared/parsers.ts"],"sourcesContent":["import { padCharsEnd, isString, toString } from 'lodash/fp';\nimport * as dateFns from 'date-fns';\n\nimport { InvalidDateTimeError, InvalidDateError, InvalidTimeError } from '../../errors';\n\nconst isDate = (value: unknown): value is Date => {\n return dateFns.isDate(value);\n};\n\nconst DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\nconst PARTIAL_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;\nconst TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{1,3})?$/;\n\nexport const parseDateTimeOrTimestamp = (value: unknown): Date => {\n if (isDate(value)) {\n return value;\n }\n\n try {\n const date = dateFns.parseISO(toString(value));\n if (dateFns.isValid(date)) {\n return date;\n }\n\n const milliUnixDate = dateFns.parse(toString(value), 'T', new Date());\n if (dateFns.isValid(milliUnixDate)) {\n return milliUnixDate;\n }\n\n throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);\n } catch {\n throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);\n }\n};\n\nexport const parseDate = (value: unknown) => {\n if (isDate(value)) {\n return dateFns.format(value, 'yyyy-MM-dd');\n }\n\n const found = isString(value) ? value.match(PARTIAL_DATE_REGEX) || [] : [];\n const extractedValue = found[0];\n\n if (extractedValue && !DATE_REGEX.test(toString(value))) {\n // TODO V5: throw an error when format yyyy-MM-dd is not respected\n // throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);\n process.emitWarning(\n `[deprecated] Using a date format other than YYYY-MM-DD will be removed in future versions. Date received: ${value}. Date stored: ${extractedValue}.`\n );\n }\n\n if (!extractedValue) {\n throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);\n }\n\n const date = dateFns.parseISO(extractedValue);\n if (!dateFns.isValid(date)) {\n throw new InvalidDateError(`Invalid date`);\n }\n\n return extractedValue;\n};\n\nexport const parseTime = (value: unknown) => {\n if (isDate(value)) {\n return dateFns.format(value, 'HH:mm:ss.SSS');\n }\n\n if (typeof value !== 'string') {\n throw new InvalidTimeError(`Expected a string, got a ${typeof value}`);\n }\n\n const result = value.match(TIME_REGEX);\n\n if (result === null) {\n throw new InvalidTimeError('Invalid time format, expected HH:mm:ss.SSS');\n }\n\n const [, hours, minutes, seconds, fraction = '.000'] = result;\n const fractionPart = padCharsEnd('0', 3, fraction.slice(1));\n\n return `${hours}:${minutes}:${seconds}.${fractionPart}`;\n};\n"],"names":["isDate","value","dateFns","DATE_REGEX","PARTIAL_DATE_REGEX","TIME_REGEX","parseDateTimeOrTimestamp","date","parseISO","toString","isValid","milliUnixDate","parse","Date","InvalidDateTimeError","parseDate","format","found","isString","match","extractedValue","test","process","emitWarning","InvalidDateError","parseTime","InvalidTimeError","result","hours","minutes","seconds","fraction","fractionPart","padCharsEnd","slice"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const isDate = (value)=>{
|
|
|
9
9
|
};
|
|
10
10
|
const DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
|
|
11
11
|
const PARTIAL_DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;
|
|
12
|
-
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(
|
|
12
|
+
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]{1,3})?$/;
|
|
13
13
|
const parseDateTimeOrTimestamp = (value)=>{
|
|
14
14
|
if (isDate(value)) {
|
|
15
15
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.mjs","sources":["../../../src/fields/shared/parsers.ts"],"sourcesContent":["import { padCharsEnd, isString, toString } from 'lodash/fp';\nimport * as dateFns from 'date-fns';\n\nimport { InvalidDateTimeError, InvalidDateError, InvalidTimeError } from '../../errors';\n\nconst isDate = (value: unknown): value is Date => {\n return dateFns.isDate(value);\n};\n\nconst DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\nconst PARTIAL_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;\nconst TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(
|
|
1
|
+
{"version":3,"file":"parsers.mjs","sources":["../../../src/fields/shared/parsers.ts"],"sourcesContent":["import { padCharsEnd, isString, toString } from 'lodash/fp';\nimport * as dateFns from 'date-fns';\n\nimport { InvalidDateTimeError, InvalidDateError, InvalidTimeError } from '../../errors';\n\nconst isDate = (value: unknown): value is Date => {\n return dateFns.isDate(value);\n};\n\nconst DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;\nconst PARTIAL_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;\nconst TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]{1,3})?$/;\n\nexport const parseDateTimeOrTimestamp = (value: unknown): Date => {\n if (isDate(value)) {\n return value;\n }\n\n try {\n const date = dateFns.parseISO(toString(value));\n if (dateFns.isValid(date)) {\n return date;\n }\n\n const milliUnixDate = dateFns.parse(toString(value), 'T', new Date());\n if (dateFns.isValid(milliUnixDate)) {\n return milliUnixDate;\n }\n\n throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);\n } catch {\n throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);\n }\n};\n\nexport const parseDate = (value: unknown) => {\n if (isDate(value)) {\n return dateFns.format(value, 'yyyy-MM-dd');\n }\n\n const found = isString(value) ? value.match(PARTIAL_DATE_REGEX) || [] : [];\n const extractedValue = found[0];\n\n if (extractedValue && !DATE_REGEX.test(toString(value))) {\n // TODO V5: throw an error when format yyyy-MM-dd is not respected\n // throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);\n process.emitWarning(\n `[deprecated] Using a date format other than YYYY-MM-DD will be removed in future versions. Date received: ${value}. Date stored: ${extractedValue}.`\n );\n }\n\n if (!extractedValue) {\n throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);\n }\n\n const date = dateFns.parseISO(extractedValue);\n if (!dateFns.isValid(date)) {\n throw new InvalidDateError(`Invalid date`);\n }\n\n return extractedValue;\n};\n\nexport const parseTime = (value: unknown) => {\n if (isDate(value)) {\n return dateFns.format(value, 'HH:mm:ss.SSS');\n }\n\n if (typeof value !== 'string') {\n throw new InvalidTimeError(`Expected a string, got a ${typeof value}`);\n }\n\n const result = value.match(TIME_REGEX);\n\n if (result === null) {\n throw new InvalidTimeError('Invalid time format, expected HH:mm:ss.SSS');\n }\n\n const [, hours, minutes, seconds, fraction = '.000'] = result;\n const fractionPart = padCharsEnd('0', 3, fraction.slice(1));\n\n return `${hours}:${minutes}:${seconds}.${fractionPart}`;\n};\n"],"names":["isDate","value","dateFns","DATE_REGEX","PARTIAL_DATE_REGEX","TIME_REGEX","parseDateTimeOrTimestamp","date","parseISO","toString","isValid","milliUnixDate","parse","Date","InvalidDateTimeError","parseDate","format","found","isString","match","extractedValue","test","process","emitWarning","InvalidDateError","parseTime","InvalidTimeError","result","hours","minutes","seconds","fraction","fractionPart","padCharsEnd","slice"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/database",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.54.0",
|
|
4
4
|
"description": "Strapi's database layer",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@paralleldrive/cuid2": "2.2.2",
|
|
49
|
-
"@strapi/utils": "5.
|
|
49
|
+
"@strapi/utils": "5.54.0",
|
|
50
50
|
"ajv": "8.20.0",
|
|
51
51
|
"date-fns": "2.30.0",
|
|
52
52
|
"debug": "4.3.4",
|
|
@@ -59,11 +59,11 @@
|
|
|
59
59
|
"@types/fs-extra": "11.0.4",
|
|
60
60
|
"@types/jest": "29.5.2",
|
|
61
61
|
"@types/node": "20.19.41",
|
|
62
|
-
"eslint-config-custom": "5.
|
|
62
|
+
"eslint-config-custom": "5.54.0",
|
|
63
63
|
"jest": "29.6.0",
|
|
64
|
-
"tsconfig": "5.
|
|
64
|
+
"tsconfig": "5.54.0",
|
|
65
65
|
"vitest": "catalog:",
|
|
66
|
-
"vitest-config": "5.
|
|
66
|
+
"vitest-config": "5.54.0"
|
|
67
67
|
},
|
|
68
68
|
"engines": {
|
|
69
69
|
"node": ">=20.0.0 <=26.x.x",
|