node_modules ignore

This commit is contained in:
2025-05-08 23:43:47 +02:00
parent e19d52f172
commit 4574544c9f
65041 changed files with 10593536 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
import StringField from './string';
export default class BigIntegerField extends StringField {
}
//# sourceMappingURL=biginteger.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"biginteger.d.ts","sourceRoot":"","sources":["../../src/fields/biginteger.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,UAAU,CAAC;AAEnC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;CAAG"}

View File

@@ -0,0 +1,9 @@
'use strict';
var string = require('./string.js');
class BigIntegerField extends string {
}
module.exports = BigIntegerField;
//# sourceMappingURL=biginteger.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"biginteger.js","sources":["../../src/fields/biginteger.ts"],"sourcesContent":["import StringField from './string';\n\nexport default class BigIntegerField extends StringField {}\n"],"names":["BigIntegerField","StringField"],"mappings":";;;;AAEe,MAAMA,eAAwBC,SAAAA,MAAAA,CAAAA;AAAa;;;;"}

View File

@@ -0,0 +1,7 @@
import StringField from './string.mjs';
class BigIntegerField extends StringField {
}
export { BigIntegerField as default };
//# sourceMappingURL=biginteger.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"biginteger.mjs","sources":["../../src/fields/biginteger.ts"],"sourcesContent":["import StringField from './string';\n\nexport default class BigIntegerField extends StringField {}\n"],"names":["BigIntegerField","StringField"],"mappings":";;AAEe,MAAMA,eAAwBC,SAAAA,WAAAA,CAAAA;AAAa;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class BooleanField extends Field {
toDB(value: unknown): boolean;
fromDB(value: unknown): boolean | null;
}
//# sourceMappingURL=boolean.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/fields/boolean.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAM5B,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IAC7C,IAAI,CAAC,KAAK,EAAE,OAAO;IAgBnB,MAAM,CAAC,KAAK,EAAE,OAAO;CAetB"}

View File

@@ -0,0 +1,48 @@
'use strict';
var _ = require('lodash/fp');
var field = require('./field.js');
function isStringOrNumber(value) {
return typeof value === 'string' || typeof value === 'number';
}
class BooleanField extends field {
toDB(value) {
if (typeof value === 'boolean') {
return value;
}
if (isStringOrNumber(value) && [
'true',
't',
'1',
1
].includes(value)) {
return true;
}
if (isStringOrNumber(value) && [
'false',
'f',
'0',
0
].includes(value)) {
return false;
}
return Boolean(value);
}
fromDB(value) {
if (typeof value === 'boolean') {
return value;
}
const strVal = _.toString(value);
if (strVal === '1') {
return true;
}
if (strVal === '0') {
return false;
}
return null;
}
}
module.exports = BooleanField;
//# sourceMappingURL=boolean.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"boolean.js","sources":["../../src/fields/boolean.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport Field from './field';\n\nfunction isStringOrNumber(value: unknown): value is string | number {\n return typeof value === 'string' || typeof value === 'number';\n}\n\nexport default class BooleanField extends Field {\n toDB(value: unknown) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (isStringOrNumber(value) && ['true', 't', '1', 1].includes(value)) {\n return true;\n }\n\n if (isStringOrNumber(value) && ['false', 'f', '0', 0].includes(value)) {\n return false;\n }\n\n return Boolean(value);\n }\n\n fromDB(value: unknown) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n const strVal = toString(value);\n\n if (strVal === '1') {\n return true;\n }\n if (strVal === '0') {\n return false;\n }\n return null;\n }\n}\n"],"names":["isStringOrNumber","value","BooleanField","Field","toDB","includes","Boolean","fromDB","strVal","toString"],"mappings":";;;;;AAGA,SAASA,iBAAiBC,KAAc,EAAA;AACtC,IAAA,OAAO,OAAOA,KAAAA,KAAU,QAAY,IAAA,OAAOA,KAAU,KAAA,QAAA;AACvD;AAEe,MAAMC,YAAqBC,SAAAA,KAAAA,CAAAA;AACxCC,IAAAA,IAAAA,CAAKH,KAAc,EAAE;QACnB,IAAI,OAAOA,UAAU,SAAW,EAAA;YAC9B,OAAOA,KAAAA;AACT;AAEA,QAAA,IAAID,iBAAiBC,KAAU,CAAA,IAAA;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACI,QAAQ,CAACJ,KAAQ,CAAA,EAAA;YACpE,OAAO,IAAA;AACT;AAEA,QAAA,IAAID,iBAAiBC,KAAU,CAAA,IAAA;AAAC,YAAA,OAAA;AAAS,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACI,QAAQ,CAACJ,KAAQ,CAAA,EAAA;YACrE,OAAO,KAAA;AACT;AAEA,QAAA,OAAOK,OAAQL,CAAAA,KAAAA,CAAAA;AACjB;AAEAM,IAAAA,MAAAA,CAAON,KAAc,EAAE;QACrB,IAAI,OAAOA,UAAU,SAAW,EAAA;YAC9B,OAAOA,KAAAA;AACT;AAEA,QAAA,MAAMO,SAASC,UAASR,CAAAA,KAAAA,CAAAA;AAExB,QAAA,IAAIO,WAAW,GAAK,EAAA;YAClB,OAAO,IAAA;AACT;AACA,QAAA,IAAIA,WAAW,GAAK,EAAA;YAClB,OAAO,KAAA;AACT;QACA,OAAO,IAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,46 @@
import { toString } from 'lodash/fp';
import Field from './field.mjs';
function isStringOrNumber(value) {
return typeof value === 'string' || typeof value === 'number';
}
class BooleanField extends Field {
toDB(value) {
if (typeof value === 'boolean') {
return value;
}
if (isStringOrNumber(value) && [
'true',
't',
'1',
1
].includes(value)) {
return true;
}
if (isStringOrNumber(value) && [
'false',
'f',
'0',
0
].includes(value)) {
return false;
}
return Boolean(value);
}
fromDB(value) {
if (typeof value === 'boolean') {
return value;
}
const strVal = toString(value);
if (strVal === '1') {
return true;
}
if (strVal === '0') {
return false;
}
return null;
}
}
export { BooleanField as default };
//# sourceMappingURL=boolean.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"boolean.mjs","sources":["../../src/fields/boolean.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport Field from './field';\n\nfunction isStringOrNumber(value: unknown): value is string | number {\n return typeof value === 'string' || typeof value === 'number';\n}\n\nexport default class BooleanField extends Field {\n toDB(value: unknown) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (isStringOrNumber(value) && ['true', 't', '1', 1].includes(value)) {\n return true;\n }\n\n if (isStringOrNumber(value) && ['false', 'f', '0', 0].includes(value)) {\n return false;\n }\n\n return Boolean(value);\n }\n\n fromDB(value: unknown) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n const strVal = toString(value);\n\n if (strVal === '1') {\n return true;\n }\n if (strVal === '0') {\n return false;\n }\n return null;\n }\n}\n"],"names":["isStringOrNumber","value","BooleanField","Field","toDB","includes","Boolean","fromDB","strVal","toString"],"mappings":";;;AAGA,SAASA,iBAAiBC,KAAc,EAAA;AACtC,IAAA,OAAO,OAAOA,KAAAA,KAAU,QAAY,IAAA,OAAOA,KAAU,KAAA,QAAA;AACvD;AAEe,MAAMC,YAAqBC,SAAAA,KAAAA,CAAAA;AACxCC,IAAAA,IAAAA,CAAKH,KAAc,EAAE;QACnB,IAAI,OAAOA,UAAU,SAAW,EAAA;YAC9B,OAAOA,KAAAA;AACT;AAEA,QAAA,IAAID,iBAAiBC,KAAU,CAAA,IAAA;AAAC,YAAA,MAAA;AAAQ,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACI,QAAQ,CAACJ,KAAQ,CAAA,EAAA;YACpE,OAAO,IAAA;AACT;AAEA,QAAA,IAAID,iBAAiBC,KAAU,CAAA,IAAA;AAAC,YAAA,OAAA;AAAS,YAAA,GAAA;AAAK,YAAA,GAAA;AAAK,YAAA;SAAE,CAACI,QAAQ,CAACJ,KAAQ,CAAA,EAAA;YACrE,OAAO,KAAA;AACT;AAEA,QAAA,OAAOK,OAAQL,CAAAA,KAAAA,CAAAA;AACjB;AAEAM,IAAAA,MAAAA,CAAON,KAAc,EAAE;QACrB,IAAI,OAAOA,UAAU,SAAW,EAAA;YAC9B,OAAOA,KAAAA;AACT;AAEA,QAAA,MAAMO,SAASC,QAASR,CAAAA,KAAAA,CAAAA;AAExB,QAAA,IAAIO,WAAW,GAAK,EAAA;YAClB,OAAO,IAAA;AACT;AACA,QAAA,IAAIA,WAAW,GAAK,EAAA;YAClB,OAAO,KAAA;AACT;QACA,OAAO,IAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class DateField extends Field {
toDB(value: unknown): string;
fromDB(value: unknown): unknown;
}
//# sourceMappingURL=date.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/fields/date.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAC1C,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}

