theprogrammablemind 7.5.0-beta.2 → 7.5.0-beta.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/package.json CHANGED
@@ -61,6 +61,6 @@
61
61
  "json-stable-stringify": "^1.0.1",
62
62
  "node-fetch": "^2.6.1"
63
63
  },
64
- "version": "7.5.0-beta.2",
64
+ "version": "7.5.0-beta.3",
65
65
  "license": "ISC"
66
66
  }
package/src/config.js CHANGED
@@ -412,11 +412,11 @@ class Config {
412
412
  }
413
413
 
414
414
  getSemantics (logs = []) {
415
- return new Semantics(this.config.semantics || [], logs, { km: this.name })
415
+ return new Semantics(this.config.semantics, logs, { km: this.name })
416
416
  }
417
417
 
418
418
  getGenerators (logs = []) {
419
- return new Generators(this.config.generators || [], logs, { km: this.name })
419
+ return new Generators(this.config.generators, logs, { km: this.name })
420
420
  }
421
421
 
422
422
  warningNotEvaluated (log, value) {
@@ -601,9 +601,6 @@ class Config {
601
601
  if (typeof parent !== 'string') {
602
602
  throw `addHierarchy expected parent property to be a string. got ${JSON.stringify(parent)}`
603
603
  }
604
- if (!this.config.hierarchy) {
605
- this.config.hierarchy = []
606
- }
607
604
  if (global.entodictonDebugHierarchy) {
608
605
  if (deepEqual(global.entodictonDebugHierarchy, [child, parent])) {
609
606
  debugger; // debug hierarchy hit
@@ -622,9 +619,6 @@ class Config {
622
619
  throw `addHierarchy expected parent to be a string. got ${JSON.stringify(parent)}`
623
620
  }
624
621
 
625
- if (!this.config.hierarchy) {
626
- this.config.hierarchy = []
627
- }
628
622
  if (global.entodictonDebugHierarchy) {
629
623
  if (deepEqual(global.entodictonDebugHierarchy, [child, parent])) {
630
624
  debugger; // debug hierarchy hit
@@ -962,17 +956,11 @@ class Config {
962
956
  if (!config) {
963
957
  return
964
958
  }
965
- config.operators = config.operators || []
966
- config.bridges = config.bridges || []
967
- config.words = config.words || {}
968
- config.generators = config.generators || []
969
- config.semantics = config.semantics || []
970
-
971
959
  config.operators = config.operators.filter( (element) => !element.development )
972
960
  config.bridges = config.bridges.filter( (element) => !element.development )
973
961
  config.generators = config.generators.filter( (element) => !element.development )
974
962
  config.semantics = config.semantics.filter( (element) => !element.development )
975
- config.hierarchy = (config.hierarchy || []).filter( (element) => !element.development )
963
+ config.hierarchy = (config.hierarchy).filter( (element) => !element.development )
976
964
  for (const word in config.words) {
977
965
  const defs = config.words[word] || []
978
966
  config.words[word] = defs.filter( (def) => !def.development )
@@ -1101,16 +1089,7 @@ class Config {
1101
1089
  if (config) {
1102
1090
  config = _.cloneDeep(config)
1103
1091
  this.config = config
1104
- if (!this.config.generators) {
1105
- this.config.generators = []
1106
- }
1107
- if (!this.config.semantics) {
1108
- this.config.semantics = []
1109
- }
1110
- if (!this.config.words) {
1111
- // this.config.words = {}
1112
- }
1113
- for (let bridge of (this.config.bridges || [])) {
1092
+ for (let bridge of this.config.bridges) {
1114
1093
  const valid = [ 'before', 'bridge', 'development', 'evaluator', 'generatorp', 'generatorr', 'generators', 'id', 'inverted', 'isA',
1115
1094
  'level', 'optional', 'selector', 'semantic', 'words', /Bridge$/, 'localHierarchy' ]
1116
1095
  helpers.validProps(valid, bridge, 'bridge')
@@ -1196,6 +1175,7 @@ class Config {
1196
1175
  })
1197
1176
  }
1198
1177
  }
1178
+ this.hierarchy = new Digraph(this.config.hierarchy)
1199
1179
  this.initConfig = _.cloneDeep(this.config)
1200
1180
  this.configs.push(new KM({ config: this.config, getCounter: (name) => this.config.getCounter(name), uuid: this._uuid }))
1201
1181
 
@@ -1450,7 +1430,7 @@ class Config {
1450
1430
  this.config.bridges && this.config.bridges.forEach((bridge) => { bridge.uuid = this._uuid })
1451
1431
  this.config.words && setWordsUUIDs(this.config.words, this._uuid)
1452
1432
  this.config.operators && this.config.operators.forEach((operator) => { operator.uuid = this._uuid })
1453
- const ids = Array.from(new Set((this.config.bridges && this.config.bridges.map((bridge) => bridge.id)) || []))
1433
+ const ids = Array.from(new Set(this.config.bridges.map((bridge) => bridge.id)))
1454
1434
  ids.sort()
1455
1435
  this.config.namespaces = {}
1456
1436
  // if (true || ids.length > 0) {
@@ -1682,7 +1662,7 @@ class Config {
1682
1662
  }
1683
1663
 
1684
1664
  const kmsUuids = this.configs.map((km) => km.uuid)
1685
- const bridgesUuids = (this.config.bridges && this.config.bridges.map((bridge) => bridge.uuid).filter((uuid) => uuid)) || []
1665
+ const bridgesUuids = this.config.bridges.map((bridge) => bridge.uuid).filter((uuid) => uuid)
1686
1666
  let result = true
1687
1667
  bridgesUuids.forEach((buuid) => {
1688
1668
  if (!kmsUuids.includes(buuid)) {
@@ -1752,6 +1732,7 @@ class Config {
1752
1732
  this.resetDelta()
1753
1733
  const debug = this.config.debug;
1754
1734
  this.config = _.cloneDeep(this.initConfig)
1735
+ this.hierarchy = new Digraph(this.config.hierarchy)
1755
1736
  if (debug) {
1756
1737
  this.config.debug = debug
1757
1738
  }
@@ -1811,8 +1792,8 @@ class Config {
1811
1792
  config.wasInitialized = false
1812
1793
  // TODO change name of config: to baseConfig:
1813
1794
  const kmFn = (name) => this.getConfig(name)
1814
- const hierarchy = new Digraph((config.config || {}).hierarchy || [])
1815
- const args = { isModule, addWord: aw, km: kmFn, hierarchy, config, baseConfig: this, currentConfig: config, uuid: config._uuid, objects: namespacedObjects, namespace, api: config.api }
1795
+ // const hierarchy = new Digraph((config.config || {}).hierarchy)
1796
+ const args = { isModule, addWord: aw, km: kmFn, hierarchy: this.hierarchy, config, baseConfig: this, currentConfig: config, uuid: config._uuid, objects: namespacedObjects, namespace, api: config.api }
1816
1797
  config.initializerFn(args)
1817
1798
  if (config.initAfterApi) {
1818
1799
  initAfterApis.push({ config, args })
@@ -2009,8 +1990,7 @@ class Config {
2009
1990
  }
2010
1991
 
2011
1992
  if (config.hierarchy) {
2012
- let hierarchy = config.hierarchy
2013
- hierarchy = hierarchy.map((h) => {
1993
+ helpers.mapInPlace(config.hierarchy, (h) => {
2014
1994
  if (Array.isArray(h)) {
2015
1995
  return h.map((id) => toNS(id))
2016
1996
  } else {
@@ -2019,7 +1999,6 @@ class Config {
2019
1999
  return Object.assign({}, h, { child: toNS(h.child), parent: toNS(h.parent) })
2020
2000
  }
2021
2001
  })
2022
- config.hierarchy = hierarchy
2023
2002
  }
2024
2003
 
2025
2004
  if (config.priorities) {
package/src/helpers.js CHANGED
@@ -232,7 +232,14 @@ const validProps = (valids, object, type) => {
232
232
  }
233
233
  }
234
234
 
235
+ const mapInPlace = (list, fn) => {
236
+ for (let i = 0; i < list.length; ++i) {
237
+ list[i] =fn(list[i])
238
+ }
239
+ }
240
+
235
241
  module.exports = {
242
+ mapInPlace,
236
243
  validProps,
237
244
  args,
238
245
  safeEquals,