Release Notes

Here's a list of the notable changes in JTree.

75.1.1 2023-5-11

  • πŸ₯ add a main entry to package.json so require.resolve works

75.1.0 2023-4-23

  • πŸŽ‰ colorize TestRacer. ok = green, failed = red.

75.0.0 2023-4-13

  • πŸ₯ switch to Joyent's browserfied path module for TFS to allow for isomorphic path strings
  • ⚠️ BREAKING: (No one should be affected)
    • If using TFS in the browser you also now need to include: jtree/products/Path.js

74.3.1 2023-4-13

  • πŸ₯ fix path bugs in TFS

74.3.0 2023-4-13

  • πŸ₯ better error messages in Disk to help track down a CI bug

74.2.0 2023-4-12

  • πŸŽ‰ new library: TreeFileSystem.broswer.js

74.1.1 2023-4-9

  • πŸ₯ bug fix in TFS

74.1.0 2023-4-9

  • πŸŽ‰ Upstreamed the imports code from Scroll into the TreeFileSystem package for other TreeLangs to reuse

74.0.0 2023-4-3

This is purely a maintenance release. Unused code and npm packages were removed. The minimum supported NodeJS version is now 16.

  • ⚠️ BREAKING: (No one should be affected)
    • Removed WWT. WWC is now in TrueBase
    • Remove JTable. Ohayo is only user but that should switch to Owid's CoreTable or similar.

73.0.1 2023-4-2

  • πŸ₯ fix regression in Designer app

73.0.0 2023-4-2

This is a major release with significant name breaks. All logic is the same but methods have been renamed to better express the core idea of Tree Languages as small simple parsers combined.

  • ⚠️ BREAKING:
    • Tree Langauges:
      • grammarNode, hakonNode, etc. > grammarParser, hakonParser
    • TreeNode
      • createParser > createParserCombinator
      • getAncestorByNodeConstructor
      • TreeNode.Parser > TreeNode.ParserCombinator
      • getChildInstancesOfNodeTypeId > getChildInstancesOfParserId
      • findAllNodesWithNodeType > findAllNodesWithParser
    • GrammarCompiler:
      • compileGrammarFileAtPathAndReturnRootConstructor > compileGrammarFileAtPathAndReturnRootParser
    • GrammarLanguage.ts:
      • rootNodeTypeDefinitionNode > rootParserDefinition
      • invalidNodeTypes > invalidParsers
      • getNodeTypeUsage > getParserUsage
      • asCellTypeTreeWithNodeConstructorNames > asCellTypeTreeWithParserIds
      • toPreludeCellTypeTreeWithNodeConstructorNames > toPreludeCellTypeTreeWithParserIds
      • asTreeWithNodeTypes > asTreeWithParsers
      • nodeTypeId > parserId
      • topNodeTypeDefinitions > topParserDefinitions
      • nodeTypeFamilyTree > parserFamilyTree
      • validConcreteAndAbstractNodeTypeDefinitions > validConcreteAndAbstractParserDefinitions
      • rootNodeTypeId > rootParserId
      • compileAndReturnRootConstructor > compileAndReturnRootParser
    • TreeComponentFramework:
      • AbstractTreeComponent > AbstractTreeComponentParser
  • ⚠️ BREAKING: See Grammar Release Notes for upgrading Grammar files

72.2.0 2023-3-31

  • πŸŽ‰ improved sortTemplate. You can now use sortKey in addition to keywords.

72.1.0 2023-3-31

  • πŸŽ‰ work on sortTemplate.

72.0.0 2023-3-31

  • πŸŽ‰ new cruxPathAsColumnName method on parser definition nodes
  • ⚠️ BREAKING: downstreamed all SQLite methods to TrueBase, the only place where they were used and made sense.
  • ⚠️ BREAKING: concreteDescendantDefinitions now recurses. use concreteInScopeDescendantDefinitions for old behavior.

71.0.2 2023-3-30

  • πŸ₯ fix perf regression

71.0.1 2023-3-30

  • πŸ₯ fix blob node regression

71.0.0 2023-3-30

This was a refactor of Grammar to support scoped parsers. I also took the opportunity to switch more get() methods to getters.

  • πŸŽ‰ Scoped parsers in Grammar 5
  • ⚠️ BREAKING: A lot of methods that were formerly getX() have been changed to getters like get x():
    • getTopDownArray > topDownArray
    • getNext > next
    • getPrevious > previous
    • getDefinition > definition
    • getNodeTypeId > nodeTypeId
    • getTableNameIfAny > tableNameIfAny
    • getEdgeSymbol > edgeSymbol
    • getWordBreakSymbol > wordBreakSymbol
    • getNodeBreakSymbol > nodeBreakSymbol
    • On errors:
      • getMessage > message
      • getLineNumber > lineNumber
  • ⚠️ BREAKING: A lot of zero parameter methods that were formerly toX() have been changed to getters like get asX():
    • toString > asString (toString is maintained for compability with idiomatic Javascript)
    • toCsv > asCsv; toTsv > asTsv; toSsv > asSsv

70.0.0 2023-3-28

69.4.1 2023-3-11

  • πŸ₯ fix bug in Disk.writeObjectToDisk

69.4.0 2023-3-11

  • πŸŽ‰ new util methods upstreamed: Utils.isAbsoluteUrl, TreeNode.toFlatObject, Disk.recursiveReaddirSync, Disk.writeObjectToDisk

69.3.1 2023-3-7

  • πŸ₯ fix bug in Utils getRandomCharacters

69.3.0 2023-3-3

  • πŸŽ‰ added appendUniqueLine method

69.2.1 2023-3-2

  • πŸ₯ getCustomIndex should return arrays of hits to work for non unique keys as well

69.2.0 2023-3-2

  • πŸŽ‰ added getCustomIndex fn

69.1.0 2023-2-28

  • πŸŽ‰ runCommand now also looks for commands on the parent class

69.0.0 2023-2-23

68.0.0 2023-2-22

  • ⚠️ Breaking: Renamed TreeBase to TrueBase

67.4.0 2023-2-19

  • πŸŽ‰ TQL: added selectAll keyword

67.3.0 2023-2-17

  • πŸŽ‰ TreeNode: added quickCache
  • πŸŽ‰ TrueBase: upstreamed work from pldb. New methods and getters are:

TrueBaseFolder:

makeId getFile rename createFile searchIndex

TrueBaseFile:

sort prettifyAndSave parsed updatePermalinks names linksToOtherFiles

TrueBaseServer:

applyPatchvalidateSubmission

67.2.0 2023-2-12

  • πŸŽ‰ TrueBase: add requestTimes.log

67.1.0 2023-2-10

  • πŸŽ‰ Disk: add writeIfChanged method.

67.0.0 2023-2-9

  • ⚠️ TrueBaseServer: Refactored search routes. Downstreamed HTML rendering of Search Results Pages. Default just provides json, csv, and tree results now.

66.1.0 2023-2-7

  • πŸ₯ Grammar: fixed bug when sorting a root node.

66.0.0 2023-2-7

  • ⚠️ Legacy products/jtree.browser.js has been removed.
  • ⚠️ TreeNode: This is the first of the getter releases. Start the long overdue switch to Javascript getters for get methods with zero params.
Before After
getParent() parent
getContent() content
getRootNode() root
getWords() words
getFirstWord() firstWord

65.4.0 2023-2-6

  • πŸŽ‰ Utils: Upstream titleToPermalink method from pldb

65.3.0 2023-2-6

  • πŸŽ‰ Grammar: upstreamed sortFromSortTemplate method from pldb

65.2.0 2023-2-6

  • πŸŽ‰ TreeNode: upstreamed patch method from pldb
  • πŸŽ‰ Utils: upstreamed some methods from pldb

65.1.0 2023-2-4

  • πŸŽ‰ TQL: added rename keyword

65.0.2 2023-2-3

  • πŸ₯ TrueBaseServer: discovered morgan (thank god!) and now logging works.

65.0.1 2023-2-3

  • πŸ₯ TrueBaseServer: fix format of server log files

65.0.0 2023-2-3

  • πŸŽ‰ TrueBaseServer: added request logging.
  • ⚠️ TrueBaseServer: ignore folder now required in constructor and not passed in initSearch or listenProd methods.

64.4.0 2023-2-1

  • πŸŽ‰ TQL: added limit keyword
  • πŸŽ‰ TQL: added oneOf operator
  • πŸŽ‰ TQL: added title and description fields
  • πŸŽ‰ TQL: started readme

64.3.0 2023-1-31

  • πŸŽ‰ TQL: added support for nested dot paths like github.stars
  • πŸ₯ TQL: various fixes.
  • πŸ₯ TreeNode: renamed current has to hasFirstWord and has now works correctly for deep paths.

64.2.0 2023-1-31

  • πŸŽ‰ TQL: Added sortBy and reverse keywords.
  • πŸŽ‰ TrueBase: Added csv, text, and scroll output formats.

64.1.0 2023-1-31

  • πŸŽ‰ TQL: improved error handling

64.0.1 2023-1-30

  • πŸ₯ version number fix

64.0.0 2023-1-30

This releases introduced a new language called Tree Query Language (TQL) for quering TrueBases. This release may have some bugs, you may want to wait before upgrading.

63.0.0 2023-1-26

This is a major release that makes the code more modular and eliminates a lot of technical debt. In the past to simplify NodeJs+Browser isomorphism I created the jtree namespace and bundled everything together. This was a mistake. This release fixes that, and makes each subproject more independent. This should speed up future development.

Before:

<script src="../products/jtree.browser.js"></script>

After: (to get everything that was previously in the bundle)

<script src="../products/Utils.browser.js"></script> <script src="../products/TreeNode.browser.js"></script> <script src="../products/GrammarLanguage.browser.js"></script> <script src="../products/GrammarCodeMirrorMode.browser.js"></script>

Before:

const {jtree} = require("jtree") const tree = new jtree.TreeNode("hello world")

After:

const {TreeNode} = require("jtree/products/TreeNode.js") const tree = new TreeNode("hello world")

62.2.0 2023-1-12

  • πŸŽ‰ removed jtree.node.js and added instructions for only importing the specific product needed directly.

62.1.0 2023-1-12

  • πŸŽ‰ new Node products to import directly from: GrammarLanguage.js, TreeNode.js, TestRacer.js, GrammarCompiler.js

62.0.0 2023-1-11

  • ⚠️ Removed Upgrader. In practice better handled by an external package which can have multiple versions of jtree as dependencies.
  • πŸŽ‰ export Utils as top level export

61.4.1 2023-1-8

  • πŸ₯ TrueBase: search server fixes

61.4.0 2023-1-7

  • πŸŽ‰ added TreeNode.fromFolder method

61.3.0 2023-1-7

  • πŸŽ‰ new list getter on Grammar backed nodes returns an array of strings split by listDelimiter. Fallback is same behavior as if is the listDelimiter.
  • πŸ₯ TrueBase: search results page now sets title meta tag
  • πŸ₯ TrueBase: fixed highlight hit bug

61.2.0 2023-1-5

  • πŸŽ‰ Performance improvements to core (typed map method).