View File

@@ -0,0 +1,16 @@
'use strict';
var parsers = require('./shared/parsers.js');
var field = require('./field.js');
class DateField extends field {
toDB(value) {
return parsers.parseDate(value);
}
fromDB(value) {
return value;
}
}
module.exports = DateField;
//# sourceMappingURL=date.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"date.js","sources":["../../src/fields/date.ts"],"sourcesContent":["import { parseDate } from './shared/parsers';\nimport Field from './field';\n\nexport default class DateField extends Field {\n toDB(value: unknown) {\n return parseDate(value);\n }\n\n fromDB(value: unknown) {\n return value;\n }\n}\n"],"names":["DateField","Field","toDB","value","parseDate","fromDB"],"mappings":";;;;;AAGe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,iBAAUD,CAAAA,KAAAA,CAAAA;AACnB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,14 @@
import { parseDate } from './shared/parsers.mjs';
import Field from './field.mjs';
class DateField extends Field {
toDB(value) {
return parseDate(value);
}
fromDB(value) {
return value;
}
}
export { DateField as default };
//# sourceMappingURL=date.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"date.mjs","sources":["../../src/fields/date.ts"],"sourcesContent":["import { parseDate } from './shared/parsers';\nimport Field from './field';\n\nexport default class DateField extends Field {\n toDB(value: unknown) {\n return parseDate(value);\n }\n\n fromDB(value: unknown) {\n return value;\n }\n}\n"],"names":["DateField","Field","toDB","value","parseDate","fromDB"],"mappings":";;;AAGe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,SAAUD,CAAAA,KAAAA,CAAAA;AACnB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class DatetimeField extends Field {
toDB(value: unknown): Date;
fromDB(value: unknown): string | null;
}
//# sourceMappingURL=datetime.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/fields/datetime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK;IAC9C,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAItB"}

View File

