Skip to content

Latest commit

 

History

History
321 lines (229 loc) · 13.6 KB

CHANGELOG.md

File metadata and controls

321 lines (229 loc) · 13.6 KB

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.

2.4.52 (2024-08-29)

⏱ Performance improvements

  • update ParseState & ParseScope handling (result: 1.2-1.6x faster) (c94b5cf)
    • refactor ParseState/Scope as data classes (keep same structure)
    • minor update scope transforms
    • update tests

2.4.43 (2024-06-21)

♻️ Refactoring

  • rename various rest args to be more semantically meaningful (8088a56)
  • enforce uniform naming convention of internal functions (56992b2)

2.4.5 (2023-11-09)

♻️ Refactoring

  • update all tests (packages A-S) (e3085e4)

2.4.0 (2023-09-19)

🚀 Features

  • add ParseContext.peakDepth, update recursion limit (0a2b7db)

2.3.0 (2023-09-06)

🚀 Features

2.2.0 (2022-06-15)

🚀 Features

  • add new transformers (json, numbers) (2087131)
    • add xfJson(), json() transform
    • add int(), hexInt(), float() transform syntax sugar
    • add json as built-in tx for grammar

2.1.8 (2022-06-09)

♻️ Refactoring

  • various (minor) TS4.7 related updates/fixes (9d9ecae)

2.1.5 (2022-03-11)

♻️ Refactoring

2.1.0 (2021-11-17)

🚀 Features

  • Using workspaces for local tools (bf7a404) Improving the overall build ergonomics
    • introduced a tools workspaces
    • imported it in all needed packages/examples
    • inclusive project root

♻️ Refactoring

  • testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.

2.0.1 (2021-10-13)

♻️ Refactoring

  • update imports in all pkgs (5fa2b6f)
    • add .js suffix for all relative imports
  • update imports in all tests/pkgs (effd591)

2.0.0 (2021-10-12)

🛑 Breaking changes

  • major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
  • BREAKING CHANGE: discontinue CommonJS & UMD versions
    • only ESM modules will be published from now on
    • CJS obsolete due to ESM support in recent versions of node:
      • i.e. launch NodeJS via:
      • node --experimental-specifier-resolution=node --experimental-repl-await
      • in the node REPL use await import(...) instead of require()
    • UMD obsolete due to widespread browser support for ESM Also:
    • normalize/restructure/reorg all package.json files
    • cleanup all build scripts, remove obsolete
    • switch from mocha to @thi.ng/testament for all tests

♻️ Refactoring

  • update all tests in all pkgs (8b582bc)
  • update imports (138571a)
  • update deps & imports in various pkgs (e1cf29e)
    • largely related to recent updates/restructuring of these packages:
      • api
      • defmulti
      • errors
      • logger
  • update defmulti impls (0303769)

0.9.7 (2020-12-07)

♻️ Refactoring

  • update type-only imports (85874bc)

0.9.4 (2020-09-22)

♻️ Refactoring

  • update ESC parse preset (ec94064)
    • re-use ESCAPES LUT from strings pkgs

0.9.3 (2020-09-13)

♻️ Refactoring

0.9.0 (2020-08-17)

🚀 Features

  • add replace/xfReplace() xform (7291181)
  • enable replacement rule transforms (ca22432)
    • allow strings as rule transform in grammar

0.8.0 (2020-07-19)

🚀 Features

  • add nest()/xfNest() transform (af9c97b)
  • update grammar (xform rule refs) (22188a4)
    • allow other parse rules as rule xform (via xfNest())
    • add tests
  • update repeat grammar (7aae9ac)
    • support specifying min repeat count only (max: infinity), e.g. {3,}

0.7.2 (2020-07-18)

🩹 Bug fixes

  • export ContextOpts, move to api.ts (2dfc445)

0.7.1 (2020-07-17)

⏱ Performance improvements

  • update grammar, use discarding parsers where possible (d269a8a)
    • update compile() impls w/ CompileFlags and use D versions if poss
    • refactor/add compileRD(), compileRDL() helpers
    • expose DNL preset rule in defGrammar()
    • add alwaysD()
    • add tests

0.7.0 (2020-07-08)