61.1.0 2023-1-5

  • πŸŽ‰ Performance improvements to core.

61.0.1 2023-1-4

  • πŸ₯ TrueBase: SearchServer now exported correctly

61.0.0 2023-1-4

  • ⚠️ Grammar: BREAKING: contentDelimiter is now listDelimiter
  • πŸŽ‰ Grammar: New keyword uniqueLine to check for duplicate lines.

60.0.0 2022-12-12

This is an unstable release. Please wait a few days for bug fix releases before using.

59.1.2 2022-12-10

  • πŸ₯ TrueBase: copy fix in search engine

59.1.1 2022-12-03

  • πŸ₯ TrueBase: bug fixes in rank and webPermalink

59.1.0 2022-12-02

  • πŸŽ‰ TrueBase: SearchServer now shipped in JTree

59.0.0 2022-10-10

  • ⚠️ BREAKING: removed CommandLine app 'jtree'

58.0.0 2022-10-10

  • ⚠️ BREAKING: removed AbstractBuilder
  • πŸ₯ more path fixes for Windows users

57.0.0 2022-10-10

  • ⚠️ BREAKING: removed rarely commands from CLI app: 'usage', 'programs', 'allHistory', 'distribute', 'combined'

56.0.1 2022-09-26

  • πŸ₯ minor dependency bump

56.0.0 2022-08-31

  • ⚠️ BREAKING: removed the keyword abstract from Grammar Language. Grammar Language is now a suffix AND prefix language. The functionality of abstract node type definitions is identical, but now instead of flagging them with the abstract keyword, you need to ensure that the node type definition id begins with the word abstract. This turned out to be the best design pattern already, so you may already do this, and then the migration step is simpleβ€”just delete all occurrences of /^ abstract\n/ in your *.grammar files. In the rare chance you have any nodes that are not abstract whose id's begin with the prefix abstract, you will need to give those nodes a new id.

55.1.1 2022-08-18

  • πŸ₯ TrueBase: fixed error reporting bug.

55.1.0 2022-08-02

  • πŸ₯ TrueBase: fixed error reporting regression and added test.

55.0.0 2022-08-02

  • πŸŽ‰ TrueBase: grammarDir and row dir can now be different
  • ⚠️ TrueBase: setDir and setGrammarDir must now be used instead of a constructor
  • ⚠️ TrueBase: TrueBaseFile instances have the id as key; TrueBaseFolder handles mapping to filesystem
  • ⚠️ TrueBase: grammar parsing now done at TrueBaseFile level
  • ⚠️ TrueBase: removed cellCheckWithProgressBar; removed getDir (use dir); removed toProgram; getGrammarPaths is now grammarFilePaths
  • ⚠️ TrueBase: typedMapShort is now typedMap
  • ⚠️ TrueBase: define fileExtension in Grammar files (or programmatically)
  • ⚠️ Grammar: toSQLiteInsertStatement now takes a string instead of function

54.2.1 2022-07-27

  • πŸ₯ Utils: linkify Wikipedia urls correctly

54.2.0 2022-07-27

  • πŸŽ‰ CLI: added serve command

54.1.0 2022-07-25

  • πŸŽ‰ Grammar: contentDelimiter property

54.0.0 2022-07-24

  • πŸŽ‰ TrueBase: typedMapShort, id, and dir
  • πŸŽ‰ Grammar: typedMap
  • πŸŽ‰ Grammar: contentKey, childrenKey, uniqueFirstWord (may all be temporary), to support typedMap

53.7.1 2022-07-20

  • πŸ₯ Designer: shows root level required and dupe use errors

53.7.0 2022-07-20

  • πŸŽ‰ Grammar: single keyword in a parent nodeType now propogates to child nodeTypes

53.6.0 2022-07-14

  • πŸŽ‰ Grammar: perf improvement

53.5.1 2022-07-12

  • πŸ₯ Grammar: ship latest version

53.5.0 2022-07-12

  • πŸŽ‰ Grammar: add cruxFromId

53.4.0 2022-07-12

  • πŸŽ‰ Core: add param to use toDelimited without escaping tree.toDelimited("|", undefined, false)

53.3.0 2022-06-17

  • πŸŽ‰ Grammar: toTypeScriptInterface includes descriptions now
  • πŸ₯ Grammar: fix dumb bug in toTypeScriptInterface (+ test)

53.2.0 2022-06-15

  • πŸŽ‰ Grammar: toTypeScriptInterface method on grammar nodes
  • ⚠️ methods with SqlLite had typo fix to SQLite
  • πŸ₯ Core: fix bug where a deep where query with notEmpty operator would fail

53.1.0 2022-01-18

  • πŸ₯ Builder: larger buffer for jtree build
  • πŸ₯ TrueBase: should not run trim when loading files

53.0.0 2021-07-27

  • πŸŽ‰ tcf: 60% faster rendering
  • πŸŽ‰ tcf/stump: removed jquery dependency
  • πŸ₯ designer & sandbox regression fixes
  • ⚠️ stump: removed setStumpNodeCss
  • ⚠️ tcf: by default html elements are now added w/o surrounding whitespace when mounted
  • ⚠️ tcf: removed setShadowCss
  • ⚠️ tcf: removed makeResizable, makeDraggable, makeSelectable, _getJQElement
  • ⚠️ tcf: middle param to onShadowEvent dropped. use onShadowEventWithSelector instead.
  • ⚠️ tcf: triggerShadowEvent, insertHtmlNode, getShadowCss, getShadowPosition implementations changed
  • ⚠️ tcf: shadowHasClass, getShadowValue, triggerShadowEvent, addClassToShadow, removeClassFromShadow implementations changed
  • ⚠️ tcf: onShadowEvent, offShadowEvent, toggleShadow, setShadowCss implementations changed
  • ⚠️ tcf: getShadowOuterHeight, getShadowOuterWidth, getShadowWidth, getShadowHeight, getShadowOffset implementations changed

52.1.0 2021-07-22

  • πŸ₯ tcf bug fix

52.0.0 2021-07-22

  • πŸŽ‰ stump/tcf: ~200% faster when inserting lots of elements
  • πŸŽ‰ tcf: added keyUpCommand support
  • ⚠️ tcf: forceRepaint function now a no-op
  • ⚠️ tcf: getWindowSize, getDocumentSize, setCopyHandler, setCutHandler, setResizeEndHandler implementation change
  • ⚠️ tcf: getWillowBrowser is now "willowBrowser" getter
  • ⚠️ tcf: getShadowElement is now "shadowElement" getter
  • ⚠️ tcf: removed getShadowHtml

51.7.0 2021-07-22

  • πŸŽ‰ perf improvement in TCFβ€”don't insert CSS nodes if no CSS

51.6.0 2021-06-25

  • πŸŽ‰ bumped pick, setProperties, getOneOf, and setPropertyIfMissing to root TreeNodeClass
  • ⚠️ extract method on TrueBase is now "pick" on TreeNode

51.5.1 2021-05-05

  • πŸ₯ code cleanup in DD lang

51.5.0 2021-03-26

  • πŸŽ‰ silence() method on stamp

51.4.0 2021-03-12

  • πŸŽ‰ added hyphens prop to hakon

51.3.0 2021-02-18

  • πŸŽ‰ added break-inside CSS prop to hakon

51.2.1 2021-02-13

  • πŸ₯ removed leftover console.log

51.2.0 2021-02-13

  • πŸŽ‰ Core: expandLastFromTopMatter and lastMode methods
  • πŸŽ‰ Stump now supports defining components

51.1.0 2021-02-11

  • πŸŽ‰ add missing CSS Grid properties to Hakon

51.0.0 2021-02-08

  • ⚠️ removed "prompt" node and executable stamps. Almost never used, and make it a lot more confusing to write Stamp libraries in other langs.

50.2.0 2021-02-07

  • πŸŽ‰ Stamp now creates file recursively
  • πŸŽ‰ Stamp now accepts a target dir

50.1.0 2021-02-07

  • πŸ₯ bug fix in executing a stamp file

50.0.0 2020-12-20

  • πŸŽ‰ core: toJson, toGrid, toGridJson, fromJson and fromGridJson methods
  • πŸŽ‰ sandbox: added share link and toJson and toGridJson consoles

49.8.0 2020-03-01

  • πŸŽ‰ jtable: getValues method on columns (use instead of accessing private _getSummaryVector method)
  • πŸ₯ jtable: pivot column generation now operates in a more pass by copy manner and references to source columns are dropped
  • ⚠️ unused method getSourceColumnName is now _getSourceColumnName

49.7.0 2020-02-08

  • πŸŽ‰ hasNode method in core
  • πŸŽ‰ toProgram method on TrueBase

49.6.1 2020-02-03

  • πŸ₯ TCF save mouse event on click
  • πŸ₯ getNextOrPrevious test and fix
  • ⚠️ unused isShadowResizable method

49.6.0 2020-01-24

  • πŸ₯ windows return characters now stripped in fromDelimited methods

49.5.0 2020-01-03

  • πŸŽ‰ jtable: getMin, toVector, toMatrix, toNumericMatrix methods
  • πŸŽ‰ nodesThatStartWith core method
  • πŸŽ‰ started build server
  • πŸ₯ clean column names method drop columns fix

49.4.0 2019-12-12

  • πŸŽ‰ fillMissing method
  • πŸ₯ fix for Invalid Date

49.3.0 2019-12-12

  • πŸŽ‰ started trainModel, predictChildren and predictParents methods

49.2.0 2019-12-11

  • πŸŽ‰ JTable synthesizeTable and toSimpleSchema

49.1.0 2019-12-09

  • πŸŽ‰ isValueEmpty util method
  • πŸŽ‰ JTable: renameColumns and cloneWithCleanColumnNames methods

49.0.1 2019-12-09

  • πŸŽ‰ JTable: seed param in Table class
  • πŸ₯ JTable: first non-blank cell now used for column type prediction

49.0.0 2019-12-08

  • 🧹 general refactor to prep for switch to have Grammar entirely written in Grammar
  • 🧹 generally use "products/" folder now to use compiled grammars instead of recompiling everytime
  • πŸŽ‰ swarm and testRacer now prints number of skipped tests
  • πŸŽ‰ examplesToTestBlocks method on grammar programs
  • πŸŽ‰ command line app uses compiled grammar files more
  • ⚠️ getRootConstructor is now compileAndReturnRootConstructor
  • ⚠️ jtree.getProgramConstructor is now compileGrammarFileAtPathAndReturnRootConstructor
  • ⚠️ jtree.GrammarProgram is now jtree.HandGrammarProgram
  • ⚠️ getGrammarProgram is now getHandGrammarProgram
  • ⚠️ _getRootNodeTypeDefinitionNode is now getRootNodeTypeDefinitionNode
  • ⚠️ removed commandLineApp "create" command. Was broken. Use the Designer app instead.
  • ⚠️ removed jtree.executeFiles
  • ⚠️ removed all /langs/lang/lang.node.js files. Use /products/lang.nodejs.js instead.
  • ⚠️ removed commandLineApp "runSync" method.
  • ⚠️ removed jtree.executeFileSync and executeFile methods
  • ⚠️ removed executeSync method on Core.
  • ⚠️ removed default execute implementation on Core. Up to grammar to specify.
  • ⚠️ jtree.makeProgram is now jtree.compileGrammarAndCreateProgram
  • ⚠️ jtree.formatFile is now jtree.formatFileInPlace and jtree.formatProgram is now jtree.formatCode
  • ⚠️ removed getErrorsInGrammarExamples. Use examplesToTestBlocks

