theprogrammablemind 7.10.0 → 7.10.1

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/src/digraph.js CHANGED
@@ -14,7 +14,7 @@ class Digraph {
14
14
  }
15
15
 
16
16
  // BFS
17
- path(from, to) {
17
+ path (from, to) {
18
18
  debugger
19
19
  const frontier = { [from]: [[]] }
20
20
  const done = new Set()
@@ -29,12 +29,12 @@ class Digraph {
29
29
  continue
30
30
  }
31
31
  done.add(n)
32
- for (let edge of this._edges) {
32
+ for (const edge of this._edges) {
33
33
  if (edge.child == n) {
34
34
  if (!frontier[edge.parent]) {
35
35
  frontier[edge.parent] = []
36
36
  }
37
- for (let path of ps) {
37
+ for (const path of ps) {
38
38
  if (edge.parent == to) {
39
39
  return [...path, edge]
40
40
  }
@@ -45,26 +45,26 @@ class Digraph {
45
45
  }
46
46
  }
47
47
 
48
- addEdges(edges) {
49
- for (let edge of edges) {
48
+ addEdges (edges) {
49
+ for (const edge of edges) {
50
50
  this.addEdge(edge)
51
51
  }
52
52
  }
53
53
 
54
- addEdge(edge) {
54
+ addEdge (edge) {
55
55
  edge = toA(edge)
56
56
  this._edges.push(edge)
57
57
  }
58
58
 
59
- get edges() {
59
+ get edges () {
60
60
  return this._edges
61
61
  }
62
62
 
63
- set edges(edges) {
63
+ set edges (edges) {
64
64
  this._edges = edges
65
65
  }
66
66
 
67
- /*
67
+ /*
68
68
  set edges(edges) {
69
69
  this._edges = edges.map( toA )
70
70
  }
@@ -13,26 +13,26 @@ class DigraphInternal {
13
13
  this._edges = edges
14
14
  }
15
15
 
16
- addEdges(edges) {
17
- for (let edge of edges) {
16
+ addEdges (edges) {
17
+ for (const edge of edges) {
18
18
  this.addEdge(edge)
19
19
  }
20
20
  }
21
21
 
22
- addEdge(edge) {
22
+ addEdge (edge) {
23
23
  edge = toA(edge)
24
24
  this._edges.push(edge)
25
25
  }
26
26
 
27
- get edges() {
27
+ get edges () {
28
28
  return this._edges
29
29
  }
30
30
 
31
- set edges(edges) {
31
+ set edges (edges) {
32
32
  this._edges = edges
33
33
  }
34
34
 
35
- /*
35
+ /*
36
36
  set edges(edges) {
37
37
  this._edges = edges.map( toA )
38
38
  }
package/src/flatten.js CHANGED
@@ -93,7 +93,7 @@ const flatten = (markers, value) => {
93
93
  if (split) {
94
94
  if ('value' in properties) {
95
95
  flattenedValues = []
96
- for (let v of properties.value) {
96
+ for (const v of properties.value) {
97
97
  if (v.flatten) {
98
98
  flattenedValues = flattenedValues.concat(flatten(markers, v)[0])
99
99
  } else {
package/src/generators.js CHANGED
@@ -50,24 +50,23 @@ class Generator {
50
50
  }
51
51
  // return this.match({ ...args, args: contextArgs(context, hierarchy), objects, global: objects, hierarchy, context, api: this.getAPI(config) })
52
52
  const callId = baseArgs.calls.current()
53
- const moreArgs = {
54
- uuid: this.uuid,
55
- args: contextArgs(context, hierarchy),
56
- objects,
57
- global: objects,
58
- // hierarchy,
59
- context,
60
- callId,
61
- api: this.getAPI(config),
62
- apis: this.getAPIs(config)
63
- }
53
+ const moreArgs = {
54
+ uuid: this.uuid,
55
+ args: contextArgs(context, hierarchy),
56
+ objects,
57
+ global: objects,
58
+ // hierarchy,
59
+ context,
60
+ callId,
61
+ api: this.getAPI(config),
62
+ apis: this.getAPIs(config)
63
+ }
64
64
  const args = Object.assign({}, baseArgs, moreArgs, (baseArgs.getUUIDScoped || (() => { return {} }))(this.uuid))
65
65
  // return this.match(args)
66
66
  const matches = this.match(args)
67
- if ((matches && (options.debug || {}).match)
68
- ||
67
+ if ((matches && (options.debug || {}).match) ||
69
68
  callId == this.callId) {
70
- debugger; // next line is the matcher
69
+ debugger // next line is the matcher
71
70
  this.match(args)
72
71
  }
73
72
  return matches
@@ -83,7 +82,7 @@ class Generator {
83
82
  }
84
83
 
85
84
  if (config && config.debugLoops) {
86
- console.log("apply", this.toLabel())
85
+ console.log('apply', this.toLabel())
87
86
  }
88
87
  // this.getAPI(config)
89
88
  let n = (id) => id
@@ -95,26 +94,26 @@ class Generator {
95
94
  }
96
95
  const km = (name) => config.getConfig(name)
97
96
  const callId = baseArgs.calls.current()
98
- const moreArgs = {
99
- callId,
100
- uuid: this.uuid,
101
- // km,
102
- args: contextArgs(context, hierarchy),
103
- objects,
104
- log,
105
- global:
106
- objects,
107
- // g,
108
- n,
109
- hierarchy,
110
- context,
111
- uuid: this.uuid,
112
- // gs,
113
- config,
114
- response,
115
- api: this.getAPI(config),
116
- apis: this.getAPIs(config)
117
- }
97
+ const moreArgs = {
98
+ callId,
99
+ uuid: this.uuid,
100
+ // km,
101
+ args: contextArgs(context, hierarchy),
102
+ objects,
103
+ log,
104
+ global:
105
+ objects,
106
+ // g,
107
+ n,
108
+ hierarchy,
109
+ context,
110
+ uuid: this.uuid,
111
+ // gs,
112
+ config,
113
+ response,
114
+ api: this.getAPI(config),
115
+ apis: this.getAPIs(config)
116
+ }
118
117
  const args = Object.assign({}, baseArgs, moreArgs, (baseArgs.getUUIDScoped || (() => { return {} }))(this.uuid))
119
118
  if (this.property == 'generatorp') {
120
119
  args.g = args.gp
@@ -126,8 +125,7 @@ class Generator {
126
125
  debugger;
127
126
  }
128
127
  */
129
- if ((options.debug || {}).apply
130
- ||
128
+ if ((options.debug || {}).apply ||
131
129
  callId == this.callId) {
132
130
  debugger
133
131
  }
@@ -169,7 +167,7 @@ class Generators {
169
167
  // assumed - properties added to context before the generators are called. For setting paraphrase property
170
168
  apply (args, context, assumed = {}, options = {}) {
171
169
  if (Array.isArray(context)) {
172
- throw new Error("Expected a context not an array")
170
+ throw new Error('Expected a context not an array')
173
171
  }
174
172
  if (typeof context !== 'object') {
175
173
  return String(context)
@@ -179,9 +177,9 @@ class Generators {
179
177
  const objects = args.objects
180
178
  const hierarchy = args.hierarchy
181
179
  const response = args.response
182
-
180
+
183
181
  // args = { ...args, ...args.getAssumedScoped(assumed) }
184
- args.addAssumedScoped(args, assumed)
182
+ args.addAssumedScoped(args, assumed)
185
183
  context = Object.assign({}, context, args.assumed)
186
184
  let generated = ''
187
185
  let applied = false
@@ -193,8 +191,8 @@ class Generators {
193
191
  // this.logs.push(`Generators: applied ${generator.toString()}\n to\n ${JSON.stringify(context)}`)
194
192
  let errorMessage = 'The apply function did not return a value'
195
193
  try {
196
- generated= generator.apply(args, objects, context, hierarchy, config, response, log)
197
- } catch( e ) {
194
+ generated = generator.apply(args, objects, context, hierarchy, config, response, log)
195
+ } catch (e) {
198
196
  // the next if handle this
199
197
  generated = null
200
198
  e.retryCall = () => generator.apply(args, objects, context, hierarchy, config, response, log)
@@ -283,7 +281,7 @@ class Generators {
283
281
  lines.setElement(0, 2, JSON.stringify(context, null, 2))
284
282
  this.logs.push(lines.toString())
285
283
  }
286
- return ((config || {}).parenthesized ? "(" + generated + ")" : generated)
284
+ return ((config || {}).parenthesized ? '(' + generated + ')' : generated)
287
285
  }
288
286
  }
289
287
 
package/src/helpers.js CHANGED
@@ -69,7 +69,7 @@ const safeEquals = (v1, v2) => {
69
69
  if (v1.length != v2.length) {
70
70
  return false
71
71
  }
72
- for (let key in v1) {
72
+ for (const key in v1) {
73
73
  if (!safeEquals(v1[key], v2[key])) {
74
74
  return false
75
75
  }
@@ -183,72 +183,71 @@ const isCompound = (value) => {
183
183
  }
184
184
 
185
185
  class InitCalls {
186
-
187
- constructor(name) {
186
+ constructor (name) {
188
187
  this.nextCallId = 0
189
188
  this.nextContextId = 0
190
189
  this.stack = []
191
190
  this.name = name
192
191
  }
193
192
 
194
- start() {
193
+ start () {
195
194
  return this.nextCallId
196
195
  }
197
196
 
198
- next() {
197
+ next () {
199
198
  // this.nextContextId += 1
200
199
  this.nextContextId += 1
201
200
  }
202
201
 
203
- push() {
202
+ push () {
204
203
  this.nextCallId += 1
205
204
  // this.nextCallId += 1
206
205
  // this.stack.push(this.nextCallId)
207
206
  this.stack.push(this.nextCallId)
208
207
  // TODO put the nextContextId in the context for debugging
209
- const calls = this.stack.map( (call) => `${this.name}#call${call}` )
208
+ const calls = this.stack.map((call) => `${this.name}#call${call}`)
210
209
  // return `Context#${this.nextContextId}: ${calls}`
211
210
  return `Context#${this.nextContextId}: ${calls}`
212
211
  }
213
212
 
214
- current() {
215
- return `${this.name}#call${this.stack[this.stack.length-1]}`
213
+ current () {
214
+ return `${this.name}#call${this.stack[this.stack.length - 1]}`
216
215
  }
217
216
 
218
- touch(context) {
217
+ touch (context) {
219
218
  if (!context.touchedBy) {
220
219
  context.touchedBy = []
221
220
  }
222
- if (!context.touchedBy.includes( this.current() )) {
223
- context.touchedBy.push( this.current() )
221
+ if (!context.touchedBy.includes(this.current())) {
222
+ context.touchedBy.push(this.current())
224
223
  }
225
224
  }
226
225
 
227
- pop() {
226
+ pop () {
228
227
  this.stack.pop()
229
228
  }
230
229
  }
231
230
 
232
231
  const hashCode = (str) => {
233
- var hash = 0, i, ch;
234
- if (str.length === 0) return hash;
232
+ let hash = 0; let i; let ch
233
+ if (str.length === 0) return hash
235
234
  for (i = 0; i < str.length; i++) {
236
- ch = str.charCodeAt(i);
237
- hash = ((hash << 5) - hash) + ch;
238
- hash |= 0; // Convert to 32bit integer
235
+ ch = str.charCodeAt(i)
236
+ hash = ((hash << 5) - hash) + ch
237
+ hash |= 0 // Convert to 32bit integer
239
238
  }
240
- return hash;
241
- };
239
+ return hash
240
+ }
242
241
 
243
242
  const sortJson = (json) => {
244
243
  return json
245
244
  }
246
245
 
247
246
  const validProps = (valids, object, type) => {
248
- for (let prop of Object.keys(object)) {
247
+ for (const prop of Object.keys(object)) {
249
248
  let okay = false
250
249
  for (valid of valids) {
251
- if (typeof valid == 'string') {
250
+ if (typeof valid === 'string') {
252
251
  okay = prop == valid
253
252
  } else {
254
253
  okay = prop.match(valid)
@@ -265,14 +264,14 @@ const validProps = (valids, object, type) => {
265
264
 
266
265
  const mapInPlace = (list, fn) => {
267
266
  for (let i = 0; i < list.length; ++i) {
268
- list[i] =fn(list[i])
267
+ list[i] = fn(list[i])
269
268
  }
270
269
  }
271
270
 
272
271
  const updateQueries = (queryOrConfig) => {
273
- if (typeof queryOrConfig == 'string' || queryOrConfig.query) {
272
+ if (typeof queryOrConfig === 'string' || queryOrConfig.query) {
274
273
  return queryOrConfig
275
- } else if (typeof queryOrConfig == 'function') {
274
+ } else if (typeof queryOrConfig === 'function') {
276
275
  return { apply: queryOrConfig.toString() }
277
276
  } else {
278
277
  const config = queryOrConfig
@@ -281,34 +280,34 @@ const updateQueries = (queryOrConfig) => {
281
280
  }
282
281
 
283
282
  const functionsToStrings = (config) => {
284
- config = {...config}
283
+ config = { ...config }
285
284
  const mapGenerator = (generator) => {
286
- if (generator.apply) {
287
- return { ...generator, match: generator.match.toString(), apply: generator.apply.toString() }
288
- } else {
289
- return [ generator[0].toString(), generator[1].toString() ]
290
- }
285
+ if (generator.apply) {
286
+ return { ...generator, match: generator.match.toString(), apply: generator.apply.toString() }
287
+ } else {
288
+ return [generator[0].toString(), generator[1].toString()]
291
289
  }
290
+ }
292
291
  if (config.generators) {
293
- config.generators = config.generators.map( mapGenerator )
292
+ config.generators = config.generators.map(mapGenerator)
294
293
  }
295
294
  if (config.semantics) {
296
- config.semantics = config.semantics.map( (semantic) => {
295
+ config.semantics = config.semantics.map((semantic) => {
297
296
  if (semantic.apply) {
298
297
  return { ...semantic, match: semantic.match.toString(), apply: semantic.apply.toString() }
299
298
  } else {
300
- return [ semantic[0].toString(), semantic[1].toString() ]
299
+ return [semantic[0].toString(), semantic[1].toString()]
301
300
  }
302
301
  })
303
302
  }
304
303
  if (config.bridges) {
305
- config.bridges = config.bridges.map( (bridge) => {
306
- bridge = {...bridge}
304
+ config.bridges = config.bridges.map((bridge) => {
305
+ bridge = { ...bridge }
307
306
  if (bridge.generator) {
308
307
  bridge.generator = bridge.generator.toString()
309
308
  }
310
309
  if (bridge.generators) {
311
- bridge.generators = bridge.generators.map( mapGenerator )
310
+ bridge.generators = bridge.generators.map(mapGenerator)
312
311
  }
313
312
  if (bridge.generatorp) {
314
313
  bridge.generatorp = bridge.generatorp.toString()
@@ -331,7 +330,7 @@ const functionsToStrings = (config) => {
331
330
  const ecatch = (where, call) => {
332
331
  try {
333
332
  return call()
334
- } catch( e ) {
333
+ } catch (e) {
335
334
  throw new Error(`${where} ${e.stack}`)
336
335
  }
337
336
  }
@@ -346,9 +345,9 @@ const subPriority = (sub, sup) => {
346
345
  if (Array.isArray(sub)) {
347
346
  const subChoosen = sub[0]
348
347
  const subOther = sub[1]
349
- const hasChoosen = sup.choose.find( (index) => equalKey(sup.context[index], subChoosen)) != undefined
350
- const hasOtherChosen = sup.choose.find( (index) => equalKey(sup.context[index], subOther)) != undefined
351
- const hasOther = sup.context.find( (other) => equalKey(other, subOther) ) !== undefined
348
+ const hasChoosen = sup.choose.find((index) => equalKey(sup.context[index], subChoosen)) != undefined
349
+ const hasOtherChosen = sup.choose.find((index) => equalKey(sup.context[index], subOther)) != undefined
350
+ const hasOther = sup.context.find((other) => equalKey(other, subOther)) !== undefined
352
351
  return !!(hasChoosen && hasOther) && !hasOtherChosen
353
352
  }
354
353
 
@@ -367,7 +366,7 @@ const subPriority = (sub, sup) => {
367
366
  const chosen2 = choose(sup)
368
367
  const sameId = (id1, id2) => id1[0] == id2[0] && id1[1] == id2[1]
369
368
  // same length so only need one way
370
- const missing1 = chosen1.find( (id1) => !chosen2.find( (id2) => sameId(id1, id2)) )
369
+ const missing1 = chosen1.find((id1) => !chosen2.find((id2) => sameId(id1, id2)))
371
370
  if (missing1) {
372
371
  return false
373
372
  }
@@ -375,26 +374,26 @@ const subPriority = (sub, sup) => {
375
374
  return true
376
375
  }
377
376
 
378
- module.exports = {
377
+ module.exports = {
379
378
  ecatch,
380
379
  functionsToStrings,
381
380
  updateQueries,
382
381
  mapInPlace,
383
- validProps,
384
- args,
382
+ validProps,
383
+ args,
385
384
  safeNoDups,
386
- safeEquals,
387
- appendNoDups,
388
- hashIndexesGet,
389
- hashIndexesSet,
390
- translationMapping,
391
- normalizeGenerator,
392
- normalizeSemantic,
393
- isArray,
394
- isObject,
395
- isCompound,
396
- InitCalls,
397
- hashCode,
385
+ safeEquals,
386
+ appendNoDups,
387
+ hashIndexesGet,
388
+ hashIndexesSet,
389
+ translationMapping,
390
+ normalizeGenerator,
391
+ normalizeSemantic,
392
+ isArray,
393
+ isObject,
394
+ isCompound,
395
+ InitCalls,
396
+ hashCode,
398
397
  sortJson,
399
- subPriority,
398
+ subPriority
400
399
  }
package/src/project.js CHANGED
@@ -4,7 +4,7 @@ const project = (object, filter) => {
4
4
  return
5
5
  }
6
6
 
7
- let projection = {}
7
+ const projection = {}
8
8
  const set = (property, value) => {
9
9
  if (value === null || value === undefined) {
10
10
  return
@@ -13,13 +13,13 @@ const project = (object, filter) => {
13
13
  }
14
14
  if (Array.isArray(filter)) {
15
15
  if (Array.isArray(object)) {
16
- return object.map( element => project(element, filter) )
16
+ return object.map(element => project(element, filter))
17
17
  } else {
18
18
  for (let properties of filter) {
19
- if (typeof properties == 'function') {
19
+ if (typeof properties === 'function') {
20
20
  properties = properties(object)
21
21
  }
22
- if (typeof properties == 'object') {
22
+ if (typeof properties === 'object') {
23
23
  if (properties.propertyLists) {
24
24
  for (const propertyList in properties.propertyLists) {
25
25
  if (object[propertyList]) {
@@ -28,7 +28,7 @@ const project = (object, filter) => {
28
28
  }
29
29
  }
30
30
  }
31
- }
31
+ }
32
32
  if (properties.valueLists) {
33
33
  for (const listProperty in properties.valueLists) {
34
34
  const old = object[listProperty]
@@ -70,7 +70,7 @@ const project = (object, filter) => {
70
70
  }
71
71
  }
72
72
  }
73
- } else if (typeof filter == 'object') {
73
+ } else if (typeof filter === 'object') {
74
74
  for (const property of Object.keys(filter)) {
75
75
  set(property, project(object[property], filter[property]))
76
76
  }
@@ -79,5 +79,3 @@ const project = (object, filter) => {
79
79
  }
80
80
 
81
81
  module.exports = { project }
82
-
83
-
package/src/semantics.js CHANGED
@@ -25,7 +25,7 @@ class Semantic {
25
25
  toLabel () {
26
26
  const where = (this.where) ? `where: "${this.where}"` : ''
27
27
  if (!this.km) {
28
- return where;
28
+ return where
29
29
  }
30
30
  return `KM '${this.km}' ordinal: ${this.index} ${where}`
31
31
  }
@@ -55,24 +55,23 @@ class Semantic {
55
55
 
56
56
  // return this.matcher(Object.assign({}, argsBase, {args: contextArgs(context, hierarchy), objects: objects, global: objects, context: context, hierarchy: hierarchy, api: this.getAPI(config)})
57
57
  const callId = baseArgs.calls.current()
58
- const moreArgs = {
59
- uuid: this.uuid,
60
- args: contextArgs(context, hierarchy),
61
- objects,
62
- global: objects,
63
- context: context,
64
- // hierarchy: hierarchy,
65
- callId,
66
- api: this.getAPI(config),
67
- apis: this.getAPIs(config)
68
- }
58
+ const moreArgs = {
59
+ uuid: this.uuid,
60
+ args: contextArgs(context, hierarchy),
61
+ objects,
62
+ global: objects,
63
+ context: context,
64
+ // hierarchy: hierarchy,
65
+ callId,
66
+ api: this.getAPI(config),
67
+ apis: this.getAPIs(config)
68
+ }
69
69
  const args = Object.assign({}, baseArgs, moreArgs, (baseArgs.getUUIDScoped || (() => { return {} }))(this.uuid))
70
70
 
71
71
  const matches = this.matcher(args)
72
- if (matches && (options.debug || {}).match
73
- ||
72
+ if (matches && (options.debug || {}).match ||
74
73
  callId == this.callId) {
75
- debugger; // next line is the matcher
74
+ debugger // next line is the matcher
76
75
  this.matcher(args)
77
76
  }
78
77
  return matches
@@ -82,7 +81,7 @@ class Semantic {
82
81
  const { hierarchy, config, response } = baseArgs
83
82
  const objects = baseArgs.getObjects(this.uuid)
84
83
  if (config && config.debugLoops) {
85
- console.log("apply", this.toLabel())
84
+ console.log('apply', this.toLabel())
86
85
  }
87
86
  if (baseArgs.calls && config && baseArgs.calls.stack.length > config.maxDepth) {
88
87
  throw new Error(`Max depth of ${config.maxDepth} for calls has been exceeded. maxDepth can be set on the config object. To see the calls run with the --dl or set the debugLoops property on the config`)
@@ -99,26 +98,25 @@ class Semantic {
99
98
  n = (id) => config.nsToString(id)
100
99
  }
101
100
  const callId = baseArgs.calls.current()
102
- const moreArgs = {
103
- uuid: this.uuid,
104
- callId,
105
- args: contextArgs(context, hierarchy),
106
- objects,
107
- log,
108
- global: objects,
109
- n,
110
- context: contextPrime,
111
- uuid: this.uuid,
112
- // config,
113
- response,
114
- api: this.getAPI(config),
115
- apis: this.getAPIs(config)
101
+ const moreArgs = {
102
+ uuid: this.uuid,
103
+ callId,
104
+ args: contextArgs(context, hierarchy),
105
+ objects,
106
+ log,
107
+ global: objects,
108
+ n,
109
+ context: contextPrime,
110
+ uuid: this.uuid,
111
+ // config,
112
+ response,
113
+ api: this.getAPI(config),
114
+ apis: this.getAPIs(config)
116
115
  }
117
116
  const args = Object.assign({}, baseArgs, moreArgs, (baseArgs.getUUIDScoped || (() => { return {} }))(this.uuid))
118
- if ((options.debug || {}).apply
119
- ||
117
+ if ((options.debug || {}).apply ||
120
118
  callId == this.callId) {
121
- debugger;
119
+ debugger
122
120
  }
123
121
  if (args.breakOnSemantics) {
124
122
  debugger
@@ -161,10 +159,10 @@ class Semantics {
161
159
  this.calls = {}
162
160
  };
163
161
 
164
- getMostCalled() {
162
+ getMostCalled () {
165
163
  let maxOrdinal = 0
166
164
  let maxCounter = 0
167
- for (let ordinal in this.calls) {
165
+ for (const ordinal in this.calls) {
168
166
  const counter = this.calls[ordinal]
169
167
  if (counter > maxCounter) {
170
168
  maxOrdinal = ordinal
@@ -185,24 +183,24 @@ class Semantics {
185
183
  const s = (context, options) => this.apply(args, context, options)
186
184
  let applied = false
187
185
  const stack = args.calls.push()
188
- let counter = 0;
186
+ let counter = 0
189
187
  for (const isemantic in this.semantics) {
190
188
  const semantic = this.semantics[isemantic]
191
189
  if (!semantic) {
192
- debugger;
190
+ debugger
193
191
  }
194
192
  if (semantic.matches(args, context, options)) {
195
193
  if (!this.calls[counter]) {
196
- this.calls[counter] = 0;
194
+ this.calls[counter] = 0
197
195
  }
198
- this.calls[counter] += 1;
196
+ this.calls[counter] += 1
199
197
  const log = (message) => { this.logs.push(message) }
200
198
  try {
201
199
  contextPrime = semantic.apply(args, context, s, log, options)
202
200
  if (!contextPrime.controlKeepMotivation && semantic.oneShot) {
203
201
  args.config.removeSemantic(semantic)
204
202
  }
205
- } catch( e ) {
203
+ } catch (e) {
206
204
  contextPrime = null
207
205
  let errorMessage
208
206
  e.retryCall = () => semantic.apply(args, context, s, log, options)
@@ -214,8 +212,8 @@ class Semantics {
214
212
  const info = `${semantic.notes ? semantic.notes : ''}${semantic.where ? semantic.where : ''}`
215
213
  errorMessage = `Error applying semantics '${info}'. Error is ${e.error.join()}. Semantic is ${semantic.toString()}. ${help}`
216
214
  } else {
217
- errorMessage = e.toString();
218
- }
215
+ errorMessage = e.toString()
216
+ }
219
217
 
220
218
  const widths = [10, 10, 90]
221
219
  const lines = new Lines(widths)