@@ -0,0 +1,37 @@
'use strict';
var dateFns = require('date-fns');
var parsers = require('./shared/parsers.js');
var field = require('./field.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var dateFns__namespace = /*#__PURE__*/_interopNamespaceDefault(dateFns);
class DatetimeField extends field {
toDB(value) {
return parsers.parseDateTimeOrTimestamp(value);
}
fromDB(value) {
const cast = new Date(value);
return dateFns__namespace.isValid(cast) ? cast.toISOString() : null;
}
}
module.exports = DatetimeField;
//# sourceMappingURL=datetime.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"datetime.js","sources":["../../src/fields/datetime.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nimport { parseDateTimeOrTimestamp } from './shared/parsers';\nimport Field from './field';\n\nexport default class DatetimeField extends Field {\n toDB(value: unknown) {\n return parseDateTimeOrTimestamp(value);\n }\n\n fromDB(value: unknown) {\n const cast = new Date(value as any);\n return dateFns.isValid(cast) ? cast.toISOString() : null;\n }\n}\n"],"names":["DatetimeField","Field","toDB","value","parseDateTimeOrTimestamp","fromDB","cast","Date","dateFns","isValid","toISOString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKe,MAAMA,aAAsBC,SAAAA,KAAAA,CAAAA;AACzCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,gCAAyBD,CAAAA,KAAAA,CAAAA;AAClC;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,MAAMG,IAAAA,GAAO,IAAIC,IAAKJ,CAAAA,KAAAA,CAAAA;AACtB,QAAA,OAAOK,mBAAQC,OAAO,CAACH,IAAQA,CAAAA,GAAAA,IAAAA,CAAKI,WAAW,EAAK,GAAA,IAAA;AACtD;AACF;;;;"}

View File

@@ -0,0 +1,16 @@
import * as dateFns from 'date-fns';
import { parseDateTimeOrTimestamp } from './shared/parsers.mjs';
import Field from './field.mjs';
class DatetimeField extends Field {
toDB(value) {
return parseDateTimeOrTimestamp(value);
}
fromDB(value) {
const cast = new Date(value);
return dateFns.isValid(cast) ? cast.toISOString() : null;
}
}
export { DatetimeField as default };
//# sourceMappingURL=datetime.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"datetime.mjs","sources":["../../src/fields/datetime.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nimport { parseDateTimeOrTimestamp } from './shared/parsers';\nimport Field from './field';\n\nexport default class DatetimeField extends Field {\n toDB(value: unknown) {\n return parseDateTimeOrTimestamp(value);\n }\n\n fromDB(value: unknown) {\n const cast = new Date(value as any);\n return dateFns.isValid(cast) ? cast.toISOString() : null;\n }\n}\n"],"names":["DatetimeField","Field","toDB","value","parseDateTimeOrTimestamp","fromDB","cast","Date","dateFns","isValid","toISOString"],"mappings":";;;;AAKe,MAAMA,aAAsBC,SAAAA,KAAAA,CAAAA;AACzCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,wBAAyBD,CAAAA,KAAAA,CAAAA;AAClC;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,MAAMG,IAAAA,GAAO,IAAIC,IAAKJ,CAAAA,KAAAA,CAAAA;AACtB,QAAA,OAAOK,QAAQC,OAAO,CAACH,IAAQA,CAAAA,GAAAA,IAAAA,CAAKI,WAAW,EAAK,GAAA,IAAA;AACtD;AACF;;;;"}

View File

@@ -0,0 +1,7 @@
export default class Field {
config: unknown;
constructor(config: unknown);
toDB(value: unknown): unknown;
fromDB(value: unknown): unknown;
}
//# sourceMappingURL=field.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/fields/field.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,EAAE,OAAO,CAAC;gBAEJ,MAAM,EAAE,OAAO;IAI3B,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}

View File

@@ -0,0 +1,16 @@
'use strict';
class Field {
toDB(value) {
return value;
}
fromDB(value) {
return value;
}
constructor(config){
this.config = config;
}
}
module.exports = Field;
//# sourceMappingURL=field.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"field.js","sources":["../../src/fields/field.ts"],"sourcesContent":["export default class Field {\n config: unknown;\n\n constructor(config: unknown) {\n this.config = config;\n }\n\n toDB(value: unknown) {\n return value;\n }\n\n fromDB(value: unknown) {\n return value;\n }\n}\n"],"names":["Field","toDB","value","fromDB","constructor","config"],"mappings":";;AAAe,MAAMA,KAAAA,CAAAA;AAOnBC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;QACnB,OAAOA,KAAAA;AACT;AAEAC,IAAAA,MAAAA,CAAOD,KAAc,EAAE;QACrB,OAAOA,KAAAA;AACT;AAVAE,IAAAA,WAAAA,CAAYC,MAAe,CAAE;QAC3B,IAAI,CAACA,MAAM,GAAGA,MAAAA;AAChB;AASF;;;;"}

View File

@@ -0,0 +1,14 @@
class Field {
toDB(value) {
return value;
}
fromDB(value) {
return value;
}
constructor(config){
this.config = config;
}
}
export { Field as default };
//# sourceMappingURL=field.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"field.mjs","sources":["../../src/fields/field.ts"],"sourcesContent":["export default class Field {\n config: unknown;\n\n constructor(config: unknown) {\n this.config = config;\n }\n\n toDB(value: unknown) {\n return value;\n }\n\n fromDB(value: unknown) {\n return value;\n }\n}\n"],"names":["Field","toDB","value","fromDB","constructor","config"],"mappings":"AAAe,MAAMA,KAAAA,CAAAA;AAOnBC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;QACnB,OAAOA,KAAAA;AACT;AAEAC,IAAAA,MAAAA,CAAOD,KAAc,EAAE;QACrB,OAAOA,KAAAA;AACT;AAVAE,IAAAA,WAAAA,CAAYC,MAAe,CAAE;QAC3B,IAAI,CAACA,MAAM,GAAGA,MAAAA;AAChB;AASF;;;;"}

View File

@@ -0,0 +1,4 @@
import Field from './field';
import type { Attribute } from '../types';
export declare const createField: (attribute: Attribute) => Field;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,SAAS,CAAC;AAW5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAwB1C,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,KAQlD,CAAC"}

View File

@@ -0,0 +1,45 @@
'use strict';
var _ = require('lodash/fp');
var field = require('./field.js');
var string = require('./string.js');
var json = require('./json.js');
var biginteger = require('./biginteger.js');
var number = require('./number.js');
var date = require('./date.js');
var time = require('./time.js');
var datetime = require('./datetime.js');
var timestamp = require('./timestamp.js');
var boolean = require('./boolean.js');
const typeToFieldMap = {
increments: field,
password: string,
email: string,
string: string,
uid: string,
richtext: string,
text: string,
enumeration: string,
json: json,
biginteger: biginteger,
integer: number,
float: number,
decimal: number,
date: date,
time: time,
datetime: datetime,
timestamp: timestamp,
boolean: boolean,
blocks: json
};
const createField = (attribute)=>{
const { type } = attribute;
if (_.has(type, typeToFieldMap)) {
return new typeToFieldMap[type]({});
}
throw new Error(`Undefined field for type ${type}`);
};
exports.createField = createField;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":["../../src/fields/index.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport Field from './field';\nimport StringField from './string';\nimport JSONField from './json';\nimport BigIntegerField from './biginteger';\nimport NumberField from './number';\nimport DateField from './date';\nimport TimeField from './time';\nimport DatetimeField from './datetime';\nimport TimestampField from './timestamp';\nimport BooleanField from './boolean';\n\nimport type { Attribute } from '../types';\n\nconst typeToFieldMap: Record<string, typeof Field> = {\n increments: Field,\n password: StringField,\n email: StringField,\n string: StringField,\n uid: StringField,\n richtext: StringField,\n text: StringField,\n enumeration: StringField,\n json: JSONField,\n biginteger: BigIntegerField,\n integer: NumberField,\n float: NumberField,\n decimal: NumberField,\n date: DateField,\n time: TimeField,\n datetime: DatetimeField,\n timestamp: TimestampField,\n boolean: BooleanField,\n blocks: JSONField,\n};\n\nexport const createField = (attribute: Attribute): Field => {\n const { type } = attribute;\n\n if (_.has(type, typeToFieldMap)) {\n return new typeToFieldMap[type]({});\n }\n\n throw new Error(`Undefined field for type ${type}`);\n};\n"],"names":["typeToFieldMap","increments","Field","password","StringField","email","string","uid","richtext","text","enumeration","json","JSONField","biginteger","BigIntegerField","integer","NumberField","float","decimal","date","DateField","time","TimeField","datetime","DatetimeField","timestamp","TimestampField","boolean","BooleanField","blocks","createField","attribute","type","_","has","Error"],"mappings":";;;;;;;;;;;;;;AAeA,MAAMA,cAA+C,GAAA;IACnDC,UAAYC,EAAAA,KAAAA;IACZC,QAAUC,EAAAA,MAAAA;IACVC,KAAOD,EAAAA,MAAAA;IACPE,MAAQF,EAAAA,MAAAA;IACRG,GAAKH,EAAAA,MAAAA;IACLI,QAAUJ,EAAAA,MAAAA;IACVK,IAAML,EAAAA,MAAAA;IACNM,WAAaN,EAAAA,MAAAA;IACbO,IAAMC,EAAAA,IAAAA;IACNC,UAAYC,EAAAA,UAAAA;IACZC,OAASC,EAAAA,MAAAA;IACTC,KAAOD,EAAAA,MAAAA;IACPE,OAASF,EAAAA,MAAAA;IACTG,IAAMC,EAAAA,IAAAA;IACNC,IAAMC,EAAAA,IAAAA;IACNC,QAAUC,EAAAA,QAAAA;IACVC,SAAWC,EAAAA,SAAAA;IACXC,OAASC,EAAAA,OAAAA;IACTC,MAAQjB,EAAAA;AACV,CAAA;AAEO,MAAMkB,cAAc,CAACC,SAAAA,GAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGD,SAAAA;AAEjB,IAAA,IAAIE,CAAEC,CAAAA,GAAG,CAACF,IAAAA,EAAMhC,cAAiB,CAAA,EAAA;AAC/B,QAAA,OAAO,IAAIA,cAAc,CAACgC,IAAAA,CAAK,CAAC,EAAC,CAAA;AACnC;AAEA,IAAA,MAAM,IAAIG,KAAM,CAAA,CAAC,yBAAyB,EAAEH,KAAK,CAAC,CAAA;AACpD;;;;"}

View File

@@ -0,0 +1,43 @@
import _ from 'lodash/fp';
import Field from './field.mjs';
import StringField from './string.mjs';
import JSONField from './json.mjs';
import BigIntegerField from './biginteger.mjs';
import NumberField from './number.mjs';
import DateField from './date.mjs';
import TimeField from './time.mjs';
import DatetimeField from './datetime.mjs';
import TimestampField from './timestamp.mjs';
import BooleanField from './boolean.mjs';
const typeToFieldMap = {
increments: Field,
password: StringField,
email: StringField,
string: StringField,
uid: StringField,
richtext: StringField,
text: StringField,
enumeration: StringField,
json: JSONField,
biginteger: BigIntegerField,
integer: NumberField,
float: NumberField,
decimal: NumberField,
date: DateField,
time: TimeField,
datetime: DatetimeField,
timestamp: TimestampField,
boolean: BooleanField,
blocks: JSONField
};
const createField = (attribute)=>{
const { type } = attribute;
if (_.has(type, typeToFieldMap)) {
return new typeToFieldMap[type]({});
}
throw new Error(`Undefined field for type ${type}`);
};
export { createField };
//# sourceMappingURL=index.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","sources":["../../src/fields/index.ts"],"sourcesContent":["import _ from 'lodash/fp';\n\nimport Field from './field';\nimport StringField from './string';\nimport JSONField from './json';\nimport BigIntegerField from './biginteger';\nimport NumberField from './number';\nimport DateField from './date';\nimport TimeField from './time';\nimport DatetimeField from './datetime';\nimport TimestampField from './timestamp';\nimport BooleanField from './boolean';\n\nimport type { Attribute } from '../types';\n\nconst typeToFieldMap: Record<string, typeof Field> = {\n increments: Field,\n password: StringField,\n email: StringField,\n string: StringField,\n uid: StringField,\n richtext: StringField,\n text: StringField,\n enumeration: StringField,\n json: JSONField,\n biginteger: BigIntegerField,\n integer: NumberField,\n float: NumberField,\n decimal: NumberField,\n date: DateField,\n time: TimeField,\n datetime: DatetimeField,\n timestamp: TimestampField,\n boolean: BooleanField,\n blocks: JSONField,\n};\n\nexport const createField = (attribute: Attribute): Field => {\n const { type } = attribute;\n\n if (_.has(type, typeToFieldMap)) {\n return new typeToFieldMap[type]({});\n }\n\n throw new Error(`Undefined field for type ${type}`);\n};\n"],"names":["typeToFieldMap","increments","Field","password","StringField","email","string","uid","richtext","text","enumeration","json","JSONField","biginteger","BigIntegerField","integer","NumberField","float","decimal","date","DateField","time","TimeField","datetime","DatetimeField","timestamp","TimestampField","boolean","BooleanField","blocks","createField","attribute","type","_","has","Error"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,cAA+C,GAAA;IACnDC,UAAYC,EAAAA,KAAAA;IACZC,QAAUC,EAAAA,WAAAA;IACVC,KAAOD,EAAAA,WAAAA;IACPE,MAAQF,EAAAA,WAAAA;IACRG,GAAKH,EAAAA,WAAAA;IACLI,QAAUJ,EAAAA,WAAAA;IACVK,IAAML,EAAAA,WAAAA;IACNM,WAAaN,EAAAA,WAAAA;IACbO,IAAMC,EAAAA,SAAAA;IACNC,UAAYC,EAAAA,eAAAA;IACZC,OAASC,EAAAA,WAAAA;IACTC,KAAOD,EAAAA,WAAAA;IACPE,OAASF,EAAAA,WAAAA;IACTG,IAAMC,EAAAA,SAAAA;IACNC,IAAMC,EAAAA,SAAAA;IACNC,QAAUC,EAAAA,aAAAA;IACVC,SAAWC,EAAAA,cAAAA;IACXC,OAASC,EAAAA,YAAAA;IACTC,MAAQjB,EAAAA;AACV,CAAA;AAEO,MAAMkB,cAAc,CAACC,SAAAA,GAAAA;IAC1B,MAAM,EAAEC,IAAI,EAAE,GAAGD,SAAAA;AAEjB,IAAA,IAAIE,CAAEC,CAAAA,GAAG,CAACF,IAAAA,EAAMhC,cAAiB,CAAA,EAAA;AAC/B,QAAA,OAAO,IAAIA,cAAc,CAACgC,IAAAA,CAAK,CAAC,EAAC,CAAA;AACnC;AAEA,IAAA,MAAM,IAAIG,KAAM,CAAA,CAAC,yBAAyB,EAAEH,KAAK,CAAC,CAAA;AACpD;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class JSONField extends Field {
toDB(value: unknown): {} | null;
fromDB(value: unknown): any;
}
//# sourceMappingURL=json.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/fields/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAC1C,IAAI,CAAC,KAAK,EAAE,OAAO;IAYnB,MAAM,CAAC,KAAK,EAAE,OAAO;CAsBtB"}