48.1.0 2019-12-06

  • πŸŽ‰ toSQLite method on TrueBase
  • πŸŽ‰ getFrom core method

48.0.0 2019-12-02

  • ⚠️ TCF: removed AbstractTreeComponent.startApp and getDefaultStartState methods. Use startWhenReady and start() pattern instead.
  • ⚠️ TCF: getNextOrPrevious is now on TreeUtils
  • ⚠️ TCF: no more DataShadowEvents
  • ⚠️ TCF: stumpOnClickCommand is now clickCommand, stumpOnBlurCommand is now blurCommand, stumpOnChangeCommand to changeCommand, stumpOnContextMenuCommand to contextMenuCommand, stumpOnShiftClickCommand to shiftClickCommand, stumpOnDblClickCommand to doubleClickCommand, stumpOnLineClick to lineClick, stumpOnLineShiftClick to lineShiftClick
  • ⚠️ TCF: no longer exports WillowConstants
  • ⚠️ TCF: getWillowProgram is now getWillowBrowser
  • ⚠️ TCF: isLoaded() is now checked before calling treeComponentDidUpdate and treeComponentDidMount
  • ⚠️ Stump: stumpCollapse is now collapse
  • ⚠️ Stump: removed stumpNoOp. Empty lines are fine now.

47.1.0 2019-11-29

  • πŸŽ‰ pasteText and templateToString methods
  • πŸŽ‰ blank lines are now okay in stump to work better with templates
  • 🧹 Performance improvements via caching parsers

47.0.0 2019-11-22

  • πŸŽ‰ toAutoCompleteCube method
  • πŸŽ‰ support for CSS variables in Hakon
  • πŸŽ‰ fill method
  • πŸŽ‰ toHtmlCube method
  • ⚠️ getAllSuggestions is now toAutoCompleteTable
  • ⚠️ removed getPoint. Use getIndentLevel and getLineNumber
  • ⚠️ getAllWordBoundaryCoordinates now returns type with members lineIndex and charIndex instead of y and x
  • ⚠️ getWordBoundaryIndices is now getWordBoundaryCharIndices
  • πŸ₯ getIndentLevel now returns correct level

46.1.0 2019-11-22

  • πŸŽ‰ Swarm tests now execute in browser

46.0.0 2019-11-20

  • πŸŽ‰ getCommandNames method on TCF
  • ⚠️ removed AbstractCommander concept from TCF. Move methods with a Command suffix for methods on TCF classes.

45.1.0 2019-11-20

  • πŸŽ‰ TCF added getTextContent to TreeComponent and getHash and setHash methods to WillowBrowser class
  • πŸŽ‰ added deepVisit method to core

45.0.1 2019-11-13

  • πŸ₯ web form generation fixes

45.0.0 2019-11-08

  • πŸŽ‰ toDefinitionLineNumberTree method added to Grammar programs
  • πŸŽ‰ lengthen core method
  • πŸŽ‰ added seeds to all psuedo-stochastic functions and removed all Math.random calls
  • πŸŽ‰ toStumpString added to Grammar programs and webForm added to CLI
  • ⚠️ getInPlaceCellTypeTree: toCellTypeTree, getInPlaceCellTypeTreeWithNodeConstructorNames: toCellTypeTreeWithNodeConstructorNames, getInPlaceHighlightScopeTree: toHighlightScopeTree, getInPlacePreludeCellTypeTreeWithNodeConstructorNames: toPreludeCellTypeTreeWithNodeConstructorNames
  • πŸ₯ toSideBySide fix for when later trees are longer than earlier ones

44.1.0 2019-11-05

  • πŸŽ‰ added stamp command to commandLineApp tool
  • πŸŽ‰ added produceProductFromInstructionsTree and buildBuilder to abstractBuilder
  • πŸ₯ bug where if a string contained _proto_ or constructor it was parsing incorrectly

44.0.3 2019-11-02

  • πŸ₯ in TCF rewrote queryObjectToQueryString to make working/testable in node

44.0.2 2019-11-02

  • πŸ₯ incorrect path in compiled grammars

44.0.1 2019-11-02

  • πŸ₯ some case insensitive filenames on Mac broke linux build
  • πŸ₯ removed isDesktopVersion from TCF

44.0.0 2019-11-01

  • πŸŽ‰ toBraid and toSideBySide and toComparison methods
  • πŸŽ‰ toStringWithLineNumbers method
  • πŸŽ‰ loadRequirements, runTimePhaseError methods
  • πŸŽ‰ selection methods
  • πŸŽ‰ undo/redo/save methods
  • πŸ₯ sweepercraft perf fix
  • πŸ₯ table derived tables from column filtering fix
  • ⚠️ removed "dirty" methods in TreeComponentFramework. Update the lines is a better pattern.
  • ⚠️ format() is now evalTemplateString()
  • ⚠️ in Grammar: match is now "crux" for now
  • ⚠️ getTopNodeTypeIds is now getTopNodeTypeDefinitions
  • ⚠️ commandLineApp.prettify is now format
  • ⚠️ changed getCssClassNames behavior in TCF
  • ⚠️ in swarm: blockStringParam is now withParagraph. blockStringIs to assertParagraphIs, lengthIs:assertLengthIs, stringExcludes:assertStringExcludes, stringIncludes:assertStringIncludes, typeIs:assertTypeIs. constructWithBlockString to constructWithParagraph. arrangeTestSubject to arrange.
  • 🧹 Created TestRacer and moved tests and swarm to that
  • 🧹 builder will now look for compiled builder.js first
  • 🧹 commandLineapp will now will first look for compiled grammar when executing a Tree program
  • 🧹 removed qunit, tap, and tap mocha dependencies

43.0.0 2019-10-07

  • ⚠️ getYI is now getNodeBreakSymbol, getYIRegex is getNodeBreakSymbolRegex, getZI is getWordBreakSymbol, getXI is getEdgeSymbol
  • 🧹 TCF debugger work

42.2.0 2019-10-04

  • πŸŽ‰ getNumberOfWords method
  • 🧹 added swim tests

42.1.0 2019-10-03

  • ⚠️ reverted the implicit event system. Made trigger and triggerAncestors public methods instead for finer control over events.

42.0.0 2019-10-01

  • πŸŽ‰ readded event listening code in TreeNode core class
  • πŸŽ‰ onLineChanged, onDescendantChanged, onChildAdded, onChildRemoved methods
  • πŸŽ‰ getAncestorByNodeConstructor method
  • πŸŽ‰ TrueBaseServer exported class
  • ⚠️ getMTime is now getLineModifiedTime, getChildArrayModifiedTime, and getLineOrChildrenModifiedTime
  • ⚠️ startExpressApp in TrueBase is removed. Now use TrueBaseServer class instead.
  • ⚠️ some default routes changed in TrueBase
  • ⚠️ experimental generateSimulatedData methods are now synthesizeNode and synthesizeCell
  • 🧹 moved papers to treenotation/research

41.2.0 2019-09-24

  • πŸŽ‰ without method

41.1.0 2019-09-18

  • πŸŽ‰ error handling in TCF commands
  • πŸ₯ uncaught command error displaying in Designer app
  • πŸ₯ generateSimulatedData regression fix and tests

41.0.0 2019-09-17

  • πŸŽ‰ postfix cell parsing
  • πŸŽ‰ omnifix cell parsing
  • πŸŽ‰ cellParser keyword in Grammar Language
  • πŸŽ‰ chuck demo lang demonstrating postfix cell parsing
  • πŸŽ‰ improved Explain visualization on designer app
  • πŸ₯ poop demo lang now implements omnifix
  • ⚠️ removed _getGrammarBackedCellArray method and replaced with new CellParser class

40.3.0 2019-09-16

  • πŸŽ‰ added Arrow sample language
  • πŸŽ‰ required and single nodeTypes are accessible to compiler string template
  • πŸŽ‰ added wwt sample language
  • πŸŽ‰ Github triangle and TCF debugger components
  • πŸŽ‰ removeNonAscii util method
  • πŸ₯ poop demo language now compiles to csv correctly
  • 🧹 build fixes. No more manually fixing TypeScript build artifacts
  • 🧹 wwt types
  • 🧹 command line app now shows options when invalid command entered
  • 🧹 TreeComponentFramework work
  • 🧹 builder improvements

40.2.0 2019-09-11

  • πŸŽ‰ getInPlacePreludeCellTypeTreeWithNodeConstructorNames
  • πŸŽ‰ generateSimulatedData
  • πŸŽ‰ designer app - simulate data and explain roots buttons
  • πŸŽ‰ explain 2D visualizer in designer app
  • πŸ₯ highlighting fix for regression caused by blank cells fix
  • πŸ₯ generateSimulatedData improvements
  • 🧹 migrated Sandbox and Designer apps to TCF

40.1.0 2019-09-08

  • πŸ₯ missing words now trigger "MissingWord" error instead of "InvalidWord"
  • πŸ₯ fixed bug in codemirror where a missing word would break syntax highlighting of remaining words
  • πŸ₯ bug fix in Disk
  • πŸ₯ added GitHub link and show keyboard shortcuts by default in SweeperCraft

40.0.0 2019-09-03

  • ⚠️ removed "firstCellType" property. Now you must specifically add a cell for the firstCellType for keyword Tree Languages. langs/grammar/GrammarUpgrader.ts should be able to automatically upgrade most grammars without manual intervention.
  • πŸŽ‰ default highlightScopes for basic cellTypes
  • πŸ₯ fixes from reducing complexity of ExtendibleTreeNode and firstCellType

39.6.0 2019-09-03

  • πŸŽ‰ added jtable

39.5.0 2019-09-01

  • πŸŽ‰ added comments to hakon

39.4.0 2019-08-31

  • ⚠️ toReadme now generates Dumbdown instead of markdown
  • πŸŽ‰ added dumbdown language
  • πŸŽ‰ toReadme now generates roadmap from todos
  • πŸ₯ fix for poop compile
  • πŸ₯ fix for compiling with an empty stringTemplate

39.3.0 2019-08-31

  • πŸŽ‰ added "Explain" button to Designer
  • πŸŽ‰ renamed poop node types

39.2.0 2019-08-31

  • πŸŽ‰ new layout for Designer app from feedback
  • πŸŽ‰ show readme for Grammars in Designer app

39.1.0 2019-08-30

  • πŸŽ‰ added "config" sample language
  • πŸŽ‰ added "poop" sample language

39.0.0 2019-08-30

  • ⚠️ we now export {jtree} instead of jtree. We removed all TypeScript export default.
  • πŸŽ‰ added "map" demo language
  • 🧹 refactored build system
  • 🧹 moved Disk to products
  • 🧹 removed tsconfigs
  • 🧹 created products.tree
  • 🧹 started worldWideTypes folder
  • 🧹 TCF tests now included in npm test

