dhall-json
Convert between Dhall and JSON or YAML
Version on this page: | 1.7.7 |
LTS Haskell 21.25: | 1.7.11@rev:1 |
Stackage Nightly 2023-06-21: | 1.7.11@rev:1 |
Latest on Hackage: | 1.7.12@rev:3 |
BSD-3-Clause licensed by Gabriel Gonzalez
Maintained by [email protected]
This version can be pinned in stack with:
dhall-json-1.7.7@sha256:8dc4a26520865f9f9fb9f9aea31c90e62063bbfb6554581497bac4095493c336,4419
Module documentation for 1.7.7
- Dhall
- Dhall.DhallToYaml
- Dhall.JSON
- Dhall.JSONToDhall
Depends on 19 packages(full list with versions):
Used by 4 packages in lts-18.6(full list with versions):
Use this package if you want to convert between Dhall expressions and JSON or YAML. You can use this package as a library or an executable:
See the
Dhall.JSON
orDhall.JSONToDhall
modules if you want to use this package as a libraryUse the
dhall-to-json
,dhall-to-yaml
, orjson-to-dhall
programs from this package if you want an executable
The Dhall.JSON
and Dhall.JSONToDhall
modules also contains instructions
for how to use this package
Changes
1.7.7
- Build against
dhall-1.39.0
1.7.6
- Fix
hashable
-related test failures - Fix lower bound on
dhall
- Allow bytestring-0.11
- Fix typos in
json-to-dhall --help
output
1.7.5
- Build against
dhall-1.38.0
,tasty-1.4
, andtasty-silver-3.2
1.7.4
- Build against
dhall-1.37.0
1.7.3
1.7.2
1.7.1
- Format documents with leading
---
- Now if you use the
--documents
flag the first document will also include a leading---
- Now if you use the
1.7.0
- BREAKING CHANGE: Add
--generated-comment
flag fordhall-to-yaml{-ng}
- You can now optionally add a comment header to the YAML output indicating that the file is generated and should not be hand-edited
- This is a breaking change because this adds a new
noEdit
field to the options type - In practice this breakage won’t affect most users
- Produce output compatible with YAML 1.1
- Special strings like
on
are now quoted in order to avoid being misinterpreted as boolean values by YAML 1.1 implementations
- Special strings like
- Show JSON/YAML path on error reporting
- Error messages will now include the path to the error in the diagnostic output
1.6.4
- Add
json-to-dhall
support for inferring the schema- You no longer need to provide the command with an explicit schema. The command will infer a reasonably close schema from the provided JSON
- Add
json-to-dhall type
subcommand- You can use this subcommand to print the inferred schema for a JSON value, so that you can edit the schema and use it for subsequent invocations.
- Add
json-to-dhall
support for usingtoMap
- Now if you specify a
Map
as the schema, the generated Dhall code will usetoMap
to improve the appearance
- Now if you specify a
1.6.3
1.6.2
- Fix
dhall-json
for newPrelude.JSON.Type
- Version 13.0.0 of the Prelude caused the
JSON
type to change, which brokedhall-json
’s support for that type - This release fixes that (and still supports the old
JSON
type)
- Version 13.0.0 of the Prelude caused the
1.6.1
1.6.0
- BREAKING CHANGE: Move
HsYAML
code to a newdhall-yaml
package- This package is now fully BSD-licensed (both for the JSON and YAML utilities)
- The GPL-licensed YAML utilities are now provided as part of the
dhall-yaml
package - Note that this package still provides
dhall-to-yaml
and thedhall-yaml
package provides a separatedhall-to-yaml-ng
executable - This is a breaking change in the following respects:
- The YAML-related modules in this package were renamed
- This package no longer accepts a
-fgpl
cabal configure flag - This package no longer provides the
yaml-to-dhall
executable (which now resides within thedhall-yaml
package)
- BREAKING CHANGE: Rename some options of
dhall-to-{json,yaml}
to more consistent ones:- rename
--omitEmpty
to--omit-empty
- rename
--preserveNull
to--preserve-null
- rename
--noMaps
to--no-maps
- drop
--omitNull
as redundant because of--preserve-null
(see below)
- rename
- BUG FIX: Handle empty maps correctly
dhall-to-{json,yaml}
now correctly translate empty Dhall maps to empty JSON dictionaries
- Add
Dhall.JSON.defaultConversion
- Don’t normalize schema before type-checking
- This improves the error messages for
{json,yaml}-to-dhall
- This improves the error messages for
- Fix
dhall-to-yaml
to quote special strings - Make some of CLI options for
dhall-json
more consistent
1.5.0
- BREAKING CHANGE: Enable
--pretty
by default fordhall-to-json
- BREAKING CHANGE: Enable
--omitNull
by default fordhall-to-{json,yaml}
- To recover the old behavior use the
--preserveNull
flag
- To recover the old behavior use the
- Add support for building against the
HsYAML
package #1248 / #1417 / #1420- To enable the use of
HsYAML
, enable the-fgpl
cabal configure
flag, which means that anything built using that flag is GPLv3 licensed - By default
dhall-json
builds againstaeson-yaml
which is BSD-3 licensed - The
yaml-to-dhall
executable is only available with the-fgpl
flag, meaning that it is necessarily GPLv3 licensed
- To enable the use of
- New
--omissible-lists
flag for{json,yaml}-to-dhall
- This flag is sort of the inverse of the
--omitEmpty
flag, meaning that missing YAML/JSON lists can be translated to present (but empty) Dhall lists
- This flag is sort of the inverse of the
1.4.1
- Enable
--records-strict
by default for{json-yaml}-to-dhall
- Fix
--file
flag fordhall-to-{json,yaml}
- Fix
--version
flag for{yaml,json}-to-dhall
Nesting
: Support empty alternatives as contents- Fix
yaml-to-dhall
support for empty objects - Throw error when union value is incompatible with inline nesting
- Add
--output
options - Minor bug fixes for
yaml-to-dhall
error messages
1.4.0
- BREAKING CHANGE: Split
Dhall.YAML
intoDhall.YAML
+Dhall.YAMLToDhall
- BUG FIX: Fix
dhall-to-{json,yaml}
’s support for preserving alternative names- The
Nested
/Inline
unions are now correctly given special treatment again - See: https://github.com/dhall-lang/dhall-haskell/pull/1080
- The
- Feature: Support weakly-typed JSON value added to Prelude
- You can now encode/decode values of type
./Prelude/JSON/Type
which can store arbitrary JSON - This is useful when dealing with “pass-through” or schema-free JSON values
- See: https://github.com/dhall-lang/dhall-haskell/pull/1007
- You can now encode/decode values of type
- Feature: Eta support for
dhall-json
- Feature: Add
--file
option todhall-json
executables - Feature: Support unions for keys
- You can now decode record fields as enums instead of
Text
so that you can pattern match on them - See: https://github.com/dhall-lang/dhall-haskell/pull/1094
- You can now decode record fields as enums instead of
- Pretty-print output of
{json,yaml}-to-dhall
1.3.0
- BREAKING CHANGE: Change YAML/JSON encoding for
NaN
/Infinity
/-Infinity
- They are now encoded as the standard
"nan"
/"inf"
/"-inf"
representations instead ofnull
/MIN_DOUBLE/
/MAX_DOUBLE
- See: https://github.com/dhall-lang/dhall-haskell/pull/946
- They are now encoded as the standard
- BREAKING CHANGE: Isolate YAML code to one modulee
- This is a breaking change because it moves
Dhall.JSON.jsonToYaml
toDhall.YAML.jsonToYaml
- See: https://github.com/dhall-lang/dhall-haskell/pull/989
- This is a breaking change because it moves
- New
yaml-to-dhall
command-line utility - Add
--quoted
flag to force quoting of YAML string literals
1.2.8
- New
json-to-dhall
command-line utility --omitEmpty
now also omits empty arrays- Build against
dhall-1.22.0
- Improved error messages:
1.2.7
- Build against
dhall-1.21.0
- Support GHC 7.10.3
- Add new
--omitEmpty
flag for omitting nulls and empty records
1.2.6
- Add
--version
flag - Build against
tasty-1.2
- Add
--compact
flag todhall-to-json
- Eventually
--pretty
will become the default, so this flag provides a way for a user to preserve the old 1-line output when that happens - See: https://github.com/dhall-lang/dhall-haskell/pull/743
- Eventually
1.2.5
- Build against
dhall-1.19.0
1.2.4
- Build against
dhall-1.18.0
- New
dhall-to-yaml
--documents
flag for generating split documents - Build against
yaml-0.10.2.0
- This improves the multi-line string literals in generated YAML
- See: https://github.com/dhall-lang/dhall-json/pull/57
1.2.3
- Correctly handle nested association lists
- Increase upper bound on
dhall
dependency - Increase upper bound on
yaml
dependency
1.2.2
- Increase upper bound on
dhall
dependency - Increase upper bound on
yaml
dependency
1.2.1
- Add support for preserving sum type tags
- Sort keys when pretty-printing JSON
- Increase upper bound on
dhall
dependency
1.2.0
- BREAKING CHANGE: Add support for converting association lists to JSON records
- This changes the behavior for records with two keys named
mapKey
andmapValue
- This changes the behavior for records with two keys named
- Fix
--help
to not printExitSuccess
- Fix lower bound on
dhall
dependency - Remove
optparse-generic
dependency - Increase upper bound on
dhall
dependency
1.1.0
- BREAKING CHANGE: Build against
dhall-1.13.0
- This requires a breaking change to the type of
codeToValue
- This requires a breaking change to the type of
1.0.13
- Add
--omitNull
flag to omit null-valued fields from generated JSON records - Add
codeToValue
- Increase upper bound on
dhall
dependency
1.0.12
- Increase upper bound on
aeson
dependency - Increase upper bound on
dhall
dependency
1.0.11
- Increase upper bound on
dhall
dependency - Increase upper bound on
optparse-generic
dependency
1.0.10
- Increase upper bound on
dhall
dependency
1.0.9
- Add trailing newline to JSON output
- Remove dependency on
QuasiQuotes
1.0.8
- Increase upper bound on
dhall
dependency
1.0.7
- Add
--pretty
flag - Increase upper bound on
dhall
dependency
1.0.6
- Increase upper bound on
aeson
dependency - Increase upper bound on
dhall
dependency
1.0.5
- Increase upper bound on
optparse-generic
dependency - Increase upper bound on
trifecta
dependency
1.0.4
- Increase upper bound on
dhall
dependency
1.0.3
- Increase upper bound on
dhall
dependency
1.0.2
- Add support for translating unions by stripping the tag
- Increase upper bound on
dhall
dependency
1.0.1
- Increase upper bound on
dhall
dependency
1.0.0
- Initial release