View File

@@ -0,0 +1,36 @@
'use strict';
var field = require('./field.js');
class JSONField extends field {
toDB(value) {
if (value == null) {
return null;
}
if (typeof value === 'object') {
return JSON.stringify(value);
}
return value;
}
fromDB(value) {
try {
if (typeof value === 'string') {
const parsedValue = JSON.parse(value);
/**
* On Strapi 5 until 5.0.0-rc.7, the values were accidentally stringified twice when saved,
* so in those cases we need to parse them twice to retrieve the actual value.
*/ if (typeof parsedValue === 'string') {
return JSON.parse(parsedValue);
}
return parsedValue;
}
} catch (error) {
// Just return the value if it's not a valid JSON string
return value;
}
return value;
}
}
module.exports = JSONField;
//# sourceMappingURL=json.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"json.js","sources":["../../src/fields/json.ts"],"sourcesContent":["import Field from './field';\n\nexport default class JSONField extends Field {\n toDB(value: unknown) {\n if (value == null) {\n return null;\n }\n\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n return value;\n }\n\n fromDB(value: unknown) {\n try {\n if (typeof value === 'string') {\n const parsedValue = JSON.parse(value);\n\n /**\n * On Strapi 5 until 5.0.0-rc.7, the values were accidentally stringified twice when saved,\n * so in those cases we need to parse them twice to retrieve the actual value.\n */\n if (typeof parsedValue === 'string') {\n return JSON.parse(parsedValue);\n }\n\n return parsedValue;\n }\n } catch (error) {\n // Just return the value if it's not a valid JSON string\n return value;\n }\n\n return value;\n }\n}\n"],"names":["JSONField","Field","toDB","value","JSON","stringify","fromDB","parsedValue","parse","error"],"mappings":";;;;AAEe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,IAAIA,SAAS,IAAM,EAAA;YACjB,OAAO,IAAA;AACT;QAEA,IAAI,OAAOA,UAAU,QAAU,EAAA;YAC7B,OAAOC,IAAAA,CAAKC,SAAS,CAACF,KAAAA,CAAAA;AACxB;QAEA,OAAOA,KAAAA;AACT;AAEAG,IAAAA,MAAAA,CAAOH,KAAc,EAAE;QACrB,IAAI;YACF,IAAI,OAAOA,UAAU,QAAU,EAAA;gBAC7B,MAAMI,WAAAA,GAAcH,IAAKI,CAAAA,KAAK,CAACL,KAAAA,CAAAA;AAE/B;;;YAIA,IAAI,OAAOI,WAAAA,KAAgB,QAAU,EAAA;oBACnC,OAAOH,IAAAA,CAAKI,KAAK,CAACD,WAAAA,CAAAA;AACpB;gBAEA,OAAOA,WAAAA;AACT;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;;YAEd,OAAON,KAAAA;AACT;QAEA,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,34 @@
import Field from './field.mjs';
class JSONField extends Field {
toDB(value) {
if (value == null) {
return null;
}
if (typeof value === 'object') {
return JSON.stringify(value);
}
return value;
}
fromDB(value) {
try {
if (typeof value === 'string') {
const parsedValue = JSON.parse(value);
/**
* On Strapi 5 until 5.0.0-rc.7, the values were accidentally stringified twice when saved,
* so in those cases we need to parse them twice to retrieve the actual value.
*/ if (typeof parsedValue === 'string') {
return JSON.parse(parsedValue);
}
return parsedValue;
}
} catch (error) {
// Just return the value if it's not a valid JSON string
return value;
}
return value;
}
}
export { JSONField as default };
//# sourceMappingURL=json.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"json.mjs","sources":["../../src/fields/json.ts"],"sourcesContent":["import Field from './field';\n\nexport default class JSONField extends Field {\n toDB(value: unknown) {\n if (value == null) {\n return null;\n }\n\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n\n return value;\n }\n\n fromDB(value: unknown) {\n try {\n if (typeof value === 'string') {\n const parsedValue = JSON.parse(value);\n\n /**\n * On Strapi 5 until 5.0.0-rc.7, the values were accidentally stringified twice when saved,\n * so in those cases we need to parse them twice to retrieve the actual value.\n */\n if (typeof parsedValue === 'string') {\n return JSON.parse(parsedValue);\n }\n\n return parsedValue;\n }\n } catch (error) {\n // Just return the value if it's not a valid JSON string\n return value;\n }\n\n return value;\n }\n}\n"],"names":["JSONField","Field","toDB","value","JSON","stringify","fromDB","parsedValue","parse","error"],"mappings":";;AAEe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,IAAIA,SAAS,IAAM,EAAA;YACjB,OAAO,IAAA;AACT;QAEA,IAAI,OAAOA,UAAU,QAAU,EAAA;YAC7B,OAAOC,IAAAA,CAAKC,SAAS,CAACF,KAAAA,CAAAA;AACxB;QAEA,OAAOA,KAAAA;AACT;AAEAG,IAAAA,MAAAA,CAAOH,KAAc,EAAE;QACrB,IAAI;YACF,IAAI,OAAOA,UAAU,QAAU,EAAA;gBAC7B,MAAMI,WAAAA,GAAcH,IAAKI,CAAAA,KAAK,CAACL,KAAAA,CAAAA;AAE/B;;;YAIA,IAAI,OAAOI,WAAAA,KAAgB,QAAU,EAAA;oBACnC,OAAOH,IAAAA,CAAKI,KAAK,CAACD,WAAAA,CAAAA;AACpB;gBAEA,OAAOA,WAAAA;AACT;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;;YAEd,OAAON,KAAAA;AACT;QAEA,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class NumberField extends Field {
toDB(value: unknown): number;
fromDB(value: unknown): number;
}
//# sourceMappingURL=number.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/fields/number.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO;IAUnB,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}

