CHANGELOG.md 21 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

v1.8.1 - 2023-04-07

Fixed

  • [Fix] parse: preserve whitespace in comments #6
  • [Fix] properly support the escape option #5

Commits

  • [Refactor] parse: hoist getVar to module level b42ac73
  • [Refactor] hoist some vars to module level 8f0c5c3
  • [Refactor] parse: use slice over substr, cache some values fcb2e1a
  • [Refactor] parse: a bit of cleanup 6780ec5
  • [Refactor] parse: tweak the regex to not match nothing 227d474
  • [Tests] increase coverage a66de94
  • [Refactor] parse: avoid shadowing a function arg 1d58679

v1.8.0 - 2023-01-30

Commits

  • [New] extract parse and quote to their own deep imports 553fdfc
  • [Tests] add nyc coverage fd7ddcd
  • [New] Add support for here strings (<<<) 9802fb3
  • [New] parse: Add syntax support for duplicating input file descriptors 216b198
  • [Dev Deps] update @ljharb/eslint-config, aud, tape 85f8e31
  • [Tests] add evalmd c5549fc
  • [actions] update checkout action 62e9b49

v1.7.4 - 2022-10-12

Merged

  • Add node_modules to .gitignore #48

Commits

  • [eslint] fix indentation and whitespace aaa9d1f
  • [eslint] additional cleanup 397cb62
  • [meta] add auto-changelog 497fca5
  • [actions] add reusable workflows 4763c36
  • [eslint] add eslint 6ee1437
  • [readme] rename, add badges 7eb5134
  • [meta] update URLs 67381b6
  • [meta] create FUNDING.yml; add funding in package.json 8641572
  • [meta] use npmignore to autogenerate an npmignore file 2e2007a
  • Only apps should have lockfiles f97411e
  • [Dev Deps] update tape 051f608
  • [meta] add safe-publish-latest 18cadf9
  • [Tests] add aud in posttest dc1cc12

1.7.3

  • Fix a security issue where the regex for windows drive letters allowed some shell meta-characters to escape the quoting rules. (CVE-2021-42740)

1.7.2

  • Fix a regression introduced in 1.6.3. This reverts the Windows path quoting fix. (144e1c2)

1.7.1

  • Fix $ being removed when not part of an environment variable name. (@Adman in #32)

1.7.0

  • Add support for parsing >> and >& redirection operators. (@forivall in #16)
  • Add support for parsing <( process substitution operator. (@cuonglm in #15)

1.6.3

  • Fix Windows path quoting problems. (@dy in #34)

v1.6.2 - 2019-08-13

Merged

  • Use native JSON and Array methods #21

Commits

1.6.1 - 2016-06-17

Commits

  • Fix some more escaping for .quote() ace52f4
  • Fix escaping for greater than and less than 70e9eb2

1.6.0 - 2016-04-23

Commits

  • add comment parsing feature b8b5c31

1.5.0 - 2016-03-16

Commits

  • add escape option to .parse 4d400e7

1.4.3 - 2015-03-07

Commits

  • Fix quote() with special chars 811b5a0

1.4.2 - 2014-07-20

Commits

1.4.1 - 2013-12-24

Commits

1.4.0 - 2013-10-17

Merged

  • Add MIT LICENSE file #6

Commits

  • Rewrite parser as a character based scanner c7ca9a2
  • Add tests for glob patterns 3418892
  • Update algo description e1442cf
  • Fix test case for backslash in double quotes 89bc550
  • Add failing tests for crazy quoting tricks 58a5e48

1.3.3 - 2013-06-24

Commits

  • failing set test with an env cb 9fb2096
  • remove the broken special case f9a0ee5

1.3.2 - 2013-06-24

Commits

  • tests for setting env vars f44b039
  • fixed the parse test, broke the op tests 74d6686
  • factored out single and double quote regex de9e0a5
  • updated set env test, already passes 7d5636b
  • ops fixed 2b4e1b1
  • passing all tests 44177e3
  • backreferences in negated capture groups don't actually work e189d9d
  • another crazy ridiculous passing parse test d1beb6b
  • failing test for quoted whitespace and nested quotes 9a4c11c
  • failing test for quotes embedded inside barewords d997384

1.3.1 - 2013-05-13

Commits

1.3.0 - 2013-05-13

Commits

  • hacky tokenizer is much simpler 7e91b18
  • nearly passing with a clunky state env parser, array issues d6d6416
  • test for functional env expansion 666395f
  • upgrade travis versions, tape f6f8bd6
  • 1.3.0, document env() lookups 041c5da
  • first half of functional env() works 7a0cf79
  • env() objects even work inside quote strings 16139f5
  • another check just to make sure env() works 914a1a9

1.2.0 - 2013-05-13

Commits

  • failing test for special shell parameter env vars 728862a
  • add the special vars to the replace regex but the chunker breaks on them d1ff82a
  • fixed the env test, everything is fine a45897f

1.1.0 - 2013-05-13

Commits

  • quote all ops objects ac7be63
  • test for parsed ops objects in quote() 59fb71b
  • another test for op object quoting 5819a31

1.0.0 - 2013-05-13

Commits

  • document ops, op example a6381e6
  • some more passing double-char op tests fbc6e5c
  • failing test for | and & ops d817736
  • labeled regex states 8c008b2
  • refactored the chunker regex into a string 0331c7f
  • simple failing double-char op test e51fa90
  • failing expanded single-op tests for ; and () 710bb24
  • now passing all the single-char op tests e3e9ac1
  • using the control ops directly from the docs f535987
  • first part of op parsing works e6f9199
  • failing redirect tests cb94c10
  • another double-char op test just to be sure 5cf1bf2
  • 1.0.0 for ops 17a40ed
  • adding redirect <> ops to CONTROL makes the tests pass 48b1eb9
  • double-char op test now passing 3998b0f
  • using the meta chars directly from the docs b009ef6
  • the spec says tabs are also allowed 2adb373
  • op test completely passing 20a0147

0.1.1 - 2013-04-17

Commits

  • Return empty list when parsing an empty (or whitespace-only) string 1475717

0.1.0 - 2013-04-14

Commits

  • externalize the regex declaration 37d6058
  • modernize the readme 24106f5
  • factor out interpolation 1b21b01
  • half the env tests are working with basic interpolation 5891471
  • env parse example 5757c42
  • failing tests for unimplemented env interpolation 590534a
  • denormalize the interpolate logic to make room for special cases c669d2e
  • cleaner implementation recursing on the double quote case adae66f
  • one test was wrong, checking for pre escapes 42b5f83
  • finally passing all the tests efa4084
  • one more test passing with quote recursion e9537b9
  • use tape everywhere ed0c1c6
  • some extra metacharacter tests just to be sure a6782ae
  • minor fix to an env test 601b340
  • document parse env cc0efba
  • better parse recursion to capture the containing quotes 8467961
  • now just 2 tests failing with a subtle regex reordering 5448a02
  • pass another test by using "" as the undefined 46e6cf4
  • fixed a failing env test 17d1fda
  • actually the test was wrong, module works fine 9d7b727
  • another test to be even more sure 5afd47b
  • failing test for: echo "foo = \"foo\"" 8dbb280

0.0.1 - 2012-05-18

Commits

  • fixed unescaped metachars and bump 5ce339f
  • failing test for unescaped metachars a315125
  • fix for escaped spaces 669b616
  • failing test for escaped space c6ff3dc

0.0.0 - 2012-05-18

Commits