@burnsred/entity 0.6.2 → 0.6.3

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/CHANGELOG.md CHANGED
@@ -3,85 +3,57 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.6.2](https://github.com/burnsred/burnsred-entity-library/compare/v0.5.2...v0.6.2) (2019-05-15)
7
-
8
-
9
- ### Bug Fixes
10
-
11
- * deploy ([28349bb](https://github.com/burnsred/burnsred-entity-library/commit/28349bb))
6
+ ## [0.6.3](https://github.com/burnsred/burnsred-entity-library/compare/v0.6.2...v0.6.3) (2024-04-22)
12
7
 
8
+ **Note:** Version bump only for package @burnsred/entity
13
9
 
10
+ ## [0.6.2](https://github.com/burnsred/burnsred-entity-library/compare/v0.5.2...v0.6.2) (2019-05-15)
14
11
 
12
+ ### Bug Fixes
15
13
 
14
+ - deploy ([28349bb](https://github.com/burnsred/burnsred-entity-library/commit/28349bb))
16
15
 
17
16
  ## [0.5.2](https://github.com/gnowth/entity/compare/v0.5.1...v0.5.2) (2019-05-14)
18
17
 
19
-
20
18
  ### Bug Fixes
21
19
 
22
- * change license to MIT ([#154](https://github.com/gnowth/entity/issues/154)) ([78d85be](https://github.com/gnowth/entity/commit/78d85be))
23
-
24
-
25
-
26
-
20
+ - change license to MIT ([#154](https://github.com/gnowth/entity/issues/154)) ([78d85be](https://github.com/gnowth/entity/commit/78d85be))
27
21
 
28
22
  ## [0.5.1](https://github.com/gnowth/entity/compare/v0.5.0...v0.5.1) (2019-03-20)
29
23
 
30
-
31
24
  ### Bug Fixes
32
25
 
33
- * build import and lodash replacement ([#139](https://github.com/gnowth/entity/issues/139)) ([0f937b7](https://github.com/gnowth/entity/commit/0f937b7))
34
-
35
-
36
-
37
-
26
+ - build import and lodash replacement ([#139](https://github.com/gnowth/entity/issues/139)) ([0f937b7](https://github.com/gnowth/entity/commit/0f937b7))
38
27
 
39
28
  # [0.5.0](https://github.com/gnowth/entity/compare/v0.4.0...v0.5.0) (2019-03-19)
40
29
 
41
-
42
30
  ### Features
43
31
 
44
- * add mock get api ([#106](https://github.com/gnowth/entity/issues/106)) ([e27d63b](https://github.com/gnowth/entity/commit/e27d63b))
45
- * added mock to entity ([#112](https://github.com/gnowth/entity/issues/112)) ([358bdee](https://github.com/gnowth/entity/commit/358bdee))
46
- * added UIPortal ([#137](https://github.com/gnowth/entity/issues/137)) ([08105b8](https://github.com/gnowth/entity/commit/08105b8))
47
- * PopupShadow allows a dirtier value of parent Form ([#81](https://github.com/gnowth/entity/issues/81)) ([4813d6b](https://github.com/gnowth/entity/commit/4813d6b))
48
- * widgetcheckbox, with other fixes ([#129](https://github.com/gnowth/entity/issues/129)) ([3c7810a](https://github.com/gnowth/entity/commit/3c7810a))
49
-
32
+ - add mock get api ([#106](https://github.com/gnowth/entity/issues/106)) ([e27d63b](https://github.com/gnowth/entity/commit/e27d63b))
33
+ - added mock to entity ([#112](https://github.com/gnowth/entity/issues/112)) ([358bdee](https://github.com/gnowth/entity/commit/358bdee))
34
+ - added UIPortal ([#137](https://github.com/gnowth/entity/issues/137)) ([08105b8](https://github.com/gnowth/entity/commit/08105b8))
35
+ - PopupShadow allows a dirtier value of parent Form ([#81](https://github.com/gnowth/entity/issues/81)) ([4813d6b](https://github.com/gnowth/entity/commit/4813d6b))
36
+ - widgetcheckbox, with other fixes ([#129](https://github.com/gnowth/entity/issues/129)) ([3c7810a](https://github.com/gnowth/entity/commit/3c7810a))
50
37
 
51
38
  ### Performance Improvements
52
39
 
53
- * allow lodash plugin to optimise ([#132](https://github.com/gnowth/entity/issues/132)) ([3c04468](https://github.com/gnowth/entity/commit/3c04468))
54
-
55
-
56
-
57
-
40
+ - allow lodash plugin to optimise ([#132](https://github.com/gnowth/entity/issues/132)) ([3c04468](https://github.com/gnowth/entity/commit/3c04468))
58
41
 
59
42
  # [0.4.0](https://github.com/gnowth/entity/compare/v0.2.0...v0.4.0) (2019-01-27)
60
43
 
61
-
62
44
  ### Bug Fixes
63
45
 
64
- * github requiring ssh from circleci ([3d86a88](https://github.com/gnowth/entity/commit/3d86a88))
65
-
46
+ - github requiring ssh from circleci ([3d86a88](https://github.com/gnowth/entity/commit/3d86a88))
66
47
 
67
48
  ### Performance Improvements
68
49
 
69
- * split code in vender/route ([#45](https://github.com/gnowth/entity/issues/45)) ([96b2067](https://github.com/gnowth/entity/commit/96b2067))
70
-
71
-
72
-
73
-
50
+ - split code in vender/route ([#45](https://github.com/gnowth/entity/issues/45)) ([96b2067](https://github.com/gnowth/entity/commit/96b2067))
74
51
 
75
52
  # [0.2.0](https://github.com/gnowth/entity/compare/v0.1.1...v0.2.0) (2018-11-16)
76
53
 
77
-
78
54
  ### Features
79
55
 
80
- * added widgetList, field getKey ([#21](https://github.com/gnowth/entity/issues/21)) ([3ffb626](https://github.com/gnowth/entity/commit/3ffb626))
81
-
82
-
83
-
84
-
56
+ - added widgetList, field getKey ([#21](https://github.com/gnowth/entity/issues/21)) ([3ffb626](https://github.com/gnowth/entity/commit/3ffb626))
85
57
 
86
58
  ## 0.1.1 (2018-11-11)
87
59
 
@@ -1170,6 +1170,7 @@ function (_Entity) {
1170
1170
 
1171
1171
  _createClass(Filter, null, [{
1172
1172
  key: "toParams",
1173
+ // NOTE(thierry): returning a map from field.toParams will flatten the output
1173
1174
  value: function toParams(record) {
1174
1175
  var _this = this;
1175
1176
 
@@ -1212,8 +1213,7 @@ _defineProperty(Filter, "fields", {
1212
1213
  uuid: new IdField({
1213
1214
  blank: true,
1214
1215
  mock: 'random.uuid'
1215
- }) // NOTE(thierry): returning a map from field.toParams will flatten the output
1216
-
1216
+ })
1217
1217
  });
1218
1218
 
1219
1219
  var Title =
@@ -1 +1 @@
1
- {"version":3,"file":"development.js","sources":["../src/cleaner/remove-multi-space.js","../src/cleaner/slice-to-max-length.js","../src/validator/allow-blank.js","../src/validator/entity-valid.js","../src/validator/is-required.js","../src/validator/is-required-if.js","../src/validator/list.js","../src/validator/may-not-be-blank.js","../src/field/field.js","../src/field/field-any.js","../src/field/field-boolean.js","../src/field/field-char.js","../src/field/field-date.js","../src/field/field-datetime.js","../src/field/field-entity.js","../src/field/field-id.js","../src/entity/entity.js","../src/entity/entity-locale.js","../src/entity/entity-enum.js","../src/field/field-enum.js","../src/field/field-number.js","../src/field/field-integer.js","../src/field/field-text.js","../src/entity/entity-filter.js","../src/entity/entity-title.js"],"sourcesContent":["import _ from 'lodash';\n\nexport default (value) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isString(value)) throw new Error('cleaners.removeMultiSpace: value must be of type string');\n }\n\n return value.replace(/\\s\\s+/g, ' ');\n};\n","import _ from 'lodash';\n\nexport default (value, { field }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isString(value)) throw new Error('cleaners.removeMultiSpace: value must be of type string');\n }\n\n return field.maxLength\n ? value.slice(0, field.maxLength)\n : value;\n};\n","export default () => false;\n","export default (value, options = {}) => {\n const errors = options.field.entity.validate(value, options);\n\n return !!errors && errors.size > 0 && errors;\n};\n","export default (value, configs = {}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.field) throw new Error('validators.isRequired: \"field\" option is required');\n }\n\n return configs.field.isBlank(value, configs)\n && 'May not be blank';\n};\n","import _ from 'lodash';\n\nimport isRequired from './is-required';\n\nexport default predicate => (value, configs) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isFunction(predicate)) throw new Error('validators.isRequiredIf: predicate argument must be of type function');\n }\n\n return predicate({ value, ...configs }) && isRequired(value, configs);\n};\n","import { List, Map } from 'immutable';\n\nexport default validators => (values, configs) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(values)) throw new Error('validators.list: \"values\" must be a list');\n }\n\n const errors = values.map(\n value => List(validators)\n .map(validator => validator(value, configs))\n .filter(error => error),\n );\n\n return errors.some(error => error.size > 0)\n && Map({\n errors,\n list: true,\n message: 'Invalid list',\n });\n};\n","import isRequired from './is-required';\n\nexport default (value, configs = {}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.field) throw new Error('validator.mayNotBeBlank: \"field\" option is required');\n }\n\n const validator = configs.flag && configs.field.flags[configs.flag];\n\n const defaultError = !configs.field.blank\n && isRequired(value, configs);\n\n if (!validator) return defaultError;\n\n const flagError = validator(value, configs);\n\n return defaultError\n ? flagError && defaultError\n : flagError && 'May not be blank';\n};\n","import _ from 'lodash';\nimport { fromJS, isImmutable, List, Map } from 'immutable';\n\nimport isRequired from '../validator/is-required';\n\nexport default class Field {\n constructor(options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.options && !List.isList(options.options)) throw new Error(`Field.constructor (${this.constructor.name}): options.options must be a an immutable List`);\n if (options.options && options.options.size !== options.options.toSet().size) throw new Error(`Field.constructor (${this.constructor.name}): options.options must have unique items.`);\n }\n\n const defaults = {\n blank: false,\n cleaners: [],\n many: false,\n validators: options.blank ? [] : [isRequired],\n };\n\n Object.assign(\n this,\n defaults,\n options,\n {\n validators: _.isFunction(options.validators)\n ? options.validators(defaults.validators)\n : (options.validators || defaults.validators),\n },\n );\n }\n\n clean(record, configs = {}) {\n const newOptions = { ...configs, field: this };\n\n return this.cleaners.reduce(\n (prev, cleaner) => cleaner(prev, newOptions),\n record,\n );\n }\n\n dataToValue(data) {\n return fromJS(data);\n }\n\n default() {\n return this.many ? List() : null;\n }\n\n getErrors(errors, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name) throw new Error(`Field.getErrors (${this.constructor.name}): option \"name\" is not supported.`);\n }\n\n return errors;\n }\n\n getErrorsArray(errors, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.index === undefined) throw new Error(`Field.getErrorsArray (${this.constructor.name}): option \"index\" is required.`);\n }\n\n return errors\n .filter(error => Map.isMap(error) && error.get('list'))\n .flatMap(error => error.getIn(['errors', options.index]));\n }\n\n getField(options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name) throw new Error(`Field.getField (${this.constructor.name}): method with option name is not supported.`);\n }\n\n return options.name ? null : this;\n }\n\n getId() {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`Field.getId (${this.constructor.name}): method is not supported.`);\n }\n }\n\n getKey(value) {\n return this.toString(value);\n }\n\n getOptions() {\n return this.options || List();\n }\n\n getValue(value, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name) throw new Error(`Field.getValue (${this.constructor.name}): option \"name\" is not supported.`);\n }\n\n return options.name ? null : value;\n }\n\n isBlank(value = null, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name) throw new Error(`Field.isBlank (${this.constructor.name}): method with option name is not supported.`);\n }\n\n return value === null || (\n this.many\n ? value.size === 0\n : value === ''\n );\n }\n\n toData(value) {\n return isImmutable(value)\n ? value.toJS()\n : value;\n }\n\n toParams(value) {\n return (value && value.toString()) || '';\n }\n\n toString(value = null) {\n return value === null\n ? ''\n : value.toString();\n }\n\n validate(value, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.many && !List.isList(value)) throw new Error(`Field.validate (${this.constructor.name}-${options.fieldName}): \"value\" must be an \"Immutable List\" with field option \"many\"`);\n }\n\n const validators = _.isFunction(options.validators)\n ? options.validators(this.validators)\n : (options.validators || this.validators);\n\n return List(validators)\n .map(validator => validator(value, { ...options, field: this }))\n .filter(error => error);\n }\n}\n","import Field from './field';\n\nexport default class AnyField extends Field {}\n","import AnyField from './field-any';\n\nexport default class BooleanField extends AnyField {\n constructor(configs = {}) {\n super({ type: 'boolean', ...configs });\n }\n}\n","import { List } from 'immutable';\n\nimport AnyField from './field-any';\n\nexport default class CharField extends AnyField {\n constructor(configs = {}) {\n super({ type: 'char', ...configs });\n }\n\n default() {\n return this.many ? List() : '';\n }\n}\n","import moment from 'moment';\n\nimport AnyField from './field-any';\n\nexport default class DateField extends AnyField {\n constructor(configs = {}) {\n super({\n allowTime: false,\n dateFormat: 'YYYY-MM-DD',\n type: 'date',\n ...configs,\n });\n }\n\n dataToValue(data) {\n return data && moment(data);\n }\n\n toData(value) {\n return value && value.format(this.dateFormat);\n }\n\n toParams(value) {\n return (value && value.format(this.dateFormat)) || '';\n }\n\n toString(value) {\n return (value && value.format(this.dateFormat)) || '';\n }\n}\n","import DateField from './field-date';\n\nexport default class DateTimeField extends DateField {\n constructor(configs = {}) {\n super({\n dateFormat: 'YYYY-MM-DD HH:mm',\n allowTime: true,\n ...configs,\n });\n }\n}\n","import _ from 'lodash';\nimport { List, Map } from 'immutable';\n\nimport AnyField from './field-any';\nimport entityValid from '../validator/entity-valid';\nimport list from '../validator/list';\n\nexport default class EntityField extends AnyField {\n constructor(configs = {}) {\n const defaults = {\n nested: true,\n type: 'entity',\n };\n\n const entityValidators = configs.many\n ? [list([entityValid])]\n : [entityValid];\n\n super(Object.assign(\n defaults,\n configs,\n {\n validators: defaultValidators => (\n _.isFunction(configs.validators)\n ? configs.validators(defaultValidators.concat(entityValidators))\n : configs.validators || defaultValidators.concat(entityValidators)\n ),\n },\n ));\n\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.entity) throw new Error(`${this.constructor.name}.constructor: \"entity\" option is required`);\n }\n }\n\n dataToValue(data) {\n return this.entity.dataToRecord(data);\n }\n\n default() {\n if (this.many) return List();\n\n return this.blank ? null : this.entity.dataToRecord({});\n }\n\n getErrors(errors, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name)) throw new Error(`EntityField.getErrors (${this.entity.name}): \"name\" option must be either a string or undefined`);\n if (configs.name && !this.entity.fields[configs.name]) throw new Error(`EntityField.getErrors (${this.entity.name}): field \"${configs.name}\" not found`);\n }\n\n return configs.name\n ? errors\n .filter(error => Map.isMap(error) && error.get('detail'))\n .flatMap(error => error.getIn(['errors', configs.name]))\n .filter(error => error)\n : errors;\n }\n\n getField(configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name)) throw new Error(`EntityField.getField (${this.entity.name}): \"name\" option must be either a string or undefined`);\n if (configs.name && !this.entity.fields[configs.name]) throw new Error(`EntityField.getField (${this.entity.name}): field \"${configs.name}\" not found`);\n }\n\n return configs.name\n ? this.entity.fields[configs.name]\n : this;\n }\n\n getId(value, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name)) throw new Error(`EntityField.getId (${this.entity.name}): \"name\" option must be either a string or undefined`);\n if (configs.name && !this.entity.fields[configs.name]) throw new Error(`EntityField.getId (${this.entity.name}): field \"${configs.name}\" not found`);\n }\n\n return this.getField({ value, ...configs })\n .entity\n .getId(this.getValue(value, configs));\n }\n\n getKey(value) {\n return this.getId(value);\n }\n\n getOptions() {\n return this.options || this.entity.options || List();\n }\n\n getValue(value, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name)) throw new Error(`EntityField.getValue (${this.entity.name}): \"name\" option must be either a string or undefined`);\n if (configs.name && !this.entity.fields[configs.name]) throw new Error(`EntityField.getValue (${this.entity.name}): field \"${configs.name}\" not found`);\n }\n\n return configs.name && value\n ? value.get(configs.name)\n : value;\n }\n\n isBlank(value = null, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name)) throw new Error(`EntityField.isBlank (${this.entity.name}): \"name\" option must be either a string or undefined`);\n if (configs.name && !this.entity.fields[configs.name]) throw new Error(`EntityField.isBlank (${this.entity.name}): field \"${configs.name}\" not found`);\n }\n\n return value === null || (\n this.many\n ? value.size === 0\n : value === ''\n );\n }\n\n toData(value, configs = {}) {\n return this.entity.toData(value, configs);\n }\n\n valueToParam(value = null) {\n return value === null\n ? undefined\n : value.get(this.entity.idField);\n }\n\n toParams(value, configs) {\n return this.getId(value, configs);\n }\n\n toString(value, configs = {}) {\n return this.entity.toString(value, configs);\n }\n}\n","import _ from 'lodash';\nimport idx from 'idx';\nimport AnyField from './field-any';\n\nexport default class IdField extends AnyField {\n constructor(configs = {}) {\n super(configs);\n\n if (process.env.NODE_ENV !== 'production') {\n if (configs.many) throw new Error(`${this.constructor.name}.constructor: \"many\" option is not supported.`);\n }\n }\n\n dataToValue(data) {\n return _.isFunction(idx(data, x => x.toString))\n ? data.toString()\n : data;\n }\n\n default() {\n return undefined;\n }\n}\n","import _ from 'lodash';\nimport { List, Map } from 'immutable';\n\nimport EntityField from '../field/field-entity';\nimport IdField from '../field/field-id';\n\nexport default class Entity {\n static cleaners = []\n\n static idField = 'uuid'\n\n static fields = {\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n }\n\n static paths = {}\n\n static actionArrayDeleteAtIndex(records, { index = null } = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(records)) throw new Error(`Entity.actionArrayDeleteAt (${this.name}): \"records\" must be an immutable List.`);\n if (index === null) throw new Error(`Entity.actionArrayDeleteAt (${this.name}): \"index\" option must be set.`);\n }\n\n return records.delete(index);\n }\n\n static actionArrayMoveAtIndex(records, { index = null, indexTo = null } = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(records)) throw new Error(`Entity.actionArrayMoveAtIndex (${this.name}): \"records\" must be an immutable List.`);\n if (index === null) throw new Error(`Entity.actionArrayMoveAtIndex (${this.name}): \"index\" option must be set.`);\n if (indexTo === null) throw new Error(`Entity.actionArrayMoveAtIndex (${this.name}): \"indexTo\" option must be set.`);\n }\n\n return records.delete(index).insert(indexTo, records.get(index));\n }\n\n static actionReset(record, configs = {}) {\n return configs.valueInitial || this.dataToRecord({\n [this.idField]: record.get(this.idField),\n });\n }\n\n static clean(record, configs = {}) {\n const newOptions = { ...configs, entity: this };\n\n return this.cleaners.reduce(\n (prev, cleaner) => cleaner(prev, newOptions),\n record,\n );\n }\n\n static dataToRecord(data = null) {\n const fieldDataToValue = (value, key) => (\n (List.isList(value) || Array.isArray(value))\n ? List(value).map(val => this.fields[key].dataToValue(val, { data }))\n : this.fields[key].dataToValue(value, { data })\n );\n\n const getDefaultFromField = field => (\n _.isFunction(field.default)\n ? field.default({ data })\n : field.default\n );\n\n const values = Map(data)\n .filter((value, key) => key in this.fields)\n .filterNot(value => value === undefined)\n .map(fieldDataToValue);\n\n return data && Map(this.fields)\n .filter((value, key) => data[key] === undefined)\n .map(getDefaultFromField)\n .merge(values);\n }\n\n static getEntityField(configs = {}) {\n return new EntityField({ entity: this, ...configs });\n }\n\n static getId(record = null) {\n return record === null\n ? undefined\n : record.get(this.idField);\n }\n\n static getPaths() {\n return this.paths;\n }\n\n static getSize() {\n return 0;\n }\n\n static isEntity(maybeEntity) {\n return !!maybeEntity && maybeEntity.prototype instanceof Entity;\n }\n\n static isEntityDescendant(maybeDescendant) {\n return !!maybeDescendant && maybeDescendant.prototype instanceof this;\n }\n\n static isValid(record, configs) {\n return this.validate(record, configs).size === 0;\n }\n\n static isValidFromErrors(errors, configs = {}) {\n return configs.name\n ? configs.name.some(\n n => errors\n .filter(error => Map.isMap(error) && error.get('detail'))\n .flatMap(error => error.getIn(['errors', n]))\n .filter(error => error).size > 0,\n )\n : !errors || errors.size === 0;\n }\n\n static mock(faker, index, mockData) {\n return _.flowRight([\n record => this.toData(record),\n data => this.dataToRecord(data),\n fields => ({\n ..._.mapValues(\n fields,\n (field) => {\n if (field instanceof EntityField && !field.blank && field.entity.store) {\n return field.many\n ? _.sampleSize(Object.values(field.entity.store))\n : _.sample(Object.values(field.entity.store));\n }\n\n return field.mock && (\n field.mock === 'index'\n ? index\n : _.get(faker, field.mock)(...(field.mockConfigs || []))\n );\n },\n ),\n ...mockData,\n }),\n ])(this.fields);\n }\n\n static mockMany(faker, configs = {}) {\n return _.keyBy(\n _.range(configs.size).map(index => this.mock(faker, index)),\n this.idField,\n );\n }\n\n static toData(record) {\n if (process.env.NODE_ENV !== 'production') {\n if (record && !Map.isMap(record)) throw new Error(`Entity.toData (${this.name}): record must be either a Map or null or undefined`);\n }\n\n const fieldValueToData = (value, key) => (\n List.isList(value)\n ? value.map(val => this.fields[key].toData(val, { record })).toArray()\n : this.fields[key].toData(value, { record })\n );\n\n return record && record\n .filter((value, key) => key in this.fields)\n .filterNot((value, key) => this.fields[key].local)\n .map(fieldValueToData)\n .toObject();\n }\n\n static toString(record) {\n if (process.env.NODE_ENV !== 'production') {\n if (record && !Map.isMap(record)) throw new Error(`Entity.toString (${this.name}): record must be either a Map or null or undefined`);\n }\n\n return (record && record.get(this.idField)) || '';\n }\n\n static validate(record, configs = {}) {\n if (!record) return record;\n\n const detailErrors = Map(this.fields)\n .filter((field, key) => !configs.fields || configs.fields[key])\n .map((field, key) => field.validate(\n record.get(key),\n {\n ...configs,\n fieldName: key,\n record,\n validators: configs.fields && configs.fields[key],\n },\n )).filterNot(errors => errors.size === 0);\n\n return detailErrors.size === 0\n ? null\n : Map({\n detail: true,\n message: 'Invalid Entity',\n errors: detailErrors,\n });\n }\n}\n","import Entity from './entity';\nimport AnyField from '../field/field-any';\nimport CharField from '../field/field-char';\nimport IdField from '../field/field-id';\n\nexport default class Locale extends Entity {\n static fields = {\n messages: new AnyField(),\n defaultMessage: new CharField(),\n description: new CharField(),\n id: new CharField(),\n uuid: new IdField({ mock: 'random.uuid' }),\n }\n}\n","import Entity from './entity';\nimport EntityLocale from './entity-locale';\nimport BooleanField from '../field/field-boolean';\nimport CharField from '../field/field-char';\nimport EntityField from '../field/field-entity';\n\nexport default class Enum extends Entity {\n static idField = 'value'\n\n static fields = {\n disabled: new BooleanField({ default: false }),\n hidden: new BooleanField({ default: false }),\n label: new CharField(),\n locale: new EntityField({\n blank: true,\n entity: EntityLocale,\n }),\n value: new CharField(),\n }\n\n static toString(record) {\n return (record && record.get('label')) || '';\n }\n}\n","import { List } from 'immutable';\n\nimport EntityField from './field-entity';\nimport EntityEnum from '../entity/entity-enum';\n\nexport default class EnumField extends EntityField {\n constructor(configs = {}) {\n super({ entity: EntityEnum, type: 'enum', ...configs });\n }\n\n dataToValue(data = null) {\n return data && this.getOptions().find(option => this.entity.getId(option) === data);\n }\n\n default() {\n return this.many ? List() : null;\n }\n\n isEnumActive(value, { name }) {\n return this.many\n ? value.some(v => v.get('value') === name)\n : !!value && value.get('value') === name;\n }\n\n valueToData(value = null) {\n return value && this.entity.getId(value);\n }\n\n valueToParam(value = null) {\n return value === null\n ? undefined\n : this.entity.getId(value);\n }\n}\n","import AnyField from './field-any';\n\nexport default class NumberField extends AnyField {\n constructor(options = {}) {\n super({ type: 'number', ...options });\n }\n}\n","import NumberField from './field-number';\n\nexport default class IntegerField extends NumberField {\n dataToValue(data) {\n const value = parseInt(data, 10);\n\n return Number.isNaN(value) ? null : value;\n }\n}\n","import CharField from './field-char';\n\nexport default class TextField extends CharField {\n constructor(configs = {}) {\n super({ type: 'text', ...configs });\n }\n}\n","import { List, Map } from 'immutable';\n\nimport Entity from './entity';\n\nimport IdField from '../field/field-id';\nimport IntegerField from '../field/field-integer';\n\nexport default class Filter extends Entity {\n static fields = {\n page: new IntegerField({ default: 1 }),\n page_size: new IntegerField({ default: 20 }),\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n }\n\n // NOTE(thierry): returning a map from field.toParams will flatten the output\n static toParams(record, options = {}) {\n const fieldValueToParams = (value, key) => (\n List.isList(value)\n ? value\n .map(val => this.fields[key].toParams(val, { record, ...options }))\n .reduce(\n (prev, param) => prev.mergeWith(\n (prevParam, nextParam) => (prevParam ? `${prevParam},${nextParam}` : nextParam),\n Map.isMap(param) ? param : Map({ [key]: param }),\n ),\n Map(),\n )\n : this.fields[key].toParams(value, { record, ...options })\n );\n\n return record\n ? record\n .filter((_, key) => key in this.fields)\n .filterNot((_, key) => this.fields[key].local)\n .filterNot(value => value === undefined)\n .map(fieldValueToParams)\n .flatten()\n : Map();\n }\n}\n","import _ from 'lodash';\nimport idx from 'idx';\nimport queryString from 'query-string';\nimport { Map } from 'immutable';\n\nimport Entity from './entity';\nimport EntityLocale from './entity-locale';\n\nimport BooleanField from '../field/field-boolean';\nimport CharField from '../field/field-char';\nimport EntityField from '../field/field-entity';\nimport IdField from '../field/field-id';\nimport IntegerField from '../field/field-integer';\nimport TextField from '../field/field-text';\n\nexport default class Title extends Entity {\n static fields = {\n description: new TextField({ blank: true }),\n is_archived: new BooleanField({ default: false }),\n locale: new EntityField({\n blank: true,\n entity: EntityLocale,\n }),\n order: new IntegerField({ mock: 'index' }),\n title: new CharField({ mock: 'lorem.sentence' }),\n title_short: new CharField({ blank: true }),\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n }\n\n static paths = {\n urlBase: '',\n }\n\n static actionArchive(record, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!idx(this, x => x.duck.actions.save)) throw new Error(`EntityTitle.actionArchive (${this.name}): \"save\" action is required in duck`);\n }\n\n return this.duck.actions.save(record, {\n action: 'archive',\n method: 'post',\n ...configs,\n });\n }\n\n static actionArrayDeleteAtIndexOrdered(records, configs) {\n return this.actionArrayDeleteAtIndex(records, configs)\n .map((record, i) => record.set('order', i));\n }\n\n static actionArrayMoveAtIndexOrdered(records, configs) {\n return this.actionArrayMoveAtIndex(records, configs)\n .map((record, i) => record.set('order', i));\n }\n\n static actionSave(record, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!idx(this, x => x.duck.actions.save)) throw new Error(`EntityTitle.actionSave (${this.name}): \"save\" action is required in duck`);\n }\n\n return this.duck.actions.save(record, {\n invalidateList: true,\n ...configs,\n });\n }\n\n static toLink(record, configs = {}) {\n const computedParams = (configs.params || Map())\n .filterNot(param => param === undefined);\n\n const path = this.getPaths(configs).urlBase;\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path)) throw new Error(`EntityTitle.toLink (${this.name}): \"urlBase\" property must start with a \"/\" and end with a \"/\"`);\n if (computedParams.some(value => !_.isString(value))) throw new Error(`EntityTitle.toLink (${this.name}): every params must be a string or undefined`);\n }\n\n return `${path}${this.getId(record, configs)}/?${queryString.stringify(computedParams.toJS())}`;\n }\n\n static toString(record) {\n return (record && record.get('title')) || '';\n }\n\n static toStringOrdered(record) {\n return record\n ? `${record.get('order') + 1}. ${this.toString(record)}`\n : '';\n }\n\n static toUrl(record, configs = {}) {\n const computedParams = (configs.params || Map())\n .remove('page')\n .remove('page_size')\n .filterNot(param => param === undefined);\n\n const path = this.getPaths(configs).urlBase;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path)) throw new Error(`EntityTitle.toUrl (${this.name}): \"urlBase\" property must start with a \"/\" and end with a \"/\"`);\n if (computedParams.some(param => !_.isString(param))) throw new Error(`EntityTitle.toUrl (${this.name}): every params must be a string or undefined`);\n if (!(configs.settings && configs.settings.BASE_URL)) throw new Error(`EntityTitle.toUrl (${this.name}): \"settings.BASE_URL\" must be set.`);\n }\n\n return `${configs.settings.BASE_URL}${path}${this.getId(record, configs)}/?${queryString.stringify(computedParams.toJS())}`;\n }\n\n static toUrlExport(configs = {}) {\n const computedParams = configs.params\n ? configs.params\n .remove('page')\n .remove('page_size')\n .filterNot(param => param === undefined)\n : Map();\n\n const path = this.getPaths(configs).apiBase;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path)) throw new Error(`EntityTitle.toUrlExport (${this.name}): \"apiBase\" property must start with a \"/\" and end with a \"/\"`);\n if (computedParams.some(param => !_.isString(param))) throw new Error(`EntityTitle.toUrlExport (${this.name}): every params must be a string or undefined`);\n if (!(configs.settings && configs.settings.BASE_API_URL)) throw new Error(`EntityTitle.toUrlExport (${this.name}): \"settings.BASE_API_URL\" must be set.`);\n }\n\n return `${configs.settings.BASE_API_URL}${path}?${queryString.stringify(computedParams.toJS())}&format=xlsx`;\n }\n}\n"],"names":["value","process","env","NODE_ENV","Error","replace","field","maxLength","slice","options","errors","entity","validate","size","configs","isBlank","predicate","isRequired","validators","values","List","isList","map","validator","filter","error","some","Map","list","message","flag","flags","defaultError","blank","flagError","Field","constructor","name","toSet","defaults","cleaners","many","Object","assign","record","newOptions","reduce","prev","cleaner","data","fromJS","index","undefined","isMap","get","flatMap","getIn","toString","isImmutable","toJS","fieldName","AnyField","BooleanField","type","CharField","DateField","allowTime","dateFormat","moment","format","DateTimeField","EntityField","nested","entityValidators","entityValid","defaultValidators","concat","dataToRecord","fields","getField","getId","getValue","toData","idField","IdField","Entity","records","delete","indexTo","insert","valueInitial","fieldDataToValue","key","Array","isArray","val","dataToValue","getDefaultFromField","default","filterNot","merge","paths","maybeEntity","prototype","maybeDescendant","n","faker","mockData","store","mock","mockConfigs","fieldValueToData","toArray","local","toObject","detailErrors","detail","uuid","Locale","messages","defaultMessage","description","id","Enum","disabled","hidden","label","locale","EntityLocale","EnumField","EntityEnum","getOptions","find","option","v","NumberField","IntegerField","parseInt","Number","isNaN","TextField","Filter","fieldValueToParams","toParams","param","mergeWith","prevParam","nextParam","_","flatten","page","page_size","Title","duck","actions","save","action","method","actionArrayDeleteAtIndex","i","set","actionArrayMoveAtIndex","invalidateList","computedParams","params","path","getPaths","urlBase","test","queryString","stringify","remove","settings","BASE_URL","apiBase","BASE_API_URL","is_archived","order","title","title_short"],"mappings":"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"}
1
+ {"version":3,"file":"development.js","sources":["../src/cleaner/remove-multi-space.js","../src/cleaner/slice-to-max-length.js","../src/validator/allow-blank.js","../src/validator/entity-valid.js","../src/validator/is-required.js","../src/validator/is-required-if.js","../src/validator/list.js","../src/validator/may-not-be-blank.js","../src/field/field.js","../src/field/field-any.js","../src/field/field-boolean.js","../src/field/field-char.js","../src/field/field-date.js","../src/field/field-datetime.js","../src/field/field-entity.js","../src/field/field-id.js","../src/entity/entity.js","../src/entity/entity-locale.js","../src/entity/entity-enum.js","../src/field/field-enum.js","../src/field/field-number.js","../src/field/field-integer.js","../src/field/field-text.js","../src/entity/entity-filter.js","../src/entity/entity-title.js"],"sourcesContent":["import _ from 'lodash';\n\nexport default (value) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isString(value))\n throw new Error(\n 'cleaners.removeMultiSpace: value must be of type string',\n );\n }\n\n return value.replace(/\\s\\s+/g, ' ');\n};\n","import _ from 'lodash';\n\nexport default (value, { field }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isString(value))\n throw new Error(\n 'cleaners.removeMultiSpace: value must be of type string',\n );\n }\n\n return field.maxLength ? value.slice(0, field.maxLength) : value;\n};\n","export default () => false;\n","export default (value, options = {}) => {\n const errors = options.field.entity.validate(value, options);\n\n return !!errors && errors.size > 0 && errors;\n};\n","export default (value, configs = {}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.field)\n throw new Error('validators.isRequired: \"field\" option is required');\n }\n\n return configs.field.isBlank(value, configs) && 'May not be blank';\n};\n","import _ from 'lodash';\n\nimport isRequired from './is-required';\n\nexport default (predicate) => (value, configs) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!_.isFunction(predicate))\n throw new Error(\n 'validators.isRequiredIf: predicate argument must be of type function',\n );\n }\n\n return predicate({ value, ...configs }) && isRequired(value, configs);\n};\n","import { List, Map } from 'immutable';\n\nexport default (validators) => (values, configs) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(values))\n throw new Error('validators.list: \"values\" must be a list');\n }\n\n const errors = values.map((value) =>\n List(validators)\n .map((validator) => validator(value, configs))\n .filter((error) => error),\n );\n\n return (\n errors.some((error) => error.size > 0) &&\n Map({\n errors,\n list: true,\n message: 'Invalid list',\n })\n );\n};\n","import isRequired from './is-required';\n\nexport default (value, configs = {}) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.field)\n throw new Error('validator.mayNotBeBlank: \"field\" option is required');\n }\n\n const validator = configs.flag && configs.field.flags[configs.flag];\n\n const defaultError = !configs.field.blank && isRequired(value, configs);\n\n if (!validator) return defaultError;\n\n const flagError = validator(value, configs);\n\n return defaultError\n ? flagError && defaultError\n : flagError && 'May not be blank';\n};\n","import _ from 'lodash';\nimport { fromJS, isImmutable, List, Map } from 'immutable';\n\nimport isRequired from '../validator/is-required';\n\nexport default class Field {\n constructor(options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.options && !List.isList(options.options))\n throw new Error(\n `Field.constructor (${this.constructor.name}): options.options must be a an immutable List`,\n );\n if (\n options.options &&\n options.options.size !== options.options.toSet().size\n )\n throw new Error(\n `Field.constructor (${this.constructor.name}): options.options must have unique items.`,\n );\n }\n\n const defaults = {\n blank: false,\n cleaners: [],\n many: false,\n validators: options.blank ? [] : [isRequired],\n };\n\n Object.assign(this, defaults, options, {\n validators: _.isFunction(options.validators)\n ? options.validators(defaults.validators)\n : options.validators || defaults.validators,\n });\n }\n\n clean(record, configs = {}) {\n const newOptions = { ...configs, field: this };\n\n return this.cleaners.reduce(\n (prev, cleaner) => cleaner(prev, newOptions),\n record,\n );\n }\n\n dataToValue(data) {\n return fromJS(data);\n }\n\n default() {\n return this.many ? List() : null;\n }\n\n getErrors(errors, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name)\n throw new Error(\n `Field.getErrors (${this.constructor.name}): option \"name\" is not supported.`,\n );\n }\n\n return errors;\n }\n\n getErrorsArray(errors, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.index === undefined)\n throw new Error(\n `Field.getErrorsArray (${this.constructor.name}): option \"index\" is required.`,\n );\n }\n\n return errors\n .filter((error) => Map.isMap(error) && error.get('list'))\n .flatMap((error) => error.getIn(['errors', options.index]));\n }\n\n getField(options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name)\n throw new Error(\n `Field.getField (${this.constructor.name}): method with option name is not supported.`,\n );\n }\n\n return options.name ? null : this;\n }\n\n getId() {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `Field.getId (${this.constructor.name}): method is not supported.`,\n );\n }\n }\n\n getKey(value) {\n return this.toString(value);\n }\n\n getOptions() {\n return this.options || List();\n }\n\n getValue(value, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name)\n throw new Error(\n `Field.getValue (${this.constructor.name}): option \"name\" is not supported.`,\n );\n }\n\n return options.name ? null : value;\n }\n\n isBlank(value = null, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (options.name)\n throw new Error(\n `Field.isBlank (${this.constructor.name}): method with option name is not supported.`,\n );\n }\n\n return value === null || (this.many ? value.size === 0 : value === '');\n }\n\n toData(value) {\n return isImmutable(value) ? value.toJS() : value;\n }\n\n toParams(value) {\n return (value && value.toString()) || '';\n }\n\n toString(value = null) {\n return value === null ? '' : value.toString();\n }\n\n validate(value, options = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.many && !List.isList(value))\n throw new Error(\n `Field.validate (${this.constructor.name}-${options.fieldName}): \"value\" must be an \"Immutable List\" with field option \"many\"`,\n );\n }\n\n const validators = _.isFunction(options.validators)\n ? options.validators(this.validators)\n : options.validators || this.validators;\n\n return List(validators)\n .map((validator) => validator(value, { ...options, field: this }))\n .filter((error) => error);\n }\n}\n","import Field from './field';\n\nexport default class AnyField extends Field {}\n","import AnyField from './field-any';\n\nexport default class BooleanField extends AnyField {\n constructor(configs = {}) {\n super({ type: 'boolean', ...configs });\n }\n}\n","import { List } from 'immutable';\n\nimport AnyField from './field-any';\n\nexport default class CharField extends AnyField {\n constructor(configs = {}) {\n super({ type: 'char', ...configs });\n }\n\n default() {\n return this.many ? List() : '';\n }\n}\n","import moment from 'moment';\n\nimport AnyField from './field-any';\n\nexport default class DateField extends AnyField {\n constructor(configs = {}) {\n super({\n allowTime: false,\n dateFormat: 'YYYY-MM-DD',\n type: 'date',\n ...configs,\n });\n }\n\n dataToValue(data) {\n return data && moment(data);\n }\n\n toData(value) {\n return value && value.format(this.dateFormat);\n }\n\n toParams(value) {\n return (value && value.format(this.dateFormat)) || '';\n }\n\n toString(value) {\n return (value && value.format(this.dateFormat)) || '';\n }\n}\n","import DateField from './field-date';\n\nexport default class DateTimeField extends DateField {\n constructor(configs = {}) {\n super({\n dateFormat: 'YYYY-MM-DD HH:mm',\n allowTime: true,\n ...configs,\n });\n }\n}\n","import _ from 'lodash';\nimport { List, Map } from 'immutable';\n\nimport AnyField from './field-any';\nimport entityValid from '../validator/entity-valid';\nimport list from '../validator/list';\n\nexport default class EntityField extends AnyField {\n constructor(configs = {}) {\n const defaults = {\n nested: true,\n type: 'entity',\n };\n\n const entityValidators = configs.many\n ? [list([entityValid])]\n : [entityValid];\n\n super(\n Object.assign(defaults, configs, {\n validators: (defaultValidators) =>\n _.isFunction(configs.validators)\n ? configs.validators(defaultValidators.concat(entityValidators))\n : configs.validators || defaultValidators.concat(entityValidators),\n }),\n );\n\n if (process.env.NODE_ENV !== 'production') {\n if (!configs.entity)\n throw new Error(\n `${this.constructor.name}.constructor: \"entity\" option is required`,\n );\n }\n }\n\n dataToValue(data) {\n return this.entity.dataToRecord(data);\n }\n\n default() {\n if (this.many) return List();\n\n return this.blank ? null : this.entity.dataToRecord({});\n }\n\n getErrors(errors, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name))\n throw new Error(\n `EntityField.getErrors (${this.entity.name}): \"name\" option must be either a string or undefined`,\n );\n if (configs.name && !this.entity.fields[configs.name])\n throw new Error(\n `EntityField.getErrors (${this.entity.name}): field \"${configs.name}\" not found`,\n );\n }\n\n return configs.name\n ? errors\n .filter((error) => Map.isMap(error) && error.get('detail'))\n .flatMap((error) => error.getIn(['errors', configs.name]))\n .filter((error) => error)\n : errors;\n }\n\n getField(configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name))\n throw new Error(\n `EntityField.getField (${this.entity.name}): \"name\" option must be either a string or undefined`,\n );\n if (configs.name && !this.entity.fields[configs.name])\n throw new Error(\n `EntityField.getField (${this.entity.name}): field \"${configs.name}\" not found`,\n );\n }\n\n return configs.name ? this.entity.fields[configs.name] : this;\n }\n\n getId(value, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name))\n throw new Error(\n `EntityField.getId (${this.entity.name}): \"name\" option must be either a string or undefined`,\n );\n if (configs.name && !this.entity.fields[configs.name])\n throw new Error(\n `EntityField.getId (${this.entity.name}): field \"${configs.name}\" not found`,\n );\n }\n\n return this.getField({ value, ...configs }).entity.getId(\n this.getValue(value, configs),\n );\n }\n\n getKey(value) {\n return this.getId(value);\n }\n\n getOptions() {\n return this.options || this.entity.options || List();\n }\n\n getValue(value, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name))\n throw new Error(\n `EntityField.getValue (${this.entity.name}): \"name\" option must be either a string or undefined`,\n );\n if (configs.name && !this.entity.fields[configs.name])\n throw new Error(\n `EntityField.getValue (${this.entity.name}): field \"${configs.name}\" not found`,\n );\n }\n\n return configs.name && value ? value.get(configs.name) : value;\n }\n\n isBlank(value = null, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (configs.name && !_.isString(configs.name))\n throw new Error(\n `EntityField.isBlank (${this.entity.name}): \"name\" option must be either a string or undefined`,\n );\n if (configs.name && !this.entity.fields[configs.name])\n throw new Error(\n `EntityField.isBlank (${this.entity.name}): field \"${configs.name}\" not found`,\n );\n }\n\n return value === null || (this.many ? value.size === 0 : value === '');\n }\n\n toData(value, configs = {}) {\n return this.entity.toData(value, configs);\n }\n\n valueToParam(value = null) {\n return value === null ? undefined : value.get(this.entity.idField);\n }\n\n toParams(value, configs) {\n return this.getId(value, configs);\n }\n\n toString(value, configs = {}) {\n return this.entity.toString(value, configs);\n }\n}\n","import _ from 'lodash';\nimport idx from 'idx';\nimport AnyField from './field-any';\n\nexport default class IdField extends AnyField {\n constructor(configs = {}) {\n super(configs);\n\n if (process.env.NODE_ENV !== 'production') {\n if (configs.many)\n throw new Error(\n `${this.constructor.name}.constructor: \"many\" option is not supported.`,\n );\n }\n }\n\n dataToValue(data) {\n return _.isFunction(idx(data, (x) => x.toString)) ? data.toString() : data;\n }\n\n default() {\n return undefined;\n }\n}\n","import _ from 'lodash';\nimport { List, Map } from 'immutable';\n\nimport EntityField from '../field/field-entity';\nimport IdField from '../field/field-id';\n\nexport default class Entity {\n static cleaners = [];\n\n static idField = 'uuid';\n\n static fields = {\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n };\n\n static paths = {};\n\n static actionArrayDeleteAtIndex(records, { index = null } = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(records))\n throw new Error(\n `Entity.actionArrayDeleteAt (${this.name}): \"records\" must be an immutable List.`,\n );\n if (index === null)\n throw new Error(\n `Entity.actionArrayDeleteAt (${this.name}): \"index\" option must be set.`,\n );\n }\n\n return records.delete(index);\n }\n\n static actionArrayMoveAtIndex(\n records,\n { index = null, indexTo = null } = {},\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (!List.isList(records))\n throw new Error(\n `Entity.actionArrayMoveAtIndex (${this.name}): \"records\" must be an immutable List.`,\n );\n if (index === null)\n throw new Error(\n `Entity.actionArrayMoveAtIndex (${this.name}): \"index\" option must be set.`,\n );\n if (indexTo === null)\n throw new Error(\n `Entity.actionArrayMoveAtIndex (${this.name}): \"indexTo\" option must be set.`,\n );\n }\n\n return records.delete(index).insert(indexTo, records.get(index));\n }\n\n static actionReset(record, configs = {}) {\n return (\n configs.valueInitial ||\n this.dataToRecord({\n [this.idField]: record.get(this.idField),\n })\n );\n }\n\n static clean(record, configs = {}) {\n const newOptions = { ...configs, entity: this };\n\n return this.cleaners.reduce(\n (prev, cleaner) => cleaner(prev, newOptions),\n record,\n );\n }\n\n static dataToRecord(data = null) {\n const fieldDataToValue = (value, key) =>\n List.isList(value) || Array.isArray(value)\n ? List(value).map((val) => this.fields[key].dataToValue(val, { data }))\n : this.fields[key].dataToValue(value, { data });\n\n const getDefaultFromField = (field) =>\n _.isFunction(field.default) ? field.default({ data }) : field.default;\n\n const values = Map(data)\n .filter((value, key) => key in this.fields)\n .filterNot((value) => value === undefined)\n .map(fieldDataToValue);\n\n return (\n data &&\n Map(this.fields)\n .filter((value, key) => data[key] === undefined)\n .map(getDefaultFromField)\n .merge(values)\n );\n }\n\n static getEntityField(configs = {}) {\n return new EntityField({ entity: this, ...configs });\n }\n\n static getId(record = null) {\n return record === null ? undefined : record.get(this.idField);\n }\n\n static getPaths() {\n return this.paths;\n }\n\n static getSize() {\n return 0;\n }\n\n static isEntity(maybeEntity) {\n return !!maybeEntity && maybeEntity.prototype instanceof Entity;\n }\n\n static isEntityDescendant(maybeDescendant) {\n return !!maybeDescendant && maybeDescendant.prototype instanceof this;\n }\n\n static isValid(record, configs) {\n return this.validate(record, configs).size === 0;\n }\n\n static isValidFromErrors(errors, configs = {}) {\n return configs.name\n ? configs.name.some(\n (n) =>\n errors\n .filter((error) => Map.isMap(error) && error.get('detail'))\n .flatMap((error) => error.getIn(['errors', n]))\n .filter((error) => error).size > 0,\n )\n : !errors || errors.size === 0;\n }\n\n static mock(faker, index, mockData) {\n return _.flowRight([\n (record) => this.toData(record),\n (data) => this.dataToRecord(data),\n (fields) => ({\n ..._.mapValues(fields, (field) => {\n if (\n field instanceof EntityField &&\n !field.blank &&\n field.entity.store\n ) {\n return field.many\n ? _.sampleSize(Object.values(field.entity.store))\n : _.sample(Object.values(field.entity.store));\n }\n\n return (\n field.mock &&\n (field.mock === 'index'\n ? index\n : _.get(faker, field.mock)(...(field.mockConfigs || [])))\n );\n }),\n ...mockData,\n }),\n ])(this.fields);\n }\n\n static mockMany(faker, configs = {}) {\n return _.keyBy(\n _.range(configs.size).map((index) => this.mock(faker, index)),\n this.idField,\n );\n }\n\n static toData(record) {\n if (process.env.NODE_ENV !== 'production') {\n if (record && !Map.isMap(record))\n throw new Error(\n `Entity.toData (${this.name}): record must be either a Map or null or undefined`,\n );\n }\n\n const fieldValueToData = (value, key) =>\n List.isList(value)\n ? value.map((val) => this.fields[key].toData(val, { record })).toArray()\n : this.fields[key].toData(value, { record });\n\n return (\n record &&\n record\n .filter((value, key) => key in this.fields)\n .filterNot((value, key) => this.fields[key].local)\n .map(fieldValueToData)\n .toObject()\n );\n }\n\n static toString(record) {\n if (process.env.NODE_ENV !== 'production') {\n if (record && !Map.isMap(record))\n throw new Error(\n `Entity.toString (${this.name}): record must be either a Map or null or undefined`,\n );\n }\n\n return (record && record.get(this.idField)) || '';\n }\n\n static validate(record, configs = {}) {\n if (!record) return record;\n\n const detailErrors = Map(this.fields)\n .filter((field, key) => !configs.fields || configs.fields[key])\n .map((field, key) =>\n field.validate(record.get(key), {\n ...configs,\n fieldName: key,\n record,\n validators: configs.fields && configs.fields[key],\n }),\n )\n .filterNot((errors) => errors.size === 0);\n\n return detailErrors.size === 0\n ? null\n : Map({\n detail: true,\n message: 'Invalid Entity',\n errors: detailErrors,\n });\n }\n}\n","import Entity from './entity';\nimport AnyField from '../field/field-any';\nimport CharField from '../field/field-char';\nimport IdField from '../field/field-id';\n\nexport default class Locale extends Entity {\n static fields = {\n messages: new AnyField(),\n defaultMessage: new CharField(),\n description: new CharField(),\n id: new CharField(),\n uuid: new IdField({ mock: 'random.uuid' }),\n };\n}\n","import Entity from './entity';\nimport EntityLocale from './entity-locale';\nimport BooleanField from '../field/field-boolean';\nimport CharField from '../field/field-char';\nimport EntityField from '../field/field-entity';\n\nexport default class Enum extends Entity {\n static idField = 'value';\n\n static fields = {\n disabled: new BooleanField({ default: false }),\n hidden: new BooleanField({ default: false }),\n label: new CharField(),\n locale: new EntityField({\n blank: true,\n entity: EntityLocale,\n }),\n value: new CharField(),\n };\n\n static toString(record) {\n return (record && record.get('label')) || '';\n }\n}\n","import { List } from 'immutable';\n\nimport EntityField from './field-entity';\nimport EntityEnum from '../entity/entity-enum';\n\nexport default class EnumField extends EntityField {\n constructor(configs = {}) {\n super({ entity: EntityEnum, type: 'enum', ...configs });\n }\n\n dataToValue(data = null) {\n return (\n data &&\n this.getOptions().find((option) => this.entity.getId(option) === data)\n );\n }\n\n default() {\n return this.many ? List() : null;\n }\n\n isEnumActive(value, { name }) {\n return this.many\n ? value.some((v) => v.get('value') === name)\n : !!value && value.get('value') === name;\n }\n\n valueToData(value = null) {\n return value && this.entity.getId(value);\n }\n\n valueToParam(value = null) {\n return value === null ? undefined : this.entity.getId(value);\n }\n}\n","import AnyField from './field-any';\n\nexport default class NumberField extends AnyField {\n constructor(options = {}) {\n super({ type: 'number', ...options });\n }\n}\n","import NumberField from './field-number';\n\nexport default class IntegerField extends NumberField {\n dataToValue(data) {\n const value = parseInt(data, 10);\n\n return Number.isNaN(value) ? null : value;\n }\n}\n","import CharField from './field-char';\n\nexport default class TextField extends CharField {\n constructor(configs = {}) {\n super({ type: 'text', ...configs });\n }\n}\n","import { List, Map } from 'immutable';\n\nimport Entity from './entity';\n\nimport IdField from '../field/field-id';\nimport IntegerField from '../field/field-integer';\n\nexport default class Filter extends Entity {\n static fields = {\n page: new IntegerField({ default: 1 }),\n page_size: new IntegerField({ default: 20 }),\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n };\n\n // NOTE(thierry): returning a map from field.toParams will flatten the output\n static toParams(record, options = {}) {\n const fieldValueToParams = (value, key) =>\n List.isList(value)\n ? value\n .map((val) =>\n this.fields[key].toParams(val, { record, ...options }),\n )\n .reduce(\n (prev, param) =>\n prev.mergeWith(\n (prevParam, nextParam) =>\n prevParam ? `${prevParam},${nextParam}` : nextParam,\n Map.isMap(param) ? param : Map({ [key]: param }),\n ),\n Map(),\n )\n : this.fields[key].toParams(value, { record, ...options });\n\n return record\n ? record\n .filter((_, key) => key in this.fields)\n .filterNot((_, key) => this.fields[key].local)\n .filterNot((value) => value === undefined)\n .map(fieldValueToParams)\n .flatten()\n : Map();\n }\n}\n","import _ from 'lodash';\nimport idx from 'idx';\nimport queryString from 'query-string';\nimport { Map } from 'immutable';\n\nimport Entity from './entity';\nimport EntityLocale from './entity-locale';\n\nimport BooleanField from '../field/field-boolean';\nimport CharField from '../field/field-char';\nimport EntityField from '../field/field-entity';\nimport IdField from '../field/field-id';\nimport IntegerField from '../field/field-integer';\nimport TextField from '../field/field-text';\n\nexport default class Title extends Entity {\n static fields = {\n description: new TextField({ blank: true }),\n is_archived: new BooleanField({ default: false }),\n locale: new EntityField({\n blank: true,\n entity: EntityLocale,\n }),\n order: new IntegerField({ mock: 'index' }),\n title: new CharField({ mock: 'lorem.sentence' }),\n title_short: new CharField({ blank: true }),\n uuid: new IdField({ blank: true, mock: 'random.uuid' }),\n };\n\n static paths = {\n urlBase: '',\n };\n\n static actionArchive(record, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!idx(this, (x) => x.duck.actions.save))\n throw new Error(\n `EntityTitle.actionArchive (${this.name}): \"save\" action is required in duck`,\n );\n }\n\n return this.duck.actions.save(record, {\n action: 'archive',\n method: 'post',\n ...configs,\n });\n }\n\n static actionArrayDeleteAtIndexOrdered(records, configs) {\n return this.actionArrayDeleteAtIndex(records, configs).map((record, i) =>\n record.set('order', i),\n );\n }\n\n static actionArrayMoveAtIndexOrdered(records, configs) {\n return this.actionArrayMoveAtIndex(records, configs).map((record, i) =>\n record.set('order', i),\n );\n }\n\n static actionSave(record, configs = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!idx(this, (x) => x.duck.actions.save))\n throw new Error(\n `EntityTitle.actionSave (${this.name}): \"save\" action is required in duck`,\n );\n }\n\n return this.duck.actions.save(record, {\n invalidateList: true,\n ...configs,\n });\n }\n\n static toLink(record, configs = {}) {\n const computedParams = (configs.params || Map()).filterNot(\n (param) => param === undefined,\n );\n\n const path = this.getPaths(configs).urlBase;\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path))\n throw new Error(\n `EntityTitle.toLink (${this.name}): \"urlBase\" property must start with a \"/\" and end with a \"/\"`,\n );\n if (computedParams.some((value) => !_.isString(value)))\n throw new Error(\n `EntityTitle.toLink (${this.name}): every params must be a string or undefined`,\n );\n }\n\n return `${path}${this.getId(record, configs)}/?${queryString.stringify(\n computedParams.toJS(),\n )}`;\n }\n\n static toString(record) {\n return (record && record.get('title')) || '';\n }\n\n static toStringOrdered(record) {\n return record ? `${record.get('order') + 1}. ${this.toString(record)}` : '';\n }\n\n static toUrl(record, configs = {}) {\n const computedParams = (configs.params || Map())\n .remove('page')\n .remove('page_size')\n .filterNot((param) => param === undefined);\n\n const path = this.getPaths(configs).urlBase;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path))\n throw new Error(\n `EntityTitle.toUrl (${this.name}): \"urlBase\" property must start with a \"/\" and end with a \"/\"`,\n );\n if (computedParams.some((param) => !_.isString(param)))\n throw new Error(\n `EntityTitle.toUrl (${this.name}): every params must be a string or undefined`,\n );\n if (!(configs.settings && configs.settings.BASE_URL))\n throw new Error(\n `EntityTitle.toUrl (${this.name}): \"settings.BASE_URL\" must be set.`,\n );\n }\n\n return `${configs.settings.BASE_URL}${path}${this.getId(\n record,\n configs,\n )}/?${queryString.stringify(computedParams.toJS())}`;\n }\n\n static toUrlExport(configs = {}) {\n const computedParams = configs.params\n ? configs.params\n .remove('page')\n .remove('page_size')\n .filterNot((param) => param === undefined)\n : Map();\n\n const path = this.getPaths(configs).apiBase;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!/^\\/.*\\/$/.test(path))\n throw new Error(\n `EntityTitle.toUrlExport (${this.name}): \"apiBase\" property must start with a \"/\" and end with a \"/\"`,\n );\n if (computedParams.some((param) => !_.isString(param)))\n throw new Error(\n `EntityTitle.toUrlExport (${this.name}): every params must be a string or undefined`,\n );\n if (!(configs.settings && configs.settings.BASE_API_URL))\n throw new Error(\n `EntityTitle.toUrlExport (${this.name}): \"settings.BASE_API_URL\" must be set.`,\n );\n }\n\n return `${configs.settings.BASE_API_URL}${path}?${queryString.stringify(\n computedParams.toJS(),\n )}&format=xlsx`;\n }\n}\n"],"names":["value","process","env","NODE_ENV","Error","replace","field","maxLength","slice","options","errors","entity","validate","size","configs","isBlank","predicate","isRequired","validators","values","List","isList","map","validator","filter","error","some","Map","list","message","flag","flags","defaultError","blank","flagError","Field","constructor","name","toSet","defaults","cleaners","many","Object","assign","record","newOptions","reduce","prev","cleaner","data","fromJS","index","undefined","isMap","get","flatMap","getIn","toString","isImmutable","toJS","fieldName","AnyField","BooleanField","type","CharField","DateField","allowTime","dateFormat","moment","format","DateTimeField","EntityField","nested","entityValidators","entityValid","defaultValidators","concat","dataToRecord","fields","getField","getId","getValue","toData","idField","IdField","Entity","records","delete","indexTo","insert","valueInitial","fieldDataToValue","key","Array","isArray","val","dataToValue","getDefaultFromField","default","filterNot","merge","paths","maybeEntity","prototype","maybeDescendant","n","faker","mockData","store","mock","mockConfigs","fieldValueToData","toArray","local","toObject","detailErrors","detail","uuid","Locale","messages","defaultMessage","description","id","Enum","disabled","hidden","label","locale","EntityLocale","EnumField","EntityEnum","getOptions","find","option","v","NumberField","IntegerField","parseInt","Number","isNaN","TextField","Filter","fieldValueToParams","toParams","param","mergeWith","prevParam","nextParam","_","flatten","page","page_size","Title","duck","actions","save","action","method","actionArrayDeleteAtIndex","i","set","actionArrayMoveAtIndex","invalidateList","computedParams","params","path","getPaths","urlBase","test","queryString","stringify","remove","settings","BASE_URL","apiBase","BASE_API_URL","is_archived","order","title","title_short"],"mappings":"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"}
package/dist/legacy.js ADDED
@@ -0,0 +1,30 @@
1
+ /*
2
+ Legacy configuration: this file is copied into each package dist folder in the
3
+ production build step, for the purpose of selecting the appropriate bundle
4
+ according to the current NODE_ENV.
5
+
6
+ It's only used in legacy environments which don't support the package.json
7
+ `exports` field (node <12). In this case, the `main` field will be used, which
8
+ references this file.
9
+
10
+ > If both "exports" and "main" are defined, the "exports" field takes precedence
11
+ > over "main".
12
+ https://nodejs.org/docs/latest-v18.x/api/packages.html#conditional-exports
13
+ https://nodejs.org/docs/latest-v12.x/api/packages.html#packages_conditional_exports
14
+
15
+ Note(ptim): I'm not confident that the build in 0.6.2 works correctly
16
+ regardless, as importing this file in a project of `type: module` fails with:
17
+
18
+ > RollupError: src/entities/Todo.ts (1:9): "Entity" is not exported by
19
+ > "../burnsred-entity-library/packages/entity/dist/index.js", imported by
20
+ > "src/entities/Todo.ts". file:
21
+ > /source/burnsred-application-frontend-skeleton/src/entities/Todo.ts:1:9 1:
22
+ > import { Entity, Fields } from '@burnsred/entity';
23
+ > ^
24
+ */
25
+ module.exports =
26
+ process.env.NODE_ENV === 'production'
27
+ ? // eslint-disable-next-line import/no-unresolved
28
+ require('./production.js')
29
+ : // eslint-disable-next-line import/no-unresolved
30
+ require('./development.js');
package/package.json CHANGED
@@ -2,26 +2,29 @@
2
2
  "author": "Thierry Wong and Burnsred",
3
3
  "description": "entity",
4
4
  "license": "MIT",
5
- "main": "dist/index.js",
6
- "module": "dist/index.js",
5
+ "exports": {
6
+ "development": "./dist/development.js",
7
+ "production": "./dist/production.min.js",
8
+ "default": "./dist/production.min.js"
9
+ },
10
+ "type": "module",
11
+ "main": "dist/legacy.js",
12
+ "files": [
13
+ "dist/*",
14
+ "./*.md"
15
+ ],
7
16
  "name": "@burnsred/entity",
8
17
  "private": false,
9
18
  "repository": "https://github.com/burnsred/burnsred-entity-library.git",
10
19
  "sideEffects": false,
11
- "version": "0.6.2",
20
+ "version": "0.6.3",
12
21
  "publishConfig": {
13
22
  "access": "public"
14
23
  },
15
24
  "scripts": {
16
25
  "build": "rollup -c=../../configs/rollup.config.js",
17
- "destroy": "rimraf dist",
18
- "link-main:dist": "json -I -f package.json -e 'this.main=\"dist/index.js\"'",
19
- "link-main:src": "json -I -f package.json -e 'this.main=\"src/index.js\"'",
20
- "link-module:dist": "json -I -f package.json -e 'this.module=\"dist/index.js\"'",
21
- "link-module:src": "json -I -f package.json -e 'this.module=\"src/index.js\"'",
22
- "postbuild": "npm run link-main:dist && npm run link-module:dist",
23
- "postdestroy": "npm run link-main:src && npm run link-module:src",
24
- "prebuild": "npm run destroy"
26
+ "pack:dryrun": "npm pack && rm ./*.tgz",
27
+ "destroy": "rimraf dist"
25
28
  },
26
29
  "dependencies": {
27
30
  "idx": "2.5.5",
@@ -36,5 +39,5 @@
36
39
  "lodash": ">=4.12.0",
37
40
  "moment": ">=2.0.0"
38
41
  },
39
- "gitHead": "b5eddced9b62ae74a4de6c2be7c9206b11ce1c05"
42
+ "gitHead": "a6ac991b7caa6ff63725e7633464a6028a6e5c68"
40
43
  }
package/dist/index.js DELETED
@@ -1,5 +0,0 @@
1
- if (process.env.NODE_ENV === 'production') {
2
- module.exports = require('./production.min'); // eslint-disable-line global-require, import/no-unresolved
3
- } else {
4
- module.exports = require('./development'); // eslint-disable-line global-require, import/no-unresolved
5
- }