View File

@@ -0,0 +1,20 @@
'use strict';
var _ = require('lodash/fp');
var field = require('./field.js');
class NumberField extends field {
toDB(value) {
const numberValue = _.toNumber(value);
if (Number.isNaN(numberValue)) {
throw new Error(`Expected a valid Number, got ${value}`);
}
return numberValue;
}
fromDB(value) {
return _.toNumber(value);
}
}
module.exports = NumberField;
//# sourceMappingURL=number.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"number.js","sources":["../../src/fields/number.ts"],"sourcesContent":["import { toNumber } from 'lodash/fp';\nimport Field from './field';\n\nexport default class NumberField extends Field {\n toDB(value: unknown) {\n const numberValue = toNumber(value);\n\n if (Number.isNaN(numberValue)) {\n throw new Error(`Expected a valid Number, got ${value}`);\n }\n\n return numberValue;\n }\n\n fromDB(value: unknown) {\n return toNumber(value);\n }\n}\n"],"names":["NumberField","Field","toDB","value","numberValue","toNumber","Number","isNaN","Error","fromDB"],"mappings":";;;;;AAGe,MAAMA,WAAoBC,SAAAA,KAAAA,CAAAA;AACvCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,MAAMC,cAAcC,UAASF,CAAAA,KAAAA,CAAAA;QAE7B,IAAIG,MAAAA,CAAOC,KAAK,CAACH,WAAc,CAAA,EAAA;AAC7B,YAAA,MAAM,IAAII,KAAM,CAAA,CAAC,6BAA6B,EAAEL,MAAM,CAAC,CAAA;AACzD;QAEA,OAAOC,WAAAA;AACT;AAEAK,IAAAA,MAAAA,CAAON,KAAc,EAAE;AACrB,QAAA,OAAOE,UAASF,CAAAA,KAAAA,CAAAA;AAClB;AACF;;;;"}