38.2.0 2019-08-28

  • πŸŽ‰ appendSibling base method
  • πŸŽ‰ TreeComponentFramework added to products
  • πŸŽ‰ added SweeperCraft demo to products
  • πŸŽ‰ added hakon and stump to products

38.1.0 2019-08-23

  • πŸŽ‰ errors.csv route to TrueBase

38.0.1 2019-08-17

  • πŸ₯ cleanup to bundle filenames
  • πŸ₯ sample code fix in bundle files

38.0.0 2019-08-17

  • πŸŽ‰ toReadMe method on GrammarProgram
  • πŸŽ‰ toBundle method on GrammarProgram
  • ⚠️ removed "anyFirstCell". Now just use "anyCell"
  • πŸ₯ anyCell now always added to inferred grammar
  • πŸ₯ various fixes to make inferring prefix grammars more robust
  • 🧹 now run UnknownGrammarProgram against all sample grammars
  • 🧹 builder is now compiled into a product

37.1.0 2019-08-10

  • πŸŽ‰ support for inference of prefix languages with unicode characters (emojis)
  • ⚠️ UnknownGrammarProgram "getPredictedGrammarFile" is now "inferGrammarFileForAPrefixLanguage" to be more precise about what the method does

37.0.0 2019-08-08

  • ⚠️ No more "dist" folder. Use files in "/products/" folder instead.
  • πŸ₯ Grammar inference (UnknownGrammarProgram) now predicts base cell types
  • 🧹 switched to TypeScript for all JS src files and test files.
  • 🧹 new folders for each product
  • 🧹 "products" folder. Currently checking in compiled versions as this makes distribution simpler. In the future maybe move products to separate repo.

36.2.0 2019-08-01

  • ⚠️ builder refactor. Instead "jbuild.js" now do "builder.js".

36.1.0 2019-07-31

  • 🧹 jBuild
  • 🧹 improved error messaging for invalid nodeType.
  • ⚠️ some method names changed in Project Tree Language. See that readme for details.

36.0.2 2019-07-30

  • πŸ₯ TrueBase Disk path fix

36.0.1 2019-07-30

  • πŸ₯ TrueBase path fix

36.0.0 2019-07-30

  • πŸŽ‰ added TrueBase and "base" command to CLI
  • πŸŽ‰ added methods to base class: getWordsAsSet, appendWordIfMissing, addObjectsAsDelimited, setChildrenAsDelimited, convertChildrenToDelimited, addUniqueRowsToNestedDelimited, with, getBiDirectionalMaps, getSparsity
  • πŸ₯ fixed grammar concatenation bug where you might have 2 nodeTypes extending from RootNode
  • ⚠️ removed nodeTypeOrder property from Grammar Language. Now just uses inScope order.
  • ⚠️ getPrettified() is now "sortNodesByInScopeOrder().getSortedByInheritance()"
  • 🧹 added basic tests for trueBase and made sure treeComponent framework test getting run
  • 🧹 moved repo from breck7/jtree to treenotation/jtree

35.1.0 2019-07-25

  • πŸŽ‰ printLinesFrom and printLinesWithLineNumbersFrom methods
  • πŸ₯ fix for npm install -g dependency issues

35.0.1 2019-07-25

  • πŸ₯ fixed uncaught error when an old grammar is used with a "root" subnode
  • πŸ₯ more precise pattern matching in Grammar Language
  • πŸ₯ improved highlight scopes for Grammar Language

35.0.0 2019-07-24

  • πŸŽ‰ "pattern" property on nodeType to support any type of "fix" notation: prefix, postfix, etc.
  • πŸŽ‰ polymorphism and symbol tables via enumFromCellTypes
  • πŸŽ‰ Grammar Language now uses suffix notation instead of prefix notation for root node types.
  • πŸŽ‰ in Grammar Language instead of nodeType person now do personNode and instead of cellType int do intCell
  • πŸŽ‰ findAllWordsWithCellType and findAllNodesWithNodeType methods in Grammar Programs which are like our versions of "findAllReferences"
  • πŸŽ‰ getAllTypedWords method in Grammar Programs
  • πŸ₯ removed all "grammarPath" 2nd params to new jtree.GrammarProgram(grammarCode, gammarPath), since it is no longer used.
  • ⚠️ Javascript code and compiler nodes that previously referred to cellTypes that have been renamed, must be updated manually
  • ⚠️ Javascript code that previously referred to nodeTypeIds that have been renamed, must be updated manually (check uses of getChildInstancesOfNodeTypeId and doesExtend)
  • ⚠️ lineHints string is different
  • ⚠️ enumFromGrammar is now enumFromCellTypes and accepts any cellTypeId
  • ⚠️ cellTypes that ended in "Word" now end in "Cell".
  • ⚠️ removed public "getFirstWordMap" method.
  • ⚠️ removed "updateNodeTypeIds" method. Use findAllWordsWithCellType and findAllNodesWithNodeType
  • ⚠️ use createParser() instead of getNodeConstructor

34.2.0 2019-07-21

  • πŸŽ‰ compiled nodejs grammar files are now executables and accept an input filepath
  • πŸ₯ switched all hashbangs to "#! /usr/bin/env node" for better cross platform support

34.1.0 2019-07-19

  • πŸŽ‰ root nodes can now extend other root nodes for easier grammar combinations and extensions

34.0.0 2019-07-16

  • πŸŽ‰ the empty Grammar "" is now a valid Grammar and works properly
  • πŸŽ‰ the default catch all node for Grammar Backed Languages is now Blob Node, and not Error Node
  • πŸ₯ now the empty Grammar language returns a forgiving grammar by default.
  • πŸ₯ now an empty nodeTypeId won't break the grammar parser
  • πŸ₯ fixes for Download Bundle command
  • ⚠️ getConcreteAndAbstractNodeTypeDefinitions is now getValidConcreteAndAbstractNodeTypeDefinitions
  • ⚠️ the empty Grammar is now valid. Should not break anything but could allow for code removal.
  • ⚠️ removed getTheAnyLanguageRootConstructor(). Just use the empty grammar now.
  • ⚠️ the default catch all node is now Blob node, not error node.

33.0.2 2019-07-15

  • πŸŽ‰ added "infer" button to Grammar Builder
  • πŸ₯ polyfill flat method
  • πŸ₯ CLI fixes
  • 🧹 upgrade version script

33.0.1 2019-07-15

  • πŸ₯ changed browser target to es2016 to fix the "flat" bug in Linux Chrome

33.0.0 2019-07-10

  • ⚠️ no more "constants" or "nodeTypeMap" exports in compiled. Now 1 export per grammar, of root language node. You can still access the others via that.
  • ⚠️ removed runTimeFirstWord methods. Now that grammars are compiled, just use normal firstWord methods.
  • ⚠️ removed unused getTheGrammarFilePath method
  • ⚠️ compile to node/browser now saves a lang named "foo" to "foo.browser.js" instead of "fooLanguage"
  • πŸ₯ prettify grammar files multiple inheritance sort fix and added regression test
  • πŸ₯ getErrorsInGrammarExamples now prints correct source line where errors occur
  • πŸ₯ fixed bug and added test where inScope was not extending correctly
  • 🧹 removed dead code
  • 🧹 compiled grammars are now much less code and rely on native JS class tree
  • 🧹 compiled grammar vs runtime code paths are largely merged

32.0.0 2019-07-07

  • πŸŽ‰ getParseTable method on Grammar backed programs
  • πŸŽ‰ CLI "parse" command
  • πŸ₯ fixed blobNode and errorNode regressions
  • ⚠️ removed getDoc
  • ⚠️ no longer export BlobNode or ErrorNode
  • ⚠️ toFormattedTable now adds ellipsis ("...") when columns overrun limit
  • ⚠️ removed toNodeJsJavascriptPrettier and toBrowserJavascriptPrettier. Use compileGrammarForNodeJs and compileGrammarForBrowser w/prettier param instead.
  • 🧹 fixed 2.5x test speed regression and got them back down to 2s

31.0.0 2019-07-05

  • πŸŽ‰ added "joinChildrenWith" word to compiler nodeTypes in grammar language
  • πŸŽ‰ added "dug" language which compiles to JSON
  • πŸŽ‰ improved documentation for grammar compiler nodeTypes
  • πŸŽ‰ in compiler nodes, and generated classes, you can now access the firstCellType in this.cells just like other cells
  • πŸ₯ fixed bugs in runtime extended nodeType constructor loading
  • ⚠️ rarely used listDelimiter compiler property in Grammar Language is now "catchAllCellDelimiter"
  • ⚠️ Terminal vs NonTerminal nodeTypes are now determined by duck typing. Use GrammarBackedNonRootNode in place of those now.

30.0.0 2019-07-03

  • πŸŽ‰ much easier way to do Grammar Composition => simple concatenate strings & define a new nodeType as root!
  • ⚠️ removed newFromCondensed method, which became a noOp. Use new GrammarProgram(grammarCode, grammarPath) instead
  • ⚠️ removed "grammar" root node type in GrammarLanguage. Add a "root" property to a nodeType for the new root node.
  • ⚠️ instead of "{grammarName}ProgramRoot" as the root class, the root class is now just "grammarName"
  • ⚠️ paths to shipped language program constructors are now like "fire.js" instead of "FireProgram.js"

29.0.0 2019-07-02

  • πŸŽ‰ doesExtend and getChildInstancesOfNodeTypeId methods on Extendible nodes
  • πŸŽ‰ GrammarUpgrader additions
  • 🧹 refactor of Swarm/Stamp/Project/Jibberish/Stump to be 1 file.
  • ⚠️ no more "constructors" node for nodeTypes or root programs.

28.0.0 2019-07-02

  • πŸŽ‰ "match" keyword in Grammar Language to use if you have a non-alphanumeric keyword as the first word match
  • πŸŽ‰ "reservedWords" attribute on cellTypes in Grammar Language
  • ⚠️ removed "abstract" nodeType in Grammar Language. now its a property of nodeType
  • ⚠️ compileGrammar method is now compileGrammarForNodeJs and compileGrammarForBrowser
  • ⚠️ nodeTypeId's now can only be alphanumeric
  • ⚠️ nodeTypeId's are now identical to the generated Javascript class names. Some nodeTypeIds are now reserved and those now require using a "match" node
  • ⚠️ cellTypeId's now can only be alphanumeric
  • ⚠️ constants in Grammar Language alphanumeric
  • ⚠️ removed "group" property on abstract nodeTypes. To achieve the same affect use a build script.
  • ⚠️ "constructors" now no longer take a class name. The class name must be identical to nodeTypeId.

27.2.0 2019-06-26

  • πŸŽ‰ /sandbox/build/ => refactored Tree Language IDE
  • πŸŽ‰ added "New" simple grammar language template
  • πŸŽ‰ added deep linking to /sandbox/build/
  • ⚠️ removed undocumented BackupConstructor feature as IDE should no longer need it
  • πŸ₯ stump compile fix

27.1.0 2019-06-25

  • πŸŽ‰ appendNode, select, where, limit, first, last, and print methods

