Release Notes

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

75.1.1 2023-5-11

75.1.0 2023-4-23

75.0.0 2023-4-13

74.3.1 2023-4-13

74.3.0 2023-4-13

74.2.0 2023-4-12

74.1.1 2023-4-9

74.1.0 2023-4-9

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.

73.0.1 2023-4-2

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.

72.2.0 2023-3-31

72.1.0 2023-3-31

72.0.0 2023-3-31

71.0.2 2023-3-30

71.0.1 2023-3-30

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.

70.0.0 2023-3-28

69.4.1 2023-3-11

69.4.0 2023-3-11

69.3.1 2023-3-7

69.3.0 2023-3-3

69.2.1 2023-3-2

69.2.0 2023-3-2

69.1.0 2023-2-28

69.0.0 2023-2-23

68.0.0 2023-2-22

67.4.0 2023-2-19

67.3.0 2023-2-17

TrueBaseFolder:

makeId getFile rename createFile searchIndex

TrueBaseFile:

sort prettifyAndSave parsed updatePermalinks names linksToOtherFiles

TrueBaseServer:

applyPatchvalidateSubmission

67.2.0 2023-2-12

67.1.0 2023-2-10

67.0.0 2023-2-9

66.1.0 2023-2-7

66.0.0 2023-2-7

Before After
getParent() parent
getContent() content
getRootNode() root
getWords() words
getFirstWord() firstWord

65.4.0 2023-2-6

65.3.0 2023-2-6

65.2.0 2023-2-6

65.1.0 2023-2-4

65.0.2 2023-2-3

65.0.1 2023-2-3

65.0.0 2023-2-3

64.4.0 2023-2-1

64.3.0 2023-1-31

64.2.0 2023-1-31

64.1.0 2023-1-31

64.0.1 2023-1-30

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

62.1.0 2023-1-12

62.0.0 2023-1-11

61.4.1 2023-1-8

61.4.0 2023-1-7

61.3.0 2023-1-7

61.2.0 2023-1-5

61.1.0 2023-1-5

61.0.1 2023-1-4

61.0.0 2023-1-4

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

59.1.1 2022-12-03

59.1.0 2022-12-02

59.0.0 2022-10-10

58.0.0 2022-10-10

57.0.0 2022-10-10

56.0.1 2022-09-26

56.0.0 2022-08-31

55.1.1 2022-08-18

55.1.0 2022-08-02

55.0.0 2022-08-02

54.2.1 2022-07-27

54.2.0 2022-07-27

54.1.0 2022-07-25

54.0.0 2022-07-24

53.7.1 2022-07-20

53.7.0 2022-07-20

53.6.0 2022-07-14

53.5.1 2022-07-12

53.5.0 2022-07-12

53.4.0 2022-07-12

53.3.0 2022-06-17

53.2.0 2022-06-15

53.1.0 2022-01-18

53.0.0 2021-07-27

52.1.0 2021-07-22

52.0.0 2021-07-22

51.7.0 2021-07-22

51.6.0 2021-06-25

51.5.1 2021-05-05

51.5.0 2021-03-26

51.4.0 2021-03-12

51.3.0 2021-02-18

51.2.1 2021-02-13

51.2.0 2021-02-13

51.1.0 2021-02-11

51.0.0 2021-02-08

50.2.0 2021-02-07

50.1.0 2021-02-07

50.0.0 2020-12-20

49.8.0 2020-03-01

49.7.0 2020-02-08

49.6.1 2020-02-03

49.6.0 2020-01-24

49.5.0 2020-01-03

49.4.0 2019-12-12

49.3.0 2019-12-12

49.2.0 2019-12-11

49.1.0 2019-12-09

49.0.1 2019-12-09

49.0.0 2019-12-08

48.1.0 2019-12-06

48.0.0 2019-12-02

47.1.0 2019-11-29

47.0.0 2019-11-22

46.1.0 2019-11-22

46.0.0 2019-11-20

45.1.0 2019-11-20

45.0.1 2019-11-13

45.0.0 2019-11-08

44.1.0 2019-11-05

44.0.3 2019-11-02

44.0.2 2019-11-02

44.0.1 2019-11-02

44.0.0 2019-11-01

43.0.0 2019-10-07

42.2.0 2019-10-04

42.1.0 2019-10-03

42.0.0 2019-10-01

41.2.0 2019-09-24

41.1.0 2019-09-18

41.0.0 2019-09-17

40.3.0 2019-09-16

40.2.0 2019-09-11

40.1.0 2019-09-08

40.0.0 2019-09-03

39.6.0 2019-09-03

39.5.0 2019-09-01

39.4.0 2019-08-31

39.3.0 2019-08-31

39.2.0 2019-08-31

39.1.0 2019-08-30

39.0.0 2019-08-30

38.2.0 2019-08-28

38.1.0 2019-08-23

38.0.1 2019-08-17

38.0.0 2019-08-17

37.1.0 2019-08-10

37.0.0 2019-08-08

36.2.0 2019-08-01

36.1.0 2019-07-31

36.0.2 2019-07-30

36.0.1 2019-07-30

36.0.0 2019-07-30

35.1.0 2019-07-25

35.0.1 2019-07-25

35.0.0 2019-07-24

34.2.0 2019-07-21

34.1.0 2019-07-19

34.0.0 2019-07-16

33.0.2 2019-07-15

33.0.1 2019-07-15

33.0.0 2019-07-10

32.0.0 2019-07-07

31.0.0 2019-07-05

30.0.0 2019-07-03

29.0.0 2019-07-02

28.0.0 2019-07-02

27.2.0 2019-06-26

27.1.0 2019-06-25

27.0.0 2019-06-23