View File

@@ -0,0 +1,18 @@
import { toNumber } from 'lodash/fp';
import Field from './field.mjs';
class NumberField extends Field {
toDB(value) {
const numberValue = toNumber(value);
if (Number.isNaN(numberValue)) {
throw new Error(`Expected a valid Number, got ${value}`);
}
return numberValue;
}
fromDB(value) {
return toNumber(value);
}
}
export { NumberField as default };
//# sourceMappingURL=number.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"number.mjs","sources":["../../src/fields/number.ts"],"sourcesContent":["import { toNumber } from 'lodash/fp';\nimport Field from './field';\n\nexport default class NumberField extends Field {\n toDB(value: unknown) {\n const numberValue = toNumber(value);\n\n if (Number.isNaN(numberValue)) {\n throw new Error(`Expected a valid Number, got ${value}`);\n }\n\n return numberValue;\n }\n\n fromDB(value: unknown) {\n return toNumber(value);\n }\n}\n"],"names":["NumberField","Field","toDB","value","numberValue","toNumber","Number","isNaN","Error","fromDB"],"mappings":";;;AAGe,MAAMA,WAAoBC,SAAAA,KAAAA,CAAAA;AACvCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,MAAMC,cAAcC,QAASF,CAAAA,KAAAA,CAAAA;QAE7B,IAAIG,MAAAA,CAAOC,KAAK,CAACH,WAAc,CAAA,EAAA;AAC7B,YAAA,MAAM,IAAII,KAAM,CAAA,CAAC,6BAA6B,EAAEL,MAAM,CAAC,CAAA;AACzD;QAEA,OAAOC,WAAAA;AACT;AAEAK,IAAAA,MAAAA,CAAON,KAAc,EAAE;AACrB,QAAA,OAAOE,QAASF,CAAAA,KAAAA,CAAAA;AAClB;AACF;;;;"}

View File

@@ -0,0 +1,4 @@
export declare const parseDateTimeOrTimestamp: (value: unknown) => Date;
export declare const parseDate: (value: unknown) => string;
export declare const parseTime: (value: unknown) => string;
//# sourceMappingURL=parsers.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../src/fields/shared/parsers.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,IAoBzD,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,OAAO,WA0BvC,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,OAAO,WAmBvC,CAAC"}

View File