27.0.0 2019-06-23

  • πŸŽ‰ simplified compile method to take 0 params
  • πŸŽ‰ refactored Fire language
  • πŸŽ‰ compilesTo property on grammar node in GrammarLanguage
  • πŸŽ‰ perf fix for compiled languages
  • πŸ₯ fire grammar fixes
  • πŸ₯ compilation open and close children fixes
  • ⚠️ you can now only have 1 target compilation language per grammar. If you want multiple targets just extend the grammar.
  • ⚠️ "sub" compiler property is now "templateString"
  • ⚠️ Fire experimental language changed a lot
  • ⚠️ for internal use only makeGraphSortFunction util function is now _makeGraphSortFunction and method signature changed

26.5.0 2019-06-23

  • πŸŽ‰ todos in swarm
  • πŸ₯ escaping backslash fix for compiled files
  • 🧹 more testing of compiled code

26.4.0 2019-06-23

  • ⚠️ moved getLineHints back to definition node

26.3.0 2019-06-23

  • πŸ₯ extension bug in classes with more than 1 ancestor
  • ⚠️ getNodeTypeDefintions is now getConcreteAndAbstractNodeTypeDefinitions

26.2.0 2019-06-22

  • πŸ₯ extends now works correctly
  • πŸŽ‰ added "todo" nodeType to grammar language
  • πŸŽ‰ added "extends" keyword in place of previous one line method
  • ⚠️ instead of "nodeType/cellType foo extendsFoo" now do "nodeType foo\n extends extendsFoo"

26.1.1 2019-06-21

  • πŸ₯ support for mutliline strings in getConstantsObject

26.1.0 2019-06-21

  • πŸŽ‰ restored getConstantsObject on definition nodes

26.0.2 2019-06-21

  • πŸ₯ backtick escaping in getter generation
  • πŸ₯ migrate constants in grammar updater
  • πŸŽ‰ dump generated code for more information when something goes wrong

26.0.1 2019-06-21

  • πŸ₯ fixed require bug

26.0.0 2019-06-21

  • Warning: this was a major refactor that may have introduced new bugs, so if using please be ready to ping me with bug reports
  • πŸŽ‰ ability to compile grammar files to Javascript
  • πŸŽ‰ grammar sandbox now has "download bundle"
  • πŸŽ‰ Upgrader class for making Tree Language upgrades easier
  • πŸŽ‰ added support for "tooling" directives in Grammar language
  • πŸŽ‰ getFirstNode method
  • πŸŽ‰ getNodeTypeId on NonRootRunTime nodes
  • πŸŽ‰ findNodes in base can now take an array of first words
  • πŸŽ‰ "nodeType javascript" property
  • πŸŽ‰ add custom javascript to rootNodeTypes in grammar files
  • ⚠️ stamp.js script is now stamp.cli.js
  • ⚠️ removed "defaults" from grammar
  • ⚠️ avoid getDefinition() when possible--use methods on nodes directly: getConstantsObject, getNodeTypeId, getLineHints,
  • ⚠️ removed getExpectedLineCellTypes--use getLineHints
  • ⚠️ nodeTypes in grammar is now "inScope", and is one line instead of parent/children
  • ⚠️ removed unused isLeafColumn, getDuplicateLinesMap(), getFirstWordByIndex, toFlatTree
  • ⚠️ fromJson is now fromJsonSubset and toJson is now toJsonSubset
  • ⚠️ deprecating getExpanded. Now renamed to _expandChildren and now has a 3rd parameter.
  • ⚠️ removed getCompiledProgramName
  • ⚠️ getAncestorNodeTypeNamesArray is now getAncestorNodeTypeIdsArray
  • ⚠️ getCatchAllCellTypeName is now getCatchAllCellTypeId
  • ⚠️ getRequiredCellTypeNames is now getRequiredCellTypeIds
  • ⚠️ getRunTimeNodeTypeNames is now getRunTimeFirstWordsInScope
  • ⚠️ removed getProgramErrorMessages. Use getAllErrors
  • ⚠️ getFirstCellType is now getFirstCellTypeId
  • ⚠️ getProgram() is now get getRootProgramNode and getProgram on grammar programs is getLanguageDefinitionProgram
  • ⚠️ getGrammarProgram is now getGrammarProgramRoot
  • ⚠️ getParsedWords removed
  • ⚠️ getCellTypeName is now getCellTypeId
  • ⚠️ getCellTypeDefinition is now getCellTypeDefinitionById
  • ⚠️ getNodeTypeDefinitionByName is now getNodeTypeDefinitionByNodeTypeId
  • ⚠️ getProgramErrors is now getAllErrors, getProgramErrorsIterator is now getAllErrorsIterator
  • ⚠️ getCompiledIndentation, getCompiledLine, getCompilerNode are now protected
  • ⚠️ removed "nodeType constructors javascript" in GrammarLanguage. Use "nodeType javascript" directly.
  • ⚠️ no more getConstantsObject. No more "constants". Instead use "nodeType > boolean|int|string|float id value...". Adds getters to generated nodeType classes.
  • ⚠️ in GrammarLanguage, use "stringCell" instead of "string", "intCell" instead of "int", "floatCell" instead of "float"
  • ⚠️ no more "ErrorNode", "BlobNode", "Terminal/NonTerminal" built in constructors. BlobNode is no longer exported. Now use "baseNodeType" to specify a base node type.
  • ⚠️ the nodeType name for each nodeType is now based on the nodeTypeId. It is no longer TerminalNode, NonTerminalNode, etc.

A regex for finding breaks in untyped code:

\b(defaults|getExpectedLineCellTypes|nodeTypes|isLeafColumn|_getDuplicateLinesMap|_getFirstWordByIndex|toFlatTree|fromJson|toJson|getExpanded|getCompiledProgramName|getAncestorNodeTypeNamesArray|getCatchAllCellTypeName|getRequiredCellTypeNames|getRunTimeNodeTypeNames|getProgramErrorMessages|getFirstCellType|getProgram|getGrammarProgram|getParsedWords|getCellTypeName|getCellTypeDefinition|getNodeTypeDefinitionByName|getProgramErrors|getCompiledIndentation|getCompiledLine|getCompilerNode|getProgramErrorsIterator)\b

25.2.0 2019-05-30

  • πŸ₯ Node.js fix for getNow and renamed to getProcessTimeInMilliseconds
  • πŸ₯ Stump div is now no longer an inputType unless it has contenteditable

25.1.0 2019-05-29

  • πŸŽ‰ Added BlankLineError type.
  • πŸŽ‰ Added inline syntax highlighting with error correction suggestions to grammar sandbox.
  • πŸŽ‰ Added parameters hints for nodeTypes with required cells in codeMirror
  • πŸŽ‰ enabled using backup constructors in browser to allow Grammar Sandbox without access to constructor files
  • πŸŽ‰ ErrorType messaging improvments

25.0.0 2019-05-28

  • πŸŽ‰ standardized error messages with suggested fixes!
  • πŸŽ‰ added deleteWordAt method
  • πŸ₯ minor fixes to grammar sandbox and updated to use new error message code
  • ⚠️ interface of errors changed, so code that uses getErrors, getErrorsInGrammarExamples, or getProgramErrors needs to change
  • 🧹 refactored "types" file into "jTreeTypes"
  • 🧹 removed unneeded npm packages
  • 🧹 fixed TypeScript browser target build issues

24.2.0 2019-05-27

  • πŸŽ‰ extraWord syntax highlighting
  • πŸŽ‰ improved syntax highlighting for Hakon, Stump, and others

24.1.0 2019-05-27

  • πŸŽ‰ getAncestorNodeTypeNamesArray method on definition nodes
  • πŸŽ‰ getNodeTypeFamilyTree method on grammarPrograms
  • πŸŽ‰ setWords, setWordsFrom and appendWord methods on base tree

24.0.0 2019-05-21

  • πŸŽ‰ targeting es2017
  • πŸ₯ sandbox onload fix

23.2.1 2019-05-21

  • πŸ₯ fix for updateNodeTypeIds recursion bug

23.2.0 2019-05-21

  • πŸŽ‰ updateNodeTypeIds method
  • πŸŽ‰ Swarm files now no longer require a root level setup node.
  • 🧹 added prettier config to package.json
  • ⚠️ in Swarm, createTestDummy is now getTestSubject
  • ⚠️ Swarm grammar changed.

Use code below to update programs:

swarmProgram.updateNodeTypeIds(`#setup arrange %%| constructWith %| blockStringParam =# lengthIs =+ stringIncludes =- stringExcludes == stringIs =| blockStringIs =~ typeIs #test test +#test testOnly -#test skipTest`)

23.1.0 2019-05-21

  • πŸŽ‰ executeFiles method
  • πŸŽ‰ 50% speed improvement in getExpanded and extend and GrammarProgram.newFromCondensed
  • ⚠️ getGraphByKey is now getAncestorNodesByInheritanceViaExtendsKeyword
  • ⚠️ getGraph is now getAncestorNodesByInheritanceViaColumnIndices

23.0.1 2019-05-20

  • πŸ₯ sublime syntax regression fix
  • πŸ₯ small lang regression fixes

23.0.0 2019-05-20

  • ⚠️ highlightScope is now defined only on cellTypes (no longer on nodeTypes)
  • ⚠️ "any" grammar nodeType property is now "blob", and jtree.AnyNode is now jtree.BlobNode
  • ⚠️ grammars should all define a "cellType any" if they have leave any firstCellTypes undefined
  • ⚠️ getKeyword is now getFirstWord, getKeywords is getFirstWords, hasDuplicateKeywords is now hasDuplicateFirstWords, setKeyword is now setFirstWord, getKeywordPath is getFirstWordPath, pathVectorToKeywordPath is pathVectorToFirstWordPath, getKeywordMap is getFirstWordMap, keywordSort is firstWordSort
  • ⚠️ in grammar, keyword is nodeType, catchAllKeyword is catchAllNodeType, keywords is nodeTypes, keywordOrder is nodeTypeOrder
  • ⚠️ def.getId is now def.getNodeTypeIdFromDefinition, def.getTopNodeTypes is now def.getTopNodeTypeIds, def.getKeywordDefinitionByName is now def.getNodeTypeDefinitionByName, def.getRunTimeKeywordMap is now def.getRunTimeFirstWordMap, def.getRunTimeKeywordNames is def.getRunTimeNodeTypeNames, def.getRunTimeKeywordMapWithDefinitions is def.getRunTimeFirstWordMapWithDefinitions, def.isOrExtendsAKeywordInScope is def.isOrExtendsANodeTypeInScope, def.getKeywordInheritanceSet is def.getNodeTypeInheritanceSet, def.getSyntaxContextId is def.getSublimeSyntaxContextId
  • ⚠️ program.getKeywordDefinitions is program def.getNodeTypeDefinitions, program.getKeywordUsage is now getNodeTypeUsage, program.getKeywordDefinitionByKeywordPath is program.getNodeTypeDefinitionByFirstWordPath, program.getInvalidKeywords is program.getInvalidNodeTypes, program.getInPlaceSyntaxTreeWithNodeTypes is program.getInPlaceCellTypeTreeWithNodeConstructorNames, program.getInPlaceSyntaxTree is now program.getInPlaceCellTypeTree
  • ⚠️ in stump, findStumpNodeByKeyword is now findStumpNodeByFirstWord
  • ⚠️ getLineSyntax is now getLineCellTypes

