tpmkms_4wp 8.9.1-beta.8 → 8.9.1-beta.9

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.
Files changed (52) hide show
  1. package/common/articles.js +1 -1
  2. package/common/asking.js +2 -2
  3. package/common/avatar.js +1 -1
  4. package/common/characters.js +1 -1
  5. package/common/comparable.js +1 -1
  6. package/common/concept.js +1 -1
  7. package/common/conjunction.js +1 -1
  8. package/common/countable.js +1 -1
  9. package/common/currency.js +2 -2
  10. package/common/dialogues.js +3 -3
  11. package/common/dimension.js +2 -2
  12. package/common/errors.js +1 -1
  13. package/common/events.js +1 -1
  14. package/common/fastfood.instance.json +705 -928
  15. package/common/fastfood.js +3 -3
  16. package/common/formulas.js +1 -1
  17. package/common/gdefaults.js +2 -2
  18. package/common/help.js +4 -4
  19. package/common/helpers/concept.js +3 -3
  20. package/common/helpers/conjunction.js +1 -1
  21. package/common/helpers/formulas.js +4 -4
  22. package/common/helpers/frankenhash.js +4 -4
  23. package/common/helpers/meta.js +4 -4
  24. package/common/helpers/ordering.js +2 -2
  25. package/common/helpers/properties.js +16 -16
  26. package/common/helpers.js +1 -1
  27. package/common/hierarchy.js +3 -3
  28. package/common/javascript.js +1 -1
  29. package/common/math.js +1 -1
  30. package/common/meta.js +5 -5
  31. package/common/negation.js +1 -1
  32. package/common/numbers.js +1 -1
  33. package/common/ordinals.js +1 -1
  34. package/common/people.js +1 -1
  35. package/common/percentages.js +1 -1
  36. package/common/pipboy.js +1 -1
  37. package/common/pos.js +1 -1
  38. package/common/properties.js +2 -2
  39. package/common/punctuation.js +1 -1
  40. package/common/reports.instance.json +2 -2
  41. package/common/reports.js +7 -7
  42. package/common/scorekeeper.js +5 -5
  43. package/common/sdefaults.js +2 -2
  44. package/common/sizeable.js +1 -1
  45. package/common/stm.js +6 -6
  46. package/common/tell.js +1 -1
  47. package/common/tester.js +1 -1
  48. package/common/wp.instance.json +50 -2
  49. package/common/wp.js +39 -3
  50. package/common/wp.test.json +7307 -0
  51. package/common/yesno.js +1 -1
  52. package/package.json +4 -4