26.5.0 2019-06-23

26.4.0 2019-06-23

26.3.0 2019-06-23

26.2.0 2019-06-22

26.1.1 2019-06-21

26.1.0 2019-06-21

26.0.2 2019-06-21

26.0.1 2019-06-21

26.0.0 2019-06-21

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

25.1.0 2019-05-29

25.0.0 2019-05-28

24.2.0 2019-05-27

24.1.0 2019-05-27

24.0.0 2019-05-21

23.2.1 2019-05-21

23.2.0 2019-05-21

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

23.0.1 2019-05-20

23.0.0 2019-05-20

22.3.0 2019-05-16

22.2.0 2019-05-16

22.1.1 2019-05-16

22.1.0 2019-05-16

22.0.0 2019-05-15

21.0.0 2019-05-04

20.0.0 2019-04-30

19.5.1 2019-04-26

19.5.0 2019-04-25

19.4.0 2019-04-24

19.3.2 2019-04-23

19.3.1 2019-04-22

19.3.0 2019-04-22

19.2.1 2019-04-20

19.2.0 2019-04-20

19.1.0 2019-04-20

19.0.0 2019-04-19

18.2.0 2019-04-11

18.1.3 2019-03-26

18.1.2 2019-03-25

18.1.1 2019-03-25

18.1.0 2019-03-25

18.0.0 2019-03-24

17.1.3 2019-03-14

17.1.2 2019-03-14

17.1.1 2019-03-13

17.1.0 2019-03-13

17.0.0 2019-03-11

16.0.1 2019-03-03

16.0.0 2019-03-03

15.3.0 2019-03-01

15.2.0 2019-02-10

15.1.0 2019-02-10

15.0.2 2019-02-07

15.0.1 2019-01-02

15.0.0 2018-12-01

14.6.0 2018-09-23

14.5.1 2017-11-24

14.5.0 2017-11-23

14.4.0 2017-11-19

14.3.3 2017-11-17

14.3.2 2017-11-16

14.3.1 2017-11-14

14.3.0 2017-11-13

14.2.0 2017-11-12

14.1.0 2017-11-11

14.0.1 2017-11-11

14.0.0 2017-11-10

13.0.0 2017-11-09

12.2.1 2017-11-09

12.2.0 2017-11-09

12.1.0 2017-11-09

12.0.0 2017-11-09

11.5.0 2017-11-08

11.4.1 2017-11-08

11.4.0 2017-11-08

11.3.0 2017-11-07

11.2.3 2017-11-06

11.2.2 2017-11-06

11.2.1 2017-11-06

11.2.0 2017-11-06

11.1.0 2017-11-06

11.0.0 2017-11-06

10.1.2 2017-11-06

10.1.1 2017-11-05

10.1.0 2017-11-04

10.0.1 2017-11-03

10.0.0 2017-11-03

9.2.0 2017-11-03

9.1.0 2017-11-02

9.0.0 2017-11-02

8.6.0 2017-10-30

8.5.0 2017-10-30

8.4.1 2017-10-28

8.4.0 2017-10-28

8.3.1 2017-10-28

8.3.0 2017-10-27

8.2.3 2017-10-27

8.2.2 2017-10-26

8.2.1 2017-10-26

8.2.0 2017-10-26

8.1.0 2017-10-25

8.0.1 2017-10-15

8.0.0 2017-10-15

7.2.0 2017-10-14

7.1.1 2017-9-17

7.1.0 2017-9-15

7.0.0 2017-9-14

6.1.3 2017-9-8

6.1.2 2017-9-6

6.1.1 2017-8-27

6.1.0 2017-8-25

6.0.0 2017-8-24

5.7.0 2017-8-24

5.6.2 2017-8-20

5.6.1 2017-8-20

5.6.0 2017-8-18

5.5.0 2017-8-8

5.4.0 2017-8-8

5.3.0 2017-8-3

5.2.0 2017-8-1

5.1.0 2017-7-25

5.0.1 2017-7-24

5.0.0 2017-7-24

4.1.2 2017-6-26

4.1.1 2017-6-26

4.1.0 2017-6-20

4.0.3 2017-6-20

4.0.2 2017-6-20

4.0.1 2017-6-20

4.0.0 2017-6-18

3.10.0 2017-6-17

3.9.2 2017-6-17

3.9.1 2017-6-17

3.9.0 2017-6-16

3.8.0 2017-6-15

3.7.4 2017-6-15

3.7.3 2017-6-15

3.7.2 2017-6-15

3.7.1 2017-6-15

3.7.0 2017-6-15

3.6.0 2017-6-15

3.5.3 2017-6-14

3.5.2 2017-6-13

3.5.1 2017-6-13

3.5.0 2017-6-9

3.4.0 2017-6-6

3.3.0 2017-6-5

3.2.1 2017-6-5

3.2.0 2017-6-5

3.1.1 2017-6-2

3.1.0 2017-6-1

3.0.1 2017-5-30

3.0.0 2017-5-30

2.3.0 2017-5-9

2.2.4 2017-4-28

2.2.3 2017-4-28

2.2.2 2017-4-17

2.2.1 2017-4-17

2.2.0 2017-4-17

2.1.1 2017-4-16

2.1.0 2017-4-13

2.0.3 2017-4-05

2.0.2 2017-4-05

2.0.1 2017-4-05

2.0.0 2017-4-05

1.2.2 2017-4-02

1.2.1 2017-3-31

1.1.1 2017-3-26

1.0.7 2017-3-25

1.0.6 2017-3-19

1.0.5 2017-3-17

1.0.4 2017-3-17

1.0.3 2017-3-15

1.0.2 2017-3-02

View source