22.3.0 2019-05-16

  • ⚠️ instead of FireProgram.js do Fire.js Program and same for Hakon and Numbers and Project and Stump and Swarm

22.2.0 2019-05-16

  • ⚠️ jtree.program is now jtree.programRoot
  • ⚠️ renamed root program lang nodes so things like StumpProgram now refer to the grammar generated constructor and StumpProgramRoot to the program root instance
  • ⚠️ instead of "index.js" files in the langs packages, we now have FireProgram.js, HakonProgram.js, ProjectProgram.js, StampProgram.js, StumpProgram.js, and SwarmProgram.js

22.1.1 2019-05-16

  • πŸ₯ missing constant

22.1.0 2019-05-16

  • πŸŽ‰ expand will append rather than set if a node is obviously not a map

22.0.0 2019-05-15

  • πŸŽ‰ Hakon, Stump and Fire languages moved into this repo, monorepo style
  • πŸŽ‰ wrote grammars for Hakon and Stump
  • πŸŽ‰ getNodesByGlobPath, every, hasLine, getNodesByLine, toggleLine methods
  • πŸŽ‰ combineFiles method in node version with glob patterns
  • πŸŽ‰ compile and execute button in grammar sandbox
  • πŸŽ‰ basic browser module constructor loading in grammar sandbox
  • πŸ₯ better reset functionality in grammar sandbox
  • ⚠️ getChildrenByNodeType is now getChildrenByNodeConstructor
  • ⚠️ extend now throws if attempting to extend with a non-map. Better solution to come.
  • ⚠️ removed combine.js script
  • ⚠️ GrammarProgram.predictGrammarFile is now new UnknownGrammarProgram(input).getPredictedGrammarFile()
  • ⚠️ instead of title or style tags in Stump use "titleTag" or "styleTag" to overcome the inherent attribute/tag html name conflict.
  • ⚠️ no more @ prefix in Stump
  • ⚠️ for Stump collapseNode, just have it, don't set it to "true"
  • ⚠️ fire has been refactored a bit

21.0.0 2019-05-04

  • πŸŽ‰ getRunTimeEnumOptions method allows for run time autocomplete and run time validation
  • πŸŽ‰ autocomplete for grammar cellTypes
  • πŸŽ‰ grammar name keyword
  • πŸŽ‰ cells property on grammar non-root runtime nodes
  • πŸŽ‰ makeGraphSort function. Also now used in grammar file prettification
  • ⚠️ in grammar language: wordType to cellType, columns to cells, catchAllColumn to catchAllCellType
  • ⚠️ removed ability in grammar files to have a wordType and keyword share the same name
  • ⚠️ getGraph now requires a uniqueId column. Throws if you attempt to extend a non-unique id
  • ⚠️ instead of "grammar grammarName" oneliner now use the grammar name keyword
  • ⚠️ removed parseWith cellType property
  • ⚠️ removed jtree.getLanguage. Instead do require('.../langs/...').
  • ⚠️ in grammar keywordTable now enumFromGrammar
  • πŸ₯ all word types now have default regex of [^ ]* so no need to specify it
  • πŸ₯ grammar code cleanup
  • πŸ₯ small fixes to grammar sandbox
  • 🧹 repo folder cleanup

20.0.0 2019-04-30

  • πŸŽ‰ simpler grammar files (no more @ prefix)
  • πŸŽ‰ catchAllColumn grammar keyword
  • πŸŽ‰ new methods shiftLeft, shiftRight, shiftYoungerSibsRight, split
  • πŸŽ‰ new methods keywordSort, getPrettified
  • πŸŽ‰ new method getCatchAllCellTypeName
  • ⚠️ the "@" prefix on grammar keywords has been removed
  • ⚠️ for catch all columns use catchAllColumn instead of *
  • ⚠️ getNodeColumnTypes is now getRequiredCellTypeNames
  • ⚠️ autocomplete help now only gets description and does not fall back to showing required columns
  • ⚠️ removed getNodeColumnRegexes method

19.5.1 2019-04-26

  • πŸ₯ codeMirror autocomplete will now close if 1 option matching input text
  • πŸ₯ fixed 0 autocomplete results when at position 0,0 on a blank line
  • πŸ₯ fixed codeMirror bug in long documents

19.5.0 2019-04-25

  • πŸŽ‰ @example keyword in grammar
  • πŸŽ‰ getErrorsInGrammarExamples method on GrammarProgram

19.4.0 2019-04-24

  • πŸŽ‰ getKeywordInheritanceSet method

19.3.2 2019-04-23

  • πŸ₯ better error handling for incomplete grammars

19.3.1 2019-04-22

  • πŸ₯ grammar checking of grammar files now only checks constructors if in correct env

19.3.0 2019-04-22

  • πŸŽ‰ autocomplete for words beyond keywords
  • πŸŽ‰ new base methods nodeAtLine, getNodeInScopeAtCharIndex, getWordIndexAtCharacterIndex, getWordProperties, getWordBoundaryIndices, getAllWordBoundaryCoordinates
  • πŸŽ‰ on runtime programs: getAutocompleteWordsAt and getAllSuggestions
  • πŸŽ‰ getAutocompleteResults now provides descriptions, if present, along with completion word
  • πŸ₯ error highlight scope fixes
  • ⚠️ instead of getAutocompleteWords use getAutocompleteWordsAt

19.2.1 2019-04-20

  • πŸ₯ grammar sandbox bug on first visit

19.2.0 2019-04-20

  • πŸŽ‰ @highlightScope is now an enum for better checking and autocomplete
  • πŸŽ‰ CodeMirror now uses @highlightScope for styles.
  • πŸ₯ we sort @enum options to now match largest hit first
  • πŸ₯ fixed cache bug in @keywordTable
  • ⚠️ CodeMirror now uses @highlightScope for styles so colors may have changed.

19.1.0 2019-04-20

  • πŸŽ‰ custom constructors can now specify a "." nested path to the JS constructor
  • πŸŽ‰ added error printing in Grammar sandbox

19.0.0 2019-04-19

  • πŸŽ‰ CodeMirror support
  • πŸŽ‰ Tree Language Sandbox webpage using CodeMirror
  • πŸŽ‰ in Grammar files we now have support for different constructors for node and browser environments
  • ⚠️ in grammar files @constructor is now @constructors. Browser and nodejs constructors must be specified separately.

18.2.0 2019-04-11

  • πŸŽ‰ very basic toYaml method

18.1.3 2019-03-26

  • πŸŽ‰ more TypeScript typings

18.1.2 2019-03-25

  • πŸŽ‰ more TypeScript typings

18.1.1 2019-03-25

  • πŸ₯ added "types" field to package.json

18.1.0 2019-03-25

  • πŸŽ‰ now with d.ts files

18.0.0 2019-03-24

  • πŸŽ‰ basic .sublime-syntax file generation works. Scopes not yet integrated.
  • πŸŽ‰ added gen command to cli.js for generating syntax files
  • πŸŽ‰ added @highlightScope property to @keyword and @wordType in grammar language
  • πŸŽ‰ added @required feature to grammar with appropriate error messages
  • πŸŽ‰ added @single feature to grammar with appropriate error messages
  • πŸŽ‰ added @tags feature to grammar
  • ⚠️ @wordType > @regex with .? should now be .*
  • ⚠️ in @wordType > @regex now all @regex are enclosed by ^$ automatically
  • ⚠️ AbstractGrammarDefinitionNode: getDefinitionByName is now getKeywordDefinitionByName
  • ⚠️ _isOrExtendsAKeywordInScope is now isOrExtendsAKeywordInScope

17.1.3 2019-03-14

  • πŸ₯ added support for constructors with nested paths in grammar languages in browser

17.1.2 2019-03-14

  • πŸ₯ added support for spaces in filenames in langs-project

17.1.1 2019-03-13

  • πŸ₯ circular array check false positives when creating tree from Javascript object.

17.1.0 2019-03-13

  • ⚠️ getCatchAllNodeClass is now getCatchAllNodeConstructor
  • ⚠️ getRunTimeCatchAllNodeClass is now getRunTimeCatchAllNodeConstructor
  • πŸ₯ catchAllKeywords can now instantiate a custom class
  • πŸŽ‰ checking a grammar programmatically now throws an error a constructor path in a grammar file does not exist
  • 🧹 added tap-mocha-reporter for clearer test run output

17.0.0 2019-03-11

  • ⚠️ In TreeNode, parseNodeType is now getNodeConstructor
  • ⚠️ jtree.getParser is now jtree.getProgramConstructor
  • ⚠️ In .grammar files @parser is now @constructor
  • ⚠️ In grammar JS getParserClass is now getDefinedConstructor
  • ⚠️ In grammar JS getRootParserClass is now getRootConstructor
  • πŸŽ‰ moved BrowserScript and swarm, project and stamp languages into this project to avoid circular dependencies
  • πŸŽ‰ (temporary) getLanguage method for accessing included languages
  • πŸŽ‰ error message when you have an inheritance loop in grammar file
  • πŸ₯ line number error message regression fix
  • 🧹 minor CLI app refactor

16.0.1 2019-03-03

  • πŸ₯ minor migration fix

16.0.0 2019-03-03

  • 🧹 migrated to TypeScript

15.3.0 2019-03-01

  • πŸŽ‰ for convenience added map, forEach, filter, find and slice methods aliasing getChildren().map ...
  • πŸŽ‰ sortByColumns method
  • πŸŽ‰ predictGrammarFile method
  • πŸŽ‰ getInvalidKeywords method
  • πŸŽ‰ @abstract keyword in grammars
  • πŸŽ‰ @any keyword in grammars
  • πŸŽ‰ any, bit, bool, float, int default word types
  • πŸŽ‰ toDisk method in node.js version
  • πŸŽ‰ getOneHot method
  • πŸŽ‰ deleteColumn method
  • πŸŽ‰ getColumnNames method
  • πŸŽ‰ isBlankLine method
  • πŸŽ‰ isEmpty method
  • πŸŽ‰ deleteChildren method
  • πŸŽ‰ deleteDuplicates method
  • πŸŽ‰ deleteBlanks method
  • πŸŽ‰ getNodesByRegex method
  • πŸŽ‰ fromShape method
  • πŸŽ‰ getFiltered method
  • πŸŽ‰ added sample of iris dataset to static TreeNode for handy testing and exploring
  • πŸ₯ renameAll fix
  • ⚠️ getExpanded - if multiple parent nodes match, getExpanded will extend node with matching keyword
  • ⚠️ getProgramErrors() is now getProgramErrorMessages(). getProgramErrors() now returns err objects
  • 🧹 makeRandomTree method & updates to perf test pages
  • 🧹 Default sandbox port now 3333

15.2.0 2019-02-10

  • πŸŽ‰ added getNumberOfLines method
  • πŸŽ‰ GrammarProgram speedup 20%+
  • πŸŽ‰ getProgramErrors speedup 10x+
  • πŸŽ‰ toString speedup 5%+