@@ -323,7 +323,7 @@ const template = {
323
323
 
324
324
  const hasDrink = (isA, item) => {
325
325
  let hasDrink = false
326
- for (let modification of (item.modifications || [])) {
326
+ for (const modification of (item.modifications || [])) {
327
327
  if (isA(modification.id, 'drink')) {
328
328
  hasDrink = true
329
329
  break
@@ -385,7 +385,7 @@ const template = {
385
385
  const { api, context } = args
386
386
  if (isMany(context)) {
387
387
  let count = getCount(context) || Number.MAX_SAFE_INTEGER
388
- for (let item of needsDrink) {
388
+ for (const item of needsDrink) {
389
389
  if (count < 1) {
390
390
  break
391
391
  }
@@ -598,7 +598,7 @@ class API {
598
598
 
599
599
  if (item.combo) {
600
600
  item.needsDrink = true
601
- for (let modification of item.modifications || []) {
601
+ for (const modification of item.modifications || []) {
602
602
  // TODO check for awailable
603
603
  if (this.args.isA(modification.id, 'drink')) {
604
604
  item.needsDrink = false
@@ -91,7 +91,7 @@ class API {
91
91
  }
92
92
  */
93
93
 
94
- let config = {
94
+ const config = {
95
95
  name: 'formulas',
96
96
  operators: [
97
97
  // TODO notations like (([arg1:]) [op] ([arg2:nameOfArg2}|word1])) -> just make the bridge + operators. put this in the bridge def / also calculate generators
@@ -5,7 +5,7 @@ const tokenize = require('./tokenize.js')
5
5
  const gdefaults_tests = require('./gdefaults.test.json')
6
6
  const { getValue, isMany } = require('./helpers.js')
7
7
 
8
- let config = {
8
+ const config = {
9
9
  name: 'gdefaults',
10
10
  generators: [
11
11
  /* TODO save for later
@@ -70,7 +70,7 @@ let config = {
70
70
  const text = []
71
71
  for (modifier of (context.modifiers || [])) {
72
72
  if (Array.isArray(context[modifier])) {
73
- for (let m of context[modifier]) {
73
+ for (const m of context[modifier]) {
74
74
  text.push(await g(m))
75
75
  }
76
76
  } else {
package/common/help.js CHANGED
@@ -13,7 +13,7 @@ const getHelp = (config, indent=2) => {
13
13
  help += `${indent}NAME: ${config.name}\n`
14
14
  help += `${indent}DESCRIPTION: ${config.description}\n\n`
15
15
  help += `${indent}SAMPLE SENTENCES\n\n`
16
- for (let test of config.tests) {
16
+ for (const test of config.tests) {
17
17
  if (test.developerTest) {
18
18
  continue
19
19
  }
@@ -43,7 +43,7 @@ const config = {
43
43
  level: 0,
44
44
  generatorp: () => 'help',
45
45
  generatorr: ({context, config}) => {
46
- let kms = helpers.propertyToArray(context.kms).map( (value) => value.value )
46
+ const kms = helpers.propertyToArray(context.kms).map( (value) => value.value )
47
47
  const isAll = kms.length == 0
48
48
  let help = '';
49
49
  let separator = ''
@@ -89,10 +89,10 @@ const config = {
89
89
 
90
90
  const initializer = ({ config, addWord, kms }) => {
91
91
  const names = new Set()
92
- for (let name in kms) {
92
+ for (const name in kms) {
93
93
  names.add(name);
94
94
  }
95
- for (let name of names) {
95
+ for (const name of names) {
96
96
  addWord(name, {id: "km", initial: `{ value: '${name}', word: '${name}' }`})
97
97
  }
98
98
  }
@@ -11,7 +11,7 @@ class API {
11
11
  }
12
12
 
13
13
  addDefaultTypesForObjectHierarchy(types) {
14
- for (let type of types) {
14
+ for (const type of types) {
15
15
  this._objects.defaultTypesForHierarchy.add(type)
16
16
  }
17
17
  }
@@ -23,7 +23,7 @@ class API {
23
23
  types.push('concept');
24
24
  }
25
25
 
26
- for (let type of types) {
26
+ for (const type of types) {
27
27
  config.addHierarchy(id, type)
28
28
  }
29
29
  }
@@ -142,7 +142,7 @@ class API {
142
142
  if (config.exists('number')) {
143
143
  // config.addPriority({ context: [['list', 0], ['number', 0]].concat(modifierIds.map((id) => [id, 0])).concat([[objectId, 0]]), ordered: true, choose: [2,3] })
144
144
  if (modifierIds.length > 1) {
145
- let choose = []
145
+ const choose = []
146
146
  for (let i = 0; i < modifierIds.length; ++i) {
147
147
  choose.push(i+2)
148
148
  }
@@ -43,7 +43,7 @@ const isA = (hierarchy) => (child, parent, { strict=false } = {}) => {
43
43
  return hierarchy.isA(child, parent)
44
44
  } else {
45
45
  const children = propertyToArray(child)
46
- for (let child of children) {
46
+ for (const child of children) {
47
47
  let okay = false
48
48
  if (hierarchy.isA(child.marker || child, parent.marker || parent)) {
49
49
  okay = true
@@ -14,7 +14,7 @@ function getVariables(expression, isVariable = (expression) => typeof expression
14
14
  }
15
15
 
16
16
  const match = (values, head, value) => {
17
- for (let prop in head) {
17
+ for (const prop in head) {
18
18
  if (head[prop] instanceof Function) {
19
19
  if (!head[prop](value[prop])) {
20
20
  return
@@ -25,7 +25,7 @@ const match = (values, head, value) => {
25
25
  return
26
26
  }
27
27
  }
28
- for (let prop in values) {
28
+ for (const prop in values) {
29
29
  if (!values[prop]) {
30
30
  return
31
31
  }
@@ -107,11 +107,11 @@ class API {
107
107
  get(name, expectedVars) {
108
108
  if (expectedVars) {
109
109
  const fs = this.gets(name);
110
- for (let f of fs) {
110
+ for (const f of fs) {
111
111
  const foundVars = getVariables(f.formula)
112
112
  if (foundVars.length == expectedVars.length) {
113
113
  let failed = false
114
- for (let ev of expectedVars) {
114
+ for (const ev of expectedVars) {
115
115
  if (!foundVars.find( (fv) => fv.value == ev.value )) {
116
116
  failed = true
117
117
  break
@@ -14,7 +14,7 @@ class Frankenhash {
14
14
 
15
15
  setHandler(path, handler) {
16
16
  let where = this.data.handlers
17
- for (let arg of path.slice(0, path.length-1)) {
17
+ for (const arg of path.slice(0, path.length-1)) {
18
18
  if (!where[arg]) {
19
19
  where[arg] = {}
20
20
  }
@@ -25,7 +25,7 @@ class Frankenhash {
25
25
 
26
26
  getValue(path, writeDefault=true) {
27
27
  let value = this.data.root
28
- for (let property of path) {
28
+ for (const property of path) {
29
29
  if (!value[property]) {
30
30
  if (writeDefault) {
31
31
  value[property] = {}
@@ -44,7 +44,7 @@ class Frankenhash {
44
44
 
45
45
  getHandler(path) {
46
46
  let value = this.data.handlers
47
- for (let property of path) {
47
+ for (const property of path) {
48
48
  if (this.isHandler(value)) {
49
49
  return value
50
50
  }
@@ -56,7 +56,7 @@ class Frankenhash {
56
56
 
57
57
  knownProperty(path) {
58
58
  let value = this.data.root;
59
- for (let property of path) {
59
+ for (const property of path) {
60
60
  if (!value[property]) {
61
61
  return false
62
62
  }
@@ -2,7 +2,7 @@ const _ = require('lodash')
2
2
 
3
3
  const hashIndexesGet = (hash, indexes) => {
4
4
  let value = hash
5
- for (let i of indexes) {
5
+ for (const i of indexes) {
6
6
  value = value[i]
7
7
  }
8
8
  return value
@@ -10,7 +10,7 @@ const hashIndexesGet = (hash, indexes) => {
10
10
 
11
11
  const hashIndexesSet = (hash, indexes, value) => {
12
12
  let currentValue = hash
13
- for (let i of indexes.slice(0, -1)) {
13
+ for (const i of indexes.slice(0, -1)) {
14
14
  if (!currentValue[i]) {
15
15
  currentValue[i] = {}
16
16
  }
@@ -53,7 +53,7 @@ const translationMapping = (from, to) => {
53
53
  if (from.atomic) {
54
54
  return mappings
55
55
  }
56
- for (let fkey of Object.keys(from)) {
56
+ for (const fkey of Object.keys(from)) {
57
57
  let matchField;
58
58
  if (from[fkey].value) {
59
59
  matchField = 'value'
@@ -75,7 +75,7 @@ const translationMapping = (from, to) => {
75
75
  break
76
76
  } else {
77
77
  if (typeof tvalue !== 'string' && typeof tvalue !== 'number') {
78
- for (let key of Object.keys(tvalue)) {
78
+ for (const key of Object.keys(tvalue)) {
79
79
  todo.push(tkey.concat(key))
80
80
  }
81
81
  }
@@ -51,13 +51,13 @@ class API {
51
51
  }
52
52
  } else if (larger) {
53
53
  const edges = []
54
- for (let smaller of digraph.descendants(larger)) {
54
+ for (const smaller of digraph.descendants(larger)) {
55
55
  edges.push({ smaller, context, larger, name })
56
56
  }
57
57
  return edges;
58
58
  } else if (smaller) {
59
59
  const edges = []
60
- for (let larger of digraph.ancestors(smaller)) {
60
+ for (const larger of digraph.ancestors(smaller)) {
61
61
  edges.push({ smaller, context, larger, name })
62
62
  }
63
63
  return edges;
@@ -147,7 +147,7 @@ class API {
147
147
  const value = constraint.constraint;
148
148
  let property = constraint.property;
149
149
  const properties = constraint.properties;
150
- for (let p of properties) {
150
+ for (const p of properties) {
151
151
  if (value[p].concept) {
152
152
  property = p
153
153
  constraint.property = p; // set what is used
@@ -157,7 +157,7 @@ class API {
157
157
  // value.greg = true
158
158
  // value.ownee.query = true
159
159
  value.query = true
160
- let instance = await e(value)
160
+ const instance = await e(value)
161
161
  if (instance.verbatim) {
162
162
  context.evalue = { verbatim: instance.verbatim }
163
163
  return
@@ -333,7 +333,7 @@ class API {
333
333
  }
334
334
 
335
335
  if (false) {
336
- for (let argument of before.concat(after)) {
336
+ for (const argument of before.concat(after)) {
337
337
  if (create.includes(argument.id)) {
338
338
  // config.addHierarchy('unknown', argument.id)
339
339
  // config.addHierarchy('what', argument.id)
@@ -343,7 +343,7 @@ class API {
343
343
  }
344
344
  }
345
345
  } else {
346
- for (let argument of before.concat(after)) {
346
+ for (const argument of before.concat(after)) {
347
347
  if (create.includes(argument.id)) {
348
348
  // config.addHierarchy(argument.id, 'unknown')
349
349
  // config.addHierarchy(argument.id, 'what')
@@ -356,9 +356,9 @@ class API {
356
356
  create.map( (id) => {
357
357
  if (id === operator) {
358
358
  const tagsToProps = (where, args, suffix='') => {
359
- let i = 0;
359
+ const i = 0;
360
360
  let r = ''
361
- for (let arg of args) {
361
+ for (const arg of args) {
362
362
  r += `, ${arg.tag}${suffix}: ${where}[${i}] `
363
363
  }
364
364
  return r
@@ -528,11 +528,11 @@ class API {
528
528
  apply: ({context, km, hierarchy, config}) => {
529
529
  const api = km('properties').api
530
530
  // add types for arguments
531
- for (let argument of context.focusable || []) {
531
+ for (const argument of context.focusable || []) {
532
532
  const value = api.toValue(context[argument])
533
533
  if (value) {
534
534
  const minimas = hierarchy.minima(context[argument].types)
535
- for (let type of minimas) {
535
+ for (const type of minimas) {
536
536
  if (config.exists(value)) {
537
537
  config.addHierarchy(value, type);
538
538
  }
@@ -586,7 +586,7 @@ class API {
586
586
  if (!Array.isArray(relations)) {
587
587
  relations = [relations]
588
588
  }
589
- for (let relation of relations) {
589
+ for (const relation of relations) {
590
590
  this._objects.relations.push(relation)
591
591
  }
592
592
  }
@@ -622,7 +622,7 @@ class API {
622
622
  return t.value && v.value && t.value == v.value
623
623
  }
624
624
 
625
- for (let arg of args) {
625
+ for (const arg of args) {
626
626
  if (!matches(template[arg], value[arg])) {
627
627
  return null
628
628
  }
@@ -632,7 +632,7 @@ class API {
632
632
 
633
633
  relation_get(context, args) {
634
634
  const andTheAnswerIs = []
635
- for (let relation of this._objects.relations) {
635
+ for (const relation of this._objects.relations) {
636
636
  if (this.relation_match(args, context, relation)) {
637
637
  const queriedArgs = args.filter( (arg) => context[arg].query )
638
638
  if (queriedArgs.length == 1) {
@@ -718,7 +718,7 @@ class API {
718
718
  if (property == 'property') {
719
719
  const objectProps = await this.propertiesFH.getValue([object])
720
720
  const values = []
721
- for (let key of Object.keys(objectProps)) {
721
+ for (const key of Object.keys(objectProps)) {
722
722
  if (objectProps[key].has) {
723
723
  values.push(`${await g(key)}: ${await g({ ...objectProps[key].value, paraphrase: true })}`)
724
724
  }
@@ -784,7 +784,7 @@ class API {
784
784
  return true
785
785
  }
786
786
  const parents = this._objects.parents[next] || [];
787
- for (let parent of parents) {
787
+ for (const parent of parents) {
788
788
  if (!seen.includes(parent)) {
789
789
  todo.push(parent)
790
790
  seen.push(parent)
@@ -812,7 +812,7 @@ class API {
812
812
  return true
813
813
  }
814
814
  const parents = this._objects.parents[next] || [];
815
- for (let parent of parents) {
815
+ for (const parent of parents) {
816
816
  if (!seen.includes(parent)) {
817
817
  todo.push(parent)
818
818
  seen.push(parent)
@@ -859,7 +859,7 @@ class API {
859
859
  return true
860
860
  }
861
861
  const parents = this._objects.parents[next] || [];
862
- for (let parent of parents) {
862
+ for (const parent of parents) {
863
863
  if (!seen.includes(parent)) {
864
864
  todo.push(parent)
865
865
  seen.push(parent)
@@ -903,7 +903,7 @@ class API {
903
903
  }
904
904
 
905
905
  isOperator(id) {
906
- for (let bridge of this.__config.getBridges()) {
906
+ for (const bridge of this.__config.getBridges()) {
907
907
  if (bridge.id == id) {
908
908
  return true
909
909
  }
package/common/helpers.js CHANGED
@@ -83,7 +83,7 @@ const zip = (...arrays) => {
83
83
  }
84
84
  const zipped = []
85
85
  for(let i = 0; i < arrays[0].length; i++){
86
- let tuple = []
86
+ const tuple = []
87
87
  for (const array of arrays) {
88
88
  tuple.push(array[i])
89
89
  }
@@ -32,7 +32,7 @@ const getTypes = ( km, concept, instance ) => {
32
32
 
33
33
  // TODO the types of rank are x y z ....
34
34
  // TODO x is a kind of y
35
- let config = {
35
+ const config = {
36
36
  name: 'hierarchy',
37
37
  operators: [
38
38
  // "([hierarchyAble|])",
@@ -250,8 +250,8 @@ let config = {
250
250
  const api = km('properties').api
251
251
  const oneConcepts = asList(context);
252
252
  const twoConcepts = asList(context.same);
253
- for (let oneConcept of oneConcepts.value) {
254
- for (let twoConcept of twoConcepts.value) {
253
+ for (const oneConcept of oneConcepts.value) {
254
+ for (const twoConcept of twoConcepts.value) {
255
255
  oneConceptId = api.makeObject({config, context: oneConcept})
256
256
  twoConceptId = api.makeObject({config, context: twoConcept})
257
257
  api.rememberIsA(oneConceptId, twoConceptId)
@@ -3,7 +3,7 @@ const { defaultContextCheck } = require('./helpers')
3
3
  const dialogues = require('./dialogues')
4
4
  const javascript_tests = require('./javascript.test.json')
5
5
 
6
- let config = {
6
+ const config = {
7
7
  name: 'javascript',
8
8
  operators: [
9
9
  "((<let> ([variable|])) [assignment|] (value))",
package/common/math.js CHANGED
@@ -69,7 +69,7 @@ const mathematicalOperator = (name, words, apply, before = []) => [
69
69
  }
70
70
  ]
71
71
 
72
- let config = {
72
+ const config = {
73
73
  name: 'math',
74
74
  operators: [
75
75
  "([mathematicalExpression])",
package/common/meta.js CHANGED
@@ -17,7 +17,7 @@ const template = {
17
17
  };
18
18
 
19
19
  // TODO -> if a car's top speed is over 200 mph then the car is fast
20
- let config = {
20
+ const config = {
21
21
  name: 'meta',
22
22
  operators: [
23
23
  "((phrase) [means] (phrase))",
@@ -208,7 +208,7 @@ let config = {
208
208
  //const mappings = mappingss[0]
209
209
  let toPrimes = []
210
210
  for (const [TO, mappings] of zip(DEFINITIONs, mappingss)) {
211
- for (let { from, to } of invertMappings(mappings)) {
211
+ for (const { from, to } of invertMappings(mappings)) {
212
212
  hashIndexesSet(TO, to, hashIndexesGet(context, from))
213
213
  }
214
214
  // next move add debug arg to s and g
@@ -236,7 +236,7 @@ let config = {
236
236
  for (const [relations, mappings] of toPrimes) {
237
237
  for (const relation of relations.evalue.value) {
238
238
  valuePrime = _.cloneDeep(DERIVED)
239
- for (let { from, to } of mappings) {
239
+ for (const { from, to } of mappings) {
240
240
  hashIndexesSet(valuePrime, to, hashIndexesGet(relation, from))
241
241
  }
242
242
  valuePrime.paraphrase = true
@@ -303,7 +303,7 @@ let config = {
303
303
  const matchByValue = (defContext) => ({context}) => context.evalue == defContext.from.value && !context.query && !context.objects
304
304
  const apply = (mappings, TO) => async ({context, s}) => {
305
305
  TO = _.cloneDeep(TO)
306
- for (let { from, to } of mappings) {
306
+ for (const { from, to } of mappings) {
307
307
  hashIndexesSet(TO, to, hashIndexesGet(context, from))
308
308
  }
309
309
  toPrime = await s(TO)
@@ -330,7 +330,7 @@ let config = {
330
330
  const matchByValue = (defContext) => ({context, uuid}) => context.value == defContext.from.value && (context.query || context.evaluate) && !context[`disable${uuid}`]
331
331
  const apply = (mappings, TO) => async ({uuid, context, s, g, config}) => {
332
332
  TO = _.cloneDeep(TO)
333
- for (let { from, to } of mappings) {
333
+ for (const { from, to } of mappings) {
334
334
  hashIndexesSet(TO, to, hashIndexesGet(context, from))
335
335
  }
336
336
  // next move add debug arg to s and g
@@ -4,7 +4,7 @@ const gdefaults = require('./gdefaults')
4
4
  const pos = require('./pos')
5
5
  const negation_tests = require('./negation.test.json')
6
6
 
7
- let config = {
7
+ const config = {
8
8
  name: 'negation',
9
9
  operators: [
10
10
  "([negatable])",
package/common/numbers.js CHANGED
@@ -10,7 +10,7 @@ const sdefaults = require('./sdefaults')
10
10
  10 million 300 hundred and fifty
11
11
  */
12
12
 
13
- let config = {
13
+ const config = {
14
14
  name: 'numbers',
15
15
  operators: [
16
16
  "([number])",
@@ -5,7 +5,7 @@ const articles = require('./articles')
5
5
  const numbers = require('./numbers')
6
6
  const pos = require('./pos')
7
7
 
8
- let config = {
8
+ const config = {
9
9
  name: 'ordinals',
10
10
  operators: [
11
11
  "([ordinal])",
package/common/people.js CHANGED
@@ -39,7 +39,7 @@ const template = {
39
39
  // "wendy owns cleo",
40
40
  ],
41
41
  }
42
- let config = {
42
+ const config = {
43
43
  name: 'people',
44
44
  operators: [
45
45
  "([person|person,people])",
@@ -3,7 +3,7 @@ const { defaultContextCheck } = require('./helpers')
3
3
  const percentages_tests = require('./percentages.test.json')
4
4
  const numbers = require('./numbers')
5
5
 
6
- let config = {
6
+ const config = {
7
7
  name: 'percentages',
8
8
  operators: [
9
9
  "((number/*) [percent])",
package/common/pipboy.js CHANGED
@@ -99,7 +99,7 @@ class API {
99
99
  }
100
100
  }
101
101
 
102
- let config = {
102
+ const config = {
103
103
  name: 'pipboy',
104
104
  // TODO mark default as local scope
105
105
  operators: [
package/common/pos.js CHANGED
@@ -3,7 +3,7 @@ const { defaultContextCheck } = require('./helpers')
3
3
  const punctuation = require("./punctuation")
4
4
  const pos_tests = require('./pos.test.json')
5
5
 
6
- let config = {
6
+ const config = {
7
7
  name: 'pos',
8
8
  operators: [
9
9
  "([adjective])",
@@ -79,7 +79,7 @@ const template = {
79
79
 
80
80
  const api = new API();
81
81
 
82
- let config = {
82
+ const config = {
83
83
  name: 'properties',
84
84
  associations: {
85
85
  negative: [],
@@ -648,7 +648,7 @@ let config = {
648
648
  if (!objectContext.value) {
649
649
  return objectContext;
650
650
  }
651
- let objectValue = kms.stm.api.getVariable(objectContext.value);
651
+ const objectValue = kms.stm.api.getVariable(objectContext.value);
652
652
  if (!await api.knownObject(objectValue)) {
653
653
  context.verbatim = `There is no object named "${await g({...objectContext, paraphrase: true})}"`
654
654
  return
@@ -3,7 +3,7 @@ const { defaultContextCheck } = require('./helpers')
3
3
  const gdefaults = require('./gdefaults')
4
4
  const punctuation_tests = require('./punctuation.test.json')
5
5
 
6
- let config = {
6
+ const config = {
7
7
  name: 'punctuation',
8
8
  operators: [
9
9
  "([leftParenthesis|] (phrase) ([rightParenthesis|]))",