- Minor linting convention changes
Loadertype is now exported- Added and export new type assertion functions
assertEdition,assertEditions - Improved handling when encountering an invalid
package.json, or an invalid editions specification - Rewrote the error utilities to better support type safety, and fix edge case where multiple parents would be discarded instead of joined, and fix theoretical edge case of potential error being invalid if a module was to throw a non-string literal
- Improved the type safety of tests to catch more edge cases
- Updated dependencies, base files, and editions using boundation
- Thank you to the sponsors: Andrew Nesbitt, Divinci ™, Mr. Henry, Poonacha Medappa, Roboflow, Square
- Updated dependencies, base files, and editions using boundation
- Thank you to the sponsors: Andrew Nesbitt, Balsa, Codecov, Poonacha Medappa, Rob Morris, Sentry, Syntax
- Updated dependencies, base files, and editions using boundation
- Thank you to the sponsors: Andrew Nesbitt, Balsa, Codecov, Poonacha Medappa, Rob Morris, Sentry, Syntax
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Fix
version-rangeto^4.5.1which resolves the v6.14.1 patch
- Fix
version-rangeto~4.4.0to fix circular break due to version-range v4.5 depending upon edition
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated license from
MITtoArtistic-2.0
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Fixed #235
- Validate that the range can be broadened before it is attempted to be, and add more tests and reporting around broadening, its conditions, and its failures.
- Updated dependencies, base files, and editions using boundation
- Progress on #235
- Correctly identify and report invalid ranges and invalid broadened ranges
- Updated dependencies, base files, and editions using boundation
- Progress on #235
- Swapped
Errlopfor an in-house solution, that provides a concise and readable solution for this specific use case - Updated dependencies, base files, and editions using boundation
- Progress on #235
- Updated dependencies, base files, and editions using boundation
- Progress on #235
- Have package require failures output what package and entry the failure was on.
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Changed semver dependency from
semvertoversion-rangewhich is faster, simpler, and supports Deno, completing our Deno compatibility- While the simplicity of
version-rangedoes remove support for advanced ranges, it should cover all ranges that are used within editions
- While the simplicity of
- Updated dependencies, base files, and editions using boundation
- Changed engines from Node.js version
>=0.8to>=4as Node.js versions prior to 4 do not supportrequire('process')(they only support theprocessglobal), however, the process import is necessary for compatibility with Deno, which is more important than supporting 5+ year old Node.js versions - Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Since v2, engines have been the recommended way of stating compatibility, as such, blacklist functionality is now removed
- If anyone still requires blacklisting over engines, then file an issue
- Work towards Deno and Web Browser compatibility
- Additional API methods introduced, such that you can determine editions without loading them
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Moved
semverdependency fromdevDependenciestodependencieswhere it belongs (regression since v3.5.0, regressed again in v3.13.0)- Thanks to James Diamond for issue 91
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Moved
semverdependency fromdevDependenciestodependencieswhere it belongs (regression since v3.5.0)- Thanks to James Diamond for issue 91
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Updated dependencies, base files, and editions using boundation
- Support node >= 0.8 but test only against node >= 10
- We are still generating the same code, using ES5 compile target, so support remains the same
- However, testing ecosystem have been upgrading to node >= 10, as such unless all testing packages also function on node >= 0.8, which is possible but highly inconvenient then tests cannot run on such versions
- Updated dependencies, base files, and editions using boundation
- Rewrote in TypeScript
- Updated dependencies, base files, and editions using boundation
- Removed the
browseredition introduced in v2.0.1 as the Editions Autloader has no use in the web browser - Updated dependencies
- Updated
errlopdependency, should function to fix issue #2
Iternal change of not assuming the error code property exists, as on certain node versions its existance is denied. This should fix the following error:
./node_modules/editions/edition-node-0.8/index.js:310
if (editionError.code.indexOf('unsupported-edition-engines-node-version') === 0) {
^
TypeError: Cannot read property 'indexOf' of undefined
Internal change of requiring a specific Errlop edition, which should function as a workaround for errlop#2 to fix the following error:
./node_modules/errlop/index.js:4
module.exports = require('editions').requirePackage(__dirname, require)
^
TypeError: require(...).requirePackage is not a function
- If none of the editions for a package match the current node version, editions will try to find a compatible package by converting strict version ranges likes
4 || 6 || 8 || 10to looser ones like>=4, and if that fails, then it will attempt to load the last edition for the environment.- This brings editions handling of engines closer in line with how node handles it, which is as a warning/recommendation, rather than a requirement/enforcement.
- This has the benefit that edition authors can specify ranges as the specific versions that they have tested the edition against that pass, rather than having to omit that information for runtime compatibility.
- As such editions will now automatically select the edition with guaranteed support for the environment, and if there are none with guaranteed support, then editions will select the one is most likely supported, and if there are none that are likely supported, then it will try the last edition, which should be the most compatible edition.
- This is timely, as node v11 is now the version most developers use, yet if edition authors specified only LTS releases, then the editions autoloader would reject loading on v11, despite compatibility being likely with the most upper edition.
- This behaviour is dictated by the new
strictoption, which omission of a value enables the above behavior.
- Change
syntaxestotags, with backwards compatibility. This applies to edition specifications, as well as for the blacklist environment variable which is now namedEDITIONS_TAG_BLACKLIST. - Added codes to the different types of errors we may produce.
- Upgraded babel from v6 to v7
- Documentation has swapped from Documentation.js to JSDoc with the Minami theme.
- Fixed
Error: Cannot find module 'editions'on Windows (caused by edition directories containing:which is unsupported on Windows)- Regression in v2.0.0
- Closes
- Fixed potential
Error: Cannot find module 'editions'(causes bymainpointing to a legacy location- Regression in v2.0.0
- Added an edition for browsers
- Edition entries must now make use of the fields:
description,directory,entry, and the newenginesfield (which follows thepackage.json:enginesspec). - In version 1, if an edition failed to load, its syntax combination would be blacklisted. This functionality has been removed. The
enginesfield is a better replacement. Thesyntaxesfield remains optional, as it is still useful for user configured blacklisting and ecosystem tooling. - Errors reported by the autoloader have improved readability thanks to Errlop
- Updated base files
- Updated base files
- Properly add node 0.8 support
- Added node 0.8 support
- Fixed failure to load editions that had the edition directory within the edition entry
- Thanks to Jordan Harband for issue #20
- Added support for
EDITIONS_SYNTAX_BLACKLISTenvironment variable- Thanks to Damon Maria for issue #10
- Dropped need for
DEBUG_BEVRY_EDITIONSas failures will not output all the necessary debugging information
- Change
esnextskip from v8 engines < 4 to node engines < 0.12
- Skip syntaxes that require preprocessors
- Skip
importsyntax, as themodulefield insidepackage.jsonskips the autoloader if supported - Skip
esnextsyntax on v8 engines < 4
- Parent errors are now displayed in a more sensible way
- Errors and debug messages are now more useful
- Closes #5
- Added support for custom entry point overrides
- Debugging goes to
console.error(stderr) rather thanconsole.log(stdout)- Closes #2
- Added tests
- Closes #4
- Initial release