15.1.0 2019-02-10

  • πŸŽ‰ 10x+ faster typechecking of "any" nodes
  • πŸŽ‰ 60% faster typechecking of other types
  • πŸŽ‰ 50% faster parsing for large trees
  • 🧹 sandbox cleanup
  • πŸŽ‰ added getProgramErrorsIterator() method
  • πŸŽ‰ experimental _getSyntaxTreeHtml() method

15.0.2 2019-02-07

  • πŸ₯ setChildren wasn't clearing cache
  • πŸ₯ findNodes wasn't recursing

15.0.1 2019-01-02

  • πŸ₯ Chrome wasn't always monotonically increasing perf.now due to precision

15.0.0 2018-12-01

  • πŸŽ‰ added toDataTable and fromDataTable methods
  • πŸŽ‰ added getSlice method
  • πŸŽ‰ added set method (to revert to original get/set behavior)
  • ⚠️ renamed findBeam to get
  • ⚠️ renamed getBeam to getContent
  • ⚠️ renamed getBeams to getContentsArray
  • ⚠️ removed undocumented getRest method
  • 🧹 renamed "garden" to "sandbox" for clarity
  • 🧹 moved "papers" to one folder

14.6.0 2018-09-23

  • πŸ₯ Fix for browsers removing monotonically increasing perf.now
  • πŸŽ‰ getChildren() now returns a copy of array enabling in loop deletes

14.5.1 2017-11-24

  • 🧹 removed dead code

14.5.0 2017-11-23

  • πŸŽ‰ standardized error messages into a grammar
  • πŸŽ‰ @parseWith wordType property

14.4.0 2017-11-19

  • πŸŽ‰ added @enum wordType

14.3.3 2017-11-17

  • πŸŽ‰ added toMarkdownTable methods

14.3.2 2017-11-16

  • πŸŽ‰ getNodesByLinePrefixes method

14.3.1 2017-11-14

  • πŸŽ‰ cases cli command

14.3.0 2017-11-13

  • πŸŽ‰ added macroExpand method
  • πŸŽ‰ hasWord method

14.2.0 2017-11-12

  • πŸŽ‰ added @version keyword to grammar
  • 🧹 renamed TreeGrammar.grammar to grammar.grammar
  • 🧹 removed ohayo constants

14.1.0 2017-11-11

  • πŸŽ‰ split check into check and checkAll commands
  • πŸŽ‰ compile cli command can now take a target extension

14.0.1 2017-11-11

  • 🧹 Moved dependencies to devDependencies

14.0.0 2017-11-10

  • ⚠️ renamed otree to jtree

13.0.0 2017-11-09

  • ⚠️ Tree Grammar switched to @wordType nodes for defining word types, no more implicit types
  • ⚠️ replaceNode now returns an array

12.2.1 2017-11-09

  • πŸ₯ bug fix in getExpanded

12.2.0 2017-11-09

  • πŸŽ‰ insertWord method
  • πŸ₯ fixes to usage reports
  • ⚠️ renamed getBeamParameters to getNodeColumnTypes

12.1.0 2017-11-09

  • ⚠️ getWordTypeLine is now getLineSyntax
  • ⚠️ getProgramWordTypeString is now getInPlaceSyntaxTree
  • πŸŽ‰ getTreeWithNodeTypes and getInPlaceSyntaxTreeWithNodeTypes methods for inspecting the parse

12.0.0 2017-11-09

  • ⚠️ grammar file grammar change, first node should be @grammar, keywords should be @keyword
  • ⚠️ getGraph now takes 2 params, use getGraph(0, 1) for previous behavior
  • ⚠️ getExpanded now takes 2 params, use getExpanded(0, 1) for previous behavior
  • πŸŽ‰ getNodeByColumn method

11.5.0 2017-11-08

  • πŸŽ‰ appendLine method
  • πŸŽ‰ insertLine method
  • ⚠️ append is now appendLineAndChildren
  • ⚠️ insert is now insertLineAndChildren
  • ⚠️ prepend is now prependLine and takes only 1 param
  • ⚠️ copyTo now requires second arg
  • ⚠️ toOutline now takes 0 args. use toMappedOutline to pass a mapping fn
  • ⚠️ fromCsv, fromSsv, fromTsv no longer take optional hasHeaders param. Use new fromDelimitedNoHeaders
  • ⚠️ fromDelimited now requires quoteChar param
  • ⚠️ toTable now accepts 0 params, use toFormattedTable to pass params
  • ⚠️ getPoint now takes no params, use getPointRelativeTo; getPathVector => getPathVectorRelativeTo
  • ⚠️ getKeywordPath now takes no params, use getKeywordPathRelativeTo
  • ⚠️ getStack, getRootNode now take no params
  • ⚠️ getWords now takes 0 params. use getWordsFrom
  • ⚠️ use getGraphByKey to getGraphByKey

11.4.1 2017-11-08

  • πŸŽ‰ export GrammarProgram

11.4.0 2017-11-08

  • ⚠️ getGrammarUsage is now getKeywordUsage
  • ⚠️ removed undocumented getNodeClasses, run, and getErrorCount methods

11.3.0 2017-11-07

  • πŸŽ‰ added support for putting multiple parse nodes in one file

11.2.3 2017-11-06

  • 🧹 TestCoverage 90.44% Smt 2137/2363 72.32% Brnch 384/531 85.37% Fn 496/581 91.89% Loc 2017/2195

11.2.2 2017-11-06

  • 🧹 updated ProjectLang

11.2.1 2017-11-06

  • πŸ₯ path fixes

11.2.0 2017-11-06

  • ⚠️ otree.getProgramClassFromGrammarFile is now otree.getParser
  • ⚠️ otree.AbstractGrammarBackedProgram is now otree.program

11.1.0 2017-11-06

  • πŸ₯ path and other fixes from otree move

11.0.0 2017-11-06

  • ⚠️ renamed TreeProgram to otree

10.1.2 2017-11-06

  • 🧹 rearranged code into base node and grammar backed folders

10.1.1 2017-11-05

  • πŸŽ‰ started Tree Garden web console
  • πŸ₯ Fixed create command line tool

10.1.0 2017-11-04

  • πŸ₯ parsing top level program class fix
  • πŸ₯ getNodeByColumns now works when search and target have different # of columns
  • 🧹 started tests for console, static, and grammar classes

10.0.1 2017-11-03

  • πŸ₯ static method path bug fixes

10.0.0 2017-11-03

  • πŸŽ‰ getNodeByColumns method
  • ⚠️ grammar file is now primary file, use static getProgramClassFromGrammarFile method to create a VM/compiler
  • ⚠️ languages.tree => grammars.tree
  • ⚠️ grammars.tree now points to grammar files, not index files

9.2.0 2017-11-03

  • ⚠️ TreeProgram.getGrammarErrors => TreeProgram.Tools.getGrammarErrors
  • ⚠️ TreeProgram.executeFile => TreeProgram.Tools.executeFile
  • 🧹 cleanup for making grammar files source of truth

9.1.0 2017-11-02

  • πŸŽ‰ refactored Tree Grammar to support compiler-compilers and vms in languages other than ES6
  • ⚠️ "@parseClass" => "@constructor js"
  • πŸ₯ @ char is now acceptable in filepaths

9.0.0 2017-11-02

  • πŸŽ‰ support for multiple compile targets
  • πŸŽ‰ CLI history command can show all history
  • πŸŽ‰ CLI check command now alternately accepts a language extension to check a collection
  • ⚠️ @targetExtension => @compiler, @compiled => @sub, @compiledIndentCharacter => @indentCharacter
  • ⚠️ @sub, @indentCharacter, @listDelimiter, @openChildren, @closeChildren moved under @compiler
  • ⚠️ compile method now requires a target extension
  • 🧹 renamed slot types to columnTypes and better error messaging for when graph expansion fails

8.6.0 2017-10-30

  • ⚠️ renamed @parameters to @columns in Grammar Tree Language

8.5.0 2017-10-30

  • πŸŽ‰ New usage command line tool
  • πŸŽ‰ New getGrammarUsage method

8.4.1 2017-10-28

  • πŸ₯ init the languages and history file on cli first use
  • 🧹 added a tiny bit of documentation to readme

8.4.0 2017-10-28

  • πŸŽ‰ added getNodeClasses method to TreeProgram to support multiple node classes in 1 file

8.3.1 2017-10-28

  • πŸ₯ expose TerminalNode and NonTerminalNode in browser distribution

8.3.0 2017-10-27

  • πŸŽ‰ replaceNode method
  • πŸŽ‰ getSiblings, getYoungerSiblings, getOlderSiblings methods

8.2.3 2017-10-27

  • πŸŽ‰ export TreeTerminalNode class
  • 🧹 minor cleanup of cli app

8.2.2 2017-10-26

  • 🧹 recursive dependency fix and console code cleanup

8.2.1 2017-10-26

  • πŸŽ‰ support absolute paths in grammar files

8.2.0 2017-10-26

  • πŸŽ‰ export TreeNonTerminalNode class
  • πŸŽ‰ support for relative paths in grammar files

8.1.0 2017-10-25

  • ⚠️ renamed fixedWidthTable method to toTable and changed default to left aligned.

8.0.1 2017-10-15

  • πŸ₯ fixed browser version

8.0.0 2017-10-15

  • πŸŽ‰ Create new Tree Languages using a tree grammar file
  • πŸŽ‰ Tree Console app
  • ⚠️ ImmutableNode no longer exposed on TreeProgram

7.2.0 2017-10-14

  • ⚠️ for use in browser, now use treeprogram.browser.js instead of treeprogram.js
  • 🧹 prep work for grammar and blaze library merger -- consoleApp and src directory

7.1.1 2017-9-17

  • πŸŽ‰ getErrors and getWordTypeLine methods
  • πŸ₯ fix for executeFile static method when more than one #! line.

7.1.0 2017-9-15

  • ⚠️ Symbol is now Keyword throughout. Same changes at 7.0.0, except substitute keyword for symbol.

7.0.0 2017-9-14

  • ⚠️ getNodeTypes is now getSymbolMap
  • ⚠️ getDefaultNodeType is now getCatchAllNodeClass
  • ⚠️ getBase is now getSymbol
  • ⚠️ getBasePath is now getSymbolPath
  • ⚠️ getBases is now getSymbols
  • ⚠️ pathVectorToBasePath is now pathVectorToSymbolPath
  • ⚠️ setBase is now setSymbol

6.1.3 2017-9-8

  • πŸŽ‰ added executeSync method
  • 🧹 removed outdated ETNs
  • 🧹 switched to Tap from Tape to get code coverage working again with nyc

6.1.2 2017-9-6

  • πŸ₯ bug fix in getCMTime

6.1.1 2017-8-27

  • πŸŽ‰ added getExpanded method

6.1.0 2017-8-25

  • πŸŽ‰ added getDefaultNodeType and getNodeTypes methods
  • πŸŽ‰ added default compile method
  • πŸ₯ updated outdated code in readme

