-
Notifications
You must be signed in to change notification settings - Fork 17
/
releaseNotes.scroll
1971 lines (1565 loc) · 78.5 KB
/
releaseNotes.scroll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
header.scroll
title Release Notes
printTitle
buildConcepts releaseNotes.csv releaseNotes.json releaseNotes.tsv
buildMeasures releaseNotesMeasures.tsv
Here's a list of the notable changes in the Scroll SDK.
style text-align: center;
Download as CSV | TSV | JSON
style text-align: center;
link releaseNotes.csv CSV
link releaseNotes.tsv TSV
link releaseNotes.json JSON
br
node_modules/scroll-cli/microlangs/changes.parsers
thinColumns 4
📦 95.0.0 2024-11-19
🎉 Parsers autocomplete cleanup
⚠️ BREAKING: (no one should be affected) removed unused extensions and compilesTo parsers in Parsers
📦 94.2.0 2024-11-16
🎉 added support to import content to footer.
🎉 refactored import code to enable future advanced functionality. may cause temporary perf regression.
📦 94.1.0 2024-11-15
🎉 upgraded `parsers.parsers` for latest scroll
📦 94.0.0 2024-11-13
🎉 renamed parsers in `parsers.parsers` to clean up namespace for users
⚠️ BREAKING: some parsers in `parsers.parsers` have been renamed
📦 93.0.0 2024-11-02
🎉 import now replaced "import" particles with "imported" particles which includes subparticle on results
⚠️ BREAKING: if using import, you will now get imported particles inserted
📦 92.0.0 2024-11-02
🎉 changed import behavior for better source maps
⚠️ BREAKING: (no one should be affected) instead of stripping the import line, import now prepends "// imported " and keeps original import line.
📦 91.0.1 2024-10-30
🏥 fixed regex in PFS that was matching Parsers in the middle of the line, not just suffixes
📦 91.0.0 2024-10-21
🎉 add support for gracefully handling importing non-existant files
📦 90.1.0 2024-10-12
🎉 added `parserIdIndex`
🎉 `usesParser` now recurses
📦 90.0.0 2024-10-12
🎉 added `cue` setter
🎉 added `usesParser` method
⚠️ BREAKING: `firstAtom` is now called `cue` everywhere
📦 89.0.0 2024-10-12
⚠️ BREAKING: `crux`, a "temporary" word that lasted many years, is now "cue"
📦 88.0.0 2024-10-08
⚠️ BREAKING: `getIndex()` is now just `index`
📦 87.1.0 2024-10-02
🎉 added `section` getter
🎉 added `getParticles` alias to `findParticles`
🎉 added `isLast` getter
🎉 added `isFirst` getter
🎉 added `isBlank` getter
📦 87.0.0 2024-9-15
🎉 Reduced 2 concepts "cells" and "words" to one concept: atoms
⚠️ BREAKING: MAJOR Breaks! Roughly rename Cell > Atom. cell > atom. Word > Atom. word > atom.
📦 86.0.0 2024-9-14
🎉 Switched from "children" to the term "subparticles"
⚠️ BREAKING: Generally rename children > subparticles, child => subparticle
⚠️ BREAKING: childrenToString > subparticlesToString
⚠️ BREAKING: appendLineAndChildren > appendLineAndSubparticles
⚠️ BREAKING: getChildrenByParser > getSubparticlesByParser
⚠️ BREAKING: setContentWithChildren > setContentWithSubparticles
⚠️ BREAKING: setChildren > setSubparticles
⚠️ BREAKING: getChildren > getSubparticles
⚠️ BREAKING: getDelimitedChildrenAsParticles > getDelimitedSubparticlesAsParticles
⚠️ BREAKING: insertLineAndChildren > insertLineAndSubparticles
⚠️ BREAKING: predictChildren > predictSubparticles
⚠️ BREAKING: contentWithChildren > contentWithSubparticles
⚠️ BREAKING: getLineOrChildrenModifiedTime > getLineOrSubparticlesModifiedTime
⚠️ BREAKING: getChildInstancesOfParserId > getSubparticleInstancesOfParserId
📦 85.2.0 2024-9-5
🎉 Placeholder support in codemirror
🎉 More concise readme generation
📦 85.1.0 2024-9-4
🎉 Add underlying support for quickImports in Scroll/Parsers.
📦 85.0.0 2024-9-1
🏥 renamed a few remaining uses of "ScrollNotation" to Particles.
📦 84.0.0 2024-8-29
⚠️ BREAKING: This is a MAJOR rewrite of the ScrollSDK.
⚠️ BREAKING: Scroll Notation is now Particles
⚠️ BREAKING: Nodes/Trees are now referred to universally as Particles.
⚠️ BREAKING: EVERYWHERE the atom tree or node was used, now we use the atom particle.
📦 83.1.0 2024-8-26
🎉 Parsers: tag parsers for better documentation
📦 83.0.0 2024-8-26
🎉 Parsers: better documentation
⚠️ BREAKING: (no one should be affected) `frequency` in Parsers is now `popularity`
📦 82.0.0 2024-8-25
🎉 Parsers: better documentation
⚠️ BREAKING: (no one should be affected) removed `versionParser` parser from Parsers
📦 81.1.1 2024-8-25
🏥 npm fix
📦 81.1.0 2024-8-25
🎉 Parsers: better documentation
🎉 Parsers: remove long deprecated _extendsJsClass and _rootParserJsHeaderParser cruft
📦 81.0.0 2024-8-25
⚠️ BREAKING: `highlightScope` is now called `paint` globally
⚠️ BREAKING: removed `sortTemplate`. Use `sortIndex` in Scroll instead.
📦 80.5.0 2024-8-06
🎉 Parsers: added `getRunTimeEnumOptionsForValidation`
📦 80.4.0 2024-8-02
🎉 Parsers: add support for exponential notation to numberAtoms.
📦 80.3.0 2024-7-29
🎉 added `makeError` method to ParserBackedNode
📦 80.2.0 2024-7-10
🎉 now the ScrollSDK tools can be used straight from the WWS ~scroll/sdk/index.html
📦 80.1.1 2024-7-02
🏥 tfs fix
📦 80.1.0 2024-7-02
🎉 added getCTime and stats to ParticleFileSystem
📦 80.0.0 2024-6-19
⚠️ BREAKING: the `Grammar` language is now called `Parsers`. This is a massive change but a simple Grammar/Parsers and grammar/parsers find/replace should update any affected code.
📦 79.0.0 2024-6-18
🎉 ParticleFileSystem now supports atom parsers
⚠️ BREAKING: ParticleFileSystem now expects parsers to use the `.parsers` file extension instead of `.grammar`
⚠️ BREAKING: (no one should be affected) to use the previous "// parsersOnly" perf boost, end file in `.parsers`
📦 78.0.0 2024-5-30
🎉 jtree is now called the Scroll SDK
⚠️ BREAKING: jtree => scrollsdk
⚠️ BREAKING: Tree Notation is now called Particles
📦 77.1.1 2024-5-28
🏥 attempt a Windows bug fix
📦 77.1.0 2024-5-13
🎉 TL Designer can now take a `programUrl` as well.
📦 77.0.0 2024-5-08
🎉 `assembleFile` (formerly `evaluateImports`) is now faster by stripping Parser Definitions from assembled files, using them only in the returned parsers. (There are still many speed improvements to be had here)
⚠️ BREAKING: The `ParticleFileSystem.evaluateImports` method is now `ParticleFileSystem.assembleFile`, and the interface of the returned object has changed.
📦 76.2.0 2024-5-03
🎉 only ship bare minimum files in npm package
📦 76.1.0 2024-5-03
🎉 only ship bare minimum files in npm package
📦 76.0.0 2024-5-03
🎉 all remaining dependencies moved to `devDependencies`
📦 75.2.0 2024-5-03
🎉 fewer dependencies
📦 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: `ParticleFileSystem.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 `ParticleFileSystem` 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 Languages as small simple parsers combined.
⚠️ BREAKING:
- Tree Langauges:
- grammarNode, hakonNode, etc. > grammarParser, hakonParser
- Particle
- createParser > createParserCombinator
- getAncestorByNodeConstructor
- Particle.Parser > Particle.ParserCombinator
- getChildInstancesOfNodeTypeId > getSubparticleInstancesOfParserId
- findAllNodesWithNodeType > findAllNodesWithParser
- ParsersCompiler:
- compileParsersFileAtPathAndReturnRootConstructor > compileParsersFileAtPathAndReturnRootParser
- Parsers.ts:
- rootNodeTypeDefinitionNode > rootParserDefinition
- invalidNodeTypes > invalidParsers
- getNodeTypeUsage > getParserUsage
- asAtomTypeParticlesWithNodeConstructorNames > asAtomTypeParticlesWithParserIds
- toPreludeAtomTypeParticlesWithNodeConstructorNames > toPreludeAtomTypeParticlesWithParserIds
- asTreeWithNodeTypes > asTreeWithParsers
- nodeTypeId > parserId
- topNodeTypeDefinitions > topParserDefinitions
- nodeTypeLineage > parserLineage
- validConcreteAndAbstractParticleTypeDefinitions > validConcreteAndAbstractParserDefinitions
- rootNodeTypeId > rootParserId
- compileAndReturnRootConstructor > compileAndReturnRootParser
- ParticleComponentFramework:
- AbstractParticleComponent > AbstractParticleComponentParser
⚠️ BREAKING: See Grammar Release Notes for upgrading Grammar files
link langs/grammar/releaseNotes.html Grammar Release Notes
📦 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 `cuePathAsColumnName` 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
- getAtomBreakSymbol > atomBreakSymbol
- 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
⚠️ Big changes to Grammar. See the new Grammar Release Notes.
link langs/grammar/releaseNotes.html Grammar Release Notes
📦 69.4.1 2023-3-11
🏥 fix bug in `Disk.writeObjectToDisk`
📦 69.4.0 2023-3-11
🎉 new util methods upstreamed: `Utils.isAbsoluteUrl`, `Particle.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
⚠️ Breaking: `TrueBase` and `tql` are now in the repo `https://github.com/breck7/truebase` and npm package `truebase`.
📦 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
🎉 Particle: added `quickCache`
🎉 TrueBase: upstreamed work from pldb. New methods and getters are:
TrueBaseFolder:
loop
atoms makeId getFile rename createFile searchIndex
javascript `<code>${item}</code>`
join
TrueBaseFile:
loop
atoms sort prettifyAndSave parsed updatePermalinks names linksToOtherFiles
javascript `<code>${item}</code>`
join
TrueBaseServer:
loop
atoms applyPatch validateSubmission
javascript `<code>${item}</code>`
📦 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.
⚠️ Particle: This is the first of the *getter releases*. Start the long overdue switch to Javascript getters for `get` methods with zero params.
table
printTable
data
Before After
getParent() parent
getContent() content
getRootNode() root
getAtoms() atoms
getFirstAtom() firstAtom
📦 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
🎉 Particle: 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.
🏥 Particle: renamed current `has` to `hasFirstAtom` 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.
🎉 Grammar: constants are now available on the grammar definition nodes at runtime in addition to instance nodes.
⚠️ BREAKING: TrueBaseServer has been rewritten and basic search has been replaced by TQL search.
📦 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.
⚠️ BREAKING: Replace all `jtree.getVersion()` with `Particle.getVersion()`
⚠️ BREAKING: `products/TreeNotationCodeMirrorMode.js` is now `products/ParsersCodeMirrorMode.js`
⚠️ BREAKING: The bundled file `jtree.browser.js` is now deprecated. That file will be kept for now (for external links) but will no longer be updated and will be removed in a future version. Include exactly what you need.
Before:
code
<script src="../products/jtree.browser.js"></script>
After: (to get everything that was previously in the bundle)
code
<script src="../products/Utils.browser.js"></script>
<script src="../products/Particle.browser.js"></script>
<script src="../products/Parsers.ts.browser.js"></script>
<script src="../products/ParsersCodeMirrorMode.browser.js"></script>
⚠️ BREAKING: The `jtree` namespace is no more. Include exactly what you need:
Before:
code
const {jtree} = require("jtree")
const tree = new jtree.Particle("hello world")
After:
code
const {Particle} = require("jtree/products/Particle.js")
const tree = new Particle("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: Parsers.js, Particle.js, TestRacer.js, ParsersCompiler.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 `Particle.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.
⚠️ BREAKING: TrueBaseServer is now exported from `trueBaseServer.node.js` and has been rewritten
⚠️ BREAKING: SearchServer is now exported from `trueBaseServer.node.js`
🎉 New class: `TrueBaseBuilder` and rewritten class `TrueBaseServer`
📦 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 atom `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 atomCheckWithProgressBar; 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, uniqueFirstAtom (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 cueFromId
📦 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
🎉 pcf: 60% faster rendering
🎉 pcf/stump: removed jquery dependency
🏥 designer & sandbox regression fixes
⚠️ stump: removed `setStumpNodeCss`
⚠️ pcf: by default html elements are now added w/o surrounding whitespace when mounted
⚠️ pcf: removed `setShadowCss`
⚠️ pcf: removed makeResizable, makeDraggable, makeSelectable, _getJQElement
⚠️ pcf: middle param to onShadowEvent dropped. use onShadowEventWithSelector instead.
⚠️ pcf: triggerShadowEvent, insertHtmlNode, getShadowCss, getShadowPosition implementations changed
⚠️ pcf: shadowHasClass, getShadowValue, triggerShadowEvent, addClassToShadow, removeClassFromShadow implementations changed
⚠️ pcf: onShadowEvent, offShadowEvent, toggleShadow, setShadowCss implementations changed
⚠️ pcf: getShadowOuterHeight, getShadowOuterWidth, getShadowWidth, getShadowHeight, getShadowOffset implementations changed
📦 52.1.0 2021-07-22
🏥 pcf bug fix
📦 52.0.0 2021-07-22
🎉 stump/pcf: ~200% faster when inserting lots of elements
🎉 pcf: added keyUpCommand support
⚠️ pcf: forceRepaint function now a no-op
⚠️ pcf: getWindowSize, getDocumentSize, setCopyHandler, setCutHandler, setResizeEndHandler implementation change
⚠️ pcf: getWillowBrowser is now "willowBrowser" getter
⚠️ pcf: getShadowElement is now "shadowElement" getter
⚠️ pcf: removed getShadowHtml
📦 51.7.0 2021-07-22
🎉 perf improvement in PCF—don't insert CSS nodes if no CSS
📦 51.6.0 2021-06-25
🎉 bumped pick, setProperties, getOneOf, and setPropertyIfMissing to root ParticleClass
⚠️ extract method on TrueBase is now "pick" on Particle
📦 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
🏥 PCF 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 atom 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 compileParsersFileAtPathAndReturnRootConstructor
⚠️ jtree.ParsersProgram is now jtree.HandParsersProgram
⚠️ getParsersProgram is now getHandParsersProgram
⚠️ _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.compileParsersAndCreateProgram
⚠️ 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
⚠️ PCF: removed AbstractParticleComponent.startApp and getDefaultStartState methods. Use startWhenReady and start() pattern instead.
⚠️ PCF: getNextOrPrevious is now on TreeUtils
⚠️ PCF: no more DataShadowEvents
⚠️ PCF: 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
⚠️ PCF: no longer exports WillowConstants
⚠️ PCF: getWillowProgram is now getWillowBrowser
⚠️ PCF: isLoaded() is now checked before calling particleComponentDidUpdate and particleComponentDidMount
⚠️ 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
⚠️ getAllAtomBoundaryCoordinates now returns type with members lineIndex and charIndex instead of y and x
⚠️ getAtomBoundaryIndices is now getAtomBoundaryCharIndices
🏥 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 PCF
⚠️ removed AbstractCommander concept from PCF. Move methods with a Command suffix for methods on PCF classes.
📦 45.1.0 2019-11-20
🎉 PCF added getTextContent to ParticleComponent 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
🎉 toDefinitionLineNumberParticles 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
⚠️ getInPlaceAtomTypeParticles: toAtomTypeParticles, getInPlaceAtomTypeParticlesWithNodeConstructorNames: toAtomTypeParticlesWithNodeConstructorNames, getInPlaceHighlightScopeTree: toHighlightScopeTree, getInPlacePreludeAtomTypeParticlesWithNodeConstructorNames: toPreludeAtomTypeParticlesWithNodeConstructorNames
🏥 toSideBySide fix for when later trees are longer than earlier ones
📦 44.1.0 2019-11-05
🎉 added stamp command to commandLineApp tool
🎉 added produceProductFromInstructionsParticles and buildBuilder to abstractBuilder
🏥 bug where if a string contained __proto__ or constructor it was parsing incorrectly
📦 44.0.3 2019-11-02
🏥 in PCF 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 PCF
📦 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 ParticleComponentFramework. Update the lines is a better pattern.
⚠️ format() is now evalTemplateString()
⚠️ in Grammar: match is now "cue" for now
⚠️ getTopNodeTypeIds is now getTopNodeTypeDefinitions
⚠️ commandLineApp.prettify is now format
⚠️ changed getCssClassNames behavior in PCF
⚠️ 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 getAtomBreakSymbol, getXI is getEdgeSymbol
🧹 PCF debugger work
📦 42.2.0 2019-10-04
🎉 getNumberOfAtoms 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 Particle 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 synthesizeAtom
🧹 moved papers to treenotation/research
📦 41.2.0 2019-09-24
🎉 without method
📦 41.1.0 2019-09-18
🎉 error handling in PCF commands
🏥 uncaught command error displaying in Designer app
🏥 generateSimulatedData regression fix and tests
📦 41.0.0 2019-09-17
🎉 postfix atom parsing
🎉 omnifix atom parsing
🎉 atomParser keyword in Grammar Language
🎉 chuck demo lang demonstrating postfix atom parsing
🎉 improved Explain visualization on designer app
🏥 poop demo lang now implements omnifix
⚠️ removed _getGrammarBackedAtomArray method and replaced with new AtomParser 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 PCF 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
🧹 ParticleComponentFramework work
🧹 builder improvements
📦 40.2.0 2019-09-11
🎉 getInPlacePreludeAtomTypeParticlesWithNodeConstructorNames
🎉 generateSimulatedData
🎉 designer app - simulate data and explain roots buttons
🎉 explain 2D visualizer in designer app
🏥 highlighting fix for regression caused by blank atoms fix
🏥 generateSimulatedData improvements
🧹 migrated Sandbox and Designer apps to PCF
📦 40.1.0 2019-09-08
🏥 missing atoms now trigger "MissingAtom" error instead of "InvalidAtom"
🏥 fixed bug in codemirror where a missing atom would break syntax highlighting of remaining atoms
🏥 bug fix in Disk
🏥 added GitHub link and show keyboard shortcuts by default in SweeperCraft
📦 40.0.0 2019-09-03
⚠️ removed "firstAtomType" property. Now you must specifically add a atom for the firstAtomType for keyword Languages. langs/grammar/GrammarUpgrader.ts should be able to automatically upgrade most grammars without manual intervention.
🎉 default highlightScopes for basic atomTypes
🏥 fixes from reducing complexity of ExtendibleParticle and firstAtomType
📦 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.scroll
🧹 started worldWideTypes folder
🧹 PCF tests now included in npm test
📦 38.2.0 2019-08-28
🎉 appendSibling base method
🎉 ParticleComponentFramework 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 ParsersProgram
🎉 toBundle method on ParsersProgram
⚠️ removed "anyFirstAtom". Now just use "anyAtom"
🏥 anyAtom now always added to inferred grammar
🏥 various fixes to make inferring prefix grammars more robust
🧹 now run UnknownParsersProgram 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)
⚠️ UnknownParsersProgram "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 (UnknownParsersProgram) now predicts base atom 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 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: getAtomsAsSet, appendAtomIfMissing, addObjectsAsDelimited, setSubparticlesAsDelimited, 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 particleComponent 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 enumFromAtomTypes
🎉 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 `atomType int` do `integerAtom`
🎉 findAllAtomsWithAtomType and findAllNodesWithNodeType methods in Grammar Programs which are like our versions of "findAllReferences"
🎉 getAllTypedAtoms method in Grammar Programs
🏥 removed all "parsersPath" 2nd params to new jtree.ParsersProgram(grammarCode, gammarPath), since it is no longer used.
⚠️ Javascript code and compiler nodes that previously referred to atomTypes 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 enumFromAtomTypes and accepts any atomTypeId
⚠️ atomTypes that ended in "Atom" now end in "Atom".
⚠️ removed public "getFirstAtomMap" method.
⚠️ removed "updateNodeTypeIds" method. Use findAllAtomsWithAtomType 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
⚠️ getConcreteAndAbstractParticleTypeDefinitions is now getValidConcreteAndAbstractParticleTypeDefinitions
⚠️ 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