@@ -0,0 +1,91 @@
'use strict';
var _ = require('lodash/fp');
var dateFns = require('date-fns');
var invalidTime = require('../../errors/invalid-time.js');
var invalidDate = require('../../errors/invalid-date.js');
var invalidDatetime = require('../../errors/invalid-datetime.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var dateFns__namespace = /*#__PURE__*/_interopNamespaceDefault(dateFns);
const isDate = (value)=>{
return dateFns__namespace.isDate(value);
};
const DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
const PARTIAL_DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]{1,3})?$/;
const parseDateTimeOrTimestamp = (value)=>{
if (isDate(value)) {
return value;
}
try {
const date = dateFns__namespace.parseISO(_.toString(value));
if (dateFns__namespace.isValid(date)) {
return date;
}
const milliUnixDate = dateFns__namespace.parse(_.toString(value), 'T', new Date());
if (dateFns__namespace.isValid(milliUnixDate)) {
return milliUnixDate;
}
throw new invalidDatetime(`Invalid format, expected a timestamp or an ISO date`);
} catch (error) {
throw new invalidDatetime(`Invalid format, expected a timestamp or an ISO date`);
}
};
const parseDate = (value)=>{
if (isDate(value)) {
return dateFns__namespace.format(value, 'yyyy-MM-dd');
}
const found = _.isString(value) ? value.match(PARTIAL_DATE_REGEX) || [] : [];
const extractedValue = found[0];
if (extractedValue && !DATE_REGEX.test(_.toString(value))) {
// TODO V5: throw an error when format yyyy-MM-dd is not respected
// throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);
process.emitWarning(`[deprecated] Using a date format other than YYYY-MM-DD will be removed in future versions. Date received: ${value}. Date stored: ${extractedValue}.`);
}
if (!extractedValue) {
throw new invalidDate(`Invalid format, expected yyyy-MM-dd`);
}
const date = dateFns__namespace.parseISO(extractedValue);
if (!dateFns__namespace.isValid(date)) {
throw new invalidDate(`Invalid date`);
}
return extractedValue;
};
const parseTime = (value)=>{
if (isDate(value)) {
return dateFns__namespace.format(value, 'HH:mm:ss.SSS');
}
if (typeof value !== 'string') {
throw new invalidTime(`Expected a string, got a ${typeof value}`);
}
const result = value.match(TIME_REGEX);
if (result === null) {
throw new invalidTime('Invalid time format, expected HH:mm:ss.SSS');
}
const [, hours, minutes, seconds, fraction = '.000'] = result;
const fractionPart = _.padCharsEnd('0', 3, fraction.slice(1));
return `${hours}:${minutes}:${seconds}.${fractionPart}`;
};
exports.parseDate = parseDate;
exports.parseDateTimeOrTimestamp = parseDateTimeOrTimestamp;
exports.parseTime = parseTime;
//# sourceMappingURL=parsers.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,68 @@
import { toString, isString, padCharsEnd } from 'lodash/fp';
import * as dateFns from 'date-fns';
import InvalidTimeError from '../../errors/invalid-time.mjs';
import InvalidDateError from '../../errors/invalid-date.mjs';
import InvalidDateTimeError from '../../errors/invalid-datetime.mjs';
const isDate = (value)=>{
return dateFns.isDate(value);
};
const DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
const PARTIAL_DATE_REGEX = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])/g;
const TIME_REGEX = /^(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]{1,3})?$/;
const parseDateTimeOrTimestamp = (value)=>{
if (isDate(value)) {
return value;
}
try {
const date = dateFns.parseISO(toString(value));
if (dateFns.isValid(date)) {
return date;
}
const milliUnixDate = dateFns.parse(toString(value), 'T', new Date());
if (dateFns.isValid(milliUnixDate)) {
return milliUnixDate;
}
throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);
} catch (error) {
throw new InvalidDateTimeError(`Invalid format, expected a timestamp or an ISO date`);
}
};
const parseDate = (value)=>{
if (isDate(value)) {
return dateFns.format(value, 'yyyy-MM-dd');
}
const found = isString(value) ? value.match(PARTIAL_DATE_REGEX) || [] : [];
const extractedValue = found[0];
if (extractedValue && !DATE_REGEX.test(toString(value))) {
// TODO V5: throw an error when format yyyy-MM-dd is not respected
// throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);
process.emitWarning(`[deprecated] Using a date format other than YYYY-MM-DD will be removed in future versions. Date received: ${value}. Date stored: ${extractedValue}.`);
}
if (!extractedValue) {
throw new InvalidDateError(`Invalid format, expected yyyy-MM-dd`);
}
const date = dateFns.parseISO(extractedValue);
if (!dateFns.isValid(date)) {
throw new InvalidDateError(`Invalid date`);
}
return extractedValue;
};
const parseTime = (value)=>{
if (isDate(value)) {
return dateFns.format(value, 'HH:mm:ss.SSS');
}
if (typeof value !== 'string') {
throw new InvalidTimeError(`Expected a string, got a ${typeof value}`);
}
const result = value.match(TIME_REGEX);
if (result === null) {
throw new InvalidTimeError('Invalid time format, expected HH:mm:ss.SSS');
}
const [, hours, minutes, seconds, fraction = '.000'] = result;
const fractionPart = padCharsEnd('0', 3, fraction.slice(1));
return `${hours}:${minutes}:${seconds}.${fractionPart}`;
};
export { parseDate, parseDateTimeOrTimestamp, parseTime };
//# sourceMappingURL=parsers.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class StringField extends Field {
toDB(value: unknown): string;
fromDB(value: unknown): string;
}
//# sourceMappingURL=string.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/fields/string.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAGtB"}

View File

@@ -0,0 +1,16 @@
'use strict';
var _ = require('lodash/fp');
var field = require('./field.js');
class StringField extends field {
toDB(value) {
return _.toString(value);
}
fromDB(value) {
return _.toString(value);
}
}
module.exports = StringField;
//# sourceMappingURL=string.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"string.js","sources":["../../src/fields/string.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport Field from './field';\n\nexport default class StringField extends Field {\n toDB(value: unknown) {\n return toString(value);\n }\n\n fromDB(value: unknown) {\n return toString(value);\n }\n}\n"],"names":["StringField","Field","toDB","value","toString","fromDB"],"mappings":";;;;;AAGe,MAAMA,WAAoBC,SAAAA,KAAAA,CAAAA;AACvCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,UAASD,CAAAA,KAAAA,CAAAA;AAClB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;AACrB,QAAA,OAAOC,UAASD,CAAAA,KAAAA,CAAAA;AAClB;AACF;;;;"}

View File

@@ -0,0 +1,14 @@
import { toString } from 'lodash/fp';
import Field from './field.mjs';
class StringField extends Field {
toDB(value) {
return toString(value);
}
fromDB(value) {
return toString(value);
}
}
export { StringField as default };
//# sourceMappingURL=string.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"string.mjs","sources":["../../src/fields/string.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport Field from './field';\n\nexport default class StringField extends Field {\n toDB(value: unknown) {\n return toString(value);\n }\n\n fromDB(value: unknown) {\n return toString(value);\n }\n}\n"],"names":["StringField","Field","toDB","value","toString","fromDB"],"mappings":";;;AAGe,MAAMA,WAAoBC,SAAAA,KAAAA,CAAAA;AACvCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,QAASD,CAAAA,KAAAA,CAAAA;AAClB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;AACrB,QAAA,OAAOC,QAASD,CAAAA,KAAAA,CAAAA;AAClB;AACF;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class TimeField extends Field {
toDB(value: unknown): string;
fromDB(value: unknown): unknown;
}
//# sourceMappingURL=time.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/fields/time.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAC1C,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAItB"}