6.0.0 2017-8-24

  • ⚠️ Renamed TreeNotation to TreeProgram.
  • ⚠️ github is now at breck7/treeprogram
  • ⚠️ npm install treenotation is now npm install treeprogram
  • πŸ₯ fixed timing bug in getTreeMTime

5.7.0 2017-8-24

  • πŸŽ‰ getWord can now take a negative int
  • πŸŽ‰ added static method executeFile and cli.js

5.6.2 2017-8-20

  • πŸ₯ child nodes can now inspect their parent's line at parse time to enable dependent types

5.6.1 2017-8-20

  • πŸ₯ stale index when using setLine or setBase methods

5.6.0 2017-8-18

  • ⚠️ base execute now returns a Promise.all that resolves when all children have resolves
  • πŸŽ‰ Added getIndentation method

5.5.0 2017-8-8

  • πŸŽ‰ Added getTreeMTime method

5.4.0 2017-8-8

  • ⚠️ getMTime now always returns a number (previously it could return undefined). Initializes lazily on first call.

5.3.0 2017-8-3

  • πŸŽ‰ Added nest static method

5.2.0 2017-8-1

  • πŸŽ‰ Added getInheritanceTree method

5.1.0 2017-7-25

  • πŸŽ‰ Added "relativeTo" parameter to: getPoint, isRoot, getRootNode, getStack, getStackString, getBasePath, getPathVector

5.0.1 2017-7-24

  • πŸ₯ getBasePath works

5.0.0 2017-7-24

  • ⚠️ getWI is now getZI for consistency with X,Y,Z convention.
  • ⚠️ getHead is now getBase
  • ⚠️ setHead is now setBase
  • ⚠️ pathVectorToPathName is now pathVectorToBasePath
  • ⚠️ getPathName is now getBasePath
  • ⚠️ getTail is now getBeam
  • ⚠️ setTail is now setBeam
  • ⚠️ findTail is now findBeam
  • ⚠️ pushTailAndChildren is now pushBeamAndChildren
  • ⚠️ getTailWithChildren is now getBeamWithChildren
  • ⚠️ setTailWithChildren is now setBeamWithChildren
  • ⚠️ getTails is now getBeams

4.1.2 2017-6-26

  • πŸŽ‰ Added setWord method

4.1.1 2017-6-26

  • πŸ₯ Bug fix in getPoint method

4.1.0 2017-6-20

  • ⚠️ removed toJavascript method on base class.

4.0.3 2017-6-20

  • πŸ₯ Reverted last.

4.0.2 2017-6-20

  • πŸ₯ Fix so Hakon works in browser

4.0.1 2017-6-20

  • πŸŽ‰ Added HTML, CSS and Unit Testing ETNs (I named them Bray, Hakon, and Wall).

4.0.0 2017-6-18

  • ⚠️ removed _getSize if any ETNs were using that
  • ⚠️ changes some output classes in toHtml() method
  • πŸŽ‰ getWords() now takes an optional starting WI location
  • πŸŽ‰ Final version of paper, mistakes and all.

3.10.0 2017-6-17

  • ⚠️ getAncestorNodes is now getStack
  • πŸŽ‰ Added getStackString method

3.9.2 2017-6-17

  • πŸŽ‰ getGraph method now also takes 0 params, in which case it uses word1.

3.9.1 2017-6-17

  • πŸŽ‰ Added getGraph method

3.9.0 2017-6-16

  • ⚠️ Removed TreeNode.ExecutableTreeNode. TreeNotation now has execute method by default.
  • ⚠️ getWord now ignores getSize. In fact, we'll probably ditch getSize.

3.8.0 2017-6-15

  • πŸŽ‰ toOutline now takes an optional mapping fn

3.7.4 2017-6-15

  • πŸ₯ setTailWithChildren Regression fix.

3.7.3 2017-6-15

  • πŸ₯ Fix for closure compiler

3.7.2 2017-6-15

  • πŸ₯ setChildren regression fix

3.7.1 2017-6-15

  • πŸ₯ ETN parsing regression fix

3.7.0 2017-6-15

  • ⚠️ expose TreeNotation now and not TreeNode
  • ⚠️ TreeNode.ExecutableTreeNode is now TreeNotation.ExecutableETN
  • ⚠️ TreeNotation.ImmutableTreeNode is now TreeNotation.ImmutableNode
  • πŸ₯ Fixed regression introduced in 3.6 in ETN parsing in parseString method
  • πŸŽ‰ Updated readme with an ETN example

3.6.0 2017-6-15

  • ⚠️ parseNode is now parseNodeType and only takes a line param.
  • ⚠️ getMTime() now returns undefined if the node hasn't been modified.
  • πŸŽ‰ Added more laziness to get a ~2.5x improvement in parse time. Parses about ~1M loc of basic TN a sec on test machine

3.5.3 2017-6-14

  • πŸŽ‰ Added getChildrenByNodeType method
  • πŸŽ‰ Expose a simple ExecutableTreeNode class
  • πŸ₯ Fixed bug when initiating from an ETN

3.5.2 2017-6-13

  • πŸŽ‰ Added getNext and getPrevious methods

3.5.1 2017-6-13

  • πŸŽ‰ Added getPoint method

3.5.0 2017-6-9

  • ⚠️ changed parseNode method to just return the new node class.

3.4.0 2017-6-6

  • ⚠️ removed reload method

3.3.0 2017-6-5

  • ⚠️ in the toHtml() method, the child nodes div now has class nodeChildren instead of nodeTree
  • ⚠️ pushTailAndTree is now pushTailAndChildren

3.2.1 2017-6-5

  • πŸŽ‰ Added getMTime method

3.2.0 2017-6-5

  • ⚠️ removed moveTo method. Use the new copyTo method follow by destroy.
  • ⚠️ destroy no longer returns the detached node.
  • πŸŽ‰ Experimental: expose ImmutableTreeNode
  • πŸŽ‰ Improvements to _parseNode(), increased test coverage, and reduced test code size

3.1.1 2017-6-2

  • πŸ₯ Regression fix in extend method

3.1.0 2017-6-1

  • ⚠️ removed every() method
  • πŸŽ‰ Added getTopDownArray (preorder), getChildrenFirstArray (postorder), getParentFirstArray(breadth first) methods

3.0.1 2017-5-30

  • πŸŽ‰ Added findTail method

3.0.0 2017-5-30

  • ⚠️ merged all subclasses into one TreeNode class.
  • ⚠️ getNodes is now getChildren
  • ⚠️ setName > setHead, setValue > setTail, getName > getHead, getValue > getTail
  • ⚠️ getNames > getHeads, getValues > getTails, setValue > setTail
  • ⚠️ removed seed methods
  • ⚠️ removed findTrees and findValues methods
  • ⚠️ removed tree next and prev methods
  • ⚠️ removed tree setText...do tree.touchNode().setTailWithChildren(text)
  • ⚠️ removed tree setTree...do tree.touchNode().setChildren()
  • ⚠️ removed tree setTail...do tree.touchNode().setTail()
  • ⚠️ removed tree getTail...do tree.getNode(path).getTail()
  • ⚠️ removed tree getTree...do tree.getNode(path).getTree()
  • ⚠️ removed tree getText...do tree.getNode(path).getText()
  • ⚠️ node setTree is now node setChildren
  • ⚠️ append now takes only 2 params, line and tree.
  • ⚠️ appendLine is now just append
  • ⚠️ getAncestorTrees is now getAncestorNodes
  • ⚠️ getText now getTailWithChildren
  • ⚠️ removed getTrees method.
  • ⚠️ removed tree clear method.
  • ⚠️ removed node initTree
  • ⚠️ removed treeAt method
  • ⚠️ insert now takes line and not head and tail params
  • ⚠️ pushValue is now pushTailAndTree
  • ⚠️ prepend method now takes line and not head and tail params
  • πŸŽ‰ Added insertNode public method
  • πŸ₯ Bug fix: toString no longer returns an empty line after you delete last node in a nested tree

2.3.0 2017-5-9

  • ⚠️ created abstract classes and language classes. PairTree = require("treenotation").PairTreeLanguage.PairTree
  • ⚠️ fromCsv and other from methods are now static methods on PairTreeLanguage, not PairTree.

2.2.4 2017-4-28

  • πŸ₯ Dist npm fix

2.2.3 2017-4-28

  • πŸŽ‰ Started using Prettier
  • πŸŽ‰ Swapped out Browserfy in favor of simple express router transform flow
  • πŸŽ‰ Created tasks folder in place of npm scripts
  • πŸŽ‰ Code cleanup: turned helper methods into statics

2.2.2 2017-4-17

  • πŸŽ‰ Added getAncestorTrees method to node.

2.2.1 2017-4-17

  • πŸŽ‰ Added getRootTree method to node.

2.2.0 2017-4-17

  • ⚠️ extend method on PairTree is now recursive.

2.1.1 2017-4-16

  • πŸ₯ Bug fix: fixed uncaught error when parsing malformed delimited input

2.1.0 2017-4-13

  • ⚠️ in base and pair, values are now converted to strings. Use a higher level language to preserve types.

2.0.3 2017-4-05

  • πŸŽ‰ Added prepublish hook

2.0.2 2017-4-05

  • πŸ₯ Bug fix in node.setTree method

2.0.1 2017-4-05

  • πŸ₯ NPM bundle fix

2.0.0 2017-4-05

  • πŸŽ‰ Made TreeNotation the root namespace and separated PairTree out as a sublanguage
  • ⚠️ new Tree() now needs to be new TreeNotation.PairTree() or just add a Tree = TreeNotation.PairTree
  • ⚠️ node.getPath is now node.getPathName
  • ⚠️ indexPathToNamePath is now pathVectorToPathName
  • ⚠️ node.getNodeParentTree is now node.getParentTree
  • ⚠️ tree.push is now tree.pushValue
  • ⚠️ removed tree.toggleValue
  • ⚠️ tree.toFixedWidth is now tree.toFixedWidthTable
  • ⚠️ node.getIndexPath is now node.getPathVector
  • ⚠️ removed tree.deleteNodeAt
  • ⚠️ tree.getTrees() no longer accepts a parameter.
  • ⚠️ tree.getValues() no longer accepts a parameter.
  • ⚠️ in html returned from tree.toHtml(), data-path is now data-pathVector
  • ⚠️ fromDelimiter is now fromDelimited
  • πŸŽ‰ Removed gulp devDependency. Switched to browserify.

1.2.2 2017-4-02

  • πŸŽ‰ Removed package.tree and fixed gulp version update script

1.2.1 2017-3-31

  • ⚠️ append, insert, prepend, push, and shift now return the new Tree Nodes.

1.1.1 2017-3-26

  • ⚠️ Removed each method

1.0.7 2017-3-25

  • πŸŽ‰ Added moveTo method on TreeNode

1.0.6 2017-3-19

  • πŸŽ‰ Added isTerminal, fromSeed, seedToTree, invert, remap, and toSeed methods

1.0.5 2017-3-17

  • πŸ₯ Version number generator fix.

1.0.4 2017-3-17

  • πŸ₯ Bug fix in node.setFromText

1.0.3 2017-3-15

  • πŸŽ‰ Added extend method

1.0.2 2017-3-02

  • πŸŽ‰ Initial release

View source