🚀 Features

  • add lookahead() combinator, add tests (ee35038)
  • update lookahead (51a8dc5)
    • add pass flag and only succeed if main parser passed at least once
  • update grammar DSL (accacf9)
    • add . catch-all term
    • add (?=...) suffix form for lookahead
    • update TERM/TERM_BODY
  • lookahead w/ configurable capture (542c066)
  • update/fix grammar DSL, add trim (f82ba1f)
    • update lookahead (cap, non-cap versions)
    • add lookahead for alt terms
    • update compileLookahead()
    • add line comment support
    • fix {n} repeat modifier handling
    • add trim()/xfTrim() xforms
  • turn xfPrint() into HOF xform (d86fa53)
    • add opt support for custom print fns (other than console)

0.6.0 (2020-06-28)

🚀 Features

  • add ! discard modifier to grammar (456efdc)
  • add count/xfCount transform (056ae08)

0.5.0 (2020-04-23)

🚀 Features

  • add built-ins, extract STRING, minor updates (458f5b3)
    • add anchors to built-in grammar rules
    • extract STRING preset parser
    • add doc strings
    • add s-expr parser test
    • update imports
    • update readme

0.4.0 (2020-04-21)

🚀 Features

  • update grammar DSL, hoist xforms (861e7f3)
    • allow esc sequences in grammar string literals
    • expose various preset parser for re-use in grammar DSL
    • rename xfHoist => hoistResult
    • add new xfHoist to hoist entire child node
    • add doc strings

🩹 Bug fixes

  • update not() behavior, add passD() (1d0f4c4)

♻️ Refactoring

  • update wrap() combinator (a3dae6e)

0.3.0 (2020-04-20)

🚀 Features

  • add skipWhile(), more discarded wrappers (832c0b7)
    • add skipWhile()
    • add dalt(), dseq() wrappers
    • add NL, DNL presets
    • add ParseContext .state setter
  • add more whitespace presets (1398e2b)
  • add dynamic() & DynamicParser (b914267)
  • initial checkin grammar compiler (38e9c66)
  • add ParseContext.reset(), update addChild() (d47c0a2)
  • add/update/rename parser primitives (328103f)
    • add LitParser type to annotate single-char parsers
    • add satisfyD()
    • add stringOf() for predicated strings
    • add wordBoundary anchor
    • add/update/rename discarding parser prims:
      • litD(), stringD(), noneOfD(), oneOfD(), rangeD()
    • export predicate versions:
      • litP(), noneOfP(), oneOfP(), rangeP()
    • update skipWhile() behavior
  • add/update combinators (e4eab03)
    • add startsWith, endsWith, entireLine, entirely
    • add wrap()
    • rename dalt/dseq => altD/seqD
  • add withID() xform, add doc strings (e16426b)
  • add/update/rename parser presets (12f2499)
  • update grammar parser & compiler (822fcba)
    • add GrammarOpts
    • update rules to enable repetition of all terms
    • add string term
    • make debug output optional
  • add discarding combinators, move discard (e09a2c4)
    • add repeatD, oneOrMoreD, zeroOrMoreD
  • update ESC & whitespace parsers (069a6ef)
  • add grammar default transforms, update/fix rules (03ed965)

♻️ Refactoring

  • update grammar & pkg re-exports (3ba8973)

0.2.0 (2020-04-17)

🚀 Features

  • add/rename/reorg parsers, xforms, ctx (ee537f4)
    • add dlit(), dstring()
    • add fail()
    • rename lift() => pass(), Lift => PassValue
    • rename merge()/xfMerge() => join()/xfJoin()
    • add hoist()/xfHoist()
    • migrate xform syntax sugars to /xform
    • add indent() util for ParseContext & print()

⏱ Performance improvements

  • major speedup satisfy() (~1.6x faster) (8ca5c7f)
    • update ParseContext.addChild() to optionally progress reader
    • update call sites in satisfy(), lift(), repeat()

0.1.0 (2020-04-16)

🚀 Features

  • import as new package (151e50c)
  • update repeat ops, reader, initial state (c5cfabe)
  • add collect/xfCollect, update xfPrint (43f3368)
  • update ParseContext, repeat & lift (bef1d4f)
    • add context debug option / tracing
    • add .addChild()
    • update repeat zero-match handling
    • simplify lift()
  • add ctx getters, add presets, update maybe (02597bf)
  • add ArrayReader, update pkg info (3bec0db)
  • make retained state info optional (a89ee87)
  • update defContext, add basic array test (cd7363d)

♻️ Refactoring

  • update context, rename ops, remove arrays dep (a913c96)
  • split presets into sep files (43f62c5)