View File

@@ -0,0 +1,17 @@
'use strict';
var parsers = require('./shared/parsers.js');
var field = require('./field.js');
class TimeField extends field {
toDB(value) {
return parsers.parseTime(value);
}
fromDB(value) {
// make sure that's a string with valid format ?
return value;
}
}
module.exports = TimeField;
//# sourceMappingURL=time.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"time.js","sources":["../../src/fields/time.ts"],"sourcesContent":["import { parseTime } from './shared/parsers';\nimport Field from './field';\n\nexport default class TimeField extends Field {\n toDB(value: unknown) {\n return parseTime(value);\n }\n\n fromDB(value: unknown) {\n // make sure that's a string with valid format ?\n return value;\n }\n}\n"],"names":["TimeField","Field","toDB","value","parseTime","fromDB"],"mappings":";;;;;AAGe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,iBAAUD,CAAAA,KAAAA,CAAAA;AACnB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;;QAErB,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,15 @@
import { parseTime } from './shared/parsers.mjs';
import Field from './field.mjs';
class TimeField extends Field {
toDB(value) {
return parseTime(value);
}
fromDB(value) {
// make sure that's a string with valid format ?
return value;
}
}
export { TimeField as default };
//# sourceMappingURL=time.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"time.mjs","sources":["../../src/fields/time.ts"],"sourcesContent":["import { parseTime } from './shared/parsers';\nimport Field from './field';\n\nexport default class TimeField extends Field {\n toDB(value: unknown) {\n return parseTime(value);\n }\n\n fromDB(value: unknown) {\n // make sure that's a string with valid format ?\n return value;\n }\n}\n"],"names":["TimeField","Field","toDB","value","parseTime","fromDB"],"mappings":";;;AAGe,MAAMA,SAAkBC,SAAAA,KAAAA,CAAAA;AACrCC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,SAAUD,CAAAA,KAAAA,CAAAA;AACnB;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;;QAErB,OAAOA,KAAAA;AACT;AACF;;;;"}

View File

@@ -0,0 +1,6 @@
import Field from './field';
export default class TimestampField extends Field {
toDB(value: unknown): Date;
fromDB(value: unknown): string | null;
}
//# sourceMappingURL=timestamp.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/fields/timestamp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;IAC/C,IAAI,CAAC,KAAK,EAAE,OAAO;IAInB,MAAM,CAAC,KAAK,EAAE,OAAO;CAItB"}

View File

@@ -0,0 +1,37 @@
'use strict';
var dateFns = require('date-fns');
var parsers = require('./shared/parsers.js');
var field = require('./field.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var dateFns__namespace = /*#__PURE__*/_interopNamespaceDefault(dateFns);
class TimestampField extends field {
toDB(value) {
return parsers.parseDateTimeOrTimestamp(value);
}
fromDB(value) {
const cast = new Date(value);
return dateFns__namespace.isValid(cast) ? dateFns__namespace.format(cast, 'T') : null;
}
}
module.exports = TimestampField;
//# sourceMappingURL=timestamp.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"timestamp.js","sources":["../../src/fields/timestamp.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nimport { parseDateTimeOrTimestamp } from './shared/parsers';\nimport Field from './field';\n\nexport default class TimestampField extends Field {\n toDB(value: unknown) {\n return parseDateTimeOrTimestamp(value);\n }\n\n fromDB(value: unknown) {\n const cast = new Date(value as any);\n return dateFns.isValid(cast) ? dateFns.format(cast, 'T') : null;\n }\n}\n"],"names":["TimestampField","Field","toDB","value","parseDateTimeOrTimestamp","fromDB","cast","Date","dateFns","isValid","format"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKe,MAAMA,cAAuBC,SAAAA,KAAAA,CAAAA;AAC1CC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,gCAAyBD,CAAAA,KAAAA,CAAAA;AAClC;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,MAAMG,IAAAA,GAAO,IAAIC,IAAKJ,CAAAA,KAAAA,CAAAA;QACtB,OAAOK,kBAAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA,GAAQE,mBAAQE,MAAM,CAACJ,MAAM,GAAO,CAAA,GAAA,IAAA;AAC7D;AACF;;;;"}

View File

@@ -0,0 +1,16 @@
import * as dateFns from 'date-fns';
import { parseDateTimeOrTimestamp } from './shared/parsers.mjs';
import Field from './field.mjs';
class TimestampField extends Field {
toDB(value) {
return parseDateTimeOrTimestamp(value);
}
fromDB(value) {
const cast = new Date(value);
return dateFns.isValid(cast) ? dateFns.format(cast, 'T') : null;
}
}
export { TimestampField as default };
//# sourceMappingURL=timestamp.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"timestamp.mjs","sources":["../../src/fields/timestamp.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nimport { parseDateTimeOrTimestamp } from './shared/parsers';\nimport Field from './field';\n\nexport default class TimestampField extends Field {\n toDB(value: unknown) {\n return parseDateTimeOrTimestamp(value);\n }\n\n fromDB(value: unknown) {\n const cast = new Date(value as any);\n return dateFns.isValid(cast) ? dateFns.format(cast, 'T') : null;\n }\n}\n"],"names":["TimestampField","Field","toDB","value","parseDateTimeOrTimestamp","fromDB","cast","Date","dateFns","isValid","format"],"mappings":";;;;AAKe,MAAMA,cAAuBC,SAAAA,KAAAA,CAAAA;AAC1CC,IAAAA,IAAAA,CAAKC,KAAc,EAAE;AACnB,QAAA,OAAOC,wBAAyBD,CAAAA,KAAAA,CAAAA;AAClC;AAEAE,IAAAA,MAAAA,CAAOF,KAAc,EAAE;QACrB,MAAMG,IAAAA,GAAO,IAAIC,IAAKJ,CAAAA,KAAAA,CAAAA;QACtB,OAAOK,OAAAA,CAAQC,OAAO,CAACH,IAAAA,CAAAA,GAAQE,QAAQE,MAAM,CAACJ,MAAM,GAAO,CAAA,GAAA,IAAA;AAC7D;AACF;;;;"}