diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index cf709889..00000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -**/node_modules diff --git a/.eslintrc b/.eslintrc index f0245802..187bc970 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,7 +11,6 @@ } }, "extends": "eslint:recommended", - "predef": "jQuery", "rules": { "curly": "error", "semi": [1, "always"], @@ -19,6 +18,7 @@ "no-control-regex": 0, "indent": [1, "tab", {"SwitchCase": 1}], "space-infix-ops": ["error"], - "comma-spacing": ["error"] + "comma-spacing": ["error"], + "quotes": ["error", "single"] } } diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..8633a1fc --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,40 @@ +name: Test + +on: + push: + branches: + - '**' + pull_request: + +jobs: + test: + name: Test (Node.js v${{ matrix.node-version }}) + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [22, 24, 25] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Install system dependencies for node-canvas + run: | + sudo apt-get update + sudo apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev + + - name: Install dependencies + run: npm ci + + - name: Build packages + run: npm run build + + - name: Run tests + run: npm test diff --git a/.gitignore b/.gitignore index a2eab8e8..091bf719 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,7 @@ jspm_packages # Optional REPL history .node_repl_history + +.nyc_output +lib +dist diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..f6c16569 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "printWidth": 120, + "useTabs": true, + "singleQuote": true, + "trailingComma": "all" +} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 13454f0f..00000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: node_js -sudo: required -before_install: - - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - - sudo apt-get update - - npm install -g gulp -install: - - sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++-4.8 - - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 - - npm install -after_success: npm run coveralls -node_js: - - "node" - - "6" - - "5" - - "4" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index e6a2857f..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,84 +0,0 @@ -Getting Started ----- -We would :heart: to have pull requests for you. So here is how you start development with JsBarcode. - -First fork and clone the repo: -````bash -git clone git@github.com:your-username/JsBarcode.git -```` - -Then run ``npm install`` to set everything up. Make sure you have all dependencies of [node-canvas](https://github.com/Automattic/node-canvas) installed before doing this, or check **Using Docker** section. - -You are now ready to start doing your changes. - -JsBarcode is using [gulp](http://gulpjs.com/) in the building step. Here comes some commands that will come handy when developing. - -````bash -gulp compile # Compile the code (for nodejs) -gulp compile-web # Compiles down to JsBarcode.all.js -gulp compress # Compiles and compresses all individual barcode files - -gulp watch # Listens to file changes and re-compiles automatically -gulp watch-web # Listens to file changes and re-compiles to JsBarcode.all.js automatically - -gulp lint # Checking the code according to the code style specified in .eslintrc -```` - -Testing ----- -JsBarcode has tests on all barcode symbologies (and more). If you want to test your changes just run ``npm test`` and the code will be compiled and tested. - -There are also visual tests located under ``test/browser/``. - -Using Docker ----- -If you have installed [Docker](https://www.docker.com), you can avoid local installation of dependencies for [node-canvas](https://github.com/Automattic/node-canvas). For doing that, run ``npm install --ignore-scripts`` instead of ``npm install``. Then you can run tests by ``docker-compose up`` - -Symbologies and The Core ----- -JsBarcode is divided up in two distinct parts. The barcode symbologies (EAN-13, CODE128, ITF, ...) and the core. - -### Symbologies -Implementing a new symbology is the easiest way to contribute. Just follow the standard for that symbology and create a class that generate the correct binary data. - -The structure of such a class is as follows: - -````javascript -import Barcode from "../Barcode.js"; - -class GenericBarcode extends Barcode{ - constructor(data, options){ - super(data, options); // Sets this.data and this.text - } - - // Return the corresponding binary numbers for the data provided - encode(){ - return { - data: "10101010101010101010101010101010101010101", - text: this.text - }; - } - - // Resturn true/false if the string provided is valid for this encoder - valid(){ - return true; - } -} -```` - -It might be a good idea to check one of the already implemented barcodes (such as [ITF14](https://github.com/lindell/JsBarcode/blob/master/src/barcodes/ITF14/index.js)) for inspiration. - -### The Core / Renderers -The core part handles the API requests and calls the renderers. If you want to do any structural changes please [create an issue](https://github.com/lindell/JsBarcode/issues/new) or ask about it in the [gitter chat](https://gitter.im/lindell/JsBarcode) first. - -Bug fixes is of course welcome at any time :+1: - -Pull Requests ----- -So you are ready to make a PR? Great! :smile: - -But first make sure you have checked some things. - -* Your code should follow the code style guide provided by [.eslintrc](https://github.com/lindell/JsBarcode/blob/master/.eslintrc) by running ``gulp lint`` -* If you implemented a new symbology, make sure you have tests for it -* Don't commit build changes. No `dist/` or `bin/` changes in the PR. diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index a5e9969e..00000000 --- a/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM node:8 - -RUN apt-get update && apt-get install -qq libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev build-essential g++ - -RUN mkdir -p /jsbarcode -WORKDIR /jsbarcode -COPY ./ ./ - -RUN npm install - -CMD npm test - -EXPOSE 3000 diff --git a/__mocks__/canvas.js b/__mocks__/canvas.js new file mode 100644 index 00000000..e935101b --- /dev/null +++ b/__mocks__/canvas.js @@ -0,0 +1,86 @@ +class MockContext2D { + constructor(canvas) { + this.canvas = canvas; + this.drawings = []; + this.font = ''; + this.fillStyle = ''; + this.textAlign = ''; + this.lastFillRectColor = null; + } + + save() { + this.drawings.push({ type: 'save' }); + } + + restore() { + this.drawings.push({ type: 'restore' }); + } + + translate(x, y) { + this.drawings.push({ type: 'translate', x, y }); + } + + fillRect(x, y, w, h) { + this.drawings.push({ type: 'fillRect', x, y, w, h, fillStyle: this.fillStyle }); + if (x === 0 && y === 0) { + this.lastFillRectColor = this.fillStyle; + } + } + + fillText(text, x, y) { + this.drawings.push({ type: 'fillText', text, x, y, font: this.font, textAlign: this.textAlign }); + } + + clearRect(x, y, w, h) { + this.drawings.push({ type: 'clearRect', x, y, w, h }); + } + + measureText(text) { + // Return a dummy width proportional to string length + return { width: (text || '').length * 8 }; + } + + getImageData(x, y, w, h) { + let r = 0, g = 0, b = 0; + const color = this.lastFillRectColor || ''; + if (color.toLowerCase() === '#f00' || color.toLowerCase() === 'red') { + r = 255; + } + return { + data: [r, g, b, 255] + }; + } +} + +class MockCanvas { + constructor(width = 0, height = 0) { + this.width = width; + this.height = height; + this.ctx = new MockContext2D(this); + } + + getContext(type) { + if (type === '2d') { + return this.ctx; + } + return null; + } + + toDataURL() { + const trace = { + width: this.width, + height: this.height, + drawings: this.ctx.drawings + }; + return 'data:image/png;base64,' + Buffer.from(JSON.stringify(trace)).toString('base64'); + } +} + +function createCanvas(width, height) { + return new MockCanvas(width, height); +} + +module.exports = { + createCanvas, + Canvas: MockCanvas +}; diff --git a/automation/barcode-building.json b/automation/barcode-building.json deleted file mode 100644 index 917c2955..00000000 --- a/automation/barcode-building.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "name": "code39", - "names": "CODE39", - "barcodeFile": "./CODE39" - }, - { - "name": "code128", - "names": ["CODE128, CODE128A, CODE128B, CODE128C"], - "barcodeFile": "./CODE128" - }, - { - "name": "ean-upc", - "names": "EAN13, EAN8, EAN5, EAN2, UPC", - "barcodeFile": "./EAN_UPC" - }, - { - "name": "itf", - "names": "ITF, ITF14", - "barcodeFile": "./ITF" - }, - { - "name": "msi", - "names": "MSI, MSI10, MSI11, MSI1010, MSI1110", - "barcodeFile": "./MSI" - }, - { - "name": "pharmacode", - "names": "pharmacode", - "barcodeFile": "./pharmacode" - }, - { - "name": "codabar", - "names": "codabar", - "barcodeFile": "./codabar" - } -] diff --git a/automation/building.js b/automation/building.js deleted file mode 100644 index cfa4c63b..00000000 --- a/automation/building.js +++ /dev/null @@ -1,131 +0,0 @@ -var gulp = require('gulp'); -var header = require('gulp-header'); -var clean = require('gulp-clean'); -var gulpWebpack = require('webpack-stream'); -var webpack = require('webpack'); -var babel = require("gulp-babel"); -var runSequence = require('run-sequence'); -var fs = require('fs'); - -var settings = require('./settings.json'); -var shared = require('./shared.js'); - -gulp.task("clean", function(){ - return gulp.src(["bin/", "dist/"], {read: false}) - .pipe(clean()); -}); - - -gulp.task("babel", function () { - return babelFunc(); -}); - - -function babelFunc(){ - return gulp.src("src/**/*") - .pipe(babel({ - presets: ['es2015', 'stage-3'] - })) - .pipe(gulp.dest("bin/")); -} - - -gulp.task("webpack", ["babel"], function () { - return webpackFunc(); -}); - - -function webpackFunc(){ - return gulp.src('bin/JsBarcode.js') - .pipe(gulpWebpack( - { - output: { - filename: 'JsBarcode.all.js' - } - } - , webpack)) - .pipe(gulp.dest("dist/")); -} - - -gulp.task("webpack-min", ["babel"], function () { - return webpackMin('all'); -}); - - -function webpackMin(name, dest){ - dest = dest || './'; - return gulp.src('bin/JsBarcode.js') - .pipe(gulpWebpack( - { - output: { - filename: shared.minifiedFilename(name) - }, - plugins: [new webpack.optimize.UglifyJsPlugin()] - } - , webpack)) - .pipe(header(settings.banner, require(settings.baseDir + 'package.json') )) - .pipe(gulp.dest("dist/" + dest)); -} - - -gulp.task("webpack-all", function (cb) { - var barcodes = require('./barcode-building.json'); - - // Move the real barcodes/index.js out of the way while compiling the individual barcodes - fs.renameSync("src/barcodes/index.js", "src/barcodes/index.tmp.js"); - - // Take a barcode from the barcodes array, call the functions to compile that - // format and have a callback when it has finished. - function loopBarcode(i){ - if(i < barcodes.length){ - createBarcodeInclude(barcodes[i], function(){ - loopBarcode(i + 1); - }); - } - else{ - fs.renameSync("src/barcodes/index.tmp.js", "src/barcodes/index.js"); - cb(); // Done - } - } - - loopBarcode(0); -}); - - -// Takes information about a barcode formatSize -// Modifies the barcodes/index.js file to only import the specified format -// and then does a recompilation and minifies everything with webpack -function createBarcodeInclude(barcode, callback){ - var toFile = ""; - toFile += "import {" + barcode.names + "} from '" + barcode.barcodeFile + "'"; - toFile += "\n"; - toFile += "export default {" + barcode.names + "}"; - - // Write a new barcodes/index file that only includes the specified barcode - fs.writeFile("src/barcodes/index.js", toFile, function(){ - // Remove the compiled barcodes/index file (if it exist) - if(fs.existsSync("bin/barcodes/index.js")){ - fs.unlinkSync("bin/barcodes/index.js"); - } - // Re-compile with babel and webpack everything - babelFunc().on('end', function(){ - webpackMin(barcode.name, 'barcodes/').on('end', callback); - }); - }); -} - - -gulp.task('compress', function(cb) { - runSequence( - "clean", - "webpack-all", - "webpack", - "webpack-min", - cb - ); -}); - -gulp.task('compile', ['babel']); - -gulp.task('compile-web', ['webpack']); diff --git a/automation/linting.js b/automation/linting.js deleted file mode 100644 index ef034f91..00000000 --- a/automation/linting.js +++ /dev/null @@ -1,9 +0,0 @@ -var gulp = require('gulp'); -var eslint = require('gulp-eslint'); - -gulp.task("lint", function () { - return gulp.src(['src/**/*.js']) - .pipe(eslint()) - .pipe(eslint.format()) - .pipe(eslint.failAfterError()); -}); diff --git a/automation/misc.js b/automation/misc.js deleted file mode 100644 index de945833..00000000 --- a/automation/misc.js +++ /dev/null @@ -1,30 +0,0 @@ -/*eslint no-console: 0 */ - -var gulp = require('gulp'); -var request = require('request'); -var fs = require('fs'); - -gulp.task('jsdelivr', function(callback){ - console.log("Making request..."); - request({ - url: "https://api.jsdelivr.com/v1/jsdelivr/libraries?name=jsbarcode", - json: true - }, function (error, response, body) { - if (!error && response.statusCode === 200) { - var readme = fs.readFileSync('README.md', "utf-8"); - var version = body[0].lastversion; - - readme = readme.replace(/https:\/\/cdn\.jsdelivr\.net\/jsbarcode\/[0-9]+\.[0-9]+\.[0-9]+\//g, - "https://cdn.jsdelivr.net/jsbarcode/" + version + "/"); - - fs.writeFileSync('README.md', readme, 'utf8'); - - console.log("New version: " + version); - callback(); - } - else{ - console.error("Failed to make jsdelivr api request"); - callback(); - } - }); -}); diff --git a/automation/releasing.js b/automation/releasing.js deleted file mode 100644 index 2a802125..00000000 --- a/automation/releasing.js +++ /dev/null @@ -1,163 +0,0 @@ -/*eslint -no-console: 0 -*/ - -var gulp = require('gulp'); -var bump = require('gulp-bump'); -var git = require('gulp-git'); -var publishRelease = require('publish-release'); -var gzipSize = require('gzip-size'); -var runSequence = require('run-sequence'); -var fs = require('fs'); - -var settings = require('./settings.json'); -var shared = require('./shared.js'); - - -gulp.task('git-release', ['compress'], function(cb){ - var pkg = require(settings.baseDir + 'package.json'); - var v = 'v' + pkg.version; - var message = ':package: Release ' + v; - - updateReadmeFileSizes(); - - gulp.src(['./package.json', './bower.json', './README.md', './bin/', './dist']) - .pipe(git.add({args: '--all --force'})) - .pipe(git.commit(message)); - - git.push('origin', 'master', function(){ - git.tag(v, message, function(){ - git.push('origin', 'master', {args: '--tags'}, cb); - }); - }); -}); - - -// Bump (increase) the version number -gulp.task('bump-patch', function(){ - return gulp.src(['./package.json', './bower.json']) - .pipe(bump({type:'patch'})) - .pipe(gulp.dest('./')); -}); - - -gulp.task('bump-minor', function(){ - return gulp.src(['./package.json', './bower.json']) - .pipe(bump({type:'minor'})) - .pipe(gulp.dest('./')); -}); - - -gulp.task('bump-major', function(){ - return gulp.src(['./package.json', './bower.json']) - .pipe(bump({type:'major'})) - .pipe(gulp.dest('./')); -}); - - -gulp.task('npm', function (done) { - require('child_process').spawn('npm', ['publish'], { stdio: 'inherit' }) - .on('close', done); -}); - - -gulp.task('github-release', function(done) { - var pkg = require(settings.baseDir + './package.json'); - var v = 'v' + pkg.version; - var name = "JsBarcode " + v; - - publishRelease({ - token: process.env.GITHUB_TOKEN, - owner: "lindell", - repo: "JsBarcode", - tag: v, - name: name, - assets: [__dirname + "/" + settings.baseDir + "/dist/JsBarcode.all.min.js", __dirname + "/" + settings.baseDir + "/dist/JsBarcode.all.js"] - }, done); -}); - - - -gulp.task('release', ['lint'], function(callback){ - runSequence( - 'git-release', - 'github-release', - 'npm', - callback - ); -}); - - -gulp.task('patch', function(){ - runSequence( - 'bump-patch', - 'release', - releaseDone - ); -}); - - -gulp.task('minor', function(){ - runSequence( - 'bump-minor', - 'release', - releaseDone - ); -}); - - -gulp.task('major', function(){ - runSequence( - 'bump-major', - 'release', - releaseDone - ); -}); - -function releaseDone (error) { - if (error) { - console.log(error.message); - } - else { - console.log('Successful!'); - } -} - - -function updateReadmeFileSizes(){ - var files = require('./barcode-building.json'); - var readme = fs.readFileSync('README.md', "utf-8"); - - // Update .all files - var allData = fs.readFileSync('dist/JsBarcode.all.min.js'); - var allFilesize = gzipSize.sync(allData); - - var allRegexp = new RegExp('\\|[^\\|]*\\|([ \\t\\*]*\\[JsBarcode\\.all\\.min\\.js\\])'); - readme = readme.replace(allRegexp, "| *" + formatSize(allFilesize) + "* |$1"); - - // Update all barcodes files - for(var i in files){ - var filename = shared.minifiedFilename(files[i].name); - - var fileData = fs.readFileSync('dist/barcodes/' + filename); - var fileFilesize = gzipSize.sync(fileData); - - var fileRegexp = new RegExp('\\|[^\\|]*\\|([ \\t]*\\[' + RegExp.escape(filename) + '\\])'); - - readme = readme.replace(fileRegexp, "| " + formatSize(fileFilesize) + " |$1"); - } - - fs.writeFileSync('README.md', readme, 'utf8'); -} - - -// Util functions -RegExp.escape = function(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); -}; - -function formatSize(bytes){ - var kilobytes = Math.round(bytes / 1024 * 10) / 10; - - return kilobytes + " kB"; -} diff --git a/automation/settings.json b/automation/settings.json deleted file mode 100644 index ab5b9b34..00000000 --- a/automation/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "baseDir": "../", - "distDir": "./dist/", - "binDir": "./bin/", - "banner": "/*! JsBarcode v<%= version %> | (c) <%= author %> | <%= license %> license */\n" -} diff --git a/automation/shared.js b/automation/shared.js deleted file mode 100644 index 0ecfa935..00000000 --- a/automation/shared.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = {}; - -module.exports.minifiedFilename = function(name){ - return "JsBarcode." + name + ".min.js"; -}; diff --git a/bin/JsBarcode.js b/bin/JsBarcode.js deleted file mode 100644 index 1dad255e..00000000 --- a/bin/JsBarcode.js +++ /dev/null @@ -1,252 +0,0 @@ -'use strict'; - -var _barcodes = require('./barcodes/'); - -var _barcodes2 = _interopRequireDefault(_barcodes); - -var _merge = require('./help/merge.js'); - -var _merge2 = _interopRequireDefault(_merge); - -var _linearizeEncodings = require('./help/linearizeEncodings.js'); - -var _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings); - -var _fixOptions = require('./help/fixOptions.js'); - -var _fixOptions2 = _interopRequireDefault(_fixOptions); - -var _getRenderProperties = require('./help/getRenderProperties.js'); - -var _getRenderProperties2 = _interopRequireDefault(_getRenderProperties); - -var _optionsFromStrings = require('./help/optionsFromStrings.js'); - -var _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings); - -var _ErrorHandler = require('./exceptions/ErrorHandler.js'); - -var _ErrorHandler2 = _interopRequireDefault(_ErrorHandler); - -var _exceptions = require('./exceptions/exceptions.js'); - -var _defaults = require('./options/defaults.js'); - -var _defaults2 = _interopRequireDefault(_defaults); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// The protype of the object returned from the JsBarcode() call - - -// Help functions -var API = function API() {}; - -// The first call of the library API -// Will return an object with all barcodes calls and the data that is used -// by the renderers - - -// Default values - - -// Exceptions -// Import all the barcodes -var JsBarcode = function JsBarcode(element, text, options) { - var api = new API(); - - if (typeof element === "undefined") { - throw Error("No element to render on was provided."); - } - - // Variables that will be pased through the API calls - api._renderProperties = (0, _getRenderProperties2.default)(element); - api._encodings = []; - api._options = _defaults2.default; - api._errorHandler = new _ErrorHandler2.default(api); - - // If text is set, use the simple syntax (render the barcode directly) - if (typeof text !== "undefined") { - options = options || {}; - - if (!options.format) { - options.format = autoSelectBarcode(); - } - - api.options(options)[options.format](text, options).render(); - } - - return api; -}; - -// To make tests work TODO: remove -JsBarcode.getModule = function (name) { - return _barcodes2.default[name]; -}; - -// Register all barcodes -for (var name in _barcodes2.default) { - if (_barcodes2.default.hasOwnProperty(name)) { - // Security check if the propery is a prototype property - registerBarcode(_barcodes2.default, name); - } -} -function registerBarcode(barcodes, name) { - API.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) { - var api = this; - return api._errorHandler.wrapBarcodeCall(function () { - // Ensure text is options.text - options.text = typeof options.text === 'undefined' ? undefined : '' + options.text; - - var newOptions = (0, _merge2.default)(api._options, options); - newOptions = (0, _optionsFromStrings2.default)(newOptions); - var Encoder = barcodes[name]; - var encoded = encode(text, Encoder, newOptions); - api._encodings.push(encoded); - - return api; - }); - }; -} - -// encode() handles the Encoder call and builds the binary string to be rendered -function encode(text, Encoder, options) { - // Ensure that text is a string - text = "" + text; - - var encoder = new Encoder(text, options); - - // If the input is not valid for the encoder, throw error. - // If the valid callback option is set, call it instead of throwing error - if (!encoder.valid()) { - throw new _exceptions.InvalidInputException(encoder.constructor.name, text); - } - - // Make a request for the binary data (and other infromation) that should be rendered - var encoded = encoder.encode(); - - // Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] - // Convert to [1-1, 1-2, 2, 3-1, 3-2] - encoded = (0, _linearizeEncodings2.default)(encoded); - - // Merge - for (var i = 0; i < encoded.length; i++) { - encoded[i].options = (0, _merge2.default)(options, encoded[i].options); - } - - return encoded; -} - -function autoSelectBarcode() { - // If CODE128 exists. Use it - if (_barcodes2.default["CODE128"]) { - return "CODE128"; - } - - // Else, take the first (probably only) barcode - return Object.keys(_barcodes2.default)[0]; -} - -// Sets global encoder options -// Added to the api by the JsBarcode function -API.prototype.options = function (options) { - this._options = (0, _merge2.default)(this._options, options); - return this; -}; - -// Will create a blank space (usually in between barcodes) -API.prototype.blank = function (size) { - var zeroes = new Array(size + 1).join("0"); - this._encodings.push({ data: zeroes }); - return this; -}; - -// Initialize JsBarcode on all HTML elements defined. -API.prototype.init = function () { - // Should do nothing if no elements where found - if (!this._renderProperties) { - return; - } - - // Make sure renderProperies is an array - if (!Array.isArray(this._renderProperties)) { - this._renderProperties = [this._renderProperties]; - } - - var renderProperty; - for (var i in this._renderProperties) { - renderProperty = this._renderProperties[i]; - var options = (0, _merge2.default)(this._options, renderProperty.options); - - if (options.format == "auto") { - options.format = autoSelectBarcode(); - } - - this._errorHandler.wrapBarcodeCall(function () { - var text = options.value; - var Encoder = _barcodes2.default[options.format.toUpperCase()]; - var encoded = encode(text, Encoder, options); - - render(renderProperty, encoded, options); - }); - } -}; - -// The render API call. Calls the real render function. -API.prototype.render = function () { - if (!this._renderProperties) { - throw new _exceptions.NoElementException(); - } - - if (Array.isArray(this._renderProperties)) { - for (var i = 0; i < this._renderProperties.length; i++) { - render(this._renderProperties[i], this._encodings, this._options); - } - } else { - render(this._renderProperties, this._encodings, this._options); - } - - return this; -}; - -API.prototype._defaults = _defaults2.default; - -// Prepares the encodings and calls the renderer -function render(renderProperties, encodings, options) { - encodings = (0, _linearizeEncodings2.default)(encodings); - - for (var i = 0; i < encodings.length; i++) { - encodings[i].options = (0, _merge2.default)(options, encodings[i].options); - (0, _fixOptions2.default)(encodings[i].options); - } - - (0, _fixOptions2.default)(options); - - var Renderer = renderProperties.renderer; - var renderer = new Renderer(renderProperties.element, encodings, options); - renderer.render(); - - if (renderProperties.afterRender) { - renderProperties.afterRender(); - } -} - -// Export to browser -if (typeof window !== "undefined") { - window.JsBarcode = JsBarcode; -} - -// Export to jQuery -/*global jQuery */ -if (typeof jQuery !== 'undefined') { - jQuery.fn.JsBarcode = function (content, options) { - var elementArray = []; - jQuery(this).each(function () { - elementArray.push(this); - }); - return JsBarcode(elementArray, content, options); - }; -} - -// Export to commonJS -module.exports = JsBarcode; \ No newline at end of file diff --git a/bin/barcodes/Barcode.js b/bin/barcodes/Barcode.js deleted file mode 100644 index 7138786d..00000000 --- a/bin/barcodes/Barcode.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Barcode = function Barcode(data, options) { - _classCallCheck(this, Barcode); - - this.data = data; - this.text = options.text || data; - this.options = options; -}; - -exports.default = Barcode; \ No newline at end of file diff --git a/bin/barcodes/CODE128/CODE128.js b/bin/barcodes/CODE128/CODE128.js deleted file mode 100644 index 2d47112c..00000000 --- a/bin/barcodes/CODE128/CODE128.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require('../Barcode.js'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -var _constants = require('./constants'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// This is the master class, -// it does require the start code to be included in the string -var CODE128 = function (_Barcode) { - _inherits(CODE128, _Barcode); - - function CODE128(data, options) { - _classCallCheck(this, CODE128); - - // Get array of ascii codes from data - var _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options)); - - _this.bytes = data.split('').map(function (char) { - return char.charCodeAt(0); - }); - return _this; - } - - _createClass(CODE128, [{ - key: 'valid', - value: function valid() { - // ASCII value ranges 0-127, 200-211 - return (/^[\x00-\x7F\xC8-\xD3]+$/.test(this.data) - ); - } - - // The public encoding function - - }, { - key: 'encode', - value: function encode() { - var bytes = this.bytes; - // Remove the start code from the bytes and set its index - var startIndex = bytes.shift() - 105; - // Get start set by index - var startSet = _constants.SET_BY_CODE[startIndex]; - - if (startSet === undefined) { - throw new RangeError('The encoding does not start with a start character.'); - } - - if (this.shouldEncodeAsEan128() === true) { - bytes.unshift(_constants.FNC1); - } - - // Start encode with the right type - var encodingResult = CODE128.next(bytes, 1, startSet); - - return { - text: this.text === this.data ? this.text.replace(/[^\x20-\x7E]/g, '') : this.text, - data: - // Add the start bits - CODE128.getBar(startIndex) + - // Add the encoded bits - encodingResult.result + - // Add the checksum - CODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) + - // Add the end bits - CODE128.getBar(_constants.STOP) - }; - } - - // GS1-128/EAN-128 - - }, { - key: 'shouldEncodeAsEan128', - value: function shouldEncodeAsEan128() { - var isEAN128 = this.options.ean128 || false; - if (typeof isEAN128 === 'string') { - isEAN128 = isEAN128.toLowerCase() === 'true'; - } - return isEAN128; - } - - // Get a bar symbol by index - - }], [{ - key: 'getBar', - value: function getBar(index) { - return _constants.BARS[index] ? _constants.BARS[index].toString() : ''; - } - - // Correct an index by a set and shift it from the bytes array - - }, { - key: 'correctIndex', - value: function correctIndex(bytes, set) { - if (set === _constants.SET_A) { - var charCode = bytes.shift(); - return charCode < 32 ? charCode + 64 : charCode - 32; - } else if (set === _constants.SET_B) { - return bytes.shift() - 32; - } else { - return (bytes.shift() - 48) * 10 + bytes.shift() - 48; - } - } - }, { - key: 'next', - value: function next(bytes, pos, set) { - if (!bytes.length) { - return { result: '', checksum: 0 }; - } - - var nextCode = void 0, - index = void 0; - - // Special characters - if (bytes[0] >= 200) { - index = bytes.shift() - 105; - var nextSet = _constants.SWAP[index]; - - // Swap to other set - if (nextSet !== undefined) { - nextCode = CODE128.next(bytes, pos + 1, nextSet); - } - // Continue on current set but encode a special character - else { - // Shift - if ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) { - // Convert the next character so that is encoded correctly - bytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0]; - } - nextCode = CODE128.next(bytes, pos + 1, set); - } - } - // Continue encoding - else { - index = CODE128.correctIndex(bytes, set); - nextCode = CODE128.next(bytes, pos + 1, set); - } - - // Get the correct binary encoding and calculate the weight - var enc = CODE128.getBar(index); - var weight = index * pos; - - return { - result: enc + nextCode.result, - checksum: weight + nextCode.checksum - }; - } - }]); - - return CODE128; -}(_Barcode3.default); - -exports.default = CODE128; \ No newline at end of file diff --git a/bin/barcodes/CODE128/CODE128A.js b/bin/barcodes/CODE128/CODE128A.js deleted file mode 100644 index 28d9f112..00000000 --- a/bin/barcodes/CODE128/CODE128A.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = require('./CODE128.js'); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = require('./constants'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128A = function (_CODE) { - _inherits(CODE128A, _CODE); - - function CODE128A(string, options) { - _classCallCheck(this, CODE128A); - - return _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options)); - } - - _createClass(CODE128A, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.A_CHARS + '+$').test(this.data); - } - }]); - - return CODE128A; -}(_CODE3.default); - -exports.default = CODE128A; \ No newline at end of file diff --git a/bin/barcodes/CODE128/CODE128B.js b/bin/barcodes/CODE128/CODE128B.js deleted file mode 100644 index 746c93b4..00000000 --- a/bin/barcodes/CODE128/CODE128B.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = require('./CODE128.js'); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = require('./constants'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128B = function (_CODE) { - _inherits(CODE128B, _CODE); - - function CODE128B(string, options) { - _classCallCheck(this, CODE128B); - - return _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options)); - } - - _createClass(CODE128B, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.B_CHARS + '+$').test(this.data); - } - }]); - - return CODE128B; -}(_CODE3.default); - -exports.default = CODE128B; \ No newline at end of file diff --git a/bin/barcodes/CODE128/CODE128C.js b/bin/barcodes/CODE128/CODE128C.js deleted file mode 100644 index b83ab9f9..00000000 --- a/bin/barcodes/CODE128/CODE128C.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = require('./CODE128.js'); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = require('./constants'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128C = function (_CODE) { - _inherits(CODE128C, _CODE); - - function CODE128C(string, options) { - _classCallCheck(this, CODE128C); - - return _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options)); - } - - _createClass(CODE128C, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.C_CHARS + '+$').test(this.data); - } - }]); - - return CODE128C; -}(_CODE3.default); - -exports.default = CODE128C; \ No newline at end of file diff --git a/bin/barcodes/CODE128/CODE128_AUTO.js b/bin/barcodes/CODE128/CODE128_AUTO.js deleted file mode 100644 index add94f41..00000000 --- a/bin/barcodes/CODE128/CODE128_AUTO.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CODE2 = require('./CODE128'); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _auto = require('./auto'); - -var _auto2 = _interopRequireDefault(_auto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128AUTO = function (_CODE) { - _inherits(CODE128AUTO, _CODE); - - function CODE128AUTO(data, options) { - _classCallCheck(this, CODE128AUTO); - - // ASCII value ranges 0-127, 200-211 - if (/^[\x00-\x7F\xC8-\xD3]+$/.test(data)) { - var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options)); - } else { - var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options)); - } - return _possibleConstructorReturn(_this); - } - - return CODE128AUTO; -}(_CODE3.default); - -exports.default = CODE128AUTO; \ No newline at end of file diff --git a/bin/barcodes/CODE128/auto.js b/bin/barcodes/CODE128/auto.js deleted file mode 100644 index ed1d6ffa..00000000 --- a/bin/barcodes/CODE128/auto.js +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _constants = require('./constants'); - -// Match Set functions -var matchSetALength = function matchSetALength(string) { - return string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length; -}; -var matchSetBLength = function matchSetBLength(string) { - return string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length; -}; -var matchSetC = function matchSetC(string) { - return string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0]; -}; - -// CODE128A or CODE128B -function autoSelectFromAB(string, isA) { - var ranges = isA ? _constants.A_CHARS : _constants.B_CHARS; - var untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)')); - - if (untilC) { - return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length)); - } - - var chars = string.match(new RegExp('^' + ranges + '+'))[0]; - - if (chars.length === string.length) { - return string; - } - - return chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA); -} - -// CODE128C -function autoSelectFromC(string) { - var cMatch = matchSetC(string); - var length = cMatch.length; - - if (length === string.length) { - return string; - } - - string = string.substring(length); - - // Select A/B depending on the longest match - var isA = matchSetALength(string) >= matchSetBLength(string); - return cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA); -} - -// Detect Code Set (A, B or C) and format the string - -exports.default = function (string) { - var newString = void 0; - var cLength = matchSetC(string).length; - - // Select 128C if the string start with enough digits - if (cLength >= 2) { - newString = _constants.C_START_CHAR + autoSelectFromC(string); - } else { - // Select A/B depending on the longest match - var isA = matchSetALength(string) > matchSetBLength(string); - newString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA); - } - - return newString.replace(/[\xCD\xCE]([^])[\xCD\xCE]/, // Any sequence between 205 and 206 characters - function (match, char) { - return String.fromCharCode(203) + char; - }); -}; \ No newline at end of file diff --git a/bin/barcodes/CODE128/constants.js b/bin/barcodes/CODE128/constants.js deleted file mode 100644 index b992c0ee..00000000 --- a/bin/barcodes/CODE128/constants.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _SET_BY_CODE; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -// constants for internal usage -var SET_A = exports.SET_A = 0; -var SET_B = exports.SET_B = 1; -var SET_C = exports.SET_C = 2; - -// Special characters -var SHIFT = exports.SHIFT = 98; -var START_A = exports.START_A = 103; -var START_B = exports.START_B = 104; -var START_C = exports.START_C = 105; -var MODULO = exports.MODULO = 103; -var STOP = exports.STOP = 106; -var FNC1 = exports.FNC1 = 207; - -// Get set by start code -var SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE); - -// Get next set by code -var SWAP = exports.SWAP = { - 101: SET_A, - 100: SET_B, - 99: SET_C -}; - -var A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105 -var B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105 -var C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105 - -// 128A (Code Set A) -// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4 -var A_CHARS = exports.A_CHARS = "[\x00-\x5F\xC8-\xCF]"; - -// 128B (Code Set B) -// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4 -var B_CHARS = exports.B_CHARS = "[\x20-\x7F\xC8-\xCF]"; - -// 128C (Code Set C) -// 00–99 (encodes two digits with a single code point) and FNC1 -var C_CHARS = exports.C_CHARS = "(\xCF*[0-9]{2}\xCF*)"; - -// CODE128 includes 107 symbols: -// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one) -// Each symbol consist of three black bars (1) and three white spaces (0). -var BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011]; \ No newline at end of file diff --git a/bin/barcodes/CODE128/index.js b/bin/barcodes/CODE128/index.js deleted file mode 100644 index 43642221..00000000 --- a/bin/barcodes/CODE128/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined; - -var _CODE128_AUTO = require('./CODE128_AUTO.js'); - -var _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO); - -var _CODE128A = require('./CODE128A.js'); - -var _CODE128A2 = _interopRequireDefault(_CODE128A); - -var _CODE128B = require('./CODE128B.js'); - -var _CODE128B2 = _interopRequireDefault(_CODE128B); - -var _CODE128C = require('./CODE128C.js'); - -var _CODE128C2 = _interopRequireDefault(_CODE128C); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.CODE128 = _CODE128_AUTO2.default; -exports.CODE128A = _CODE128A2.default; -exports.CODE128B = _CODE128B2.default; -exports.CODE128C = _CODE128C2.default; \ No newline at end of file diff --git a/bin/barcodes/CODE39/index.js b/bin/barcodes/CODE39/index.js deleted file mode 100644 index fe331fda..00000000 --- a/bin/barcodes/CODE39/index.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CODE39 = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Code_39#Encoding - -var CODE39 = function (_Barcode) { - _inherits(CODE39, _Barcode); - - function CODE39(data, options) { - _classCallCheck(this, CODE39); - - data = data.toUpperCase(); - - // Calculate mod43 checksum if enabled - if (options.mod43) { - data += getCharacter(mod43checksum(data)); - } - - return _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options)); - } - - _createClass(CODE39, [{ - key: "encode", - value: function encode() { - // First character is always a * - var result = getEncoding("*"); - - // Take every character and add the binary representation to the result - for (var i = 0; i < this.data.length; i++) { - result += getEncoding(this.data[i]) + "0"; - } - - // Last character is always a * - result += getEncoding("*"); - - return { - data: result, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.data.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/) !== -1; - } - }]); - - return CODE39; -}(_Barcode3.default); - -// All characters. The position in the array is the (checksum) value - - -var characters = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "-", ".", " ", "$", "/", "+", "%", "*"]; - -// The decimal representation of the characters, is converted to the -// corresponding binary with the getEncoding function -var encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770]; - -// Get the binary representation of a character by converting the encodings -// from decimal to binary -function getEncoding(character) { - return getBinary(characterValue(character)); -} - -function getBinary(characterValue) { - return encodings[characterValue].toString(2); -} - -function getCharacter(characterValue) { - return characters[characterValue]; -} - -function characterValue(character) { - return characters.indexOf(character); -} - -function mod43checksum(data) { - var checksum = 0; - for (var i = 0; i < data.length; i++) { - checksum += characterValue(data[i]); - } - - checksum = checksum % 43; - return checksum; -} - -exports.CODE39 = CODE39; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/EAN.js b/bin/barcodes/EAN_UPC/EAN.js deleted file mode 100644 index 62d3ae3a..00000000 --- a/bin/barcodes/EAN_UPC/EAN.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = require('./constants'); - -var _encoder = require('./encoder'); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = require('../Barcode'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Base class for EAN8 & EAN13 -var EAN = function (_Barcode) { - _inherits(EAN, _Barcode); - - function EAN(data, options) { - _classCallCheck(this, EAN); - - // Make sure the font is not bigger than the space between the guard bars - var _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options)); - - _this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(EAN, [{ - key: 'encode', - value: function encode() { - return this.options.flat ? this.encodeFlat() : this.encodeGuarded(); - } - }, { - key: 'leftText', - value: function leftText(from, to) { - return this.text.substr(from, to); - } - }, { - key: 'leftEncode', - value: function leftEncode(data, structure) { - return (0, _encoder2.default)(data, structure); - } - }, { - key: 'rightText', - value: function rightText(from, to) { - return this.text.substr(from, to); - } - }, { - key: 'rightEncode', - value: function rightEncode(data, structure) { - return (0, _encoder2.default)(data, structure); - } - }, { - key: 'encodeGuarded', - value: function encodeGuarded() { - var textOptions = { fontSize: this.fontSize }; - var guardOptions = { height: this.guardHeight }; - - return [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }]; - } - }, { - key: 'encodeFlat', - value: function encodeFlat() { - var data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN]; - - return { - data: data.join(''), - text: this.text - }; - } - }]); - - return EAN; -}(_Barcode3.default); - -exports.default = EAN; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/EAN13.js b/bin/barcodes/EAN_UPC/EAN13.js deleted file mode 100644 index c73e3fb6..00000000 --- a/bin/barcodes/EAN_UPC/EAN13.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _constants = require('./constants'); - -var _EAN2 = require('./EAN'); - -var _EAN3 = _interopRequireDefault(_EAN2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode - -// Calculate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit -var checksum = function checksum(number) { - var res = number.substr(0, 12).split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a * 3 : sum + a; - }, 0); - - return (10 - res % 10) % 10; -}; - -var EAN13 = function (_EAN) { - _inherits(EAN13, _EAN); - - function EAN13(data, options) { - _classCallCheck(this, EAN13); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{12}$/) !== -1) { - data += checksum(data); - } - - // Adds a last character to the end of the barcode - var _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options)); - - _this.lastChar = options.lastChar; - return _this; - } - - _createClass(EAN13, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data); - } - }, { - key: 'leftText', - value: function leftText() { - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6); - } - }, { - key: 'leftEncode', - value: function leftEncode() { - var data = this.data.substr(1, 6); - var structure = _constants.EAN13_STRUCTURE[this.data[0]]; - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure); - } - }, { - key: 'rightText', - value: function rightText() { - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6); - } - }, { - key: 'rightEncode', - value: function rightEncode() { - var data = this.data.substr(7, 6); - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR'); - } - - // The "standard" way of printing EAN13 barcodes with guard bars - - }, { - key: 'encodeGuarded', - value: function encodeGuarded() { - var data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this); - - // Extend data with left digit & last character - if (this.options.displayValue) { - data.unshift({ - data: '000000000000', - text: this.text.substr(0, 1), - options: { textAlign: 'left', fontSize: this.fontSize } - }); - - if (this.options.lastChar) { - data.push({ - data: '00' - }); - data.push({ - data: '00000', - text: this.options.lastChar, - options: { fontSize: this.fontSize } - }); - } - } - - return data; - } - }]); - - return EAN13; -}(_EAN3.default); - -exports.default = EAN13; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/EAN2.js b/bin/barcodes/EAN_UPC/EAN2.js deleted file mode 100644 index 46b3d6f6..00000000 --- a/bin/barcodes/EAN_UPC/EAN2.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = require('./constants'); - -var _encoder = require('./encoder'); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = require('../Barcode'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_2#Encoding - -var EAN2 = function (_Barcode) { - _inherits(EAN2, _Barcode); - - function EAN2(data, options) { - _classCallCheck(this, EAN2); - - return _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options)); - } - - _createClass(EAN2, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{2}$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - // Choose the structure based on the number mod 4 - var structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4]; - return { - // Start bits + Encode the two digits with 01 in between - data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), - text: this.text - }; - } - }]); - - return EAN2; -}(_Barcode3.default); - -exports.default = EAN2; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/EAN5.js b/bin/barcodes/EAN_UPC/EAN5.js deleted file mode 100644 index d1807c36..00000000 --- a/bin/barcodes/EAN_UPC/EAN5.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = require('./constants'); - -var _encoder = require('./encoder'); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = require('../Barcode'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_5#Encoding - -var checksum = function checksum(data) { - var result = data.split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a * 9 : sum + a * 3; - }, 0); - return result % 10; -}; - -var EAN5 = function (_Barcode) { - _inherits(EAN5, _Barcode); - - function EAN5(data, options) { - _classCallCheck(this, EAN5); - - return _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options)); - } - - _createClass(EAN5, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{5}$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - var structure = _constants.EAN5_STRUCTURE[checksum(this.data)]; - return { - data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), - text: this.text - }; - } - }]); - - return EAN5; -}(_Barcode3.default); - -exports.default = EAN5; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/EAN8.js b/bin/barcodes/EAN_UPC/EAN8.js deleted file mode 100644 index 8c6d6387..00000000 --- a/bin/barcodes/EAN_UPC/EAN8.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _EAN2 = require('./EAN'); - -var _EAN3 = _interopRequireDefault(_EAN2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// http://www.barcodeisland.com/ean8.phtml - -// Calculate the checksum digit -var checksum = function checksum(number) { - var res = number.substr(0, 7).split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a : sum + a * 3; - }, 0); - - return (10 - res % 10) % 10; -}; - -var EAN8 = function (_EAN) { - _inherits(EAN8, _EAN); - - function EAN8(data, options) { - _classCallCheck(this, EAN8); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{7}$/) !== -1) { - data += checksum(data); - } - - return _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options)); - } - - _createClass(EAN8, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data); - } - }, { - key: 'leftText', - value: function leftText() { - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4); - } - }, { - key: 'leftEncode', - value: function leftEncode() { - var data = this.data.substr(0, 4); - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL'); - } - }, { - key: 'rightText', - value: function rightText() { - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4); - } - }, { - key: 'rightEncode', - value: function rightEncode() { - var data = this.data.substr(4, 4); - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR'); - } - }]); - - return EAN8; -}(_EAN3.default); - -exports.default = EAN8; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/UPC.js b/bin/barcodes/EAN_UPC/UPC.js deleted file mode 100644 index f8111016..00000000 --- a/bin/barcodes/EAN_UPC/UPC.js +++ /dev/null @@ -1,165 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -exports.checksum = checksum; - -var _encoder = require("./encoder"); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding - -var UPC = function (_Barcode) { - _inherits(UPC, _Barcode); - - function UPC(data, options) { - _classCallCheck(this, UPC); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{11}$/) !== -1) { - data += checksum(data); - } - - var _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options)); - - _this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if (options.fontSize > options.width * 10) { - _this.fontSize = options.width * 10; - } else { - _this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(UPC, [{ - key: "valid", - value: function valid() { - return this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data); - } - }, { - key: "encode", - value: function encode() { - if (this.options.flat) { - return this.flatEncoding(); - } else { - return this.guardedEncoding(); - } - } - }, { - key: "flatEncoding", - value: function flatEncoding() { - var result = ""; - - result += "101"; - result += (0, _encoder2.default)(this.data.substr(0, 6), "LLLLLL"); - result += "01010"; - result += (0, _encoder2.default)(this.data.substr(6, 6), "RRRRRR"); - result += "101"; - - return { - data: result, - text: this.text - }; - } - }, { - key: "guardedEncoding", - value: function guardedEncoding() { - var result = []; - - // Add the first digit - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text.substr(0, 1), - options: { textAlign: "left", fontSize: this.fontSize } - }); - } - - // Add the guard bars - result.push({ - data: "101" + (0, _encoder2.default)(this.data[0], "L"), - options: { height: this.guardHeight } - }); - - // Add the left side - result.push({ - data: (0, _encoder2.default)(this.data.substr(1, 5), "LLLLL"), - text: this.text.substr(1, 5), - options: { fontSize: this.fontSize } - }); - - // Add the middle bits - result.push({ - data: "01010", - options: { height: this.guardHeight } - }); - - // Add the right side - result.push({ - data: (0, _encoder2.default)(this.data.substr(6, 5), "RRRRR"), - text: this.text.substr(6, 5), - options: { fontSize: this.fontSize } - }); - - // Add the end bits - result.push({ - data: (0, _encoder2.default)(this.data[11], "R") + "101", - options: { height: this.guardHeight } - }); - - // Add the last digit - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text.substr(11, 1), - options: { textAlign: "right", fontSize: this.fontSize } - }); - } - - return result; - } - }]); - - return UPC; -}(_Barcode3.default); - -// Calulate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit - - -function checksum(number) { - var result = 0; - - var i; - for (i = 1; i < 11; i += 2) { - result += parseInt(number[i]); - } - for (i = 0; i < 11; i += 2) { - result += parseInt(number[i]) * 3; - } - - return (10 - result % 10) % 10; -} - -exports.default = UPC; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/UPCE.js b/bin/barcodes/EAN_UPC/UPCE.js deleted file mode 100644 index 2281492f..00000000 --- a/bin/barcodes/EAN_UPC/UPCE.js +++ /dev/null @@ -1,185 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _encoder = require('./encoder'); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = require('../Barcode.js'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -var _UPC = require('./UPC.js'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding -// -// UPC-E documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E - -var EXPANSIONS = ["XX00000XXX", "XX10000XXX", "XX20000XXX", "XXX00000XX", "XXXX00000X", "XXXXX00005", "XXXXX00006", "XXXXX00007", "XXXXX00008", "XXXXX00009"]; - -var PARITIES = [["EEEOOO", "OOOEEE"], ["EEOEOO", "OOEOEE"], ["EEOOEO", "OOEEOE"], ["EEOOOE", "OOEEEO"], ["EOEEOO", "OEOOEE"], ["EOOEEO", "OEEOOE"], ["EOOOEE", "OEEEOO"], ["EOEOEO", "OEOEOE"], ["EOEOOE", "OEOEEO"], ["EOOEOE", "OEEOEO"]]; - -var UPCE = function (_Barcode) { - _inherits(UPCE, _Barcode); - - function UPCE(data, options) { - _classCallCheck(this, UPCE); - - var _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options)); - // Code may be 6 or 8 digits; - // A 7 digit code is ambiguous as to whether the extra digit - // is a UPC-A check or number system digit. - - - _this.isValid = false; - if (data.search(/^[0-9]{6}$/) !== -1) { - _this.middleDigits = data; - _this.upcA = expandToUPCA(data, "0"); - _this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1]; - _this.isValid = true; - } else if (data.search(/^[01][0-9]{7}$/) !== -1) { - _this.middleDigits = data.substring(1, data.length - 1); - _this.upcA = expandToUPCA(_this.middleDigits, data[0]); - - if (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) { - _this.isValid = true; - } else { - // checksum mismatch - return _possibleConstructorReturn(_this); - } - } else { - return _possibleConstructorReturn(_this); - } - - _this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if (options.fontSize > options.width * 10) { - _this.fontSize = options.width * 10; - } else { - _this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(UPCE, [{ - key: 'valid', - value: function valid() { - return this.isValid; - } - }, { - key: 'encode', - value: function encode() { - if (this.options.flat) { - return this.flatEncoding(); - } else { - return this.guardedEncoding(); - } - } - }, { - key: 'flatEncoding', - value: function flatEncoding() { - var result = ""; - - result += "101"; - result += this.encodeMiddleDigits(); - result += "010101"; - - return { - data: result, - text: this.text - }; - } - }, { - key: 'guardedEncoding', - value: function guardedEncoding() { - var result = []; - - // Add the UPC-A number system digit beneath the quiet zone - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text[0], - options: { textAlign: "left", fontSize: this.fontSize } - }); - } - - // Add the guard bars - result.push({ - data: "101", - options: { height: this.guardHeight } - }); - - // Add the 6 UPC-E digits - result.push({ - data: this.encodeMiddleDigits(), - text: this.text.substring(1, 7), - options: { fontSize: this.fontSize } - }); - - // Add the end bits - result.push({ - data: "010101", - options: { height: this.guardHeight } - }); - - // Add the UPC-A check digit beneath the quiet zone - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text[7], - options: { textAlign: "right", fontSize: this.fontSize } - }); - } - - return result; - } - }, { - key: 'encodeMiddleDigits', - value: function encodeMiddleDigits() { - var numberSystem = this.upcA[0]; - var checkDigit = this.upcA[this.upcA.length - 1]; - var parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)]; - return (0, _encoder2.default)(this.middleDigits, parity); - } - }]); - - return UPCE; -}(_Barcode3.default); - -function expandToUPCA(middleDigits, numberSystem) { - var lastUpcE = parseInt(middleDigits[middleDigits.length - 1]); - var expansion = EXPANSIONS[lastUpcE]; - - var result = ""; - var digitIndex = 0; - for (var i = 0; i < expansion.length; i++) { - var c = expansion[i]; - if (c === 'X') { - result += middleDigits[digitIndex++]; - } else { - result += c; - } - } - - result = '' + numberSystem + result; - return '' + result + (0, _UPC.checksum)(result); -} - -exports.default = UPCE; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/constants.js b/bin/barcodes/EAN_UPC/constants.js deleted file mode 100644 index b00aa628..00000000 --- a/bin/barcodes/EAN_UPC/constants.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// Standard start end and middle bits -var SIDE_BIN = exports.SIDE_BIN = '101'; -var MIDDLE_BIN = exports.MIDDLE_BIN = '01010'; - -var BINARIES = exports.BINARIES = { - 'L': [// The L (left) type of encoding - '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], - 'G': [// The G type of encoding - '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'], - 'R': [// The R (right) type of encoding - '1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'], - 'O': [// The O (odd) encoding for UPC-E - '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], - 'E': [// The E (even) encoding for UPC-E - '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'] -}; - -// Define the EAN-2 structure -var EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG']; - -// Define the EAN-5 structure -var EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG']; - -// Define the EAN-13 structure -var EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL']; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/encoder.js b/bin/barcodes/EAN_UPC/encoder.js deleted file mode 100644 index 80d89322..00000000 --- a/bin/barcodes/EAN_UPC/encoder.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _constants = require('./constants'); - -// Encode data string -var encode = function encode(data, structure, separator) { - var encoded = data.split('').map(function (val, idx) { - return _constants.BINARIES[structure[idx]]; - }).map(function (val, idx) { - return val ? val[data[idx]] : ''; - }); - - if (separator) { - var last = data.length - 1; - encoded = encoded.map(function (val, idx) { - return idx < last ? val + separator : val; - }); - } - - return encoded.join(''); -}; - -exports.default = encode; \ No newline at end of file diff --git a/bin/barcodes/EAN_UPC/index.js b/bin/barcodes/EAN_UPC/index.js deleted file mode 100644 index ed0ae043..00000000 --- a/bin/barcodes/EAN_UPC/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined; - -var _EAN = require('./EAN13.js'); - -var _EAN2 = _interopRequireDefault(_EAN); - -var _EAN3 = require('./EAN8.js'); - -var _EAN4 = _interopRequireDefault(_EAN3); - -var _EAN5 = require('./EAN5.js'); - -var _EAN6 = _interopRequireDefault(_EAN5); - -var _EAN7 = require('./EAN2.js'); - -var _EAN8 = _interopRequireDefault(_EAN7); - -var _UPC = require('./UPC.js'); - -var _UPC2 = _interopRequireDefault(_UPC); - -var _UPCE = require('./UPCE.js'); - -var _UPCE2 = _interopRequireDefault(_UPCE); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.EAN13 = _EAN2.default; -exports.EAN8 = _EAN4.default; -exports.EAN5 = _EAN6.default; -exports.EAN2 = _EAN8.default; -exports.UPC = _UPC2.default; -exports.UPCE = _UPCE2.default; \ No newline at end of file diff --git a/bin/barcodes/GenericBarcode/index.js b/bin/barcodes/GenericBarcode/index.js deleted file mode 100644 index 05c7e2d1..00000000 --- a/bin/barcodes/GenericBarcode/index.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.GenericBarcode = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var GenericBarcode = function (_Barcode) { - _inherits(GenericBarcode, _Barcode); - - function GenericBarcode(data, options) { - _classCallCheck(this, GenericBarcode); - - return _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text - } - - // Return the corresponding binary numbers for the data provided - - - _createClass(GenericBarcode, [{ - key: "encode", - value: function encode() { - return { - data: "10101010101010101010101010101010101010101", - text: this.text - }; - } - - // Resturn true/false if the string provided is valid for this encoder - - }, { - key: "valid", - value: function valid() { - return true; - } - }]); - - return GenericBarcode; -}(_Barcode3.default); - -exports.GenericBarcode = GenericBarcode; \ No newline at end of file diff --git a/bin/barcodes/ITF/ITF.js b/bin/barcodes/ITF/ITF.js deleted file mode 100644 index 10b63462..00000000 --- a/bin/barcodes/ITF/ITF.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = require('./constants'); - -var _Barcode2 = require('../Barcode'); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var ITF = function (_Barcode) { - _inherits(ITF, _Barcode); - - function ITF() { - _classCallCheck(this, ITF); - - return _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments)); - } - - _createClass(ITF, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^([0-9]{2})+$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - var _this2 = this; - - // Calculate all the digit pairs - var encoded = this.data.match(/.{2}/g).map(function (pair) { - return _this2.encodePair(pair); - }).join(''); - - return { - data: _constants.START_BIN + encoded + _constants.END_BIN, - text: this.text - }; - } - - // Calculate the data of a number pair - - }, { - key: 'encodePair', - value: function encodePair(pair) { - var second = _constants.BINARIES[pair[1]]; - - return _constants.BINARIES[pair[0]].split('').map(function (first, idx) { - return (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0'); - }).join(''); - } - }]); - - return ITF; -}(_Barcode3.default); - -exports.default = ITF; \ No newline at end of file diff --git a/bin/barcodes/ITF/ITF14.js b/bin/barcodes/ITF/ITF14.js deleted file mode 100644 index 75687dfe..00000000 --- a/bin/barcodes/ITF/ITF14.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _ITF2 = require('./ITF'); - -var _ITF3 = _interopRequireDefault(_ITF2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Calculate the checksum digit -var checksum = function checksum(data) { - var res = data.substr(0, 13).split('').map(function (num) { - return parseInt(num, 10); - }).reduce(function (sum, n, idx) { - return sum + n * (3 - idx % 2 * 2); - }, 0); - - return Math.ceil(res / 10) * 10 - res; -}; - -var ITF14 = function (_ITF) { - _inherits(ITF14, _ITF); - - function ITF14(data, options) { - _classCallCheck(this, ITF14); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{13}$/) !== -1) { - data += checksum(data); - } - return _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options)); - } - - _createClass(ITF14, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data); - } - }]); - - return ITF14; -}(_ITF3.default); - -exports.default = ITF14; \ No newline at end of file diff --git a/bin/barcodes/ITF/constants.js b/bin/barcodes/ITF/constants.js deleted file mode 100644 index fede9528..00000000 --- a/bin/barcodes/ITF/constants.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var START_BIN = exports.START_BIN = '1010'; -var END_BIN = exports.END_BIN = '11101'; - -var BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010']; \ No newline at end of file diff --git a/bin/barcodes/ITF/index.js b/bin/barcodes/ITF/index.js deleted file mode 100644 index dd3945e5..00000000 --- a/bin/barcodes/ITF/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.ITF14 = exports.ITF = undefined; - -var _ITF = require('./ITF'); - -var _ITF2 = _interopRequireDefault(_ITF); - -var _ITF3 = require('./ITF14'); - -var _ITF4 = _interopRequireDefault(_ITF3); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.ITF = _ITF2.default; -exports.ITF14 = _ITF4.default; \ No newline at end of file diff --git a/bin/barcodes/MSI/MSI.js b/bin/barcodes/MSI/MSI.js deleted file mode 100644 index d53f5e11..00000000 --- a/bin/barcodes/MSI/MSI.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation -// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup - -var MSI = function (_Barcode) { - _inherits(MSI, _Barcode); - - function MSI(data, options) { - _classCallCheck(this, MSI); - - return _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options)); - } - - _createClass(MSI, [{ - key: "encode", - value: function encode() { - // Start bits - var ret = "110"; - - for (var i = 0; i < this.data.length; i++) { - // Convert the character to binary (always 4 binary digits) - var digit = parseInt(this.data[i]); - var bin = digit.toString(2); - bin = addZeroes(bin, 4 - bin.length); - - // Add 100 for every zero and 110 for every 1 - for (var b = 0; b < bin.length; b++) { - ret += bin[b] == "0" ? "100" : "110"; - } - } - - // End bits - ret += "1001"; - - return { - data: ret, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.data.search(/^[0-9]+$/) !== -1; - } - }]); - - return MSI; -}(_Barcode3.default); - -function addZeroes(number, n) { - for (var i = 0; i < n; i++) { - number = "0" + number; - } - return number; -} - -exports.default = MSI; \ No newline at end of file diff --git a/bin/barcodes/MSI/MSI10.js b/bin/barcodes/MSI/MSI10.js deleted file mode 100644 index fca0a5f1..00000000 --- a/bin/barcodes/MSI/MSI10.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = require('./MSI.js'); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = require('./checksums.js'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI10 = function (_MSI) { - _inherits(MSI10, _MSI); - - function MSI10(data, options) { - _classCallCheck(this, MSI10); - - return _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options)); - } - - return MSI10; -}(_MSI3.default); - -exports.default = MSI10; \ No newline at end of file diff --git a/bin/barcodes/MSI/MSI1010.js b/bin/barcodes/MSI/MSI1010.js deleted file mode 100644 index ea87f5bb..00000000 --- a/bin/barcodes/MSI/MSI1010.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = require('./MSI.js'); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = require('./checksums.js'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI1010 = function (_MSI) { - _inherits(MSI1010, _MSI); - - function MSI1010(data, options) { - _classCallCheck(this, MSI1010); - - data += (0, _checksums.mod10)(data); - data += (0, _checksums.mod10)(data); - return _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options)); - } - - return MSI1010; -}(_MSI3.default); - -exports.default = MSI1010; \ No newline at end of file diff --git a/bin/barcodes/MSI/MSI11.js b/bin/barcodes/MSI/MSI11.js deleted file mode 100644 index 8b18dc7b..00000000 --- a/bin/barcodes/MSI/MSI11.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = require('./MSI.js'); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = require('./checksums.js'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI11 = function (_MSI) { - _inherits(MSI11, _MSI); - - function MSI11(data, options) { - _classCallCheck(this, MSI11); - - return _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options)); - } - - return MSI11; -}(_MSI3.default); - -exports.default = MSI11; \ No newline at end of file diff --git a/bin/barcodes/MSI/MSI1110.js b/bin/barcodes/MSI/MSI1110.js deleted file mode 100644 index d5f2ab36..00000000 --- a/bin/barcodes/MSI/MSI1110.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = require('./MSI.js'); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = require('./checksums.js'); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI1110 = function (_MSI) { - _inherits(MSI1110, _MSI); - - function MSI1110(data, options) { - _classCallCheck(this, MSI1110); - - data += (0, _checksums.mod11)(data); - data += (0, _checksums.mod10)(data); - return _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options)); - } - - return MSI1110; -}(_MSI3.default); - -exports.default = MSI1110; \ No newline at end of file diff --git a/bin/barcodes/MSI/checksums.js b/bin/barcodes/MSI/checksums.js deleted file mode 100644 index 8314d6e9..00000000 --- a/bin/barcodes/MSI/checksums.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.mod10 = mod10; -exports.mod11 = mod11; -function mod10(number) { - var sum = 0; - for (var i = 0; i < number.length; i++) { - var n = parseInt(number[i]); - if ((i + number.length) % 2 === 0) { - sum += n; - } else { - sum += n * 2 % 10 + Math.floor(n * 2 / 10); - } - } - return (10 - sum % 10) % 10; -} - -function mod11(number) { - var sum = 0; - var weights = [2, 3, 4, 5, 6, 7]; - for (var i = 0; i < number.length; i++) { - var n = parseInt(number[number.length - 1 - i]); - sum += weights[i % weights.length] * n; - } - return (11 - sum % 11) % 11; -} \ No newline at end of file diff --git a/bin/barcodes/MSI/index.js b/bin/barcodes/MSI/index.js deleted file mode 100644 index 8eb7e43d..00000000 --- a/bin/barcodes/MSI/index.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined; - -var _MSI = require('./MSI.js'); - -var _MSI2 = _interopRequireDefault(_MSI); - -var _MSI3 = require('./MSI10.js'); - -var _MSI4 = _interopRequireDefault(_MSI3); - -var _MSI5 = require('./MSI11.js'); - -var _MSI6 = _interopRequireDefault(_MSI5); - -var _MSI7 = require('./MSI1010.js'); - -var _MSI8 = _interopRequireDefault(_MSI7); - -var _MSI9 = require('./MSI1110.js'); - -var _MSI10 = _interopRequireDefault(_MSI9); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.MSI = _MSI2.default; -exports.MSI10 = _MSI4.default; -exports.MSI11 = _MSI6.default; -exports.MSI1010 = _MSI8.default; -exports.MSI1110 = _MSI10.default; \ No newline at end of file diff --git a/bin/barcodes/codabar/index.js b/bin/barcodes/codabar/index.js deleted file mode 100644 index cd39cdfa..00000000 --- a/bin/barcodes/codabar/index.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.codabar = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding specification: -// http://www.barcodeisland.com/codabar.phtml - -var codabar = function (_Barcode) { - _inherits(codabar, _Barcode); - - function codabar(data, options) { - _classCallCheck(this, codabar); - - if (data.search(/^[0-9\-\$\:\.\+\/]+$/) === 0) { - data = "A" + data + "A"; - } - - var _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options)); - - _this.text = _this.options.text || _this.text.replace(/[A-D]/g, ''); - return _this; - } - - _createClass(codabar, [{ - key: "valid", - value: function valid() { - return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/) !== -1; - } - }, { - key: "encode", - value: function encode() { - var result = []; - var encodings = this.getEncodings(); - for (var i = 0; i < this.data.length; i++) { - result.push(encodings[this.data.charAt(i)]); - // for all characters except the last, append a narrow-space ("0") - if (i !== this.data.length - 1) { - result.push("0"); - } - } - return { - text: this.text, - data: result.join('') - }; - } - }, { - key: "getEncodings", - value: function getEncodings() { - return { - "0": "101010011", - "1": "101011001", - "2": "101001011", - "3": "110010101", - "4": "101101001", - "5": "110101001", - "6": "100101011", - "7": "100101101", - "8": "100110101", - "9": "110100101", - "-": "101001101", - "$": "101100101", - ":": "1101011011", - "/": "1101101011", - ".": "1101101101", - "+": "101100110011", - "A": "1011001001", - "B": "1001001011", - "C": "1010010011", - "D": "1010011001" - }; - } - }]); - - return codabar; -}(_Barcode3.default); - -exports.codabar = codabar; \ No newline at end of file diff --git a/bin/barcodes/index.js b/bin/barcodes/index.js deleted file mode 100644 index 98745935..00000000 --- a/bin/barcodes/index.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CODE = require('./CODE39/'); - -var _CODE2 = require('./CODE128/'); - -var _EAN_UPC = require('./EAN_UPC/'); - -var _ITF = require('./ITF/'); - -var _MSI = require('./MSI/'); - -var _pharmacode = require('./pharmacode/'); - -var _codabar = require('./codabar'); - -var _GenericBarcode = require('./GenericBarcode/'); - -exports.default = { - CODE39: _CODE.CODE39, - CODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C, - EAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE, - ITF14: _ITF.ITF14, - ITF: _ITF.ITF, - MSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110, - pharmacode: _pharmacode.pharmacode, - codabar: _codabar.codabar, - GenericBarcode: _GenericBarcode.GenericBarcode -}; \ No newline at end of file diff --git a/bin/barcodes/index.tmp.js b/bin/barcodes/index.tmp.js deleted file mode 100644 index 98745935..00000000 --- a/bin/barcodes/index.tmp.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CODE = require('./CODE39/'); - -var _CODE2 = require('./CODE128/'); - -var _EAN_UPC = require('./EAN_UPC/'); - -var _ITF = require('./ITF/'); - -var _MSI = require('./MSI/'); - -var _pharmacode = require('./pharmacode/'); - -var _codabar = require('./codabar'); - -var _GenericBarcode = require('./GenericBarcode/'); - -exports.default = { - CODE39: _CODE.CODE39, - CODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C, - EAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE, - ITF14: _ITF.ITF14, - ITF: _ITF.ITF, - MSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110, - pharmacode: _pharmacode.pharmacode, - codabar: _codabar.codabar, - GenericBarcode: _GenericBarcode.GenericBarcode -}; \ No newline at end of file diff --git a/bin/barcodes/pharmacode/index.js b/bin/barcodes/pharmacode/index.js deleted file mode 100644 index 243794a0..00000000 --- a/bin/barcodes/pharmacode/index.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.pharmacode = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = require("../Barcode.js"); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation -// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf - -var pharmacode = function (_Barcode) { - _inherits(pharmacode, _Barcode); - - function pharmacode(data, options) { - _classCallCheck(this, pharmacode); - - var _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options)); - - _this.number = parseInt(data, 10); - return _this; - } - - _createClass(pharmacode, [{ - key: "encode", - value: function encode() { - var z = this.number; - var result = ""; - - // http://i.imgur.com/RMm4UDJ.png - // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34) - while (!isNaN(z) && z != 0) { - if (z % 2 === 0) { - // Even - result = "11100" + result; - z = (z - 2) / 2; - } else { - // Odd - result = "100" + result; - z = (z - 1) / 2; - } - } - - // Remove the two last zeroes - result = result.slice(0, -2); - - return { - data: result, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.number >= 3 && this.number <= 131070; - } - }]); - - return pharmacode; -}(_Barcode3.default); - -exports.pharmacode = pharmacode; \ No newline at end of file diff --git a/bin/exceptions/ErrorHandler.js b/bin/exceptions/ErrorHandler.js deleted file mode 100644 index 729ab284..00000000 --- a/bin/exceptions/ErrorHandler.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/*eslint no-console: 0 */ - -var ErrorHandler = function () { - function ErrorHandler(api) { - _classCallCheck(this, ErrorHandler); - - this.api = api; - } - - _createClass(ErrorHandler, [{ - key: "handleCatch", - value: function handleCatch(e) { - // If babel supported extending of Error in a correct way instanceof would be used here - if (e.name === "InvalidInputException") { - if (this.api._options.valid !== this.api._defaults.valid) { - this.api._options.valid(false); - } else { - throw e.message; - } - } else { - throw e; - } - - this.api.render = function () {}; - } - }, { - key: "wrapBarcodeCall", - value: function wrapBarcodeCall(func) { - try { - var result = func.apply(undefined, arguments); - this.api._options.valid(true); - return result; - } catch (e) { - this.handleCatch(e); - - return this.api; - } - } - }]); - - return ErrorHandler; -}(); - -exports.default = ErrorHandler; \ No newline at end of file diff --git a/bin/exceptions/exceptions.js b/bin/exceptions/exceptions.js deleted file mode 100644 index 9919c5af..00000000 --- a/bin/exceptions/exceptions.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var InvalidInputException = function (_Error) { - _inherits(InvalidInputException, _Error); - - function InvalidInputException(symbology, input) { - _classCallCheck(this, InvalidInputException); - - var _this = _possibleConstructorReturn(this, (InvalidInputException.__proto__ || Object.getPrototypeOf(InvalidInputException)).call(this)); - - _this.name = "InvalidInputException"; - - _this.symbology = symbology; - _this.input = input; - - _this.message = '"' + _this.input + '" is not a valid input for ' + _this.symbology; - return _this; - } - - return InvalidInputException; -}(Error); - -var InvalidElementException = function (_Error2) { - _inherits(InvalidElementException, _Error2); - - function InvalidElementException() { - _classCallCheck(this, InvalidElementException); - - var _this2 = _possibleConstructorReturn(this, (InvalidElementException.__proto__ || Object.getPrototypeOf(InvalidElementException)).call(this)); - - _this2.name = "InvalidElementException"; - _this2.message = "Not supported type to render on"; - return _this2; - } - - return InvalidElementException; -}(Error); - -var NoElementException = function (_Error3) { - _inherits(NoElementException, _Error3); - - function NoElementException() { - _classCallCheck(this, NoElementException); - - var _this3 = _possibleConstructorReturn(this, (NoElementException.__proto__ || Object.getPrototypeOf(NoElementException)).call(this)); - - _this3.name = "NoElementException"; - _this3.message = "No element to render on."; - return _this3; - } - - return NoElementException; -}(Error); - -exports.InvalidInputException = InvalidInputException; -exports.InvalidElementException = InvalidElementException; -exports.NoElementException = NoElementException; \ No newline at end of file diff --git a/bin/help/fixOptions.js b/bin/help/fixOptions.js deleted file mode 100644 index da65887b..00000000 --- a/bin/help/fixOptions.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = fixOptions; - - -function fixOptions(options) { - // Fix the margins - options.marginTop = options.marginTop || options.margin; - options.marginBottom = options.marginBottom || options.margin; - options.marginRight = options.marginRight || options.margin; - options.marginLeft = options.marginLeft || options.margin; - - return options; -} \ No newline at end of file diff --git a/bin/help/getOptionsFromElement.js b/bin/help/getOptionsFromElement.js deleted file mode 100644 index 2a6f5a1e..00000000 --- a/bin/help/getOptionsFromElement.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _optionsFromStrings = require("./optionsFromStrings.js"); - -var _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings); - -var _defaults = require("../options/defaults.js"); - -var _defaults2 = _interopRequireDefault(_defaults); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getOptionsFromElement(element) { - var options = {}; - for (var property in _defaults2.default) { - if (_defaults2.default.hasOwnProperty(property)) { - // jsbarcode-* - if (element.hasAttribute("jsbarcode-" + property.toLowerCase())) { - options[property] = element.getAttribute("jsbarcode-" + property.toLowerCase()); - } - - // data-* - if (element.hasAttribute("data-" + property.toLowerCase())) { - options[property] = element.getAttribute("data-" + property.toLowerCase()); - } - } - } - - options["value"] = element.getAttribute("jsbarcode-value") || element.getAttribute("data-value"); - - // Since all atributes are string they need to be converted to integers - options = (0, _optionsFromStrings2.default)(options); - - return options; -} - -exports.default = getOptionsFromElement; \ No newline at end of file diff --git a/bin/help/getRenderProperties.js b/bin/help/getRenderProperties.js deleted file mode 100644 index 56c639ed..00000000 --- a/bin/help/getRenderProperties.js +++ /dev/null @@ -1,108 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* global HTMLImageElement */ -/* global HTMLCanvasElement */ -/* global SVGElement */ - -var _getOptionsFromElement = require("./getOptionsFromElement.js"); - -var _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement); - -var _renderers = require("../renderers"); - -var _renderers2 = _interopRequireDefault(_renderers); - -var _exceptions = require("../exceptions/exceptions.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Takes an element and returns an object with information about how -// it should be rendered -// This could also return an array with these objects -// { -// element: The element that the renderer should draw on -// renderer: The name of the renderer -// afterRender (optional): If something has to done after the renderer -// completed, calls afterRender (function) -// options (optional): Options that can be defined in the element -// } - -function getRenderProperties(element) { - // If the element is a string, query select call again - if (typeof element === "string") { - return querySelectedRenderProperties(element); - } - // If element is array. Recursivly call with every object in the array - else if (Array.isArray(element)) { - var returnArray = []; - for (var i = 0; i < element.length; i++) { - returnArray.push(getRenderProperties(element[i])); - } - return returnArray; - } - // If element, render on canvas and set the uri as src - else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) { - return newCanvasRenderProperties(element); - } - // If SVG - else if (element && element.nodeName === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) { - return { - element: element, - options: (0, _getOptionsFromElement2.default)(element), - renderer: _renderers2.default.SVGRenderer - }; - } - // If canvas (in browser) - else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) { - return { - element: element, - options: (0, _getOptionsFromElement2.default)(element), - renderer: _renderers2.default.CanvasRenderer - }; - } - // If canvas (in node) - else if (element && element.getContext) { - return { - element: element, - renderer: _renderers2.default.CanvasRenderer - }; - } else if (element && (typeof element === "undefined" ? "undefined" : _typeof(element)) === 'object' && !element.nodeName) { - return { - element: element, - renderer: _renderers2.default.ObjectRenderer - }; - } else { - throw new _exceptions.InvalidElementException(); - } -} - -function querySelectedRenderProperties(string) { - var selector = document.querySelectorAll(string); - if (selector.length === 0) { - return undefined; - } else { - var returnArray = []; - for (var i = 0; i < selector.length; i++) { - returnArray.push(getRenderProperties(selector[i])); - } - return returnArray; - } -} - -function newCanvasRenderProperties(imgElement) { - var canvas = document.createElement('canvas'); - return { - element: canvas, - options: (0, _getOptionsFromElement2.default)(imgElement), - renderer: _renderers2.default.CanvasRenderer, - afterRender: function afterRender() { - imgElement.setAttribute("src", canvas.toDataURL()); - } - }; -} - -exports.default = getRenderProperties; \ No newline at end of file diff --git a/bin/help/linearizeEncodings.js b/bin/help/linearizeEncodings.js deleted file mode 100644 index 8da06160..00000000 --- a/bin/help/linearizeEncodings.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = linearizeEncodings; - -// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] -// Convert to [1-1, 1-2, 2, 3-1, 3-2] - -function linearizeEncodings(encodings) { - var linearEncodings = []; - function nextLevel(encoded) { - if (Array.isArray(encoded)) { - for (var i = 0; i < encoded.length; i++) { - nextLevel(encoded[i]); - } - } else { - encoded.text = encoded.text || ""; - encoded.data = encoded.data || ""; - linearEncodings.push(encoded); - } - } - nextLevel(encodings); - - return linearEncodings; -} \ No newline at end of file diff --git a/bin/help/merge.js b/bin/help/merge.js deleted file mode 100644 index f60623dd..00000000 --- a/bin/help/merge.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports.default = function (old, replaceObj) { - return _extends({}, old, replaceObj); -}; \ No newline at end of file diff --git a/bin/help/optionsFromStrings.js b/bin/help/optionsFromStrings.js deleted file mode 100644 index bc183361..00000000 --- a/bin/help/optionsFromStrings.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = optionsFromStrings; - -// Convert string to integers/booleans where it should be - -function optionsFromStrings(options) { - var intOptions = ["width", "height", "textMargin", "fontSize", "margin", "marginTop", "marginBottom", "marginLeft", "marginRight"]; - - for (var intOption in intOptions) { - if (intOptions.hasOwnProperty(intOption)) { - intOption = intOptions[intOption]; - if (typeof options[intOption] === "string") { - options[intOption] = parseInt(options[intOption], 10); - } - } - } - - if (typeof options["displayValue"] === "string") { - options["displayValue"] = options["displayValue"] != "false"; - } - - return options; -} \ No newline at end of file diff --git a/bin/options/defaults.js b/bin/options/defaults.js deleted file mode 100644 index f546b8a3..00000000 --- a/bin/options/defaults.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var defaults = { - width: 2, - height: 100, - format: "auto", - displayValue: true, - fontOptions: "", - font: "monospace", - text: undefined, - textAlign: "center", - textPosition: "bottom", - textMargin: 2, - fontSize: 20, - background: "#ffffff", - lineColor: "#000000", - margin: 10, - marginTop: undefined, - marginBottom: undefined, - marginLeft: undefined, - marginRight: undefined, - valid: function valid() {} -}; - -exports.default = defaults; \ No newline at end of file diff --git a/bin/renderers/canvas.js b/bin/renderers/canvas.js deleted file mode 100644 index df9185f1..00000000 --- a/bin/renderers/canvas.js +++ /dev/null @@ -1,158 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _merge = require("../help/merge.js"); - -var _merge2 = _interopRequireDefault(_merge); - -var _shared = require("./shared.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var CanvasRenderer = function () { - function CanvasRenderer(canvas, encodings, options) { - _classCallCheck(this, CanvasRenderer); - - this.canvas = canvas; - this.encodings = encodings; - this.options = options; - } - - _createClass(CanvasRenderer, [{ - key: "render", - value: function render() { - // Abort if the browser does not support HTML5 canvas - if (!this.canvas.getContext) { - throw new Error('The browser does not support canvas.'); - } - - this.prepareCanvas(); - for (var i = 0; i < this.encodings.length; i++) { - var encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options); - - this.drawCanvasBarcode(encodingOptions, this.encodings[i]); - this.drawCanvasText(encodingOptions, this.encodings[i]); - - this.moveCanvasDrawing(this.encodings[i]); - } - - this.restoreCanvas(); - } - }, { - key: "prepareCanvas", - value: function prepareCanvas() { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.save(); - - (0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx); - var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings); - var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings); - - this.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight; - - this.canvas.height = maxHeight; - - // Paint the canvas - ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); - if (this.options.background) { - ctx.fillStyle = this.options.background; - ctx.fillRect(0, 0, this.canvas.width, this.canvas.height); - } - - ctx.translate(this.options.marginLeft, 0); - } - }, { - key: "drawCanvasBarcode", - value: function drawCanvasBarcode(options, encoding) { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if (options.textPosition == "top") { - yFrom = options.marginTop + options.fontSize + options.textMargin; - } else { - yFrom = options.marginTop; - } - - ctx.fillStyle = options.lineColor; - - for (var b = 0; b < binary.length; b++) { - var x = b * options.width + encoding.barcodePadding; - - if (binary[b] === "1") { - ctx.fillRect(x, yFrom, options.width, options.height); - } else if (binary[b]) { - ctx.fillRect(x, yFrom, options.width, options.height * binary[b]); - } - } - } - }, { - key: "drawCanvasText", - value: function drawCanvasText(options, encoding) { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Draw the text if displayValue is set - if (options.displayValue) { - var x, y; - - if (options.textPosition == "top") { - y = options.marginTop + options.fontSize - options.textMargin; - } else { - y = options.height + options.textMargin + options.marginTop + options.fontSize; - } - - ctx.font = font; - - // Draw the text in the correct X depending on the textAlign option - if (options.textAlign == "left" || encoding.barcodePadding > 0) { - x = 0; - ctx.textAlign = 'left'; - } else if (options.textAlign == "right") { - x = encoding.width - 1; - ctx.textAlign = 'right'; - } - // In all other cases, center the text - else { - x = encoding.width / 2; - ctx.textAlign = 'center'; - } - - ctx.fillText(encoding.text, x, y); - } - } - }, { - key: "moveCanvasDrawing", - value: function moveCanvasDrawing(encoding) { - var ctx = this.canvas.getContext("2d"); - - ctx.translate(encoding.width, 0); - } - }, { - key: "restoreCanvas", - value: function restoreCanvas() { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.restore(); - } - }]); - - return CanvasRenderer; -}(); - -exports.default = CanvasRenderer; \ No newline at end of file diff --git a/bin/renderers/index.js b/bin/renderers/index.js deleted file mode 100644 index 7ad8fa68..00000000 --- a/bin/renderers/index.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _canvas = require('./canvas.js'); - -var _canvas2 = _interopRequireDefault(_canvas); - -var _svg = require('./svg.js'); - -var _svg2 = _interopRequireDefault(_svg); - -var _object = require('./object.js'); - -var _object2 = _interopRequireDefault(_object); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = { CanvasRenderer: _canvas2.default, SVGRenderer: _svg2.default, ObjectRenderer: _object2.default }; \ No newline at end of file diff --git a/bin/renderers/object.js b/bin/renderers/object.js deleted file mode 100644 index 605f751c..00000000 --- a/bin/renderers/object.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var ObjectRenderer = function () { - function ObjectRenderer(object, encodings, options) { - _classCallCheck(this, ObjectRenderer); - - this.object = object; - this.encodings = encodings; - this.options = options; - } - - _createClass(ObjectRenderer, [{ - key: "render", - value: function render() { - this.object.encodings = this.encodings; - } - }]); - - return ObjectRenderer; -}(); - -exports.default = ObjectRenderer; \ No newline at end of file diff --git a/bin/renderers/shared.js b/bin/renderers/shared.js deleted file mode 100644 index 3e26c4f3..00000000 --- a/bin/renderers/shared.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined; - -var _merge = require("../help/merge.js"); - -var _merge2 = _interopRequireDefault(_merge); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getEncodingHeight(encoding, options) { - return options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom; -} - -function getBarcodePadding(textWidth, barcodeWidth, options) { - if (options.displayValue && barcodeWidth < textWidth) { - if (options.textAlign == "center") { - return Math.floor((textWidth - barcodeWidth) / 2); - } else if (options.textAlign == "left") { - return 0; - } else if (options.textAlign == "right") { - return Math.floor(textWidth - barcodeWidth); - } - } - return 0; -} - -function calculateEncodingAttributes(encodings, barcodeOptions, context) { - for (var i = 0; i < encodings.length; i++) { - var encoding = encodings[i]; - var options = (0, _merge2.default)(barcodeOptions, encoding.options); - - // Calculate the width of the encoding - var textWidth; - if (options.displayValue) { - textWidth = messureText(encoding.text, options, context); - } else { - textWidth = 0; - } - - var barcodeWidth = encoding.data.length * options.width; - encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth)); - - encoding.height = getEncodingHeight(encoding, options); - - encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options); - } -} - -function getTotalWidthOfEncodings(encodings) { - var totalWidth = 0; - for (var i = 0; i < encodings.length; i++) { - totalWidth += encodings[i].width; - } - return totalWidth; -} - -function getMaximumHeightOfEncodings(encodings) { - var maxHeight = 0; - for (var i = 0; i < encodings.length; i++) { - if (encodings[i].height > maxHeight) { - maxHeight = encodings[i].height; - } - } - return maxHeight; -} - -function messureText(string, options, context) { - var ctx; - - if (context) { - ctx = context; - } else if (typeof document !== "undefined") { - ctx = document.createElement("canvas").getContext("2d"); - } else { - // If the text cannot be messured we will return 0. - // This will make some barcode with big text render incorrectly - return 0; - } - ctx.font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Calculate the width of the encoding - var size = ctx.measureText(string).width; - - return size; -} - -exports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings; -exports.getEncodingHeight = getEncodingHeight; -exports.getBarcodePadding = getBarcodePadding; -exports.calculateEncodingAttributes = calculateEncodingAttributes; -exports.getTotalWidthOfEncodings = getTotalWidthOfEncodings; \ No newline at end of file diff --git a/bin/renderers/svg.js b/bin/renderers/svg.js deleted file mode 100644 index 2da731ac..00000000 --- a/bin/renderers/svg.js +++ /dev/null @@ -1,189 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _merge = require("../help/merge.js"); - -var _merge2 = _interopRequireDefault(_merge); - -var _shared = require("./shared.js"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var svgns = "http://www.w3.org/2000/svg"; - -var SVGRenderer = function () { - function SVGRenderer(svg, encodings, options) { - _classCallCheck(this, SVGRenderer); - - this.svg = svg; - this.encodings = encodings; - this.options = options; - this.document = options.xmlDocument || document; - } - - _createClass(SVGRenderer, [{ - key: "render", - value: function render() { - var currentX = this.options.marginLeft; - - this.prepareSVG(); - for (var i = 0; i < this.encodings.length; i++) { - var encoding = this.encodings[i]; - var encodingOptions = (0, _merge2.default)(this.options, encoding.options); - - var group = this.createGroup(currentX, encodingOptions.marginTop, this.svg); - - this.setGroupOptions(group, encodingOptions); - - this.drawSvgBarcode(group, encodingOptions, encoding); - this.drawSVGText(group, encodingOptions, encoding); - - currentX += encoding.width; - } - } - }, { - key: "prepareSVG", - value: function prepareSVG() { - // Clear the SVG - while (this.svg.firstChild) { - this.svg.removeChild(this.svg.firstChild); - } - - (0, _shared.calculateEncodingAttributes)(this.encodings, this.options); - var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings); - var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings); - - var width = totalWidth + this.options.marginLeft + this.options.marginRight; - this.setSvgAttributes(width, maxHeight); - - if (this.options.background) { - this.drawRect(0, 0, width, maxHeight, this.svg).setAttribute("style", "fill:" + this.options.background + ";"); - } - } - }, { - key: "drawSvgBarcode", - value: function drawSvgBarcode(parent, options, encoding) { - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if (options.textPosition == "top") { - yFrom = options.fontSize + options.textMargin; - } else { - yFrom = 0; - } - - var barWidth = 0; - var x = 0; - for (var b = 0; b < binary.length; b++) { - x = b * options.width + encoding.barcodePadding; - - if (binary[b] === "1") { - barWidth++; - } else if (barWidth > 0) { - this.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent); - barWidth = 0; - } - } - - // Last draw is needed since the barcode ends with 1 - if (barWidth > 0) { - this.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent); - } - } - }, { - key: "drawSVGText", - value: function drawSVGText(parent, options, encoding) { - var textElem = this.document.createElementNS(svgns, 'text'); - - // Draw the text if displayValue is set - if (options.displayValue) { - var x, y; - - textElem.setAttribute("style", "font:" + options.fontOptions + " " + options.fontSize + "px " + options.font); - - if (options.textPosition == "top") { - y = options.fontSize - options.textMargin; - } else { - y = options.height + options.textMargin + options.fontSize; - } - - // Draw the text in the correct X depending on the textAlign option - if (options.textAlign == "left" || encoding.barcodePadding > 0) { - x = 0; - textElem.setAttribute("text-anchor", "start"); - } else if (options.textAlign == "right") { - x = encoding.width - 1; - textElem.setAttribute("text-anchor", "end"); - } - // In all other cases, center the text - else { - x = encoding.width / 2; - textElem.setAttribute("text-anchor", "middle"); - } - - textElem.setAttribute("x", x); - textElem.setAttribute("y", y); - - textElem.appendChild(this.document.createTextNode(encoding.text)); - - parent.appendChild(textElem); - } - } - }, { - key: "setSvgAttributes", - value: function setSvgAttributes(width, height) { - var svg = this.svg; - svg.setAttribute("width", width + "px"); - svg.setAttribute("height", height + "px"); - svg.setAttribute("x", "0px"); - svg.setAttribute("y", "0px"); - svg.setAttribute("viewBox", "0 0 " + width + " " + height); - - svg.setAttribute("xmlns", svgns); - svg.setAttribute("version", "1.1"); - - svg.setAttribute("style", "transform: translate(0,0)"); - } - }, { - key: "createGroup", - value: function createGroup(x, y, parent) { - var group = this.document.createElementNS(svgns, 'g'); - group.setAttribute("transform", "translate(" + x + ", " + y + ")"); - - parent.appendChild(group); - - return group; - } - }, { - key: "setGroupOptions", - value: function setGroupOptions(group, options) { - group.setAttribute("style", "fill:" + options.lineColor + ";"); - } - }, { - key: "drawRect", - value: function drawRect(x, y, width, height, parent) { - var rect = this.document.createElementNS(svgns, 'rect'); - - rect.setAttribute("x", x); - rect.setAttribute("y", y); - rect.setAttribute("width", width); - rect.setAttribute("height", height); - - parent.appendChild(rect); - - return rect; - } - }]); - - return SVGRenderer; -}(); - -exports.default = SVGRenderer; \ No newline at end of file diff --git a/bower.json b/bower.json deleted file mode 100644 index 6976cd10..00000000 --- a/bower.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "JsBarcode", - "main": "dist/JsBarcode.all.min.js", - "version": "3.11.0", - "homepage": "https://github.com/lindell/JsBarcode", - "authors": [ - "Johan Lindell " - ], - "description": "JsBarcode is a simple way to create different types of 1d barcodes.", - "repository": { - "type": "git", - "url": "git://github.com/lindell/JsBarcode" - }, - "moduleType": [ - "globals" - ], - "keywords": [ - "barcode", - "canvas", - "code128", - "upc", - "ean", - "itf", - "msi", - "pharmacode" - ], - "license": "MIT", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/dist/JsBarcode.all.js b/dist/JsBarcode.all.js deleted file mode 100644 index 78377424..00000000 --- a/dist/JsBarcode.all.js +++ /dev/null @@ -1,3646 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 20); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Barcode = function Barcode(data, options) { - _classCallCheck(this, Barcode); - - this.data = data; - this.text = options.text || data; - this.options = options; -}; - -exports.default = Barcode; - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _SET_BY_CODE; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -// constants for internal usage -var SET_A = exports.SET_A = 0; -var SET_B = exports.SET_B = 1; -var SET_C = exports.SET_C = 2; - -// Special characters -var SHIFT = exports.SHIFT = 98; -var START_A = exports.START_A = 103; -var START_B = exports.START_B = 104; -var START_C = exports.START_C = 105; -var MODULO = exports.MODULO = 103; -var STOP = exports.STOP = 106; -var FNC1 = exports.FNC1 = 207; - -// Get set by start code -var SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE); - -// Get next set by code -var SWAP = exports.SWAP = { - 101: SET_A, - 100: SET_B, - 99: SET_C -}; - -var A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105 -var B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105 -var C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105 - -// 128A (Code Set A) -// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4 -var A_CHARS = exports.A_CHARS = "[\x00-\x5F\xC8-\xCF]"; - -// 128B (Code Set B) -// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4 -var B_CHARS = exports.B_CHARS = "[\x20-\x7F\xC8-\xCF]"; - -// 128C (Code Set C) -// 00–99 (encodes two digits with a single code point) and FNC1 -var C_CHARS = exports.C_CHARS = "(\xCF*[0-9]{2}\xCF*)"; - -// CODE128 includes 107 symbols: -// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one) -// Each symbol consist of three black bars (1) and three white spaces (0). -var BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011]; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -// Standard start end and middle bits -var SIDE_BIN = exports.SIDE_BIN = '101'; -var MIDDLE_BIN = exports.MIDDLE_BIN = '01010'; - -var BINARIES = exports.BINARIES = { - 'L': [// The L (left) type of encoding - '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], - 'G': [// The G type of encoding - '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'], - 'R': [// The R (right) type of encoding - '1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'], - 'O': [// The O (odd) encoding for UPC-E - '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], - 'E': [// The E (even) encoding for UPC-E - '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'] -}; - -// Define the EAN-2 structure -var EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG']; - -// Define the EAN-5 structure -var EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG']; - -// Define the EAN-13 structure -var EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL']; - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _constants = __webpack_require__(2); - -// Encode data string -var encode = function encode(data, structure, separator) { - var encoded = data.split('').map(function (val, idx) { - return _constants.BINARIES[structure[idx]]; - }).map(function (val, idx) { - return val ? val[data[idx]] : ''; - }); - - if (separator) { - var last = data.length - 1; - encoded = encoded.map(function (val, idx) { - return idx < last ? val + separator : val; - }); - } - - return encoded.join(''); -}; - -exports.default = encode; - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation -// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup - -var MSI = function (_Barcode) { - _inherits(MSI, _Barcode); - - function MSI(data, options) { - _classCallCheck(this, MSI); - - return _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options)); - } - - _createClass(MSI, [{ - key: "encode", - value: function encode() { - // Start bits - var ret = "110"; - - for (var i = 0; i < this.data.length; i++) { - // Convert the character to binary (always 4 binary digits) - var digit = parseInt(this.data[i]); - var bin = digit.toString(2); - bin = addZeroes(bin, 4 - bin.length); - - // Add 100 for every zero and 110 for every 1 - for (var b = 0; b < bin.length; b++) { - ret += bin[b] == "0" ? "100" : "110"; - } - } - - // End bits - ret += "1001"; - - return { - data: ret, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.data.search(/^[0-9]+$/) !== -1; - } - }]); - - return MSI; -}(_Barcode3.default); - -function addZeroes(number, n) { - for (var i = 0; i < n; i++) { - number = "0" + number; - } - return number; -} - -exports.default = MSI; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -exports.default = function (old, replaceObj) { - return _extends({}, old, replaceObj); -}; - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -var _constants = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// This is the master class, -// it does require the start code to be included in the string -var CODE128 = function (_Barcode) { - _inherits(CODE128, _Barcode); - - function CODE128(data, options) { - _classCallCheck(this, CODE128); - - // Get array of ascii codes from data - var _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options)); - - _this.bytes = data.split('').map(function (char) { - return char.charCodeAt(0); - }); - return _this; - } - - _createClass(CODE128, [{ - key: 'valid', - value: function valid() { - // ASCII value ranges 0-127, 200-211 - return (/^[\x00-\x7F\xC8-\xD3]+$/.test(this.data) - ); - } - - // The public encoding function - - }, { - key: 'encode', - value: function encode() { - var bytes = this.bytes; - // Remove the start code from the bytes and set its index - var startIndex = bytes.shift() - 105; - // Get start set by index - var startSet = _constants.SET_BY_CODE[startIndex]; - - if (startSet === undefined) { - throw new RangeError('The encoding does not start with a start character.'); - } - - if (this.shouldEncodeAsEan128() === true) { - bytes.unshift(_constants.FNC1); - } - - // Start encode with the right type - var encodingResult = CODE128.next(bytes, 1, startSet); - - return { - text: this.text === this.data ? this.text.replace(/[^\x20-\x7E]/g, '') : this.text, - data: - // Add the start bits - CODE128.getBar(startIndex) + - // Add the encoded bits - encodingResult.result + - // Add the checksum - CODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) + - // Add the end bits - CODE128.getBar(_constants.STOP) - }; - } - - // GS1-128/EAN-128 - - }, { - key: 'shouldEncodeAsEan128', - value: function shouldEncodeAsEan128() { - var isEAN128 = this.options.ean128 || false; - if (typeof isEAN128 === 'string') { - isEAN128 = isEAN128.toLowerCase() === 'true'; - } - return isEAN128; - } - - // Get a bar symbol by index - - }], [{ - key: 'getBar', - value: function getBar(index) { - return _constants.BARS[index] ? _constants.BARS[index].toString() : ''; - } - - // Correct an index by a set and shift it from the bytes array - - }, { - key: 'correctIndex', - value: function correctIndex(bytes, set) { - if (set === _constants.SET_A) { - var charCode = bytes.shift(); - return charCode < 32 ? charCode + 64 : charCode - 32; - } else if (set === _constants.SET_B) { - return bytes.shift() - 32; - } else { - return (bytes.shift() - 48) * 10 + bytes.shift() - 48; - } - } - }, { - key: 'next', - value: function next(bytes, pos, set) { - if (!bytes.length) { - return { result: '', checksum: 0 }; - } - - var nextCode = void 0, - index = void 0; - - // Special characters - if (bytes[0] >= 200) { - index = bytes.shift() - 105; - var nextSet = _constants.SWAP[index]; - - // Swap to other set - if (nextSet !== undefined) { - nextCode = CODE128.next(bytes, pos + 1, nextSet); - } - // Continue on current set but encode a special character - else { - // Shift - if ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) { - // Convert the next character so that is encoded correctly - bytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0]; - } - nextCode = CODE128.next(bytes, pos + 1, set); - } - } - // Continue encoding - else { - index = CODE128.correctIndex(bytes, set); - nextCode = CODE128.next(bytes, pos + 1, set); - } - - // Get the correct binary encoding and calculate the weight - var enc = CODE128.getBar(index); - var weight = index * pos; - - return { - result: enc + nextCode.result, - checksum: weight + nextCode.checksum - }; - } - }]); - - return CODE128; -}(_Barcode3.default); - -exports.default = CODE128; - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.mod10 = mod10; -exports.mod11 = mod11; -function mod10(number) { - var sum = 0; - for (var i = 0; i < number.length; i++) { - var n = parseInt(number[i]); - if ((i + number.length) % 2 === 0) { - sum += n; - } else { - sum += n * 2 % 10 + Math.floor(n * 2 / 10); - } - } - return (10 - sum % 10) % 10; -} - -function mod11(number) { - var sum = 0; - var weights = [2, 3, 4, 5, 6, 7]; - for (var i = 0; i < number.length; i++) { - var n = parseInt(number[number.length - 1 - i]); - sum += weights[i % weights.length] * n; - } - return (11 - sum % 11) % 11; -} - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var InvalidInputException = function (_Error) { - _inherits(InvalidInputException, _Error); - - function InvalidInputException(symbology, input) { - _classCallCheck(this, InvalidInputException); - - var _this = _possibleConstructorReturn(this, (InvalidInputException.__proto__ || Object.getPrototypeOf(InvalidInputException)).call(this)); - - _this.name = "InvalidInputException"; - - _this.symbology = symbology; - _this.input = input; - - _this.message = '"' + _this.input + '" is not a valid input for ' + _this.symbology; - return _this; - } - - return InvalidInputException; -}(Error); - -var InvalidElementException = function (_Error2) { - _inherits(InvalidElementException, _Error2); - - function InvalidElementException() { - _classCallCheck(this, InvalidElementException); - - var _this2 = _possibleConstructorReturn(this, (InvalidElementException.__proto__ || Object.getPrototypeOf(InvalidElementException)).call(this)); - - _this2.name = "InvalidElementException"; - _this2.message = "Not supported type to render on"; - return _this2; - } - - return InvalidElementException; -}(Error); - -var NoElementException = function (_Error3) { - _inherits(NoElementException, _Error3); - - function NoElementException() { - _classCallCheck(this, NoElementException); - - var _this3 = _possibleConstructorReturn(this, (NoElementException.__proto__ || Object.getPrototypeOf(NoElementException)).call(this)); - - _this3.name = "NoElementException"; - _this3.message = "No element to render on."; - return _this3; - } - - return NoElementException; -}(Error); - -exports.InvalidInputException = InvalidInputException; -exports.InvalidElementException = InvalidElementException; -exports.NoElementException = NoElementException; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = optionsFromStrings; - -// Convert string to integers/booleans where it should be - -function optionsFromStrings(options) { - var intOptions = ["width", "height", "textMargin", "fontSize", "margin", "marginTop", "marginBottom", "marginLeft", "marginRight"]; - - for (var intOption in intOptions) { - if (intOptions.hasOwnProperty(intOption)) { - intOption = intOptions[intOption]; - if (typeof options[intOption] === "string") { - options[intOption] = parseInt(options[intOption], 10); - } - } - } - - if (typeof options["displayValue"] === "string") { - options["displayValue"] = options["displayValue"] != "false"; - } - - return options; -} - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var defaults = { - width: 2, - height: 100, - format: "auto", - displayValue: true, - fontOptions: "", - font: "monospace", - text: undefined, - textAlign: "center", - textPosition: "bottom", - textMargin: 2, - fontSize: 20, - background: "#ffffff", - lineColor: "#000000", - margin: 10, - marginTop: undefined, - marginBottom: undefined, - marginLeft: undefined, - marginRight: undefined, - valid: function valid() {} -}; - -exports.default = defaults; - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = __webpack_require__(2); - -var _encoder = __webpack_require__(3); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Base class for EAN8 & EAN13 -var EAN = function (_Barcode) { - _inherits(EAN, _Barcode); - - function EAN(data, options) { - _classCallCheck(this, EAN); - - // Make sure the font is not bigger than the space between the guard bars - var _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options)); - - _this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(EAN, [{ - key: 'encode', - value: function encode() { - return this.options.flat ? this.encodeFlat() : this.encodeGuarded(); - } - }, { - key: 'leftText', - value: function leftText(from, to) { - return this.text.substr(from, to); - } - }, { - key: 'leftEncode', - value: function leftEncode(data, structure) { - return (0, _encoder2.default)(data, structure); - } - }, { - key: 'rightText', - value: function rightText(from, to) { - return this.text.substr(from, to); - } - }, { - key: 'rightEncode', - value: function rightEncode(data, structure) { - return (0, _encoder2.default)(data, structure); - } - }, { - key: 'encodeGuarded', - value: function encodeGuarded() { - var textOptions = { fontSize: this.fontSize }; - var guardOptions = { height: this.guardHeight }; - - return [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }]; - } - }, { - key: 'encodeFlat', - value: function encodeFlat() { - var data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN]; - - return { - data: data.join(''), - text: this.text - }; - } - }]); - - return EAN; -}(_Barcode3.default); - -exports.default = EAN; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -exports.checksum = checksum; - -var _encoder = __webpack_require__(3); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding - -var UPC = function (_Barcode) { - _inherits(UPC, _Barcode); - - function UPC(data, options) { - _classCallCheck(this, UPC); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{11}$/) !== -1) { - data += checksum(data); - } - - var _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options)); - - _this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if (options.fontSize > options.width * 10) { - _this.fontSize = options.width * 10; - } else { - _this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(UPC, [{ - key: "valid", - value: function valid() { - return this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data); - } - }, { - key: "encode", - value: function encode() { - if (this.options.flat) { - return this.flatEncoding(); - } else { - return this.guardedEncoding(); - } - } - }, { - key: "flatEncoding", - value: function flatEncoding() { - var result = ""; - - result += "101"; - result += (0, _encoder2.default)(this.data.substr(0, 6), "LLLLLL"); - result += "01010"; - result += (0, _encoder2.default)(this.data.substr(6, 6), "RRRRRR"); - result += "101"; - - return { - data: result, - text: this.text - }; - } - }, { - key: "guardedEncoding", - value: function guardedEncoding() { - var result = []; - - // Add the first digit - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text.substr(0, 1), - options: { textAlign: "left", fontSize: this.fontSize } - }); - } - - // Add the guard bars - result.push({ - data: "101" + (0, _encoder2.default)(this.data[0], "L"), - options: { height: this.guardHeight } - }); - - // Add the left side - result.push({ - data: (0, _encoder2.default)(this.data.substr(1, 5), "LLLLL"), - text: this.text.substr(1, 5), - options: { fontSize: this.fontSize } - }); - - // Add the middle bits - result.push({ - data: "01010", - options: { height: this.guardHeight } - }); - - // Add the right side - result.push({ - data: (0, _encoder2.default)(this.data.substr(6, 5), "RRRRR"), - text: this.text.substr(6, 5), - options: { fontSize: this.fontSize } - }); - - // Add the end bits - result.push({ - data: (0, _encoder2.default)(this.data[11], "R") + "101", - options: { height: this.guardHeight } - }); - - // Add the last digit - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text.substr(11, 1), - options: { textAlign: "right", fontSize: this.fontSize } - }); - } - - return result; - } - }]); - - return UPC; -}(_Barcode3.default); - -// Calulate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit - - -function checksum(number) { - var result = 0; - - var i; - for (i = 1; i < 11; i += 2) { - result += parseInt(number[i]); - } - for (i = 0; i < 11; i += 2) { - result += parseInt(number[i]) * 3; - } - - return (10 - result % 10) % 10; -} - -exports.default = UPC; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = __webpack_require__(36); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var ITF = function (_Barcode) { - _inherits(ITF, _Barcode); - - function ITF() { - _classCallCheck(this, ITF); - - return _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments)); - } - - _createClass(ITF, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^([0-9]{2})+$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - var _this2 = this; - - // Calculate all the digit pairs - var encoded = this.data.match(/.{2}/g).map(function (pair) { - return _this2.encodePair(pair); - }).join(''); - - return { - data: _constants.START_BIN + encoded + _constants.END_BIN, - text: this.text - }; - } - - // Calculate the data of a number pair - - }, { - key: 'encodePair', - value: function encodePair(pair) { - var second = _constants.BINARIES[pair[1]]; - - return _constants.BINARIES[pair[0]].split('').map(function (first, idx) { - return (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0'); - }).join(''); - } - }]); - - return ITF; -}(_Barcode3.default); - -exports.default = ITF; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined; - -var _merge = __webpack_require__(5); - -var _merge2 = _interopRequireDefault(_merge); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getEncodingHeight(encoding, options) { - return options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom; -} - -function getBarcodePadding(textWidth, barcodeWidth, options) { - if (options.displayValue && barcodeWidth < textWidth) { - if (options.textAlign == "center") { - return Math.floor((textWidth - barcodeWidth) / 2); - } else if (options.textAlign == "left") { - return 0; - } else if (options.textAlign == "right") { - return Math.floor(textWidth - barcodeWidth); - } - } - return 0; -} - -function calculateEncodingAttributes(encodings, barcodeOptions, context) { - for (var i = 0; i < encodings.length; i++) { - var encoding = encodings[i]; - var options = (0, _merge2.default)(barcodeOptions, encoding.options); - - // Calculate the width of the encoding - var textWidth; - if (options.displayValue) { - textWidth = messureText(encoding.text, options, context); - } else { - textWidth = 0; - } - - var barcodeWidth = encoding.data.length * options.width; - encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth)); - - encoding.height = getEncodingHeight(encoding, options); - - encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options); - } -} - -function getTotalWidthOfEncodings(encodings) { - var totalWidth = 0; - for (var i = 0; i < encodings.length; i++) { - totalWidth += encodings[i].width; - } - return totalWidth; -} - -function getMaximumHeightOfEncodings(encodings) { - var maxHeight = 0; - for (var i = 0; i < encodings.length; i++) { - if (encodings[i].height > maxHeight) { - maxHeight = encodings[i].height; - } - } - return maxHeight; -} - -function messureText(string, options, context) { - var ctx; - - if (context) { - ctx = context; - } else if (typeof document !== "undefined") { - ctx = document.createElement("canvas").getContext("2d"); - } else { - // If the text cannot be messured we will return 0. - // This will make some barcode with big text render incorrectly - return 0; - } - ctx.font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Calculate the width of the encoding - var size = ctx.measureText(string).width; - - return size; -} - -exports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings; -exports.getEncodingHeight = getEncodingHeight; -exports.getBarcodePadding = getBarcodePadding; -exports.calculateEncodingAttributes = calculateEncodingAttributes; -exports.getTotalWidthOfEncodings = getTotalWidthOfEncodings; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CODE = __webpack_require__(27); - -var _CODE2 = __webpack_require__(26); - -var _EAN_UPC = __webpack_require__(33); - -var _ITF = __webpack_require__(37); - -var _MSI = __webpack_require__(42); - -var _pharmacode = __webpack_require__(44); - -var _codabar = __webpack_require__(43); - -var _GenericBarcode = __webpack_require__(34); - -exports.default = { - CODE39: _CODE.CODE39, - CODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C, - EAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE, - ITF14: _ITF.ITF14, - ITF: _ITF.ITF, - MSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110, - pharmacode: _pharmacode.pharmacode, - codabar: _codabar.codabar, - GenericBarcode: _GenericBarcode.GenericBarcode -}; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/*eslint no-console: 0 */ - -var ErrorHandler = function () { - function ErrorHandler(api) { - _classCallCheck(this, ErrorHandler); - - this.api = api; - } - - _createClass(ErrorHandler, [{ - key: "handleCatch", - value: function handleCatch(e) { - // If babel supported extending of Error in a correct way instanceof would be used here - if (e.name === "InvalidInputException") { - if (this.api._options.valid !== this.api._defaults.valid) { - this.api._options.valid(false); - } else { - throw e.message; - } - } else { - throw e; - } - - this.api.render = function () {}; - } - }, { - key: "wrapBarcodeCall", - value: function wrapBarcodeCall(func) { - try { - var result = func.apply(undefined, arguments); - this.api._options.valid(true); - return result; - } catch (e) { - this.handleCatch(e); - - return this.api; - } - } - }]); - - return ErrorHandler; -}(); - -exports.default = ErrorHandler; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = fixOptions; - - -function fixOptions(options) { - // Fix the margins - options.marginTop = options.marginTop || options.margin; - options.marginBottom = options.marginBottom || options.margin; - options.marginRight = options.marginRight || options.margin; - options.marginLeft = options.marginLeft || options.margin; - - return options; -} - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* global HTMLImageElement */ -/* global HTMLCanvasElement */ -/* global SVGElement */ - -var _getOptionsFromElement = __webpack_require__(45); - -var _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement); - -var _renderers = __webpack_require__(47); - -var _renderers2 = _interopRequireDefault(_renderers); - -var _exceptions = __webpack_require__(8); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Takes an element and returns an object with information about how -// it should be rendered -// This could also return an array with these objects -// { -// element: The element that the renderer should draw on -// renderer: The name of the renderer -// afterRender (optional): If something has to done after the renderer -// completed, calls afterRender (function) -// options (optional): Options that can be defined in the element -// } - -function getRenderProperties(element) { - // If the element is a string, query select call again - if (typeof element === "string") { - return querySelectedRenderProperties(element); - } - // If element is array. Recursivly call with every object in the array - else if (Array.isArray(element)) { - var returnArray = []; - for (var i = 0; i < element.length; i++) { - returnArray.push(getRenderProperties(element[i])); - } - return returnArray; - } - // If element, render on canvas and set the uri as src - else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) { - return newCanvasRenderProperties(element); - } - // If SVG - else if (element && element.nodeName === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) { - return { - element: element, - options: (0, _getOptionsFromElement2.default)(element), - renderer: _renderers2.default.SVGRenderer - }; - } - // If canvas (in browser) - else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) { - return { - element: element, - options: (0, _getOptionsFromElement2.default)(element), - renderer: _renderers2.default.CanvasRenderer - }; - } - // If canvas (in node) - else if (element && element.getContext) { - return { - element: element, - renderer: _renderers2.default.CanvasRenderer - }; - } else if (element && (typeof element === "undefined" ? "undefined" : _typeof(element)) === 'object' && !element.nodeName) { - return { - element: element, - renderer: _renderers2.default.ObjectRenderer - }; - } else { - throw new _exceptions.InvalidElementException(); - } -} - -function querySelectedRenderProperties(string) { - var selector = document.querySelectorAll(string); - if (selector.length === 0) { - return undefined; - } else { - var returnArray = []; - for (var i = 0; i < selector.length; i++) { - returnArray.push(getRenderProperties(selector[i])); - } - return returnArray; - } -} - -function newCanvasRenderProperties(imgElement) { - var canvas = document.createElement('canvas'); - return { - element: canvas, - options: (0, _getOptionsFromElement2.default)(imgElement), - renderer: _renderers2.default.CanvasRenderer, - afterRender: function afterRender() { - imgElement.setAttribute("src", canvas.toDataURL()); - } - }; -} - -exports.default = getRenderProperties; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = linearizeEncodings; - -// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] -// Convert to [1-1, 1-2, 2, 3-1, 3-2] - -function linearizeEncodings(encodings) { - var linearEncodings = []; - function nextLevel(encoded) { - if (Array.isArray(encoded)) { - for (var i = 0; i < encoded.length; i++) { - nextLevel(encoded[i]); - } - } else { - encoded.text = encoded.text || ""; - encoded.data = encoded.data || ""; - linearEncodings.push(encoded); - } - } - nextLevel(encodings); - - return linearEncodings; -} - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _barcodes = __webpack_require__(15); - -var _barcodes2 = _interopRequireDefault(_barcodes); - -var _merge = __webpack_require__(5); - -var _merge2 = _interopRequireDefault(_merge); - -var _linearizeEncodings = __webpack_require__(19); - -var _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings); - -var _fixOptions = __webpack_require__(17); - -var _fixOptions2 = _interopRequireDefault(_fixOptions); - -var _getRenderProperties = __webpack_require__(18); - -var _getRenderProperties2 = _interopRequireDefault(_getRenderProperties); - -var _optionsFromStrings = __webpack_require__(9); - -var _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings); - -var _ErrorHandler = __webpack_require__(16); - -var _ErrorHandler2 = _interopRequireDefault(_ErrorHandler); - -var _exceptions = __webpack_require__(8); - -var _defaults = __webpack_require__(10); - -var _defaults2 = _interopRequireDefault(_defaults); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// The protype of the object returned from the JsBarcode() call - - -// Help functions -var API = function API() {}; - -// The first call of the library API -// Will return an object with all barcodes calls and the data that is used -// by the renderers - - -// Default values - - -// Exceptions -// Import all the barcodes -var JsBarcode = function JsBarcode(element, text, options) { - var api = new API(); - - if (typeof element === "undefined") { - throw Error("No element to render on was provided."); - } - - // Variables that will be pased through the API calls - api._renderProperties = (0, _getRenderProperties2.default)(element); - api._encodings = []; - api._options = _defaults2.default; - api._errorHandler = new _ErrorHandler2.default(api); - - // If text is set, use the simple syntax (render the barcode directly) - if (typeof text !== "undefined") { - options = options || {}; - - if (!options.format) { - options.format = autoSelectBarcode(); - } - - api.options(options)[options.format](text, options).render(); - } - - return api; -}; - -// To make tests work TODO: remove -JsBarcode.getModule = function (name) { - return _barcodes2.default[name]; -}; - -// Register all barcodes -for (var name in _barcodes2.default) { - if (_barcodes2.default.hasOwnProperty(name)) { - // Security check if the propery is a prototype property - registerBarcode(_barcodes2.default, name); - } -} -function registerBarcode(barcodes, name) { - API.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) { - var api = this; - return api._errorHandler.wrapBarcodeCall(function () { - // Ensure text is options.text - options.text = typeof options.text === 'undefined' ? undefined : '' + options.text; - - var newOptions = (0, _merge2.default)(api._options, options); - newOptions = (0, _optionsFromStrings2.default)(newOptions); - var Encoder = barcodes[name]; - var encoded = encode(text, Encoder, newOptions); - api._encodings.push(encoded); - - return api; - }); - }; -} - -// encode() handles the Encoder call and builds the binary string to be rendered -function encode(text, Encoder, options) { - // Ensure that text is a string - text = "" + text; - - var encoder = new Encoder(text, options); - - // If the input is not valid for the encoder, throw error. - // If the valid callback option is set, call it instead of throwing error - if (!encoder.valid()) { - throw new _exceptions.InvalidInputException(encoder.constructor.name, text); - } - - // Make a request for the binary data (and other infromation) that should be rendered - var encoded = encoder.encode(); - - // Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] - // Convert to [1-1, 1-2, 2, 3-1, 3-2] - encoded = (0, _linearizeEncodings2.default)(encoded); - - // Merge - for (var i = 0; i < encoded.length; i++) { - encoded[i].options = (0, _merge2.default)(options, encoded[i].options); - } - - return encoded; -} - -function autoSelectBarcode() { - // If CODE128 exists. Use it - if (_barcodes2.default["CODE128"]) { - return "CODE128"; - } - - // Else, take the first (probably only) barcode - return Object.keys(_barcodes2.default)[0]; -} - -// Sets global encoder options -// Added to the api by the JsBarcode function -API.prototype.options = function (options) { - this._options = (0, _merge2.default)(this._options, options); - return this; -}; - -// Will create a blank space (usually in between barcodes) -API.prototype.blank = function (size) { - var zeroes = new Array(size + 1).join("0"); - this._encodings.push({ data: zeroes }); - return this; -}; - -// Initialize JsBarcode on all HTML elements defined. -API.prototype.init = function () { - // Should do nothing if no elements where found - if (!this._renderProperties) { - return; - } - - // Make sure renderProperies is an array - if (!Array.isArray(this._renderProperties)) { - this._renderProperties = [this._renderProperties]; - } - - var renderProperty; - for (var i in this._renderProperties) { - renderProperty = this._renderProperties[i]; - var options = (0, _merge2.default)(this._options, renderProperty.options); - - if (options.format == "auto") { - options.format = autoSelectBarcode(); - } - - this._errorHandler.wrapBarcodeCall(function () { - var text = options.value; - var Encoder = _barcodes2.default[options.format.toUpperCase()]; - var encoded = encode(text, Encoder, options); - - render(renderProperty, encoded, options); - }); - } -}; - -// The render API call. Calls the real render function. -API.prototype.render = function () { - if (!this._renderProperties) { - throw new _exceptions.NoElementException(); - } - - if (Array.isArray(this._renderProperties)) { - for (var i = 0; i < this._renderProperties.length; i++) { - render(this._renderProperties[i], this._encodings, this._options); - } - } else { - render(this._renderProperties, this._encodings, this._options); - } - - return this; -}; - -API.prototype._defaults = _defaults2.default; - -// Prepares the encodings and calls the renderer -function render(renderProperties, encodings, options) { - encodings = (0, _linearizeEncodings2.default)(encodings); - - for (var i = 0; i < encodings.length; i++) { - encodings[i].options = (0, _merge2.default)(options, encodings[i].options); - (0, _fixOptions2.default)(encodings[i].options); - } - - (0, _fixOptions2.default)(options); - - var Renderer = renderProperties.renderer; - var renderer = new Renderer(renderProperties.element, encodings, options); - renderer.render(); - - if (renderProperties.afterRender) { - renderProperties.afterRender(); - } -} - -// Export to browser -if (typeof window !== "undefined") { - window.JsBarcode = JsBarcode; -} - -// Export to jQuery -/*global jQuery */ -if (typeof jQuery !== 'undefined') { - jQuery.fn.JsBarcode = function (content, options) { - var elementArray = []; - jQuery(this).each(function () { - elementArray.push(this); - }); - return JsBarcode(elementArray, content, options); - }; -} - -// Export to commonJS -module.exports = JsBarcode; - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = __webpack_require__(6); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128A = function (_CODE) { - _inherits(CODE128A, _CODE); - - function CODE128A(string, options) { - _classCallCheck(this, CODE128A); - - return _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options)); - } - - _createClass(CODE128A, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.A_CHARS + '+$').test(this.data); - } - }]); - - return CODE128A; -}(_CODE3.default); - -exports.default = CODE128A; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = __webpack_require__(6); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128B = function (_CODE) { - _inherits(CODE128B, _CODE); - - function CODE128B(string, options) { - _classCallCheck(this, CODE128B); - - return _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options)); - } - - _createClass(CODE128B, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.B_CHARS + '+$').test(this.data); - } - }]); - - return CODE128B; -}(_CODE3.default); - -exports.default = CODE128B; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _CODE2 = __webpack_require__(6); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _constants = __webpack_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128C = function (_CODE) { - _inherits(CODE128C, _CODE); - - function CODE128C(string, options) { - _classCallCheck(this, CODE128C); - - return _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options)); - } - - _createClass(CODE128C, [{ - key: 'valid', - value: function valid() { - return new RegExp('^' + _constants.C_CHARS + '+$').test(this.data); - } - }]); - - return CODE128C; -}(_CODE3.default); - -exports.default = CODE128C; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _CODE2 = __webpack_require__(6); - -var _CODE3 = _interopRequireDefault(_CODE2); - -var _auto = __webpack_require__(25); - -var _auto2 = _interopRequireDefault(_auto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var CODE128AUTO = function (_CODE) { - _inherits(CODE128AUTO, _CODE); - - function CODE128AUTO(data, options) { - _classCallCheck(this, CODE128AUTO); - - // ASCII value ranges 0-127, 200-211 - if (/^[\x00-\x7F\xC8-\xD3]+$/.test(data)) { - var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options)); - } else { - var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options)); - } - return _possibleConstructorReturn(_this); - } - - return CODE128AUTO; -}(_CODE3.default); - -exports.default = CODE128AUTO; - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _constants = __webpack_require__(1); - -// Match Set functions -var matchSetALength = function matchSetALength(string) { - return string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length; -}; -var matchSetBLength = function matchSetBLength(string) { - return string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length; -}; -var matchSetC = function matchSetC(string) { - return string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0]; -}; - -// CODE128A or CODE128B -function autoSelectFromAB(string, isA) { - var ranges = isA ? _constants.A_CHARS : _constants.B_CHARS; - var untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)')); - - if (untilC) { - return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length)); - } - - var chars = string.match(new RegExp('^' + ranges + '+'))[0]; - - if (chars.length === string.length) { - return string; - } - - return chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA); -} - -// CODE128C -function autoSelectFromC(string) { - var cMatch = matchSetC(string); - var length = cMatch.length; - - if (length === string.length) { - return string; - } - - string = string.substring(length); - - // Select A/B depending on the longest match - var isA = matchSetALength(string) >= matchSetBLength(string); - return cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA); -} - -// Detect Code Set (A, B or C) and format the string - -exports.default = function (string) { - var newString = void 0; - var cLength = matchSetC(string).length; - - // Select 128C if the string start with enough digits - if (cLength >= 2) { - newString = _constants.C_START_CHAR + autoSelectFromC(string); - } else { - // Select A/B depending on the longest match - var isA = matchSetALength(string) > matchSetBLength(string); - newString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA); - } - - return newString.replace(/[\xCD\xCE]([^])[\xCD\xCE]/, // Any sequence between 205 and 206 characters - function (match, char) { - return String.fromCharCode(203) + char; - }); -}; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined; - -var _CODE128_AUTO = __webpack_require__(24); - -var _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO); - -var _CODE128A = __webpack_require__(21); - -var _CODE128A2 = _interopRequireDefault(_CODE128A); - -var _CODE128B = __webpack_require__(22); - -var _CODE128B2 = _interopRequireDefault(_CODE128B); - -var _CODE128C = __webpack_require__(23); - -var _CODE128C2 = _interopRequireDefault(_CODE128C); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.CODE128 = _CODE128_AUTO2.default; -exports.CODE128A = _CODE128A2.default; -exports.CODE128B = _CODE128B2.default; -exports.CODE128C = _CODE128C2.default; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.CODE39 = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Code_39#Encoding - -var CODE39 = function (_Barcode) { - _inherits(CODE39, _Barcode); - - function CODE39(data, options) { - _classCallCheck(this, CODE39); - - data = data.toUpperCase(); - - // Calculate mod43 checksum if enabled - if (options.mod43) { - data += getCharacter(mod43checksum(data)); - } - - return _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options)); - } - - _createClass(CODE39, [{ - key: "encode", - value: function encode() { - // First character is always a * - var result = getEncoding("*"); - - // Take every character and add the binary representation to the result - for (var i = 0; i < this.data.length; i++) { - result += getEncoding(this.data[i]) + "0"; - } - - // Last character is always a * - result += getEncoding("*"); - - return { - data: result, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.data.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/) !== -1; - } - }]); - - return CODE39; -}(_Barcode3.default); - -// All characters. The position in the array is the (checksum) value - - -var characters = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "-", ".", " ", "$", "/", "+", "%", "*"]; - -// The decimal representation of the characters, is converted to the -// corresponding binary with the getEncoding function -var encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770]; - -// Get the binary representation of a character by converting the encodings -// from decimal to binary -function getEncoding(character) { - return getBinary(characterValue(character)); -} - -function getBinary(characterValue) { - return encodings[characterValue].toString(2); -} - -function getCharacter(characterValue) { - return characters[characterValue]; -} - -function characterValue(character) { - return characters.indexOf(character); -} - -function mod43checksum(data) { - var checksum = 0; - for (var i = 0; i < data.length; i++) { - checksum += characterValue(data[i]); - } - - checksum = checksum % 43; - return checksum; -} - -exports.CODE39 = CODE39; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _constants = __webpack_require__(2); - -var _EAN2 = __webpack_require__(11); - -var _EAN3 = _interopRequireDefault(_EAN2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode - -// Calculate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit -var checksum = function checksum(number) { - var res = number.substr(0, 12).split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a * 3 : sum + a; - }, 0); - - return (10 - res % 10) % 10; -}; - -var EAN13 = function (_EAN) { - _inherits(EAN13, _EAN); - - function EAN13(data, options) { - _classCallCheck(this, EAN13); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{12}$/) !== -1) { - data += checksum(data); - } - - // Adds a last character to the end of the barcode - var _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options)); - - _this.lastChar = options.lastChar; - return _this; - } - - _createClass(EAN13, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data); - } - }, { - key: 'leftText', - value: function leftText() { - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6); - } - }, { - key: 'leftEncode', - value: function leftEncode() { - var data = this.data.substr(1, 6); - var structure = _constants.EAN13_STRUCTURE[this.data[0]]; - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure); - } - }, { - key: 'rightText', - value: function rightText() { - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6); - } - }, { - key: 'rightEncode', - value: function rightEncode() { - var data = this.data.substr(7, 6); - return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR'); - } - - // The "standard" way of printing EAN13 barcodes with guard bars - - }, { - key: 'encodeGuarded', - value: function encodeGuarded() { - var data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this); - - // Extend data with left digit & last character - if (this.options.displayValue) { - data.unshift({ - data: '000000000000', - text: this.text.substr(0, 1), - options: { textAlign: 'left', fontSize: this.fontSize } - }); - - if (this.options.lastChar) { - data.push({ - data: '00' - }); - data.push({ - data: '00000', - text: this.options.lastChar, - options: { fontSize: this.fontSize } - }); - } - } - - return data; - } - }]); - - return EAN13; -}(_EAN3.default); - -exports.default = EAN13; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = __webpack_require__(2); - -var _encoder = __webpack_require__(3); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_2#Encoding - -var EAN2 = function (_Barcode) { - _inherits(EAN2, _Barcode); - - function EAN2(data, options) { - _classCallCheck(this, EAN2); - - return _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options)); - } - - _createClass(EAN2, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{2}$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - // Choose the structure based on the number mod 4 - var structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4]; - return { - // Start bits + Encode the two digits with 01 in between - data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), - text: this.text - }; - } - }]); - - return EAN2; -}(_Barcode3.default); - -exports.default = EAN2; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _constants = __webpack_require__(2); - -var _encoder = __webpack_require__(3); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_5#Encoding - -var checksum = function checksum(data) { - var result = data.split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a * 9 : sum + a * 3; - }, 0); - return result % 10; -}; - -var EAN5 = function (_Barcode) { - _inherits(EAN5, _Barcode); - - function EAN5(data, options) { - _classCallCheck(this, EAN5); - - return _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options)); - } - - _createClass(EAN5, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{5}$/) !== -1; - } - }, { - key: 'encode', - value: function encode() { - var structure = _constants.EAN5_STRUCTURE[checksum(this.data)]; - return { - data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), - text: this.text - }; - } - }]); - - return EAN5; -}(_Barcode3.default); - -exports.default = EAN5; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - -var _EAN2 = __webpack_require__(11); - -var _EAN3 = _interopRequireDefault(_EAN2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// http://www.barcodeisland.com/ean8.phtml - -// Calculate the checksum digit -var checksum = function checksum(number) { - var res = number.substr(0, 7).split('').map(function (n) { - return +n; - }).reduce(function (sum, a, idx) { - return idx % 2 ? sum + a : sum + a * 3; - }, 0); - - return (10 - res % 10) % 10; -}; - -var EAN8 = function (_EAN) { - _inherits(EAN8, _EAN); - - function EAN8(data, options) { - _classCallCheck(this, EAN8); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{7}$/) !== -1) { - data += checksum(data); - } - - return _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options)); - } - - _createClass(EAN8, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data); - } - }, { - key: 'leftText', - value: function leftText() { - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4); - } - }, { - key: 'leftEncode', - value: function leftEncode() { - var data = this.data.substr(0, 4); - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL'); - } - }, { - key: 'rightText', - value: function rightText() { - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4); - } - }, { - key: 'rightEncode', - value: function rightEncode() { - var data = this.data.substr(4, 4); - return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR'); - } - }]); - - return EAN8; -}(_EAN3.default); - -exports.default = EAN8; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _encoder = __webpack_require__(3); - -var _encoder2 = _interopRequireDefault(_encoder); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -var _UPC = __webpack_require__(12); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding -// -// UPC-E documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E - -var EXPANSIONS = ["XX00000XXX", "XX10000XXX", "XX20000XXX", "XXX00000XX", "XXXX00000X", "XXXXX00005", "XXXXX00006", "XXXXX00007", "XXXXX00008", "XXXXX00009"]; - -var PARITIES = [["EEEOOO", "OOOEEE"], ["EEOEOO", "OOEOEE"], ["EEOOEO", "OOEEOE"], ["EEOOOE", "OOEEEO"], ["EOEEOO", "OEOOEE"], ["EOOEEO", "OEEOOE"], ["EOOOEE", "OEEEOO"], ["EOEOEO", "OEOEOE"], ["EOEOOE", "OEOEEO"], ["EOOEOE", "OEEOEO"]]; - -var UPCE = function (_Barcode) { - _inherits(UPCE, _Barcode); - - function UPCE(data, options) { - _classCallCheck(this, UPCE); - - var _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options)); - // Code may be 6 or 8 digits; - // A 7 digit code is ambiguous as to whether the extra digit - // is a UPC-A check or number system digit. - - - _this.isValid = false; - if (data.search(/^[0-9]{6}$/) !== -1) { - _this.middleDigits = data; - _this.upcA = expandToUPCA(data, "0"); - _this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1]; - _this.isValid = true; - } else if (data.search(/^[01][0-9]{7}$/) !== -1) { - _this.middleDigits = data.substring(1, data.length - 1); - _this.upcA = expandToUPCA(_this.middleDigits, data[0]); - - if (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) { - _this.isValid = true; - } else { - // checksum mismatch - return _possibleConstructorReturn(_this); - } - } else { - return _possibleConstructorReturn(_this); - } - - _this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if (options.fontSize > options.width * 10) { - _this.fontSize = options.width * 10; - } else { - _this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; - return _this; - } - - _createClass(UPCE, [{ - key: 'valid', - value: function valid() { - return this.isValid; - } - }, { - key: 'encode', - value: function encode() { - if (this.options.flat) { - return this.flatEncoding(); - } else { - return this.guardedEncoding(); - } - } - }, { - key: 'flatEncoding', - value: function flatEncoding() { - var result = ""; - - result += "101"; - result += this.encodeMiddleDigits(); - result += "010101"; - - return { - data: result, - text: this.text - }; - } - }, { - key: 'guardedEncoding', - value: function guardedEncoding() { - var result = []; - - // Add the UPC-A number system digit beneath the quiet zone - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text[0], - options: { textAlign: "left", fontSize: this.fontSize } - }); - } - - // Add the guard bars - result.push({ - data: "101", - options: { height: this.guardHeight } - }); - - // Add the 6 UPC-E digits - result.push({ - data: this.encodeMiddleDigits(), - text: this.text.substring(1, 7), - options: { fontSize: this.fontSize } - }); - - // Add the end bits - result.push({ - data: "010101", - options: { height: this.guardHeight } - }); - - // Add the UPC-A check digit beneath the quiet zone - if (this.displayValue) { - result.push({ - data: "00000000", - text: this.text[7], - options: { textAlign: "right", fontSize: this.fontSize } - }); - } - - return result; - } - }, { - key: 'encodeMiddleDigits', - value: function encodeMiddleDigits() { - var numberSystem = this.upcA[0]; - var checkDigit = this.upcA[this.upcA.length - 1]; - var parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)]; - return (0, _encoder2.default)(this.middleDigits, parity); - } - }]); - - return UPCE; -}(_Barcode3.default); - -function expandToUPCA(middleDigits, numberSystem) { - var lastUpcE = parseInt(middleDigits[middleDigits.length - 1]); - var expansion = EXPANSIONS[lastUpcE]; - - var result = ""; - var digitIndex = 0; - for (var i = 0; i < expansion.length; i++) { - var c = expansion[i]; - if (c === 'X') { - result += middleDigits[digitIndex++]; - } else { - result += c; - } - } - - result = '' + numberSystem + result; - return '' + result + (0, _UPC.checksum)(result); -} - -exports.default = UPCE; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined; - -var _EAN = __webpack_require__(28); - -var _EAN2 = _interopRequireDefault(_EAN); - -var _EAN3 = __webpack_require__(31); - -var _EAN4 = _interopRequireDefault(_EAN3); - -var _EAN5 = __webpack_require__(30); - -var _EAN6 = _interopRequireDefault(_EAN5); - -var _EAN7 = __webpack_require__(29); - -var _EAN8 = _interopRequireDefault(_EAN7); - -var _UPC = __webpack_require__(12); - -var _UPC2 = _interopRequireDefault(_UPC); - -var _UPCE = __webpack_require__(32); - -var _UPCE2 = _interopRequireDefault(_UPCE); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.EAN13 = _EAN2.default; -exports.EAN8 = _EAN4.default; -exports.EAN5 = _EAN6.default; -exports.EAN2 = _EAN8.default; -exports.UPC = _UPC2.default; -exports.UPCE = _UPCE2.default; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.GenericBarcode = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var GenericBarcode = function (_Barcode) { - _inherits(GenericBarcode, _Barcode); - - function GenericBarcode(data, options) { - _classCallCheck(this, GenericBarcode); - - return _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text - } - - // Return the corresponding binary numbers for the data provided - - - _createClass(GenericBarcode, [{ - key: "encode", - value: function encode() { - return { - data: "10101010101010101010101010101010101010101", - text: this.text - }; - } - - // Resturn true/false if the string provided is valid for this encoder - - }, { - key: "valid", - value: function valid() { - return true; - } - }]); - - return GenericBarcode; -}(_Barcode3.default); - -exports.GenericBarcode = GenericBarcode; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _ITF2 = __webpack_require__(13); - -var _ITF3 = _interopRequireDefault(_ITF2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -// Calculate the checksum digit -var checksum = function checksum(data) { - var res = data.substr(0, 13).split('').map(function (num) { - return parseInt(num, 10); - }).reduce(function (sum, n, idx) { - return sum + n * (3 - idx % 2 * 2); - }, 0); - - return Math.ceil(res / 10) * 10 - res; -}; - -var ITF14 = function (_ITF) { - _inherits(ITF14, _ITF); - - function ITF14(data, options) { - _classCallCheck(this, ITF14); - - // Add checksum if it does not exist - if (data.search(/^[0-9]{13}$/) !== -1) { - data += checksum(data); - } - return _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options)); - } - - _createClass(ITF14, [{ - key: 'valid', - value: function valid() { - return this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data); - } - }]); - - return ITF14; -}(_ITF3.default); - -exports.default = ITF14; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var START_BIN = exports.START_BIN = '1010'; -var END_BIN = exports.END_BIN = '11101'; - -var BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010']; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.ITF14 = exports.ITF = undefined; - -var _ITF = __webpack_require__(13); - -var _ITF2 = _interopRequireDefault(_ITF); - -var _ITF3 = __webpack_require__(35); - -var _ITF4 = _interopRequireDefault(_ITF3); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.ITF = _ITF2.default; -exports.ITF14 = _ITF4.default; - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = __webpack_require__(4); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = __webpack_require__(7); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI10 = function (_MSI) { - _inherits(MSI10, _MSI); - - function MSI10(data, options) { - _classCallCheck(this, MSI10); - - return _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options)); - } - - return MSI10; -}(_MSI3.default); - -exports.default = MSI10; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = __webpack_require__(4); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = __webpack_require__(7); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI1010 = function (_MSI) { - _inherits(MSI1010, _MSI); - - function MSI1010(data, options) { - _classCallCheck(this, MSI1010); - - data += (0, _checksums.mod10)(data); - data += (0, _checksums.mod10)(data); - return _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options)); - } - - return MSI1010; -}(_MSI3.default); - -exports.default = MSI1010; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = __webpack_require__(4); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = __webpack_require__(7); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI11 = function (_MSI) { - _inherits(MSI11, _MSI); - - function MSI11(data, options) { - _classCallCheck(this, MSI11); - - return _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options)); - } - - return MSI11; -}(_MSI3.default); - -exports.default = MSI11; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _MSI2 = __webpack_require__(4); - -var _MSI3 = _interopRequireDefault(_MSI2); - -var _checksums = __webpack_require__(7); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var MSI1110 = function (_MSI) { - _inherits(MSI1110, _MSI); - - function MSI1110(data, options) { - _classCallCheck(this, MSI1110); - - data += (0, _checksums.mod11)(data); - data += (0, _checksums.mod10)(data); - return _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options)); - } - - return MSI1110; -}(_MSI3.default); - -exports.default = MSI1110; - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined; - -var _MSI = __webpack_require__(4); - -var _MSI2 = _interopRequireDefault(_MSI); - -var _MSI3 = __webpack_require__(38); - -var _MSI4 = _interopRequireDefault(_MSI3); - -var _MSI5 = __webpack_require__(40); - -var _MSI6 = _interopRequireDefault(_MSI5); - -var _MSI7 = __webpack_require__(39); - -var _MSI8 = _interopRequireDefault(_MSI7); - -var _MSI9 = __webpack_require__(41); - -var _MSI10 = _interopRequireDefault(_MSI9); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.MSI = _MSI2.default; -exports.MSI10 = _MSI4.default; -exports.MSI11 = _MSI6.default; -exports.MSI1010 = _MSI8.default; -exports.MSI1110 = _MSI10.default; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.codabar = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding specification: -// http://www.barcodeisland.com/codabar.phtml - -var codabar = function (_Barcode) { - _inherits(codabar, _Barcode); - - function codabar(data, options) { - _classCallCheck(this, codabar); - - if (data.search(/^[0-9\-\$\:\.\+\/]+$/) === 0) { - data = "A" + data + "A"; - } - - var _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options)); - - _this.text = _this.options.text || _this.text.replace(/[A-D]/g, ''); - return _this; - } - - _createClass(codabar, [{ - key: "valid", - value: function valid() { - return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/) !== -1; - } - }, { - key: "encode", - value: function encode() { - var result = []; - var encodings = this.getEncodings(); - for (var i = 0; i < this.data.length; i++) { - result.push(encodings[this.data.charAt(i)]); - // for all characters except the last, append a narrow-space ("0") - if (i !== this.data.length - 1) { - result.push("0"); - } - } - return { - text: this.text, - data: result.join('') - }; - } - }, { - key: "getEncodings", - value: function getEncodings() { - return { - "0": "101010011", - "1": "101011001", - "2": "101001011", - "3": "110010101", - "4": "101101001", - "5": "110101001", - "6": "100101011", - "7": "100101101", - "8": "100110101", - "9": "110100101", - "-": "101001101", - "$": "101100101", - ":": "1101011011", - "/": "1101101011", - ".": "1101101101", - "+": "101100110011", - "A": "1011001001", - "B": "1001001011", - "C": "1010010011", - "D": "1010011001" - }; - } - }]); - - return codabar; -}(_Barcode3.default); - -exports.codabar = codabar; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.pharmacode = undefined; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _Barcode2 = __webpack_require__(0); - -var _Barcode3 = _interopRequireDefault(_Barcode2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation -// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf - -var pharmacode = function (_Barcode) { - _inherits(pharmacode, _Barcode); - - function pharmacode(data, options) { - _classCallCheck(this, pharmacode); - - var _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options)); - - _this.number = parseInt(data, 10); - return _this; - } - - _createClass(pharmacode, [{ - key: "encode", - value: function encode() { - var z = this.number; - var result = ""; - - // http://i.imgur.com/RMm4UDJ.png - // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34) - while (!isNaN(z) && z != 0) { - if (z % 2 === 0) { - // Even - result = "11100" + result; - z = (z - 2) / 2; - } else { - // Odd - result = "100" + result; - z = (z - 1) / 2; - } - } - - // Remove the two last zeroes - result = result.slice(0, -2); - - return { - data: result, - text: this.text - }; - } - }, { - key: "valid", - value: function valid() { - return this.number >= 3 && this.number <= 131070; - } - }]); - - return pharmacode; -}(_Barcode3.default); - -exports.pharmacode = pharmacode; - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _optionsFromStrings = __webpack_require__(9); - -var _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings); - -var _defaults = __webpack_require__(10); - -var _defaults2 = _interopRequireDefault(_defaults); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function getOptionsFromElement(element) { - var options = {}; - for (var property in _defaults2.default) { - if (_defaults2.default.hasOwnProperty(property)) { - // jsbarcode-* - if (element.hasAttribute("jsbarcode-" + property.toLowerCase())) { - options[property] = element.getAttribute("jsbarcode-" + property.toLowerCase()); - } - - // data-* - if (element.hasAttribute("data-" + property.toLowerCase())) { - options[property] = element.getAttribute("data-" + property.toLowerCase()); - } - } - } - - options["value"] = element.getAttribute("jsbarcode-value") || element.getAttribute("data-value"); - - // Since all atributes are string they need to be converted to integers - options = (0, _optionsFromStrings2.default)(options); - - return options; -} - -exports.default = getOptionsFromElement; - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _merge = __webpack_require__(5); - -var _merge2 = _interopRequireDefault(_merge); - -var _shared = __webpack_require__(14); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var CanvasRenderer = function () { - function CanvasRenderer(canvas, encodings, options) { - _classCallCheck(this, CanvasRenderer); - - this.canvas = canvas; - this.encodings = encodings; - this.options = options; - } - - _createClass(CanvasRenderer, [{ - key: "render", - value: function render() { - // Abort if the browser does not support HTML5 canvas - if (!this.canvas.getContext) { - throw new Error('The browser does not support canvas.'); - } - - this.prepareCanvas(); - for (var i = 0; i < this.encodings.length; i++) { - var encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options); - - this.drawCanvasBarcode(encodingOptions, this.encodings[i]); - this.drawCanvasText(encodingOptions, this.encodings[i]); - - this.moveCanvasDrawing(this.encodings[i]); - } - - this.restoreCanvas(); - } - }, { - key: "prepareCanvas", - value: function prepareCanvas() { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.save(); - - (0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx); - var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings); - var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings); - - this.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight; - - this.canvas.height = maxHeight; - - // Paint the canvas - ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); - if (this.options.background) { - ctx.fillStyle = this.options.background; - ctx.fillRect(0, 0, this.canvas.width, this.canvas.height); - } - - ctx.translate(this.options.marginLeft, 0); - } - }, { - key: "drawCanvasBarcode", - value: function drawCanvasBarcode(options, encoding) { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if (options.textPosition == "top") { - yFrom = options.marginTop + options.fontSize + options.textMargin; - } else { - yFrom = options.marginTop; - } - - ctx.fillStyle = options.lineColor; - - for (var b = 0; b < binary.length; b++) { - var x = b * options.width + encoding.barcodePadding; - - if (binary[b] === "1") { - ctx.fillRect(x, yFrom, options.width, options.height); - } else if (binary[b]) { - ctx.fillRect(x, yFrom, options.width, options.height * binary[b]); - } - } - } - }, { - key: "drawCanvasText", - value: function drawCanvasText(options, encoding) { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Draw the text if displayValue is set - if (options.displayValue) { - var x, y; - - if (options.textPosition == "top") { - y = options.marginTop + options.fontSize - options.textMargin; - } else { - y = options.height + options.textMargin + options.marginTop + options.fontSize; - } - - ctx.font = font; - - // Draw the text in the correct X depending on the textAlign option - if (options.textAlign == "left" || encoding.barcodePadding > 0) { - x = 0; - ctx.textAlign = 'left'; - } else if (options.textAlign == "right") { - x = encoding.width - 1; - ctx.textAlign = 'right'; - } - // In all other cases, center the text - else { - x = encoding.width / 2; - ctx.textAlign = 'center'; - } - - ctx.fillText(encoding.text, x, y); - } - } - }, { - key: "moveCanvasDrawing", - value: function moveCanvasDrawing(encoding) { - var ctx = this.canvas.getContext("2d"); - - ctx.translate(encoding.width, 0); - } - }, { - key: "restoreCanvas", - value: function restoreCanvas() { - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.restore(); - } - }]); - - return CanvasRenderer; -}(); - -exports.default = CanvasRenderer; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _canvas = __webpack_require__(46); - -var _canvas2 = _interopRequireDefault(_canvas); - -var _svg = __webpack_require__(49); - -var _svg2 = _interopRequireDefault(_svg); - -var _object = __webpack_require__(48); - -var _object2 = _interopRequireDefault(_object); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = { CanvasRenderer: _canvas2.default, SVGRenderer: _svg2.default, ObjectRenderer: _object2.default }; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var ObjectRenderer = function () { - function ObjectRenderer(object, encodings, options) { - _classCallCheck(this, ObjectRenderer); - - this.object = object; - this.encodings = encodings; - this.options = options; - } - - _createClass(ObjectRenderer, [{ - key: "render", - value: function render() { - this.object.encodings = this.encodings; - } - }]); - - return ObjectRenderer; -}(); - -exports.default = ObjectRenderer; - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _merge = __webpack_require__(5); - -var _merge2 = _interopRequireDefault(_merge); - -var _shared = __webpack_require__(14); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var svgns = "http://www.w3.org/2000/svg"; - -var SVGRenderer = function () { - function SVGRenderer(svg, encodings, options) { - _classCallCheck(this, SVGRenderer); - - this.svg = svg; - this.encodings = encodings; - this.options = options; - this.document = options.xmlDocument || document; - } - - _createClass(SVGRenderer, [{ - key: "render", - value: function render() { - var currentX = this.options.marginLeft; - - this.prepareSVG(); - for (var i = 0; i < this.encodings.length; i++) { - var encoding = this.encodings[i]; - var encodingOptions = (0, _merge2.default)(this.options, encoding.options); - - var group = this.createGroup(currentX, encodingOptions.marginTop, this.svg); - - this.setGroupOptions(group, encodingOptions); - - this.drawSvgBarcode(group, encodingOptions, encoding); - this.drawSVGText(group, encodingOptions, encoding); - - currentX += encoding.width; - } - } - }, { - key: "prepareSVG", - value: function prepareSVG() { - // Clear the SVG - while (this.svg.firstChild) { - this.svg.removeChild(this.svg.firstChild); - } - - (0, _shared.calculateEncodingAttributes)(this.encodings, this.options); - var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings); - var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings); - - var width = totalWidth + this.options.marginLeft + this.options.marginRight; - this.setSvgAttributes(width, maxHeight); - - if (this.options.background) { - this.drawRect(0, 0, width, maxHeight, this.svg).setAttribute("style", "fill:" + this.options.background + ";"); - } - } - }, { - key: "drawSvgBarcode", - value: function drawSvgBarcode(parent, options, encoding) { - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if (options.textPosition == "top") { - yFrom = options.fontSize + options.textMargin; - } else { - yFrom = 0; - } - - var barWidth = 0; - var x = 0; - for (var b = 0; b < binary.length; b++) { - x = b * options.width + encoding.barcodePadding; - - if (binary[b] === "1") { - barWidth++; - } else if (barWidth > 0) { - this.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent); - barWidth = 0; - } - } - - // Last draw is needed since the barcode ends with 1 - if (barWidth > 0) { - this.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent); - } - } - }, { - key: "drawSVGText", - value: function drawSVGText(parent, options, encoding) { - var textElem = this.document.createElementNS(svgns, 'text'); - - // Draw the text if displayValue is set - if (options.displayValue) { - var x, y; - - textElem.setAttribute("style", "font:" + options.fontOptions + " " + options.fontSize + "px " + options.font); - - if (options.textPosition == "top") { - y = options.fontSize - options.textMargin; - } else { - y = options.height + options.textMargin + options.fontSize; - } - - // Draw the text in the correct X depending on the textAlign option - if (options.textAlign == "left" || encoding.barcodePadding > 0) { - x = 0; - textElem.setAttribute("text-anchor", "start"); - } else if (options.textAlign == "right") { - x = encoding.width - 1; - textElem.setAttribute("text-anchor", "end"); - } - // In all other cases, center the text - else { - x = encoding.width / 2; - textElem.setAttribute("text-anchor", "middle"); - } - - textElem.setAttribute("x", x); - textElem.setAttribute("y", y); - - textElem.appendChild(this.document.createTextNode(encoding.text)); - - parent.appendChild(textElem); - } - } - }, { - key: "setSvgAttributes", - value: function setSvgAttributes(width, height) { - var svg = this.svg; - svg.setAttribute("width", width + "px"); - svg.setAttribute("height", height + "px"); - svg.setAttribute("x", "0px"); - svg.setAttribute("y", "0px"); - svg.setAttribute("viewBox", "0 0 " + width + " " + height); - - svg.setAttribute("xmlns", svgns); - svg.setAttribute("version", "1.1"); - - svg.setAttribute("style", "transform: translate(0,0)"); - } - }, { - key: "createGroup", - value: function createGroup(x, y, parent) { - var group = this.document.createElementNS(svgns, 'g'); - group.setAttribute("transform", "translate(" + x + ", " + y + ")"); - - parent.appendChild(group); - - return group; - } - }, { - key: "setGroupOptions", - value: function setGroupOptions(group, options) { - group.setAttribute("style", "fill:" + options.lineColor + ";"); - } - }, { - key: "drawRect", - value: function drawRect(x, y, width, height, parent) { - var rect = this.document.createElementNS(svgns, 'rect'); - - rect.setAttribute("x", x); - rect.setAttribute("y", y); - rect.setAttribute("width", width); - rect.setAttribute("height", height); - - parent.appendChild(rect); - - return rect; - } - }]); - - return SVGRenderer; -}(); - -exports.default = SVGRenderer; - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/dist/JsBarcode.all.min.js b/dist/JsBarcode.all.min.js deleted file mode 100644 index 289aa08d..00000000 --- a/dist/JsBarcode.all.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=20)}([function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function t(e,n){r(this,t),this.data=e,this.text=n.text||e,this.options=n};e.default=o},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var o,i=e.SET_A=0,u=e.SET_B=1,a=e.SET_C=2,f=(e.SHIFT=98,e.START_A=103),c=e.START_B=104,s=e.START_C=105;e.MODULO=103,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o={},r(o,f,i),r(o,c,u),r(o,s,a),o),e.SWAP={101:i,100:u,99:a},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHARS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.SIDE_BIN="101",e.MIDDLE_BIN="01010",e.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},e.EAN2_STRUCTURE=["LL","LG","GL","GG"],e.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],e.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),o=function(t,e,n){var o=t.split("").map(function(t,n){return r.BINARIES[e[n]]}).map(function(e,n){return e?e[t[n]]:""});if(n){var i=t.length-1;o=o.map(function(t,e){return e=200){i=t.shift()-105;var u=c.SWAP[i];void 0!==u?o=e.next(t,n+1,u):(r!==c.SET_A&&r!==c.SET_B||i!==c.SHIFT||(t[0]=r===c.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var a=e.getBar(i),f=i*n;return{result:a+o.result,checksum:f+o.checksum}}}]),e}(f.default);e.default=s},function(t,e,n){"use strict";function r(t){for(var e=0,n=0;n10*n.width?10*n.width:n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return u(e,t),a(e,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(t,e){return this.text.substr(t,e)}},{key:"leftEncode",value:function(t,e){return(0,s.default)(t,e)}},{key:"rightText",value:function(t,e){return this.text.substr(t,e)}},{key:"rightEncode",value:function(t,e){return(0,s.default)(t,e)}},{key:"encodeGuarded",value:function(){var t={fontSize:this.fontSize},e={height:this.guardHeight};return[{data:f.SIDE_BIN,options:e},{data:this.leftEncode(),text:this.leftText(),options:t},{data:f.MIDDLE_BIN,options:e},{data:this.rightEncode(),text:this.rightText(),options:t},{data:f.SIDE_BIN,options:e}]}},{key:"encodeFlat",value:function(){return{data:[f.SIDE_BIN,this.leftEncode(),f.MIDDLE_BIN,this.rightEncode(),f.SIDE_BIN].join(""),text:this.text}}}]),e}(p.default);e.default=d},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){var e,n=0;for(e=1;e<11;e+=2)n+=parseInt(t[e]);for(e=0;e<11;e+=2)n+=3*parseInt(t[e]);return(10-n%10)%10}Object.defineProperty(e,"__esModule",{value:!0});var f=function(){function t(t,e){for(var n=0;n10*n.width?r.fontSize=10*n.width:r.fontSize=n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return u(e,t),f(e,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==a(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var t="";return t+="101",t+=(0,s.default)(this.data.substr(0,6),"LLLLLL"),t+="01010",t+=(0,s.default)(this.data.substr(6,6),"RRRRRR"),t+="101",{data:t,text:this.text}}},{key:"guardedEncoding",value:function(){var t=[];return this.displayValue&&t.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),t.push({data:"101"+(0,s.default)(this.data[0],"L"),options:{height:this.guardHeight}}),t.push({data:(0,s.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),t.push({data:"01010",options:{height:this.guardHeight}}),t.push({data:(0,s.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),t.push({data:(0,s.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&t.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),t}}]),e}(p.default);e.default=d},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function o(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function f(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var c=n(5),s=function(t){return t&&t.__esModule?t:{default:t}}(c);e.getMaximumHeightOfEncodings=a,e.getEncodingHeight=r,e.getBarcodePadding=o,e.calculateEncodingAttributes=i,e.getTotalWidthOfEncodings=u},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(27),o=n(26),i=n(33),u=n(37),a=n(42),f=n(44),c=n(43),s=n(34);e.default={CODE39:r.CODE39,CODE128:o.CODE128,CODE128A:o.CODE128A,CODE128B:o.CODE128B,CODE128C:o.CODE128C,EAN13:i.EAN13,EAN8:i.EAN8,EAN5:i.EAN5,EAN2:i.EAN2,UPC:i.UPC,UPCE:i.UPCE,ITF14:u.ITF14,ITF:u.ITF,MSI:a.MSI,MSI10:a.MSI10,MSI11:a.MSI11,MSI1010:a.MSI1010,MSI1110:a.MSI1110,pharmacode:f.pharmacode,codabar:c.codabar,GenericBarcode:s.GenericBarcode}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n=a(t);return e+String.fromCharCode(o?206:205)+r(t,o)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),u=function(t){return t.match(new RegExp("^"+i.A_CHARS+"*"))[0].length},a=function(t){return t.match(new RegExp("^"+i.B_CHARS+"*"))[0].length},f=function(t){return t.match(new RegExp("^"+i.C_CHARS+"*"))[0]};e.default=function(t){var e=void 0;if(f(t).length>=2)e=i.C_START_CHAR+o(t);else{var n=u(t)>a(t);e=(n?i.A_START_CHAR:i.B_START_CHAR)+r(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(t,e){return String.fromCharCode(203)+e})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.CODE128C=e.CODE128B=e.CODE128A=e.CODE128=void 0;var o=n(24),i=r(o),u=n(21),a=r(u),f=n(22),c=r(f),s=n(23),l=r(s);e.CODE128=i.default,e.CODE128A=a.default,e.CODE128B=c.default,e.CODE128C=l.default},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return a(c(t))}function a(t){return b[t].toString(2)}function f(t){return y[t]}function c(t){return y.indexOf(t)}function s(t){for(var e=0,n=0;n10*n.width?r.fontSize=10*n.width:r.fontSize=n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return u(e,t),f(e,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var t="";return t+="101",t+=this.encodeMiddleDigits(),t+="010101",{data:t,text:this.text}}},{key:"guardedEncoding",value:function(){var t=[];return this.displayValue&&t.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),t.push({data:"101",options:{height:this.guardHeight}}),t.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),t.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&t.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),t}},{key:"encodeMiddleDigits",value:function(){var t=this.upcA[0],e=this.upcA[this.upcA.length-1],n=y[parseInt(e)][parseInt(t)];return(0,s.default)(this.middleDigits,n)}}]),e}(p.default);e.default=b},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.UPCE=e.UPC=e.EAN2=e.EAN5=e.EAN8=e.EAN13=void 0;var o=n(28),i=r(o),u=n(31),a=r(u),f=n(30),c=r(f),s=n(29),l=r(s),p=n(12),d=r(p),h=n(32),y=r(h);e.EAN13=i.default,e.EAN8=a.default,e.EAN5=c.default,e.EAN2=l.default,e.UPC=d.default,e.UPCE=y.default},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.GenericBarcode=void 0;var u=function(){function t(t,e){for(var n=0;n=3&&this.number<=131070}}]),e}(f.default);e.pharmacode=c},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e={};for(var n in f.default)f.default.hasOwnProperty(n)&&(t.hasAttribute("jsbarcode-"+n.toLowerCase())&&(e[n]=t.getAttribute("jsbarcode-"+n.toLowerCase())),t.hasAttribute("data-"+n.toLowerCase())&&(e[n]=t.getAttribute("data-"+n.toLowerCase())));return e.value=t.getAttribute("jsbarcode-value")||t.getAttribute("data-value"),e=(0,u.default)(e)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(9),u=r(i),a=n(10),f=r(a);e.default=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0?(o=0,n.textAlign="left"):"right"==t.textAlign?(o=e.width-1,n.textAlign="right"):(o=e.width/2,n.textAlign="center"),n.fillText(e.text,o,i)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=f},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(46),i=r(o),u=n(49),a=r(u),f=n(48),c=r(f);e.default={CanvasRenderer:i.default,SVGRenderer:a.default,ObjectRenderer:c.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(u-e.width*i,r,e.width*i,e.height,t),i=0);i>0&&this.drawRect(u-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(f,"text");if(e.displayValue){var o,i;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),i="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(o=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(o=n.width-1,r.setAttribute("text-anchor","end")):(o=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",o),r.setAttribute("y",i),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",f),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(f,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(f,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.default=c}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.codabar.min.js b/dist/barcodes/JsBarcode.codabar.min.js deleted file mode 100644 index 1c3e07f7..00000000 --- a/dist/barcodes/JsBarcode.codabar.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=10)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function i(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function u(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(0),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=s,e.getEncodingHeight=r,e.getBarcodePadding=i,e.calculateEncodingAttributes=o,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12);e.default={codabar:r.codabar}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0?(i=0,n.textAlign="left"):"right"==t.textAlign?(i=e.width-1,n.textAlign="right"):(i=e.width/2,n.textAlign="center"),n.fillText(e.text,i,o)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=u},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(14),o=r(i),a=n(17),s=r(a),u=n(16),f=r(u);e.default={CanvasRenderer:o.default,SVGRenderer:s.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*o,r,e.width*o,e.height,t),o=0);o>0&&this.drawRect(a-e.width*(o-1),r,e.width*o,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(u,"text");if(e.displayValue){var i,o;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",u),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(u,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,i){var o=this.document.createElementNS(u,"rect");return o.setAttribute("x",t),o.setAttribute("y",e),o.setAttribute("width",n),o.setAttribute("height",r),i.appendChild(o),o}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.code128.min.js b/dist/barcodes/JsBarcode.code128.min.js deleted file mode 100644 index 90a8762c..00000000 --- a/dist/barcodes/JsBarcode.code128.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=12)}([function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}Object.defineProperty(e,"__esModule",{value:!0});var o,i=e.SET_A=0,a=e.SET_B=1,u=e.SET_C=2,s=(e.SHIFT=98,e.START_A=103),f=e.START_B=104,c=e.START_C=105;e.MODULO=103,e.STOP=106,e.FNC1=207,e.SET_BY_CODE=(o={},r(o,s,i),r(o,f,a),r(o,c,u),o),e.SWAP={101:i,100:a,99:u},e.A_START_CHAR=String.fromCharCode(208),e.B_START_CHAR=String.fromCharCode(209),e.C_START_CHAR=String.fromCharCode(210),e.A_CHARS="[\0-_È-Ï]",e.B_CHARS="[ -È-Ï]",e.C_CHARS="(Ï*[0-9]{2}Ï*)",e.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e=200){i=t.shift()-105;var a=f.SWAP[i];void 0!==a?o=e.next(t,n+1,a):(r!==f.SET_A&&r!==f.SET_B||i!==f.SHIFT||(t[0]=r===f.SET_A?t[0]>95?t[0]-96:t[0]:t[0]<32?t[0]+96:t[0]),o=e.next(t,n+1,r))}else i=e.correctIndex(t,r),o=e.next(t,n+1,r);var u=e.getBar(i),s=i*n;return{result:u+o.result,checksum:s+o.checksum}}}]),e}(s.default);e.default=c},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(t){function e(t,n){r(this,e);var i=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.name="InvalidInputException",i.symbology=t,i.input=n,i.message='"'+i.input+'" is not a valid input for '+i.symbology,i}return i(e,t),e}(Error),u=function(t){function e(){r(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.name="InvalidElementException",t.message="Not supported type to render on",t}return i(e,t),e}(Error),s=function(t){function e(){r(this,e);var t=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return t.name="NoElementException",t.message="No element to render on.",t}return i(e,t),e}(Error);e.InvalidInputException=a,e.InvalidElementException=u,e.NoElementException=s},function(t,e,n){"use strict";function r(t){var e=["width","height","textMargin","fontSize","margin","marginTop","marginBottom","marginLeft","marginRight"];for(var n in e)e.hasOwnProperty(n)&&(n=e[n],"string"==typeof t[n]&&(t[n]=parseInt(t[n],10)));return"string"==typeof t.displayValue&&(t.displayValue="false"!=t.displayValue),t}Object.defineProperty(e,"__esModule",{value:!0}),e.default=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r={width:2,height:100,format:"auto",displayValue:!0,fontOptions:"",font:"monospace",text:void 0,textAlign:"center",textPosition:"bottom",textMargin:2,fontSize:20,background:"#ffffff",lineColor:"#000000",margin:10,marginTop:void 0,marginBottom:void 0,marginLeft:void 0,marginRight:void 0,valid:function(){}};e.default=r},function(t,e,n){"use strict";function r(t,e){return e.height+(e.displayValue&&t.text.length>0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function o(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(1),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=o,e.calculateEncodingAttributes=i,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(19);e.default={CODE128:r.CODE128,CODE128A:r.CODE128A,CODE128B:r.CODE128B,CODE128C:r.CODE128C}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n=u(t);return e+String.fromCharCode(o?206:205)+r(t,o)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(0),a=function(t){return t.match(new RegExp("^"+i.A_CHARS+"*"))[0].length},u=function(t){return t.match(new RegExp("^"+i.B_CHARS+"*"))[0].length},s=function(t){return t.match(new RegExp("^"+i.C_CHARS+"*"))[0]};e.default=function(t){var e=void 0;if(s(t).length>=2)e=i.C_START_CHAR+o(t);else{var n=a(t)>u(t);e=(n?i.A_START_CHAR:i.B_START_CHAR)+r(t,n)}return e.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(t,e){return String.fromCharCode(203)+e})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.CODE128C=e.CODE128B=e.CODE128A=e.CODE128=void 0;var o=n(17),i=r(o),a=n(14),u=r(a),s=n(15),f=r(s),c=n(16),l=r(c);e.CODE128=i.default,e.CODE128A=u.default,e.CODE128B=f.default,e.CODE128C=l.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e={};for(var n in s.default)s.default.hasOwnProperty(n)&&(t.hasAttribute("jsbarcode-"+n.toLowerCase())&&(e[n]=t.getAttribute("jsbarcode-"+n.toLowerCase())),t.hasAttribute("data-"+n.toLowerCase())&&(e[n]=t.getAttribute("data-"+n.toLowerCase())));return e.value=t.getAttribute("jsbarcode-value")||t.getAttribute("data-value"),e=(0,a.default)(e)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(4),a=r(i),u=n(5),s=r(u);e.default=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0?(o=0,n.textAlign="left"):"right"==t.textAlign?(o=e.width-1,n.textAlign="right"):(o=e.width/2,n.textAlign="center"),n.fillText(e.text,o,i)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(21),i=r(o),a=n(24),u=r(a),s=n(23),f=r(s);e.default={CanvasRenderer:i.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var o,i;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),i="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(o=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(o=n.width-1,r.setAttribute("text-anchor","end")):(o=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",o),r.setAttribute("y",i),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.code39.min.js b/dist/barcodes/JsBarcode.code39.min.js deleted file mode 100644 index d38d0b6b..00000000 --- a/dist/barcodes/JsBarcode.code39.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=10)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function i(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(0),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=i,e.calculateEncodingAttributes=o,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12);e.default={CODE39:r.CODE39}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0?(i=0,n.textAlign="left"):"right"==t.textAlign?(i=e.width-1,n.textAlign="right"):(i=e.width/2,n.textAlign="center"),n.fillText(e.text,i,o)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(14),o=r(i),a=n(17),u=r(a),s=n(16),f=r(s);e.default={CanvasRenderer:o.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*o,r,e.width*o,e.height,t),o=0);o>0&&this.drawRect(a-e.width*(o-1),r,e.width*o,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var i,o;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,i){var o=this.document.createElementNS(s,"rect");return o.setAttribute("x",t),o.setAttribute("y",e),o.setAttribute("width",n),o.setAttribute("height",r),i.appendChild(o),o}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.ean-upc.min.js b/dist/barcodes/JsBarcode.ean-upc.min.js deleted file mode 100644 index 623e2485..00000000 --- a/dist/barcodes/JsBarcode.ean-upc.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=15)}([function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function t(e,n){r(this,t),this.data=e,this.text=n.text||e,this.options=n};e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.SIDE_BIN="101",e.MIDDLE_BIN="01010",e.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},e.EAN2_STRUCTURE=["LL","LG","GL","GG"],e.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],e.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),o=function(t,e,n){var o=t.split("").map(function(t,n){return r.BINARIES[e[n]]}).map(function(e,n){return e?e[t[n]]:""});if(n){var i=t.length-1;o=o.map(function(t,e){return e10*n.width?10*n.width:n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return a(e,t),u(e,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(t,e){return this.text.substr(t,e)}},{key:"leftEncode",value:function(t,e){return(0,c.default)(t,e)}},{key:"rightText",value:function(t,e){return this.text.substr(t,e)}},{key:"rightEncode",value:function(t,e){return(0,c.default)(t,e)}},{key:"encodeGuarded",value:function(){var t={fontSize:this.fontSize},e={height:this.guardHeight};return[{data:s.SIDE_BIN,options:e},{data:this.leftEncode(),text:this.leftText(),options:t},{data:s.MIDDLE_BIN,options:e},{data:this.rightEncode(),text:this.rightText(),options:t},{data:s.SIDE_BIN,options:e}]}},{key:"encodeFlat",value:function(){return{data:[s.SIDE_BIN,this.leftEncode(),s.MIDDLE_BIN,this.rightEncode(),s.SIDE_BIN].join(""),text:this.text}}}]),e}(d.default);e.default=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){var e,n=0;for(e=1;e<11;e+=2)n+=parseInt(t[e]);for(e=0;e<11;e+=2)n+=3*parseInt(t[e]);return(10-n%10)%10}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var n=0;n10*n.width?r.fontSize=10*n.width:r.fontSize=n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return a(e,t),s(e,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==u(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var t="";return t+="101",t+=(0,c.default)(this.data.substr(0,6),"LLLLLL"),t+="01010",t+=(0,c.default)(this.data.substr(6,6),"RRRRRR"),t+="101",{data:t,text:this.text}}},{key:"guardedEncoding",value:function(){var t=[];return this.displayValue&&t.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),t.push({data:"101"+(0,c.default)(this.data[0],"L"),options:{height:this.guardHeight}}),t.push({data:(0,c.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),t.push({data:"01010",options:{height:this.guardHeight}}),t.push({data:(0,c.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),t.push({data:(0,c.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&t.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),t}}]),e}(d.default);e.default=p},function(t,e,n){"use strict";function r(t,e){return e.height+(e.displayValue&&t.text.length>0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function o(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(3),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=o,e.calculateEncodingAttributes=i,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(21);e.default={EAN13:r.EAN13,EAN8:r.EAN8,EAN5:r.EAN5,EAN2:r.EAN2,UPC:r.UPC}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n10*n.width?r.fontSize=10*n.width:r.fontSize=n.fontSize,r.guardHeight=n.height+r.fontSize/2+n.textMargin,r}return a(e,t),s(e,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var t="";return t+="101",t+=this.encodeMiddleDigits(),t+="010101",{data:t,text:this.text}}},{key:"guardedEncoding",value:function(){var t=[];return this.displayValue&&t.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),t.push({data:"101",options:{height:this.guardHeight}}),t.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),t.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&t.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),t}},{key:"encodeMiddleDigits",value:function(){var t=this.upcA[0],e=this.upcA[this.upcA.length-1],n=g[parseInt(e)][parseInt(t)];return(0,c.default)(this.middleDigits,n)}}]),e}(d.default);e.default=v},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.UPCE=e.UPC=e.EAN2=e.EAN5=e.EAN8=e.EAN13=void 0;var o=n(16),i=r(o),a=n(19),u=r(a),s=n(18),f=r(s),c=n(17),l=r(c),d=n(8),p=r(d),h=n(20),g=r(h);e.EAN13=i.default,e.EAN8=u.default,e.EAN5=f.default,e.EAN2=l.default,e.UPC=p.default,e.UPCE=g.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){var e={};for(var n in s.default)s.default.hasOwnProperty(n)&&(t.hasAttribute("jsbarcode-"+n.toLowerCase())&&(e[n]=t.getAttribute("jsbarcode-"+n.toLowerCase())),t.hasAttribute("data-"+n.toLowerCase())&&(e[n]=t.getAttribute("data-"+n.toLowerCase())));return e.value=t.getAttribute("jsbarcode-value")||t.getAttribute("data-value"),e=(0,a.default)(e)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),a=r(i),u=n(6),s=r(u);e.default=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0?(o=0,n.textAlign="left"):"right"==t.textAlign?(o=e.width-1,n.textAlign="right"):(o=e.width/2,n.textAlign="center"),n.fillText(e.text,o,i)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(23),i=r(o),a=n(26),u=r(a),s=n(25),f=r(s);e.default={CanvasRenderer:i.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var o,i;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),i="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(o=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(o=n.width-1,r.setAttribute("text-anchor","end")):(o=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",o),r.setAttribute("y",i),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.itf.min.js b/dist/barcodes/JsBarcode.itf.min.js deleted file mode 100644 index f8cdac9c..00000000 --- a/dist/barcodes/JsBarcode.itf.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=11)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function i(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(0),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=i,e.calculateEncodingAttributes=o,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(15);e.default={ITF:r.ITF,ITF14:r.ITF14}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0?(i=0,n.textAlign="left"):"right"==t.textAlign?(i=e.width-1,n.textAlign="right"):(i=e.width/2,n.textAlign="center"),n.fillText(e.text,i,o)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(17),o=r(i),a=n(20),u=r(a),s=n(19),f=r(s);e.default={CanvasRenderer:o.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*o,r,e.width*o,e.height,t),o=0);o>0&&this.drawRect(a-e.width*(o-1),r,e.width*o,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var i,o;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,i){var o=this.document.createElementNS(s,"rect");return o.setAttribute("x",t),o.setAttribute("y",e),o.setAttribute("width",n),o.setAttribute("height",r),i.appendChild(o),o}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.msi.min.js b/dist/barcodes/JsBarcode.msi.min.js deleted file mode 100644 index 4640dd47..00000000 --- a/dist/barcodes/JsBarcode.msi.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=12)}([function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){for(var n=0;n0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function o(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(1),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=o,e.calculateEncodingAttributes=i,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(18);e.default={MSI:r.MSI,MSI10:r.MSI10,MSI11:r.MSI11,MSI1010:r.MSI1010,MSI1110:r.MSI1110}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0?(o=0,n.textAlign="left"):"right"==t.textAlign?(o=e.width-1,n.textAlign="right"):(o=e.width/2,n.textAlign="center"),n.fillText(e.text,o,i)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(20),i=r(o),a=n(23),u=r(a),s=n(22),f=r(s);e.default={CanvasRenderer:i.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*i,r,e.width*i,e.height,t),i=0);i>0&&this.drawRect(a-e.width*(i-1),r,e.width*i,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var o,i;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),i="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(o=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(o=n.width-1,r.setAttribute("text-anchor","end")):(o=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",o),r.setAttribute("y",i),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,o){var i=this.document.createElementNS(s,"rect");return i.setAttribute("x",t),i.setAttribute("y",e),i.setAttribute("width",n),i.setAttribute("height",r),o.appendChild(i),i}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/dist/barcodes/JsBarcode.pharmacode.min.js b/dist/barcodes/JsBarcode.pharmacode.min.js deleted file mode 100644 index a12d596c..00000000 --- a/dist/barcodes/JsBarcode.pharmacode.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! JsBarcode v3.11.0 | (c) Johan Lindell | MIT license */ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=10)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e0?e.fontSize+e.textMargin:0)+e.marginTop+e.marginBottom}function i(t,e,n){if(n.displayValue&&ee&&(e=t[n].height);return e}function s(t,e,n){var r;if(n)r=n;else{if("undefined"==typeof document)return 0;r=document.createElement("canvas").getContext("2d")}return r.font=e.fontOptions+" "+e.fontSize+"px "+e.font,r.measureText(t).width}Object.defineProperty(e,"__esModule",{value:!0}),e.getTotalWidthOfEncodings=e.calculateEncodingAttributes=e.getBarcodePadding=e.getEncodingHeight=e.getMaximumHeightOfEncodings=void 0;var f=n(0),c=function(t){return t&&t.__esModule?t:{default:t}}(f);e.getMaximumHeightOfEncodings=u,e.getEncodingHeight=r,e.getBarcodePadding=i,e.calculateEncodingAttributes=o,e.getTotalWidthOfEncodings=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12);e.default={pharmacode:r.pharmacode}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n=3&&this.number<=131070}}]),e}(s.default);e.pharmacode=f},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t){var e={};for(var n in s.default)s.default.hasOwnProperty(n)&&(t.hasAttribute("jsbarcode-"+n.toLowerCase())&&(e[n]=t.getAttribute("jsbarcode-"+n.toLowerCase())),t.hasAttribute("data-"+n.toLowerCase())&&(e[n]=t.getAttribute("data-"+n.toLowerCase())));return e.value=t.getAttribute("jsbarcode-value")||t.getAttribute("data-value"),e=(0,a.default)(e)}Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),a=r(o),u=n(3),s=r(u);e.default=i},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0?(i=0,n.textAlign="left"):"right"==t.textAlign?(i=e.width-1,n.textAlign="right"):(i=e.width/2,n.textAlign="center"),n.fillText(e.text,i,o)}}},{key:"moveCanvasDrawing",value:function(t){this.canvas.getContext("2d").translate(t.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),t}();e.default=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(14),o=r(i),a=n(17),u=r(a),s=n(16),f=r(s);e.default={CanvasRenderer:o.default,SVGRenderer:u.default,ObjectRenderer:f.default}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n0&&(this.drawRect(a-e.width*o,r,e.width*o,e.height,t),o=0);o>0&&this.drawRect(a-e.width*(o-1),r,e.width*o,e.height,t)}},{key:"drawSVGText",value:function(t,e,n){var r=this.document.createElementNS(s,"text");if(e.displayValue){var i,o;r.setAttribute("style","font:"+e.fontOptions+" "+e.fontSize+"px "+e.font),o="top"==e.textPosition?e.fontSize-e.textMargin:e.height+e.textMargin+e.fontSize,"left"==e.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==e.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),t.appendChild(r)}}},{key:"setSvgAttributes",value:function(t,e){var n=this.svg;n.setAttribute("width",t+"px"),n.setAttribute("height",e+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+t+" "+e),n.setAttribute("xmlns",s),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(t,e,n){var r=this.document.createElementNS(s,"g");return r.setAttribute("transform","translate("+t+", "+e+")"),n.appendChild(r),r}},{key:"setGroupOptions",value:function(t,e){t.setAttribute("style","fill:"+e.lineColor+";")}},{key:"drawRect",value:function(t,e,n,r,i){var o=this.document.createElementNS(s,"rect");return o.setAttribute("x",t),o.setAttribute("y",e),o.setAttribute("width",n),o.setAttribute("height",r),i.appendChild(o),o}}]),t}();e.default=f}]); \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 5dea2aa5..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '2' -services: - jsbarcode: - build: - context: ./ - volumes: - - ./src:/jsbarcode/src - - ./test:/jsbarcode/test - ports: - - 3000:3000 diff --git a/example/index.html b/example/index.html index ddb341c6..c630e431 100644 --- a/example/index.html +++ b/example/index.html @@ -3,66 +3,12 @@ - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - + +
+ diff --git a/example/index.js b/example/index.js new file mode 100644 index 00000000..af1dbe5c --- /dev/null +++ b/example/index.js @@ -0,0 +1,18 @@ +import jsbarcode from '../lib/'; +import ean13 from '../lib/barcodes/EAN_UPC/EAN13'; +import svg from '../lib/renderers/svg'; +import canvas from '../lib/renderers/canvas'; + +jsbarcode("#barcode", "9780199532179", { + encoder: ean13, + renderer: svg, + displayValue:true, + fontSize:24, +}); + +jsbarcode("#barcode2", "9780199532179", { + encoder: ean13, + renderer: canvas, + displayValue:true, + fontSize: 20, +}); \ No newline at end of file diff --git a/example/toBase64.html b/example/toBase64.html deleted file mode 100644 index 8bd25830..00000000 --- a/example/toBase64.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - Click Here - - - diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index 3bc31a55..00000000 --- a/gulpfile.js +++ /dev/null @@ -1,19 +0,0 @@ -/*eslint -no-console: 0 -*/ - -var gulp = require('gulp'); - -require('./automation/building.js'); -require('./automation/linting.js'); -require('./automation/releasing.js'); -require('./automation/misc.js'); - - -gulp.task('watch', ['compile'], function() { - gulp.watch("src/**/*", ['compile']); -}); - -gulp.task('watch-web', ['webpack'], function() { - gulp.watch("src/**/*", ['webpack']); -}); diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000..d27030ef --- /dev/null +++ b/jest.config.js @@ -0,0 +1,20 @@ +module.exports = { + preset: 'ts-jest', + transform: { + '^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.base.json' }], + }, + modulePathIgnorePatterns: [ + '/dist/', + '/packages/.*/dist/' + ], + moduleNameMapper: { + // Map "packages/" imports to actual package paths for integration tests + '^packages/(.*)$': '/packages/$1', + + // Map @jsbarcode/ scoped workspace packages directly to their TS sources + '^@jsbarcode/renderer-canvas$': '/packages/renderer/canvas/src', + '^@jsbarcode/renderer-svg$': '/packages/renderer/svg/src', + '^@jsbarcode/core$': '/packages/core/src', + '^@jsbarcode/(.*)$': '/packages/barcodes/$1/src', + } +}; diff --git a/package-lock.json b/package-lock.json index 5b143420..f4170531 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9190 +1,10145 @@ { "name": "jsbarcode", - "version": "3.11.0", - "lockfileVersion": 1, + "version": "4.0.0-alpha.5", + "lockfileVersion": 3, "requires": true, - "dependencies": { - "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "packages": { + "": { + "name": "jsbarcode", + "version": "4.0.0-alpha.5", + "license": "MIT", + "workspaces": [ + "packages/core", + "packages/jsbarcode", + "packages/renderer/canvas", + "packages/renderer/svg", + "packages/barcodes/code128", + "packages/barcodes/code39", + "packages/barcodes/codabar", + "packages/barcodes/ean-upc", + "packages/barcodes/itf", + "packages/barcodes/msi", + "packages/barcodes/pharmacode", + "packages/barcodes/generic-barcode" + ], + "devDependencies": { + "@babel/cli": "^7.26.4", + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@types/jest": "^29.5.14", + "@xmldom/xmldom": "^0.9.7", + "blanket": "^1.2.3", + "canvas": "^3.0.1", + "jest": "^29.5.14", + "mocha": "^11.0.1", + "nyc": "^17.1.0", + "prettier-eslint-cli": "^8.0.1", + "ts-jest": "^29.2.5", + "typescript": "^5.7.3", + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "requires": { - "acorn": "^4.0.3" - }, + "license": "Apache-2.0", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "node_modules/@babel/cli": { + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.26.4.tgz", + "integrity": "sha512-+mORf3ezU3p3qr+82WvJSnQNE1GAYeoCfEv4fik6B5/2cvKZ75AX8oawWQdXtM9MmndooQj15Jr9kelRFWsuRw==", "dev": true, - "requires": { - "acorn": "^3.0.4" - }, + "license": "MIT", "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "@jridgewell/trace-mapping": "^0.3.25", + "commander": "^6.2.0", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, - "requires": { - "ansi-wrap": "0.1.0" + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, - "requires": { - "ansi-wrap": "0.1.0" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, - "requires": { - "ansi-wrap": "0.1.0" + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "any-shell-escape": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/any-shell-escape/-/any-shell-escape-0.1.1.tgz", - "integrity": "sha1-1Vq5ciRMcaml4asIefML8RCAaVk=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, - "requires": { - "arr-flatten": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, - "requires": { - "array-uniq": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, - "requires": { - "safer-buffer": "~2.1.0" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, - "requires": { - "util": "0.10.3" - }, + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-polyfill": "^6.26.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "chokidar": "^1.6.1", - "commander": "^2.11.0", - "convert-source-map": "^1.5.0", - "fs-readdir-recursive": "^1.0.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "output-file-sync": "^1.1.2", - "path-is-absolute": "^1.0.1", - "slash": "^1.0.0", - "source-map": "^0.5.6", - "v8flags": "^2.1.1" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "babel-loader": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", - "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "node_modules/@babel/parser": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-generators": "^6.5.0", - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, + "license": "MIT", "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-generator-functions": "^6.24.1", - "babel-plugin-transform-async-to-generator": "^6.24.1", - "babel-plugin-transform-exponentiation-operator": "^6.24.1", - "babel-plugin-transform-object-rest-spread": "^6.22.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bl": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", - "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", - "dev": true, - "requires": { - "readable-stream": "~1.0.26" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "blanket": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/blanket/-/blanket-1.2.3.tgz", - "integrity": "sha1-FRtJh8O9hFUrtfA7kO9fflkx5HM=", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, - "requires": { - "acorn": "^1.0.3", - "falafel": "~1.2.0", - "foreach": "^2.0.5", - "isarray": "0.0.1", - "object-keys": "^1.0.6", - "xtend": "~4.0.0" - }, + "license": "MIT", "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, - "requires": { - "pako": "~1.0.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "bufferstreams": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz", - "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, - "requires": { - "readable-stream": "^2.0.2" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bump-regex": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/bump-regex/-/bump-regex-2.9.0.tgz", - "integrity": "sha512-o4WC1mKw/kM0zScuOxZKi243lc+/h09b41u2A7HlWbxHsEDsTTZtqDZYkQj65l24J8+9Saahn5ep+EyeqpQoCg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, - "requires": { - "semver": "^5.1.0", - "xtend": "^4.0.1" - }, + "license": "MIT", "dependencies": { - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, - "requires": { - "callsites": "^0.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "canvas": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-1.6.11.tgz", - "integrity": "sha512-ElVw5Uk8PReGpzXfDg6PDa+wntnZLGWWfdSHI0Pc8GyXiFbW13drSTzWU6C4E5QylHe+FnLqI7ngMRlp3eGZIQ==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, - "requires": { - "nan": "^2.10.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, - "requires": { - "restore-cursor": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, + "license": "MIT", "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, - "requires": { - "source-map": "^0.6.1" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, - "requires": { - "date-now": "^0.1.4" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "coveralls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.2.tgz", - "integrity": "sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw==", - "dev": true, - "requires": { - "growl": "~> 1.10.0", - "js-yaml": "^3.11.0", - "lcov-parse": "^0.0.10", - "log-driver": "^1.2.7", - "minimist": "^1.2.0", - "request": "^2.85.0" - }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "license": "MIT", "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, - "requires": { - "array-find-index": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, - "requires": { - "es5-ext": "^0.10.9" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" - }, + "license": "MIT", "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true - }, - "deap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.1.tgz", - "integrity": "sha512-k75KYNZMvwAwes2xIPry/QTffXIchjD8QfABvvfTr80P85jv5ZcKqcoDo+vMe71nNnVnXYe8MA28weyqcf/DKw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, - "requires": { - "ms": "2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, - "requires": { - "clone": "^1.0.2" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, + "license": "MIT", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "editor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", - "dev": true - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true, - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1" - } - } + "node_modules/@babel/traverse": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "node_modules/@babel/types": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" } }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", "dev": true, - "requires": { - "prr": "~1.0.1" + "license": "MIT", + "engines": { + "node": ">=14.17.0" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, - "requires": { - "babel-code-frame": "^6.16.0", - "chalk": "^1.1.3", - "concat-stream": "^1.5.2", - "debug": "^2.1.1", - "doctrine": "^2.0.0", - "escope": "^3.6.0", - "espree": "^3.4.0", - "esquery": "^1.0.0", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "glob": "^7.0.3", - "globals": "^9.14.0", - "ignore": "^3.2.0", - "imurmurhash": "^0.1.4", - "inquirer": "^0.12.0", - "is-my-json-valid": "^2.10.0", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.5.1", - "json-stable-stringify": "^1.0.0", - "levn": "^0.3.0", - "lodash": "^4.0.0", - "mkdirp": "^0.5.0", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.1", - "pluralize": "^1.2.1", - "progress": "^1.1.8", - "require-uncached": "^1.0.2", - "shelljs": "^0.7.5", - "strip-bom": "^3.0.0", - "strip-json-comments": "~2.0.1", - "table": "^3.7.8", - "text-table": "~0.2.0", - "user-home": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0" - } - } + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", "dependencies": { - "acorn": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", - "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==", - "dev": true - } + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "requires": { - "estraverse": "^4.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "requires": { - "estraverse": "^4.1.0" + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "requires": { - "fill-range": "^2.1.0" + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "is-extglob": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "falafel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", - "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "requires": { - "acorn": "^1.0.3", - "foreach": "^2.0.5", - "isarray": "0.0.1", - "object-keys": "^1.0.6" + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "node_modules/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "requires": { - "locate-path": "^2.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "node_modules/@jsbarcode/codabar": { + "resolved": "packages/barcodes/codabar", + "link": true + }, + "node_modules/@jsbarcode/code128": { + "resolved": "packages/barcodes/code128", + "link": true + }, + "node_modules/@jsbarcode/code39": { + "resolved": "packages/barcodes/code39", + "link": true + }, + "node_modules/@jsbarcode/core": { + "resolved": "packages/core", + "link": true + }, + "node_modules/@jsbarcode/ean-upc": { + "resolved": "packages/barcodes/ean-upc", + "link": true + }, + "node_modules/@jsbarcode/generic-barcode": { + "resolved": "packages/barcodes/generic-barcode", + "link": true + }, + "node_modules/@jsbarcode/itf": { + "resolved": "packages/barcodes/itf", + "link": true + }, + "node_modules/@jsbarcode/msi": { + "resolved": "packages/barcodes/msi", + "link": true + }, + "node_modules/@jsbarcode/pharmacode": { + "resolved": "packages/barcodes/pharmacode", + "link": true + }, + "node_modules/@jsbarcode/renderer-canvas": { + "resolved": "packages/renderer/canvas", + "link": true + }, + "node_modules/@jsbarcode/renderer-svg": { + "resolved": "packages/renderer/svg", + "link": true + }, + "node_modules/@messageformat/core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.4.0.tgz", + "integrity": "sha512-NgCFubFFIdMWJGN5WuQhHCNmzk7QgiVfrViFxcS99j7F5dDS5EP6raR54I+2ydhe4+5/XTn/YIEppFaqqVWHsw==", "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "@messageformat/date-skeleton": "^1.0.0", + "@messageformat/number-skeleton": "^1.0.0", + "@messageformat/parser": "^5.1.0", + "@messageformat/runtime": "^3.0.1", + "make-plural": "^7.0.0", + "safe-identifier": "^0.4.1" } }, - "fined": { + "node_modules/@messageformat/date-skeleton": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", + "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } + "license": "MIT" }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true + "node_modules/@messageformat/number-skeleton": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", + "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", + "dev": true, + "license": "MIT" }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", - "dev": true + "node_modules/@messageformat/parser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", + "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "moo": "^0.5.1" + } }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "node_modules/@messageformat/runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz", + "integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==", "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "license": "MIT", + "dependencies": { + "make-plural": "^7.0.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "license": "MIT", + "optional": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "requires": { - "for-in": "^1.0.1" + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "foreach": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@prettier/eslint": { + "name": "prettier-eslint", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.3.0.tgz", + "integrity": "sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg==", + "dev": true, + "license": "MIT", "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, + "@typescript-eslint/parser": "^6.7.5", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^8.7.0", + "indent-string": "^4.0.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^3.0.1", + "pretty-format": "^29.7.0", + "require-relative": "^0.8.7", + "typescript": "^5.2.2", + "vue-eslint-parser": "^9.1.0" + }, + "engines": { + "node": ">=16.10.0" + }, + "peerDependencies": { + "prettier-plugin-svelte": "^3.0.0", + "svelte-eslint-parser": "*" + }, + "peerDependenciesMeta": { + "prettier-plugin-svelte": { "optional": true }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, + "svelte-eslint-parser": { "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, + } + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", + "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, + } + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.7.tgz", + "integrity": "sha512-syvR8iIJjpTZ/stv7l89UAViwGFh6lbheeOaqSxkYx9YNmIVvPTRH+CT/fpykFtUx5N+8eSMDRvggF9J8GEPzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha512-FsqWmApWGMGLKKNpHt12PMc5AK7BaZee0WRh04fCysmTzHe+rrKOa2MKjORhnzfpe4r0JnfdqHn02iDA9Dqj2A==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blanket": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/blanket/-/blanket-1.2.3.tgz", + "integrity": "sha512-u0jo0RgUaVK45tEWOBq8BhexulW74S0NcGmmqTXRyCc3bSl76TQgk6+NP0/+EWvBVAMBMyd9AffGXKFWkN8Eww==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^1.0.3", + "falafel": "~1.2.0", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=0.10.7" + } + }, + "node_modules/boolify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/boolify/-/boolify-1.0.1.tgz", + "integrity": "sha512-ma2q0Tc760dW54CdOyJjhrg/a54317o1zYADQJFgperNGKIKgAUGIcKnuMiff8z57+yGlrGNEt4lPgZfCgTJgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-9.1.3.tgz", + "integrity": "sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^8.0.0", + "map-obj": "5.0.0", + "quick-lru": "^6.1.1", + "type-fest": "^4.3.2" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.33.0.tgz", + "integrity": "sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canvas": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.0.1.tgz", + "integrity": "sha512-PcpVF4f8RubAeN/jCQQ/UymDKzOiLmRPph8fOTzDnlsUihkO/AUlxuhaa7wGRc3vMcCbV1fzuvyu5cWZlIcn1w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "simple-get": "^3.0.3" + }, + "engines": { + "node": "^18.12.0 || >= 20.9.0" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.84", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.84.tgz", + "integrity": "sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/falafel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", + "integrity": "sha512-oKyHugGk3tYQcZmj3+J+0PlcU59JYOZL60Lr3dYwsLDDYYR/+GYvAhW5WO3NTfh2FJOcGRoXJxxtGpda1qE5Sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^1.0.3", + "foreach": "^2.0.5", + "isarray": "0.0.1", + "object-keys": "^1.0.6" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "dev": true, + "license": "MIT" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, - "requires": { - "globule": "~0.1.0" + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "requires": { - "is-property": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=0.8.19" } }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "requires": { - "is-property": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ghauth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ghauth/-/ghauth-2.0.1.tgz", - "integrity": "sha1-ebfWiwvPjn0IUqI7FHU539MUrPY=", - "dev": true, - "requires": { - "bl": "~0.9.4", - "hyperquest": "~1.2.0", - "mkdirp": "~0.5.0", - "read": "~1.0.5", - "xtend": "~4.0.0" + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "github-url-to-object": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-1.6.0.tgz", - "integrity": "sha1-iR73+7+rqP7XFRCs2xtOk0apcNw=", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "requires": { - "is-url": "^1.1.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "requires": { - "gaze": "^0.5.1" + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "requires": { - "find-index": "^0.1.1" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "global-modules": { + "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "global-prefix": { + "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "license": "MIT" }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" } }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, - "requires": { - "sparkles": "^1.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" } }, - "gulp-babel": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-6.1.3.tgz", - "integrity": "sha512-tm15R3rt4gO59WXCuqrwf4QXJM9VIJC+0J2NPYSC6xZn+cZRD5y5RPGAiHaDxCJq7Rz5BDljlrk3cEjWADF+wQ==", - "dev": true, - "requires": { - "babel-core": "^6.23.1", - "object-assign": "^4.0.1", - "plugin-error": "^1.0.1", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-bump": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/gulp-bump/-/gulp-bump-2.9.0.tgz", - "integrity": "sha512-Cu+QOhwb2Jr2K6yo2u2mh4GWQRpSAMZD/z0v8FStlrOGaqML9u1On7XcyR1pS/PN3HQ9wsd/Ks6AcCQb+j3BgA==", - "dev": true, - "requires": { - "bump-regex": "^2.9.0", - "plugin-error": "^0.1.2", - "plugin-log": "^0.1.0", - "semver": "^5.3.0", - "through2": "^2.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - } + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "gulp-clean": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/gulp-clean/-/gulp-clean-0.3.2.tgz", - "integrity": "sha1-o0fUc6zqQBgvk1WHpFGUFnGSgQI=", + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "requires": { - "gulp-util": "^2.2.14", - "rimraf": "^2.2.8", - "through2": "^0.4.2" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", - "dev": true - }, - "ansi-styles": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", - "dev": true - }, - "chalk": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", - "dev": true, - "requires": { - "ansi-styles": "^1.1.0", - "escape-string-regexp": "^1.0.0", - "has-ansi": "^0.1.0", - "strip-ansi": "^0.3.0", - "supports-color": "^0.2.0" - } - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "gulp-util": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", - "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", - "dev": true, - "requires": { - "chalk": "^0.5.0", - "dateformat": "^1.0.7-1.2.3", - "lodash._reinterpolate": "^2.4.1", - "lodash.template": "^2.4.1", - "minimist": "^0.2.0", - "multipipe": "^0.1.0", - "through2": "^0.5.0", - "vinyl": "^0.2.1" - }, - "dependencies": { - "through2": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", - "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", - "dev": true, - "requires": { - "readable-stream": "~1.0.17", - "xtend": "~3.0.0" - } - } - } - }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", - "dev": true, - "requires": { - "ansi-regex": "^0.2.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", - "integrity": "sha1-TxInqlqHEfxjL1sHofRgequLMiI=", - "dev": true - }, - "lodash.escape": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", - "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", - "dev": true, - "requires": { - "lodash._escapehtmlchar": "~2.4.1", - "lodash._reunescapedhtml": "~2.4.1", - "lodash.keys": "~2.4.1" - } - }, - "lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", - "dev": true, - "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" - } - }, - "lodash.template": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", - "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", - "dev": true, - "requires": { - "lodash._escapestringchar": "~2.4.1", - "lodash._reinterpolate": "~2.4.1", - "lodash.defaults": "~2.4.1", - "lodash.escape": "~2.4.1", - "lodash.keys": "~2.4.1", - "lodash.templatesettings": "~2.4.1", - "lodash.values": "~2.4.1" - } - }, - "lodash.templatesettings": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", - "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~2.4.1", - "lodash.escape": "~2.4.1" - } - }, - "minimist": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", - "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", - "dev": true - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", - "dev": true, - "requires": { - "ansi-regex": "^0.2.1" - } - }, - "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true - }, - "through2": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", - "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", - "dev": true, - "requires": { - "readable-stream": "~1.0.17", - "xtend": "~2.1.1" - }, - "dependencies": { - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "vinyl": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", - "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", - "dev": true, - "requires": { - "clone-stats": "~0.0.1" - } - }, - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", - "dev": true + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } } }, - "gulp-eslint": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz", - "integrity": "sha1-BOV+PhjGl0JnwSz2hV3HF9SjE70=", - "dev": true, - "requires": { - "bufferstreams": "^1.1.1", - "eslint": "^3.0.0", - "gulp-util": "^3.0.6" - } - }, - "gulp-git": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/gulp-git/-/gulp-git-2.8.0.tgz", - "integrity": "sha512-45pahZGIcsb6eCJS9EGCdXqYBbxE1dtSbS03iXIF3dHHor1r37KMqwoQQJv1SXJjpLKc6ei+rdvIl7Ar6tB+ow==", - "dev": true, - "requires": { - "any-shell-escape": "^0.1.1", - "fancy-log": "^1.3.2", - "lodash.template": "^4.4.0", - "plugin-error": "^0.1.2", - "require-dir": "^1.0.0", - "strip-bom-stream": "^3.0.0", - "through2": "^2.0.3", - "vinyl": "^2.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } + "ts-node": { + "optional": true } } }, - "gulp-header": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", - "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "requires": { - "concat-with-sourcemaps": "*", - "lodash.template": "^4.4.0", - "through2": "^2.0.0" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", "dependencies": { - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - } + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "gulp-rename": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", - "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", - "dev": true - }, - "gulp-uglify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-1.5.4.tgz", - "integrity": "sha1-UkeI2HZm0J+dDCH7IXf5ADmmWMk=", - "dev": true, - "requires": { - "deap": "^1.0.0", - "fancy-log": "^1.0.0", - "gulp-util": "^3.0.0", - "isobject": "^2.0.0", - "through2": "^2.0.0", - "uglify-js": "2.6.4", - "uglify-save-license": "^0.4.1", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, - "requires": { - "glogg": "^1.0.0" + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "gzip-size": { + "node_modules/jest-message-util/node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "duplexer": "^0.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "requires": { - "sparkles": "^1.0.0" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "requires": { - "parse-passwd": "^1.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "hyperquest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperquest/-/hyperquest-1.2.0.tgz", - "integrity": "sha1-OeH+9miI3Hzg3sbA3YFPb8iUStU=", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "requires": { - "duplexer2": "~0.0.2", - "through2": "~0.6.3" + "license": "MIT", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true + "node_modules/jsbarcode": { + "resolved": "packages/jsbarcode", + "link": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" }, - "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", - "dev": true, - "requires": { - "ansi-escapes": "^1.1.0", - "ansi-regex": "^2.0.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", - "cli-width": "^2.0.0", - "figures": "^1.3.5", - "lodash": "^4.3.0", - "readline2": "^1.0.1", - "run-async": "^0.1.0", - "rx-lite": "^3.1.2", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", - "through": "^2.3.6" - } + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "requires": { - "binary-extensions": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "requires": { - "builtin-modules": "^1.0.0" + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "license": "MIT", + "engines": { + "node": ">=6.11.5" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, + "license": "MIT", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } + "license": "MIT" }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", "dev": true, - "requires": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" } }, - "is-fullwidth-code-point": { + "node_modules/loglevel-colored-level-prefix": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", + "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", "dev": true, - "requires": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" } }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "requires": { - "is-extglob": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "is-my-ip-valid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", - "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", - "dev": true + "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "is-my-json-valid": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz", - "integrity": "sha512-mG0f/unGX1HZ5ep4uhRaPOS8EkAY8/j6mDRMJrutq4CqhoJWYp7qAlonIPy3TV7p3ju4TK9fo/PbnoksWmsp5Q==", + "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "is-my-ip-valid": "^1.0.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true + "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "requires": { - "is-path-inside": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "path-is-inside": "^1.0.1" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "requires": { - "isobject": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true + "node_modules/make-plural": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.4.0.tgz", + "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==", + "dev": true, + "license": "Unicode-DFS-2016" }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "requires": { - "is-unc-path": "^1.0.0" + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true + "node_modules/map-obj": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.0.tgz", + "integrity": "sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "requires": { - "isarray": "1.0.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", - "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true, - "optional": true + "license": "MIT" }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "node_modules/mocha": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz", + "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", "dev": true, - "requires": { - "jsonify": "~0.0.0" + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, + "license": "MIT", "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "balanced-match": "^1.0.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { - "is-buffer": "^1.1.5" + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "node_modules/mocha/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "requires": { - "invert-kv": "^1.0.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "lcov-parse": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", - "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", - "dev": true + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "license": "BSD-3-Clause" }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true, + "license": "MIT" }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._escapehtmlchar": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", - "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", - "dev": true, - "requires": { - "lodash._htmlescapes": "~2.4.1" - } - }, - "lodash._escapestringchar": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", - "integrity": "sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._htmlescapes": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", - "integrity": "sha1-MtFL8IRLbeb4tioFG09nwii2JMs=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._isnative": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", - "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", - "dev": true - }, - "lodash._objecttypes": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", - "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._reunescapedhtml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", - "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", - "dev": true, - "requires": { - "lodash._htmlescapes": "~2.4.1", - "lodash.keys": "~2.4.1" - }, - "dependencies": { - "lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", - "dev": true, - "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" - } - } + "node_modules/node-abi": { + "version": "3.73.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.73.0.tgz", + "integrity": "sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" } }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash._shimkeys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", - "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "node_modules/node-abi/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "requires": { - "lodash._objecttypes": "~2.4.1" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.defaults": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", - "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", - "dev": true, - "requires": { - "lodash._objecttypes": "~2.4.1", - "lodash.keys": "~2.4.1" - }, - "dependencies": { - "lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", - "dev": true, - "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" - } - } - } + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, - "requires": { - "lodash._root": "^3.0.0" + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" }, - "lodash.isobject": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", - "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "requires": { - "lodash._objecttypes": "~2.4.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "node_modules/nyc": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-17.1.0.tgz", + "integrity": "sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==", "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^3.3.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^6.0.2", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=18" } }, - "lodash.values": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", - "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "requires": { - "lodash.keys": "~2.4.1" - }, + "license": "ISC", "dependencies": { - "lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", - "dev": true, - "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "requires": { - "pify": "^3.0.0" + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, + "license": "ISC", "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { - "object-visit": "^1.0.0" + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", - "dev": true + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, - "requires": { - "mime-db": "~1.36.0" + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "minimalistic-assert": { + "node_modules/package-json-from-dist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" }, - "minimalistic-crypto-utils": { + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { - "brace-expansion": "^1.1.7" + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "requires": { - "minimist": "0.0.8" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "mocha-lcov-reporter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", - "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", - "dev": true + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - } - }, - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", - "dev": true - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "natives": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", - "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==", - "dev": true + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", - "dev": true + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" } }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true + "node_modules/prebuild-install/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/prebuild-install/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, - "requires": { - "isobject": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } + "node_modules/prebuild-install/node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/prettier-eslint-cli": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-8.0.1.tgz", + "integrity": "sha512-jru4JUDHzWEtM/SOxqagU7hQTVP8BVrxO2J0qNauWZuPRld6Ea2eyNaEzIGx6I+yjmOLCsjNM+vU1AJgaW1ZSQ==", "dev": true, - "requires": { - "isobject": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "@messageformat/core": "^3.2.0", + "@prettier/eslint": "npm:prettier-eslint@^16.1.0", + "arrify": "^2.0.1", + "boolify": "^1.0.1", + "camelcase-keys": "^9.1.0", + "chalk": "^4.1.2", + "common-tags": "^1.8.2", + "core-js": "^3.33.0", + "eslint": "^8.51.0", + "find-up": "^5.0.0", + "get-stdin": "^8.0.0", + "glob": "^10.3.10", + "ignore": "^5.2.4", + "indent-string": "^4.0.0", + "lodash.memoize": "^4.1.2", + "loglevel-colored-level-prefix": "^1.0.0", + "rxjs": "^7.8.1", + "yargs": "^17.7.2" + }, + "bin": { + "prettier-eslint": "dist/index.js" + }, + "engines": { + "node": ">=16.10.0" + }, + "peerDependencies": { + "prettier-eslint": "*" + }, + "peerDependenciesMeta": { + "prettier-eslint": { + "optional": true } } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/prettier-eslint-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "requires": { - "wrappy": "1" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "onetime": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "node_modules/prettier-eslint-cli/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, + "license": "MIT", "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "node_modules/prettier-eslint-cli/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "node_modules/prettier-eslint-cli/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true + "node_modules/prettier-eslint-cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "node_modules/prettier-eslint-cli/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "requires": { - "lcid": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "node_modules/process-on-spawn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "requires": { - "graceful-fs": "^4.1.4", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.0" + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, - "requires": { - "p-try": "^1.0.0" + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "requires": { - "p-limit": "^1.1.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, - "requires": { - "error-ex": "^1.2.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, - "requires": { - "path-root-regex": "^0.1.0" + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, + "license": "BSD-2-Clause", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" } }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, - "pbkdf2-compat": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "requires": { - "pinkie": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "pkg-dir": { + "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true, - "requires": { - "find-up": "^2.1.0" - } + "license": "ISC" }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true + "node_modules/require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", + "dev": true, + "license": "MIT" }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, + "license": "MIT", "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - } + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "plugin-log": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/plugin-log/-/plugin-log-0.1.0.tgz", - "integrity": "sha1-hgSc9qsQgzOYqTHzaJy67nteEzM=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "dateformat": "^1.0.11" - }, - "dependencies": { - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - } + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } }, - "pretty-bytes": { + "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "progress-stream": { + "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, - "publish-release": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/publish-release/-/publish-release-1.6.0.tgz", - "integrity": "sha512-t+NFXTQN/VDTg9yJ8Uv5ZWQ7Ud1T5W1tPW+bmuo4g6uYVQTVNiwwRF6Td3EtXFTOafpEXJQEZqGG7IvIJwLwIg==", - "dev": true, - "requires": { - "async": "^0.9.0", - "ghauth": "^2.0.0", - "github-url-to-object": "^1.4.2", - "inquirer": "^0.8.2", - "lodash": "^3.6.0", - "mime": "^1.3.4", - "minimist": "^1.1.1", - "pkginfo": "^0.3.0", - "pretty-bytes": "^1.0.4", - "progress-stream": "^1.0.1", - "request": "^2.54.0", - "single-line-log": "^0.4.1", - "string-editor": "^0.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", - "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0=", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "cli-width": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", - "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=", - "dev": true - }, - "inquirer": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz", - "integrity": "sha1-29dAz2yjtzEpamPOb22WGFHzNt8=", - "dev": true, - "requires": { - "ansi-regex": "^1.1.1", - "chalk": "^1.0.0", - "cli-width": "^1.0.1", - "figures": "^1.3.5", - "lodash": "^3.3.1", - "readline2": "^0.1.1", - "rx": "^2.4.3", - "through": "^2.3.6" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mute-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz", - "integrity": "sha1-qSGZYKbV1dBGWXruUSUsZlX3F34=", - "dev": true + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "readline2": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", - "integrity": "sha1-mUQ7pug7gw7zBRv9fcJBqCco1Wg=", - "dev": true, - "requires": { - "mute-stream": "0.0.4", - "strip-ansi": "^2.0.1" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "strip-ansi": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", - "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=", - "dev": true, - "requires": { - "ansi-regex": "^1.0.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" } - } + ], + "license": "MIT" }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "node_modules/safe-identifier": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", + "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", + "dev": true, + "license": "ISC" }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, + "license": "BSD-3-Clause", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "randombytes": "^2.1.0" } }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "mute-stream": "~0.0.4" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } + "license": "ISC" }, - "read-pkg-up": { + "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" } - } + ], + "license": "MIT" }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "license": "MIT", + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } + "license": "MIT" }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "mute-stream": "0.0.5" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "resolve": "^1.1.6" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "license": "ISC", + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "node_modules/spawn-wrap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "license": "BSD-3-Clause" }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, + "license": "MIT", "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, - "requires": { - "is-finite": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - } + "safe-buffer": "~5.2.0" } }, - "require-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-1.0.0.tgz", - "integrity": "sha512-PUJcQVTP4n6F8Un1GEEWhqnmBMfukVsL5gqwBxt7RF+nP+9hSOLJ/vSs5iUoXw1UWDgzqg9B/IIb15kfQKWsAQ==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "path-parse": "^1.0.5" + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "align-text": "^0.1.1" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "requires": { - "glob": "^7.0.5" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "once": "^1.3.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "run-sequence": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-1.2.2.tgz", - "integrity": "sha1-UJWgvr6YczsBQL0I3YDsAw3azes=", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "chalk": "*", - "gulp-util": "*" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "rx": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz", - "integrity": "sha1-Ia3H2A8CACr1Da6X/Z2/JIdV9WY=", - "dev": true - }, - "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "requires": { - "ret": "~0.1.10" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "safer-buffer": { + "node_modules/tar-fs": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "single-line-log": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz", - "integrity": "sha1-h6VWSfdJ14PsDc2AToFA2Yc8fO4=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "node_modules/terser-webpack-plugin": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true } } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "requires": { - "kind-of": "^3.2.0" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" } }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "source-map": "^0.5.6" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "node_modules/terser/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { - "extend-shallow": "^3.0.0" + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true } } }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", - "dev": true + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "string-editor": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-editor/-/string-editor-0.1.2.tgz", - "integrity": "sha1-9f8bWsSu16xsL7jeI20VUbIPYdA=", + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "requires": { - "editor": "^1.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } + "license": "MIT" }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "strip-bom-buf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "requires": { - "is-utf8": "^0.2.1" + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "strip-bom-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-3.0.0.tgz", - "integrity": "sha1-lWvMXYRDD2klapDtgjdlzYWOFZw=", - "dev": true, - "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom-buf": "^1.0.0" - }, - "dependencies": { - "first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - } + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "requires": { - "get-stdin": "^4.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", - "dev": true, - "requires": { - "ajv": "^4.7.0", - "ajv-keywords": "^1.0.0", - "chalk": "^1.1.1", - "lodash": "^4.0.0", - "slice-ansi": "0.0.4", - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "requires": { - "os-homedir": "^1.0.0" + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, - "requires": { - "setimmediate": "^1.0.4" + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } + "node_modules/webpack": { + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "node_modules/webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", + "colorette": "^2.0.14", + "commander": "^12.1.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.82.0" + }, + "peerDependenciesMeta": { + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/webpack-cli/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2" + "license": "MIT", + "engines": { + "node": ">=18" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "2.6.4", - "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", - "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, - "requires": { - "async": "~0.2.6", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, - "uglify-save-license": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", - "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", - "dev": true - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" } }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "node_modules/webpack/node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, + "license": "ISC", "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "requires": { - "inherits": "2.0.3" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "dev": true, + "license": "Apache-2.0" }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "user-home": "^1.1.1" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "^1.1.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" - } - } + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" } }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "requires": { - "source-map": "^0.5.1" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "indexof": "0.0.1" + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" } }, - "webpack": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz", - "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^4.7.0", - "ajv-keywords": "^1.1.1", - "async": "^2.1.2", - "enhanced-resolve": "^3.3.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^0.2.16", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^3.1.0", - "tapable": "~0.2.5", - "uglify-js": "^2.8.27", - "watchpack": "^1.3.1", - "webpack-sources": "^1.0.1", - "yargs": "^6.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", - "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - } - } - } + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" } }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "requires": { - "source-list-map": "~0.1.7", - "source-map": "~0.4.1" + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "webpack-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-stream/-/webpack-stream-3.2.0.tgz", - "integrity": "sha1-Oh0WD7EdQXJ7fObzL3IkZPmLIYY=", - "dev": true, - "requires": { - "gulp-util": "^3.0.7", - "lodash.clone": "^4.3.2", - "lodash.some": "^4.2.2", - "memory-fs": "^0.3.0", - "through": "^2.3.8", - "vinyl": "^1.1.0", - "webpack": "^1.12.9" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "browserify-aes": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", - "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "requires": { - "pako": "~0.2.0" - } - }, - "crypto-browserify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", - "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", - "dev": true, - "requires": { - "browserify-aes": "0.4.0", - "pbkdf2-compat": "2.0.1", - "ripemd160": "0.2.0", - "sha.js": "2.2.6" - } - }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" - }, - "dependencies": { - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - } - } - }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "interpret": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "memory-fs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node-libs-browser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", - "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.1.4", - "buffer": "^4.9.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "3.3.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "0.0.1", - "os-browserify": "^0.2.0", - "path-browserify": "0.0.0", - "process": "^0.11.0", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.0.5", - "stream-browserify": "^2.0.1", - "stream-http": "^2.3.1", - "string_decoder": "^0.10.25", - "timers-browserify": "^2.0.2", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - } - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "ripemd160": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", - "dev": true - }, - "sha.js": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "uglify-js": { - "version": "2.7.5", - "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", - "dev": true, - "requires": { - "async": "~0.2.6", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - } - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - }, - "watchpack": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", - "dev": true, - "requires": { - "async": "^0.9.0", - "chokidar": "^1.0.0", - "graceful-fs": "^4.1.2" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - } - } - }, - "webpack": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", - "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", - "dev": true, - "requires": { - "acorn": "^3.0.0", - "async": "^1.3.0", - "clone": "^1.0.2", - "enhanced-resolve": "~0.9.0", - "interpret": "^0.6.4", - "loader-utils": "^0.2.11", - "memory-fs": "~0.3.0", - "mkdirp": "~0.5.0", - "node-libs-browser": "^0.7.0", - "optimist": "~0.6.0", - "supports-color": "^3.1.0", - "tapable": "~0.1.8", - "uglify-js": "~2.7.3", - "watchpack": "^0.2.1", - "webpack-core": "~0.6.9" - } - } + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "requires": { - "isexe": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "packages/barcodes/codabar": { + "name": "@jsbarcode/codabar", + "version": "4.0.0-alpha.5" }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true + "packages/barcodes/code128": { + "name": "@jsbarcode/code128", + "version": "4.0.0-alpha.5" }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "packages/barcodes/code39": { + "name": "@jsbarcode/code39", + "version": "4.0.0-alpha.5" }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } + "packages/barcodes/ean-upc": { + "name": "@jsbarcode/ean-upc", + "version": "4.0.0-alpha.5" }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "packages/barcodes/generic-barcode": { + "name": "@jsbarcode/generic-barcode", + "version": "4.0.0-alpha.5" }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } + "packages/barcodes/itf": { + "name": "@jsbarcode/itf", + "version": "4.0.0-alpha.5" }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", - "dev": true + "packages/barcodes/msi": { + "name": "@jsbarcode/msi", + "version": "4.0.0-alpha.5" }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - } - } + "packages/barcodes/pharmacode": { + "name": "@jsbarcode/pharmacode", + "version": "4.0.0-alpha.5" }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "requires": { - "camelcase": "^3.0.0" - }, + "packages/core": { + "name": "@jsbarcode/core", + "version": "4.0.0-alpha.5" + }, + "packages/jsbarcode": { + "version": "4.0.0-alpha.5", "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } + "@jsbarcode/codabar": "*", + "@jsbarcode/code128": "*", + "@jsbarcode/code39": "*", + "@jsbarcode/core": "*", + "@jsbarcode/ean-upc": "*", + "@jsbarcode/itf": "*", + "@jsbarcode/msi": "*", + "@jsbarcode/pharmacode": "*", + "@jsbarcode/renderer-canvas": "*", + "@jsbarcode/renderer-svg": "*" + } + }, + "packages/renderer/canvas": { + "name": "@jsbarcode/renderer-canvas", + "version": "4.0.0-alpha.5" + }, + "packages/renderer/svg": { + "name": "@jsbarcode/renderer-svg", + "version": "4.0.0-alpha.5" } } } diff --git a/package.json b/package.json index 57ff8beb..9a1192ce 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,33 @@ { "name": "jsbarcode", - "version": "3.11.0", + "version": "4.0.0-alpha.5", "description": "JsBarcode is a customizable barcode generator with support for multiple barcode formats.", - "main": "./bin/JsBarcode.js", + "main": "./packages/jsbarcode", + "workspaces": [ + "packages/core", + "packages/jsbarcode", + "packages/renderer/canvas", + "packages/renderer/svg", + "packages/barcodes/code128", + "packages/barcodes/code39", + "packages/barcodes/codabar", + "packages/barcodes/ean-upc", + "packages/barcodes/itf", + "packages/barcodes/msi", + "packages/barcodes/pharmacode", + "packages/barcodes/generic-barcode" + ], "directories": { "example": "example", "test": "test", - "lib": "src", - "bin": "bin" + "lib": "packages/jsbarcode" }, "scripts": { - "test": "gulp babel && node_modules/mocha/bin/mocha test/node/ -R spec", + "test": "jest", "coveralls": "NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha test/node/ --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js", - "coverage": "./node_modules/.bin/mocha test/node/ -r blanket -R html-cov > test/coverage.html", - "build": "gulp compile" + "coverage": "npm run convert && nyc --reporter=html mocha test/node/", + "build": "tsc --build tsconfig.json tsconfig.esm.json", + "format": "prettier-eslint --write ./packages/**/*.ts ./test/node/**/*.test.js" }, "repository": { "type": "git", @@ -36,45 +50,21 @@ }, "homepage": "https://github.com/lindell/JsBarcode#readme", "devDependencies": { - "babel-cli": "^6.24.1", - "babel-core": "^6.24.1", - "babel-loader": "^7.0.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-stage-3": "6.24.1", + "@babel/cli": "^7.26.4", + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@types/jest": "^29.5.14", "blanket": "^1.2.3", - "canvas": "^1.6.5", - "coveralls": "^3.0.0", - "gulp": "^3.9.1", - "gulp-babel": "^6.1.2", - "gulp-bump": "^2.1.0", - "gulp-clean": "^0.3.2", - "gulp-concat": "^2.6.0", - "gulp-eslint": "^3.0.1", - "gulp-git": "^2.4.1", - "gulp-header": "^1.7.1", - "gulp-rename": "^1.2.2", - "gulp-uglify": "^1.5.3", - "gzip-size": "^3.0.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "publish-release": "^1.2.0", - "request": "^2.72.0", - "run-sequence": "^1.1.5", - "webpack": "^2.5.1", - "webpack-stream": "^3.1.0", - "xmldom": "^0.1.27" + "canvas": "^3.0.1", + "jest": "^29.5.14", + "mocha": "^11.0.1", + "nyc": "^17.1.0", + "prettier-eslint-cli": "^8.0.1", + "ts-jest": "^29.2.5", + "typescript": "^5.7.3", + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1", + "@xmldom/xmldom": "^0.9.7" }, - "typings": "./jsbarcode.d.ts", - "config": { - "blanket": { - "pattern": [ - "JsBarcode.js", - "barcodes" - ], - "data-cover-never": [ - "GenericBarcode", - "node_modules" - ] - } - } + "typings": "./packages/jsbarcode/jsbarcode.d.ts" } diff --git a/packages/barcodes/codabar/package.json b/packages/barcodes/codabar/package.json new file mode 100644 index 00000000..645275a2 --- /dev/null +++ b/packages/barcodes/codabar/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/codabar", + "version": "4.0.0-alpha.5", + "description": "Codabar barcode encoder for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/codabar/src/index.spec.ts b/packages/barcodes/codabar/src/index.spec.ts new file mode 100644 index 00000000..56b62309 --- /dev/null +++ b/packages/barcodes/codabar/src/index.spec.ts @@ -0,0 +1,54 @@ +import assert from 'assert'; +import codabar from '.'; +const { encode, valid } = codabar() as any; + +describe('Codabar', function() { + it('should encode a string with start and stop characters', function() { + assert.equal('10110010010101011001010100101101100101010101101001011010100101001001011', encode('A12345B', {}).data); + }); + + it('should add start and stop characters to a string without them', function() { + // should encode to "A12345A" + assert.equal('10110010010101011001010100101101100101010101101001011010100101011001001', encode('12345', {}).data); + }); + + it('should return text string without start/stop characters', function() { + assert.equal('12345', encode('A12345B', {}).text); + }); + + it('should warn with invalid start/stop characters', function() { + assert.equal(false, valid('X12345Y')); + }); + + it('should warn with only a start character', function() { + assert.equal(false, valid('A12345')); + }); + + it('should warn with only an invalid start character', function() { + assert.equal(false, valid('X12345')); + }); + + it('should warn with only a stop character', function() { + assert.equal(false, valid('12345A')); + }); + + it('should warn with only an invalid stop character', function() { + assert.equal(false, valid('12345X')); + }); + + it('should warn with only start and stop characters', function() { + assert.equal(false, valid('AA')); + }); + + it('should warn with an empty string', function() { + assert.equal(false, valid('')); + }); + + it('should warn with invalid input', function() { + assert.equal(false, valid('A1234OOPS56A')); + }); + + it('should work with text option', function() { + assert.equal('THISISATEXT', encode('A1234OOPS56A', { text: 'THISISATEXT' }).text); + }); +}); diff --git a/packages/barcodes/codabar/src/index.ts b/packages/barcodes/codabar/src/index.ts new file mode 100644 index 00000000..c4611547 --- /dev/null +++ b/packages/barcodes/codabar/src/index.ts @@ -0,0 +1,52 @@ +import { Options, Encoding } from '@jsbarcode/core'; + +// Encoding specification: +// http://www.barcodeisland.com/codabar.phtml + +function encode(d: string, options: Options): Encoding { + let data = d.toUpperCase(); + if (data.search(/^[A-D]/)) { + data = 'A' + data + 'A'; + } + + return { + text: options.text || data.replace(/[A-D]/g, ''), + data: data + .split('') + .map(c => encodings[c]) + .join('0'), + }; +} + +function valid(data: string): boolean { + return !data.search(/^([A-Da-d][0-9-$:.+/]+[A-Da-d])|[0-9-$:.+/]+$/); +} + +const encodings: Record = { + '0': '101010011', + '1': '101011001', + '2': '101001011', + '3': '110010101', + '4': '101101001', + '5': '110101001', + '6': '100101011', + '7': '100101101', + '8': '100110101', + '9': '110100101', + '-': '101001101', + $: '101100101', + ':': '1101011011', + '/': '1101101011', + '.': '1101101101', + '+': '101100110011', + A: '1011001001', + B: '1001001011', + C: '1010010011', + D: '1010011001', +}; + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/codabar/tsconfig.esm.json b/packages/barcodes/codabar/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/codabar/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/codabar/tsconfig.json b/packages/barcodes/codabar/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/codabar/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/code128/package.json b/packages/barcodes/code128/package.json new file mode 100644 index 00000000..ea64284f --- /dev/null +++ b/packages/barcodes/code128/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/code128", + "version": "4.0.0-alpha.5", + "description": "CODE128 barcode encoder for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/code128/src/CODE128.ts b/packages/barcodes/code128/src/CODE128.ts new file mode 100644 index 00000000..1a2147be --- /dev/null +++ b/packages/barcodes/code128/src/CODE128.ts @@ -0,0 +1,113 @@ +import { SHIFT, SET_A, SET_B, MODULO, STOP, FNC1, SET_BY_CODE, SWAP, BARS } from './constants'; +import { Options, Encoding } from '@jsbarcode/core'; + +// This is the master class, +// it does require the start code to be included in the string +function encode(data: string, options: Options): Encoding { + // Get array of ascii codes from data + const bytes = data.split('').map(char => char.charCodeAt(0)); + + // Remove the start code from the bytes and set its index + const firstByte = bytes.shift(); + const startIndex = firstByte ? firstByte - 105 : 0; + // Get start set by index + const startSet = SET_BY_CODE[startIndex]; + + if (startSet === undefined) { + throw new RangeError('The encoding does not start with a start character.'); + } + + if (options.ean128) { + bytes.unshift(FNC1); + } + + // Start encode with the right type + const encodingResult = next(bytes, 1, startSet); + + return { + text: options.text ? options.text : data.replace(/[^\x20-\x7E]/g, ''), + data: + // Add the start bits + getBar(startIndex) + + // Add the encoded bits + encodingResult.result + + // Add the checksum + getBar((encodingResult.checksum + startIndex) % MODULO) + + // Add the end bits + getBar(STOP) + }; +} + +function valid(data: string): boolean { + // ASCII value ranges 0-127, 200-211 + return /^[\x00-\x7F\xC8-\xD3]+$/.test(data); +} + +// Get a bar symbol by index +function getBar(index: number): string { + return BARS[index] ? BARS[index].toString() : ''; +} + +// Correct an index by a set and shift it from the bytes array +function correctIndex(bytes: number[], set: number): number { + const charCode = bytes.shift(); + if (charCode === undefined) return 0; + + if (set === SET_A) { + return charCode < 32 ? charCode + 64 : charCode - 32; + } else if (set === SET_B) { + return charCode - 32; + } else { + const secondCharCode = bytes.shift(); + if (secondCharCode === undefined) return 0; + return (charCode - 48) * 10 + secondCharCode - 48; + } +} + +function next(bytes: number[], pos: number, set: number): { result: string; checksum: number } { + if (!bytes.length) { + return { result: '', checksum: 0 }; + } + + let nextCode: { result: string; checksum: number }, index: number; + + // Special characters + if (bytes[0] >= 200) { + const shifted = bytes.shift(); + index = shifted ? shifted - 105 : 0; + const nextSet = SWAP[index]; + + // Swap to other set + if (nextSet !== undefined) { + nextCode = next(bytes, pos + 1, nextSet); + } + // Continue on current set but encode a special character + else { + // Shift + if ((set === SET_A || set === SET_B) && index === SHIFT) { + // Convert the next character so that is encoded correctly + bytes[0] = set === SET_A ? (bytes[0] > 95 ? bytes[0] - 96 : bytes[0]) : bytes[0] < 32 ? bytes[0] + 96 : bytes[0]; + } + nextCode = next(bytes, pos + 1, set); + } + } + // Continue encoding + else { + index = correctIndex(bytes, set); + nextCode = next(bytes, pos + 1, set); + } + + // Get the correct binary encoding and calculate the weight + const enc = getBar(index); + const weight = index * pos; + + return { + result: enc + nextCode.result, + checksum: weight + nextCode.checksum + }; +} + +export default { + encode, valid, +}; +export { encode, valid }; diff --git a/packages/barcodes/code128/src/CODE128A.ts b/packages/barcodes/code128/src/CODE128A.ts new file mode 100644 index 00000000..852f66f5 --- /dev/null +++ b/packages/barcodes/code128/src/CODE128A.ts @@ -0,0 +1,14 @@ +import { Options, Encoding } from '@jsbarcode/core'; +import code128 from './CODE128'; +import { A_START_CHAR, A_CHARS } from './constants'; + +function encode(data: string, options: Options): Encoding { + return code128.encode(A_START_CHAR + data, options); +} + +function valid(data: string): boolean { + return new RegExp(`^${A_CHARS}+$`).test(data); +} + +export default () => ({ encode, valid }); +export { encode, valid }; diff --git a/packages/barcodes/code128/src/CODE128B.ts b/packages/barcodes/code128/src/CODE128B.ts new file mode 100644 index 00000000..4e244a8b --- /dev/null +++ b/packages/barcodes/code128/src/CODE128B.ts @@ -0,0 +1,14 @@ +import { Options, Encoding } from '@jsbarcode/core'; +import code128 from './CODE128'; +import { B_START_CHAR, B_CHARS } from './constants'; + +function encode(data: string, options: Options): Encoding { + return code128.encode(B_START_CHAR + data, options); +} + +function valid(data: string): boolean { + return new RegExp(`^${B_CHARS}+$`).test(data); +} + +export default () => ({ encode, valid }); +export { encode, valid }; diff --git a/packages/barcodes/code128/src/CODE128C.ts b/packages/barcodes/code128/src/CODE128C.ts new file mode 100644 index 00000000..0752eabc --- /dev/null +++ b/packages/barcodes/code128/src/CODE128C.ts @@ -0,0 +1,14 @@ +import { Options, Encoding } from '@jsbarcode/core'; +import code128 from './CODE128'; +import { C_START_CHAR, C_CHARS } from './constants'; + +function encode(data: string, options: Options): Encoding { + return code128.encode(C_START_CHAR + data, options); +} + +function valid(data: string): boolean { + return new RegExp(`^${C_CHARS}+$`).test(data); +} + +export default () => ({ encode, valid }); +export { encode, valid }; diff --git a/packages/barcodes/code128/src/CODE128_AUTO.ts b/packages/barcodes/code128/src/CODE128_AUTO.ts new file mode 100644 index 00000000..7ffa2be7 --- /dev/null +++ b/packages/barcodes/code128/src/CODE128_AUTO.ts @@ -0,0 +1,19 @@ +import { Options, Encoding } from '@jsbarcode/core'; +import code128 from './CODE128'; +import autoSelectModes from './auto'; + +function encode(data: string, options: Options): Encoding { + // ASCII value ranges 0-127, 200-211 + if (/^[\x00-\x7F\xC8-\xD3]+$/.test(data)) { + return code128.encode(autoSelectModes(data), options); + } else { + return code128.encode(data, options); + } +} + +export default () => ({ + encode, + valid: code128.valid, +}); +export { encode }; +export const valid = code128.valid; diff --git a/src/barcodes/CODE128/auto.js b/packages/barcodes/code128/src/auto.ts similarity index 59% rename from src/barcodes/CODE128/auto.js rename to packages/barcodes/code128/src/auto.ts index 5a88938a..cffc5fa9 100644 --- a/src/barcodes/CODE128/auto.js +++ b/packages/barcodes/code128/src/auto.ts @@ -1,38 +1,42 @@ import { A_START_CHAR, B_START_CHAR, C_START_CHAR, A_CHARS, B_CHARS, C_CHARS } from './constants'; // Match Set functions -const matchSetALength = (string) => string.match(new RegExp(`^${A_CHARS}*`))[0].length; -const matchSetBLength = (string) => string.match(new RegExp(`^${B_CHARS}*`))[0].length; -const matchSetC = (string) => string.match(new RegExp(`^${C_CHARS}*`))[0]; +const matchSetALength = (string: string): number => { + const match = string.match(new RegExp(`^${A_CHARS}*`)); + return match ? match[0].length : 0; +}; + +const matchSetBLength = (string: string): number => { + const match = string.match(new RegExp(`^${B_CHARS}*`)); + return match ? match[0].length : 0; +}; + +const matchSetC = (string: string): string => { + const match = string.match(new RegExp(`^${C_CHARS}*`)); + return match ? match[0] : ''; +}; // CODE128A or CODE128B -function autoSelectFromAB(string, isA){ +function autoSelectFromAB(string: string, isA: boolean): string { const ranges = isA ? A_CHARS : B_CHARS; const untilC = string.match(new RegExp(`^(${ranges}+?)(([0-9]{2}){2,})([^0-9]|$)`)); if (untilC) { - return ( - untilC[1] + - String.fromCharCode(204) + - autoSelectFromC(string.substring(untilC[1].length)) - ); + return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length)); } - const chars = string.match(new RegExp(`^${ranges}+`))[0]; + const match = string.match(new RegExp(`^${ranges}+`)); + const chars = match ? match[0] : ''; if (chars.length === string.length) { return string; } - return ( - chars + - String.fromCharCode(isA ? 205 : 206) + - autoSelectFromAB(string.substring(chars.length), !isA) - ); + return chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA); } // CODE128C -function autoSelectFromC(string) { +function autoSelectFromC(string: string): string { const cMatch = matchSetC(string); const length = cMatch.length; @@ -48,7 +52,7 @@ function autoSelectFromC(string) { } // Detect Code Set (A, B or C) and format the string -export default (string) => { +export default (string: string): string => { let newString; const cLength = matchSetC(string).length; diff --git a/packages/barcodes/code128/src/constants.ts b/packages/barcodes/code128/src/constants.ts new file mode 100644 index 00000000..48a2d271 --- /dev/null +++ b/packages/barcodes/code128/src/constants.ts @@ -0,0 +1,156 @@ +// constants for internal usage +export const SET_A = 0; +export const SET_B = 1; +export const SET_C = 2; + +// Special characters +export const SHIFT = 98; +export const START_A = 103; +export const START_B = 104; +export const START_C = 105; +export const MODULO = 103; +export const STOP = 106; +export const FNC1 = 207; + +// Get set by start code +export const SET_BY_CODE: Record = { + [START_A]: SET_A, + [START_B]: SET_B, + [START_C]: SET_C +}; + +// Get next set by code +export const SWAP: Record = { + 101: SET_A, + 100: SET_B, + 99: SET_C +}; + +export const A_START_CHAR = String.fromCharCode(208); // START_A + 105 +export const B_START_CHAR = String.fromCharCode(209); // START_B + 105 +export const C_START_CHAR = String.fromCharCode(210); // START_C + 105 + +// 128A (Code Set A) +// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4 +export const A_CHARS = '[\x00-\x5F\xC8-\xCF]'; + +// 128B (Code Set B) +// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4 +export const B_CHARS = '[\x20-\x7F\xC8-\xCF]'; + +// 128C (Code Set C) +// 00–99 (encodes two digits with a single code point) and FNC1 +export const C_CHARS = '(\xCF*[0-9]{2}\xCF*)'; + +// CODE128 includes 107 symbols: +// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one) +// Each symbol consist of three black bars (1) and three white spaces (0). +export const BARS = [ + 11011001100, + 11001101100, + 11001100110, + 10010011000, + 10010001100, + 10001001100, + 10011001000, + 10011000100, + 10001100100, + 11001001000, + 11001000100, + 11000100100, + 10110011100, + 10011011100, + 10011001110, + 10111001100, + 10011101100, + 10011100110, + 11001110010, + 11001011100, + 11001001110, + 11011100100, + 11001110100, + 11101101110, + 11101001100, + 11100101100, + 11100100110, + 11101100100, + 11100110100, + 11100110010, + 11011011000, + 11011000110, + 11000110110, + 10100011000, + 10001011000, + 10001000110, + 10110001000, + 10001101000, + 10001100010, + 11010001000, + 11000101000, + 11000100010, + 10110111000, + 10110001110, + 10001101110, + 10111011000, + 10111000110, + 10001110110, + 11101110110, + 11010001110, + 11000101110, + 11011101000, + 11011100010, + 11011101110, + 11101011000, + 11101000110, + 11100010110, + 11101101000, + 11101100010, + 11100011010, + 11101111010, + 11001000010, + 11110001010, + 10100110000, + 10100001100, + 10010110000, + 10010000110, + 10000101100, + 10000100110, + 10110010000, + 10110000100, + 10011010000, + 10011000010, + 10000110100, + 10000110010, + 11000010010, + 11001010000, + 11110111010, + 11000010100, + 10001111010, + 10100111100, + 10010111100, + 10010011110, + 10111100100, + 10011110100, + 10011110010, + 11110100100, + 11110010100, + 11110010010, + 11011011110, + 11011110110, + 11110110110, + 10101111000, + 10100011110, + 10001011110, + 10111101000, + 10111100010, + 11110101000, + 11110100010, + 10111011110, + 10111101110, + 11101011110, + 11110101110, + 11010000100, + 11010010000, + 11010011100, + 1100011101011 +]; diff --git a/packages/barcodes/code128/src/index.spec.ts b/packages/barcodes/code128/src/index.spec.ts new file mode 100644 index 00000000..03720c84 --- /dev/null +++ b/packages/barcodes/code128/src/index.spec.ts @@ -0,0 +1,109 @@ +import assert from 'assert'; +import _code128 from './CODE128_AUTO'; +import _code128a from './CODE128A'; +import _code128b from './CODE128B'; +import _code128c from './CODE128C'; +const code128 = _code128 as any; +const code128a = _code128a as any; +const code128b = _code128b as any; +const code128c = _code128c as any; + +describe('CODE128', function() { + it('should encode CODE128A', function() { + assert.equal( + '1101000010010100011000100010110001000100011011011011110100011101101100011101011', + code128a().encode('ABC' + String.fromCharCode(25), {}).data, + ); + }); + + it('should encode CODE128B', function() { + assert.equal( + '110100100001001011000011000110110100010110001110011001010011100110110111001001100011101011', + code128b().encode('a@B=1', {}).data, + ); + }); + + it('should encode CODE128C', function() { + assert.equal( + '11010011100101100111001000101100011100010110100011011101100011101011', + code128c().encode('123456', {}).data, + ); + }); + + it('should encode CODE128 as GS1-128/EAN-128', function() { + assert.equal( + '110100111001111010111010110011100100010110001110001011011000010100110010011101100011101011', + code128c().encode('12345678', { ean128: true }).data, + ); + }); + + it('should remove unprintable characters', function() { + assert.equal('AB C', code128c().encode('A\n\x00B \x04\x10\x1FC', {}).text); + }); + + it('should encode CODE128 (auto)', function() { + assert.equal( + '110100111001011001110010001011000101111011101101110010011000101000101100100001000011001010111100100100101100001100001010010111011110101100111001000101100011100010110111010111101000011010010100011000111011110101100011101011', + code128().encode('12345Hejsan123456\tA', {}).data, + ); + + assert.equal( + '110100100001100010100010000110100111010111101000011001010011100110101110111101110110111010111011000111001100101100011101011', + code128().encode('Hi\n12345', {}).data, + ); + + assert.equal( + '11010000100110001010001100010001010000110010110001010001011110111010000110100110110011001100011101011', + code128().encode('HI\nHi', {}).data, + ); + + assert.equal( + '1101000010011000101000110001000101000011001010111100010110001010001011110111010000110100111101010001011101111010110011100100010110001110001011011110101110110011100101100011101011', + code128().encode( + 'HI\n' + String.fromCharCode(201) + 'Hi' + String.fromCharCode(202) + '123456' + String.fromCharCode(207), + {}, + ).data, + ); + + assert.equal( + '110100111001111010111010110111000110011100101100010100011001001110110001011101110101111010011101100101011110001100011101011', + code128().encode(String.fromCharCode(207) + '42184020500', {}).data, + ); + + assert.equal( + '1101001000011011101000100110000101000111101010011110010110010100001000010011011110100010100001100101011110010010011000010100001101001011000010010011110100100011010001100011101011', + code128().encode('Should\nshift', {}).data, + ); + + assert.equal( + '1101000010010000110100110001010001111010001010000110100100001100101100010100011000100010111101101101100011101011', + code128().encode('\tHi\nHI', {}).data, + ); + }); + + it('should warn with invalid text', function() { + assert.equal(false, code128().valid('ABC' + String.fromCharCode(500))); + + assert.equal(false, code128a().valid('Abc')); + + assert.equal(false, code128b().valid('Abc\t123')); + + assert.equal(false, code128c().valid('1234ab56')); + + assert.equal(false, code128c().valid('12345')); + }); + + it('should pass valid text', function() { + assert.equal(true, code128().valid('ABC' + String.fromCharCode(207))); + + assert.equal(true, code128a().valid('ABC\t\n123')); + + assert.equal(true, code128b().valid('Abc123' + String.fromCharCode(202))); + + assert.equal(true, code128c().valid('123456')); + }); + + it('should work with text option', function() { + assert.equal('THISISTEXT', code128().encode('AB12', { text: 'THISISTEXT' }).text); + }); +}); diff --git a/packages/barcodes/code128/src/index.ts b/packages/barcodes/code128/src/index.ts new file mode 100644 index 00000000..640226c3 --- /dev/null +++ b/packages/barcodes/code128/src/index.ts @@ -0,0 +1,6 @@ +import CODE128 from './CODE128_AUTO'; +import CODE128A from './CODE128A'; +import CODE128B from './CODE128B'; +import CODE128C from './CODE128C'; + +export { CODE128, CODE128A, CODE128B, CODE128C }; diff --git a/packages/barcodes/code128/tsconfig.esm.json b/packages/barcodes/code128/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/code128/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/code128/tsconfig.json b/packages/barcodes/code128/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/code128/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/code39/package.json b/packages/barcodes/code39/package.json new file mode 100644 index 00000000..6dfa2841 --- /dev/null +++ b/packages/barcodes/code39/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/code39", + "version": "4.0.0-alpha.5", + "description": "CODE39 barcode encoder for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/code39/src/index.spec.ts b/packages/barcodes/code39/src/index.spec.ts new file mode 100644 index 00000000..908f49e9 --- /dev/null +++ b/packages/barcodes/code39/src/index.spec.ts @@ -0,0 +1,31 @@ +import assert from 'assert'; +import code39 from '.'; +const { encode, valid } = code39() as any; + +describe('CODE39', function() { + it('should be able to encode normal text', function() { + assert.equal( + '100010111011101011101010001011101011101000101110111010001010111010111000101011101000101110111010', + encode('AB12', {}).data, + ); + }); + + it('should warn with invalid text', function() { + assert.equal(false, valid('AB!12')); + }); + + it('should make lowercase to uppercase', function() { + assert.equal('ABC123ABC', encode('abc123ABC', {}).text); + }); + + it('should calculate correct checksums', function() { + assert.equal( + '1000101110111010111010100010111010111010001011101110111010001010101011100010111011101011100010101011101110001010101010001110111011101000111010101000101110111010', + encode('ABCDEFG', { mod43: true }).data, + ); + }); + + it('should work with text option', function() { + assert.equal('THISISTEXT', encode('AB12', { text: 'THISISTEXT' }).text); + }); +}); diff --git a/packages/barcodes/code39/src/index.ts b/packages/barcodes/code39/src/index.ts new file mode 100644 index 00000000..d8c13bb4 --- /dev/null +++ b/packages/barcodes/code39/src/index.ts @@ -0,0 +1,165 @@ +import { Options, Encoding } from '@jsbarcode/core'; + +// Encoding documentation: +// https://en.wikipedia.org/wiki/Code_39#Encoding + +function encode(d: string, options: Options): Encoding { + let data = d.toUpperCase(); + + // Calculate mod43 checksum if enabled + if (options.mod43) { + data += getCharacter(mod43checksum(data)); + } + + // First character is always a * + let result = getEncoding('*'); + + // Take every character and add the binary representation to the result + for (let i = 0; i < data.length; i++) { + result += getEncoding(data[i]) + '0'; + } + + // Last character is always a * + result += getEncoding('*'); + + return { + data: result, + text: options.text || data, + }; +} + +function valid(data: string): boolean { + return data.search(/^[0-9A-Z\-. $/+%]+$/) !== -1; +} + +// All characters. The position in the array is the (checksum) value +const characters = [ + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + '-', + '.', + ' ', + '$', + '/', + '+', + '%', + '*', +]; + +// The decimal representation of the characters, is converted to the +// corresponding binary with the getEncoding function +const encodings = [ + 20957, + 29783, + 23639, + 30485, + 20951, + 29813, + 23669, + 20855, + 29789, + 23645, + 29975, + 23831, + 30533, + 22295, + 30149, + 24005, + 21623, + 29981, + 23837, + 22301, + 30023, + 23879, + 30545, + 22343, + 30161, + 24017, + 21959, + 30065, + 23921, + 22385, + 29015, + 18263, + 29141, + 17879, + 29045, + 18293, + 17783, + 29021, + 18269, + 17477, + 17489, + 17681, + 20753, + 35770, +]; + +// Get the binary representation of a character by converting the encodings +// from decimal to binary +function getEncoding(character: string): string { + return getBinary(characterValue(character)); +} + +function getBinary(characterValue: number): string { + return encodings[characterValue].toString(2); +} + +function getCharacter(characterValue: number): string { + return characters[characterValue]; +} + +function characterValue(character: string): number { + return characters.indexOf(character); +} + +// Calculate the mod43 checksum value +function mod43checksum(data: string): number { + var checksum = 0; + for (let i = 0; i < data.length; i++) { + checksum += characterValue(data[i]); + } + + checksum = checksum % 43; + return checksum; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/code39/tsconfig.esm.json b/packages/barcodes/code39/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/code39/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/code39/tsconfig.json b/packages/barcodes/code39/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/code39/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/ean-upc/package.json b/packages/barcodes/ean-upc/package.json new file mode 100644 index 00000000..37bd9372 --- /dev/null +++ b/packages/barcodes/ean-upc/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/ean-upc", + "version": "4.0.0-alpha.5", + "description": "EAN and UPC barcode encoders for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/ean-upc/src/EAN13.ts b/packages/barcodes/ean-upc/src/EAN13.ts new file mode 100644 index 00000000..bd2fb1d3 --- /dev/null +++ b/packages/barcodes/ean-upc/src/EAN13.ts @@ -0,0 +1,122 @@ +// Encoding documentation: +// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode + +import { EAN13_STRUCTURE } from './constants'; +import encodeEAN from './encoder'; +import { SIDE_BIN, MIDDLE_BIN } from './constants'; +import { Options, Encoding } from '@jsbarcode/core'; + +// Calculate the checksum digit +// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit +const checksum = (number: string): number => { + const res = number + .substr(0, 12) + .split('') + .map(n => +n) + .reduce((sum, a, idx) => (idx % 2 ? sum + a * 3 : sum + a), 0); + + return (10 - (res % 10)) % 10; +}; + +const firstData = (data: string): string => data[0]; +const leftSide = (data: string): string => data.substr(1, 6); +const rightSide = (data: string): string => data.substr(7, 6); + +function encode(data: string, options: Options, flat: boolean): Encoding | Encoding[] { + const leftData = leftSide(data); + const leftStructureIndex = parseInt(firstData(data), 10); + const leftStructure = EAN13_STRUCTURE[leftStructureIndex]; + const leftEncoded = encodeEAN(leftData, leftStructure); + + const rightData = rightSide(data); + const rightEncoded = encodeEAN(rightData, 'RRRRRR'); + + // Make sure the font is not bigger than the space between the guard bars + const fontSize = !flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; + // Make the guard bars go down half the way of the text + const guardHeight = options.height + fontSize / 2 + options.textMargin; + + const encodingData = { + fontSize, + guardHeight, + + leftEncoded, + rightEncoded, + }; + + return flat ? encodeFlat(encodingData, data, options) : encodeGuarded(encodingData, data, options); +} + +function valid(data: string): boolean { + return data.search(/^[0-9]{13}$/) !== -1 && +data[12] === checksum(data); +} + +interface EncodingData { + fontSize: number; + guardHeight: number; + leftEncoded: string; + rightEncoded: string; +} + +// The "standard" way of printing EAN13 barcodes with guard bars +function encodeGuarded({ fontSize, guardHeight, leftEncoded, rightEncoded }: EncodingData, data: string, options: Options): Encoding[] { + const lastChar = options.lastChar; + const displayValue = options.displayValue; + const text = options.text; + + const textOptions = { fontSize }; + const guardOptions = { height: guardHeight }; + const displayText = text || data; + + const encoded: Encoding[] = [ + { data: SIDE_BIN, options: guardOptions }, + { data: leftEncoded, text: leftSide(displayText), options: textOptions }, + { data: MIDDLE_BIN, options: guardOptions }, + { + data: rightEncoded, + text: rightSide(displayText), + options: textOptions, + }, + { data: SIDE_BIN, options: guardOptions }, + ]; + + // Extend data with left digit & last character + if (displayValue) { + encoded.unshift({ + data: '000000000000', + text: firstData(displayText), + options: { textAlign: 'left', fontSize }, + }); + + if (lastChar) { + encoded.push({ + data: '00', + }); + encoded.push({ + data: '00000', + text: lastChar, + options: { fontSize }, + }); + } + } + + return encoded; +} + +interface FlatEncodingData { + leftEncoded: string; + rightEncoded: string; +} + +function encodeFlat({ leftEncoded, rightEncoded }: FlatEncodingData, data: string, options: Options): Encoding { + return { + data: [SIDE_BIN, leftEncoded, MIDDLE_BIN, rightEncoded, SIDE_BIN].join(''), + text: options.text || data, + }; +} + +export default (eanOptions: { flat: boolean } = { flat: false }) => ({ + encode: (data: string, options: Options) => encode(data, options, eanOptions.flat), + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/EAN2.ts b/packages/barcodes/ean-upc/src/EAN2.ts new file mode 100644 index 00000000..b0aabe6b --- /dev/null +++ b/packages/barcodes/ean-upc/src/EAN2.ts @@ -0,0 +1,26 @@ +// Encoding documentation: +// https://en.wikipedia.org/wiki/EAN_2#Encoding + +import { EAN2_STRUCTURE } from './constants'; +import encodeEAN from './encoder'; +import { Options, Encoding } from '@jsbarcode/core'; + +function encode(data: string, options: Options): Encoding { + // Choose the structure based on the number mod 4 + const structure = EAN2_STRUCTURE[parseInt(data, 10) % 4]; + return { + // Start bits + Encode the two digits with 01 in between + data: '1011' + encodeEAN(data, structure, '01'), + text: options.text || data, + }; +} + +function valid(data: string): boolean { + return data.search(/^[0-9]{2}$/) !== -1; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/EAN5.ts b/packages/barcodes/ean-upc/src/EAN5.ts new file mode 100644 index 00000000..2e3370ad --- /dev/null +++ b/packages/barcodes/ean-upc/src/EAN5.ts @@ -0,0 +1,34 @@ +// Encoding documentation: +// https://en.wikipedia.org/wiki/EAN_5#Encoding + +import { EAN5_STRUCTURE } from './constants'; +import encodeEAN from './encoder'; +import { Options, Encoding } from '@jsbarcode/core'; + +const checksum = (data: string): number => { + const result = data + .split('') + .map(n => +n) + .reduce((sum, a, idx) => { + return idx % 2 ? sum + a * 9 : sum + a * 3; + }, 0); + return result % 10; +}; + +function valid(data: string): boolean { + return data.search(/^[0-9]{5}$/) !== -1; +} + +function encode(data: string, options: Options): Encoding { + const structure = EAN5_STRUCTURE[checksum(data)]; + return { + data: '1011' + encodeEAN(data, structure, '01'), + text: options.text || data, + }; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/EAN8.ts b/packages/barcodes/ean-upc/src/EAN8.ts new file mode 100644 index 00000000..617c6670 --- /dev/null +++ b/packages/barcodes/ean-upc/src/EAN8.ts @@ -0,0 +1,100 @@ +// Encoding documentation: +// http://www.barcodeisland.com/ean8.phtml + +import encodeEAN from './encoder'; +import { SIDE_BIN, MIDDLE_BIN } from './constants'; +import { Options, Encoding } from '@jsbarcode/core'; + +// Calculate the checksum digit +const checksum = (number: string): number => { + const res = number + .substr(0, 7) + .split('') + .map(n => +n) + .reduce((sum, a, idx) => (idx % 2 ? sum + a : sum + a * 3), 0); + + return (10 - (res % 10)) % 10; +}; + +function valid(data: string): boolean { + return data.search(/^[0-9]{8}$/) !== -1 && +data[7] === checksum(data); +} + +const leftSide = (data: string): string => data.substr(0, 4); +const rightSide = (data: string): string => data.substr(4, 4); + +function encode(data: string, options: Options): Encoding | Encoding[] { + const leftData = leftSide(data); + const leftEncoded = encodeEAN(leftData, 'LLLL'); + + const rightData = rightSide(data); + const rightEncoded = encodeEAN(rightData, 'RRRR'); + + // Make sure the font is not bigger than the space between the guard bars + const fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; + // Make the guard bars go down half the way of the text + const guardHeight = options.height + fontSize / 2 + options.textMargin; + + const encodingData = { + fontSize, + guardHeight, + + leftEncoded, + rightEncoded, + }; + + return options.flat ? encodeFlat(encodingData, data, options) : encodeGuarded(encodingData, data, options); +} + +interface EncodingData { + fontSize: number; + guardHeight: number; + leftEncoded: string; + rightEncoded: string; +} + +function encodeGuarded({ + fontSize, + guardHeight, + leftEncoded, + rightEncoded, +}: EncodingData, data: string, options: Options): Encoding[] { + const textOptions = { fontSize }; + const guardOptions = { height: guardHeight }; + const text = options.text || data; + + const encoded: Encoding[] = [ + { data: SIDE_BIN, options: guardOptions }, + { data: leftEncoded, text: leftSide(text), options: textOptions }, + { data: MIDDLE_BIN, options: guardOptions }, + { + data: rightEncoded, + text: rightSide(text), + options: textOptions + }, + { data: SIDE_BIN, options: guardOptions } + ]; + + return encoded; +} + +interface FlatEncodingData { + leftEncoded: string; + rightEncoded: string; +} + +function encodeFlat({ + leftEncoded, + rightEncoded, +}: FlatEncodingData, data: string, options: Options): Encoding { + return { + data: [SIDE_BIN, leftEncoded, MIDDLE_BIN, rightEncoded, SIDE_BIN].join(''), + text: options.text || data, + }; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/UPC.ts b/packages/barcodes/ean-upc/src/UPC.ts new file mode 100644 index 00000000..27425708 --- /dev/null +++ b/packages/barcodes/ean-upc/src/UPC.ts @@ -0,0 +1,123 @@ +// Encoding documentation: +// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding + +import encodeEAN from './encoder'; +import { Options, Encoding } from '@jsbarcode/core'; + +// Calulate the checksum digit +// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit +export function checksum(number: string): number { + var result = 0; + + var i; + for (i = 1; i < 11; i += 2) { + result += parseInt(number[i], 10); + } + for (i = 0; i < 11; i += 2) { + result += parseInt(number[i], 10) * 3; + } + + return (10 - (result % 10)) % 10; +} + +function valid(data: string): boolean { + return data.search(/^[0-9]{12}$/) !== -1 && +data[11] == checksum(data); +} + +function encode(data: string, options: Options, flat: boolean): Encoding | Encoding[] { + // Make sure the font is not bigger than the space between the guard bars + const fontSize = !flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; + + // Make the guard bars go down half the way of the text + const guardHeight = options.height + fontSize / 2 + options.textMargin; + + const encodeOptions = { + fontSize, + guardHeight, + }; + + return flat ? flatEncoding(data, options) : guardedEncoding(data, options, encodeOptions); +} + +function flatEncoding(data: string, options: Options): Encoding { + var result = ''; + + result += '101'; + result += encodeEAN(data.substr(0, 6), 'LLLLLL'); + result += '01010'; + result += encodeEAN(data.substr(6, 6), 'RRRRRR'); + result += '101'; + + return { + data: result, + text: options.text || data, + }; +} + +interface GuardOptions { + fontSize: number; + guardHeight: number; +} + +function guardedEncoding(data: string, options: Options, encodeOptions: GuardOptions): Encoding[] { + var result: Encoding[] = []; + const text = options.text || data; + + // Add the first digit + if (options.displayValue) { + result.push({ + data: '00000000', + text: text.substr(0, 1), + options: { textAlign: 'left', fontSize: encodeOptions.fontSize }, + }); + } + + // Add the guard bars + result.push({ + data: '101' + encodeEAN(data[0], 'L'), + options: { height: encodeOptions.guardHeight }, + }); + + // Add the left side + result.push({ + data: encodeEAN(data.substr(1, 5), 'LLLLL'), + text: text.substr(1, 5), + options: { fontSize: encodeOptions.fontSize }, + }); + + // Add the middle bits + result.push({ + data: '01010', + options: { height: encodeOptions.guardHeight }, + }); + + // Add the right side + result.push({ + data: encodeEAN(data.substr(6, 5), 'RRRRR'), + text: text.substr(6, 5), + options: { fontSize: encodeOptions.fontSize }, + }); + + // Add the end bits + result.push({ + data: encodeEAN(data[11], 'R') + '101', + options: { height: encodeOptions.guardHeight }, + }); + + // Add the last digit + if (options.displayValue) { + result.push({ + data: '00000000', + text: text.substr(11, 1), + options: { textAlign: 'right', fontSize: encodeOptions.fontSize }, + }); + } + + return result; +} + +export default (upcOptions: { flat: boolean } = { flat: false }) => ({ + encode: (data: string, options: Options) => encode(data, options, upcOptions.flat), + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/UPCE.ts b/packages/barcodes/ean-upc/src/UPCE.ts new file mode 100644 index 00000000..954ce4c6 --- /dev/null +++ b/packages/barcodes/ean-upc/src/UPCE.ts @@ -0,0 +1,167 @@ +// Encoding documentation: +// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding +// +// UPC-E documentation: +// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E + +import encodeEAN from './encoder'; +import { checksum } from './UPC'; +import { Options, Encoding } from '@jsbarcode/core'; + +const EXPANSIONS = [ + 'XX00000XXX', + 'XX10000XXX', + 'XX20000XXX', + 'XXX00000XX', + 'XXXX00000X', + 'XXXXX00005', + 'XXXXX00006', + 'XXXXX00007', + 'XXXXX00008', + 'XXXXX00009', +]; + +const PARITIES = [ + ['EEEOOO', 'OOOEEE'], + ['EEOEOO', 'OOEOEE'], + ['EEOOEO', 'OOEEOE'], + ['EEOOOE', 'OOEEEO'], + ['EOEEOO', 'OEOOEE'], + ['EOOEEO', 'OEEOOE'], + ['EOOOEE', 'OEEEOO'], + ['EOEOEO', 'OEOEOE'], + ['EOEOOE', 'OEOEEO'], + ['EOOEOE', 'OEEOEO'], +]; + +function valid(data: string): boolean { + if (data.search(/^[0-9]{6}$/) !== -1) { + return true; + } else if (data.search(/^[01][0-9]{7}$/) !== -1) { + const middleDigits = data.substring(1, data.length - 1); + const upcA = expandToUPCA(middleDigits, data[0]); + + return upcA[upcA.length - 1] === data[data.length - 1]; + } else { + return false; + } +} + +function encode(data: string, options: Options): Encoding | Encoding[] { + let middleDigits, upcA; + + if (data.search(/^[0-9]{6}$/) !== -1) { + middleDigits = data; + upcA = expandToUPCA(data, '0'); + options.text = options.text || `${upcA[0]}${data}${upcA[upcA.length - 1]}`; + } else if (data.search(/^[01][0-9]{7}$/) !== -1) { + middleDigits = data.substring(1, data.length - 1); + upcA = expandToUPCA(middleDigits, data[0]); + options.text = options.text || data; + } else { + throw new Error('invalid data to be UPCE encoded'); + } + + // Make sure the font is not bigger than the space between the guard bars + if (options.fontSize > options.width * 10) { + options.fontSize = options.width * 10; + } + + // Make the guard bars go down half the way of the text + if (options.guardHeight === undefined) { + options.guardHeight = options.height + options.fontSize / 2 + options.textMargin; + } + + if (options.flat) { + return flatEncoding(options, upcA, middleDigits); + } else { + return guardedEncoding(options, upcA, middleDigits); + } +} + +function flatEncoding(options: Options, upcA: string, middleDigits: string): Encoding { + var result = ''; + + result += '101'; + result += encodeMiddleDigits(upcA, middleDigits); + result += '010101'; + + return { + data: result, + text: options.text, + }; +} + +function encodeMiddleDigits(upcA: string, middleDigits: string): string { + const numberSystem = upcA[0]; + const checkDigit = upcA[upcA.length - 1]; + const parity = PARITIES[parseInt(checkDigit, 10)][parseInt(numberSystem, 10)]; + return encodeEAN(middleDigits, parity); +} + +function guardedEncoding(options: Options, upcA: string, middleDigits: string): Encoding[] { + var result: Encoding[] = []; + + // Add the UPC-A number system digit beneath the quiet zone + if (options.displayValue && options.text) { + result.push({ + data: '00000000', + text: options.text[0], + options: { textAlign: 'left', fontSize: options.fontSize }, + }); + } + + // Add the guard bars + result.push({ + data: '101', + options: { height: options.guardHeight }, + }); + + // Add the 6 UPC-E digits + if (options.text) { + result.push({ + data: encodeMiddleDigits(upcA, middleDigits), + text: options.text.substring(1, 7), + options: { fontSize: options.fontSize }, + }); + } + + // Add the end bits + result.push({ + data: '010101', + options: { height: options.guardHeight }, + }); + + // Add the UPC-A check digit beneath the quiet zone + if (options.displayValue && options.text) { + result.push({ + data: '00000000', + text: options.text[7], + options: { textAlign: 'right', fontSize: options.fontSize }, + }); + } + + return result; +} + +function expandToUPCA(middleDigits: string, numberSystem: string): string { + const lastUpcE = parseInt(middleDigits[middleDigits.length - 1], 10); + const expansion = EXPANSIONS[lastUpcE]; + + let result = ''; + let digitIndex = 0; + for (let i = 0; i < expansion.length; i++) { + let c = expansion[i]; + if (c === 'X') { + result += middleDigits[digitIndex++]; + } else { + result += c; + } + } + + result = `${numberSystem}${result}`; + return `${result}${checksum(result)}`; +} + +export default () => ({ valid, encode }); +export { encode, valid }; diff --git a/packages/barcodes/ean-upc/src/constants.ts b/packages/barcodes/ean-upc/src/constants.ts new file mode 100644 index 00000000..a6aec34a --- /dev/null +++ b/packages/barcodes/ean-upc/src/constants.ts @@ -0,0 +1,102 @@ +// Standard start end and middle bits +export const SIDE_BIN = '101'; +export const MIDDLE_BIN = '01010'; + +export const BINARIES = { + L: [ + // The L (left) type of encoding + '0001101', + '0011001', + '0010011', + '0111101', + '0100011', + '0110001', + '0101111', + '0111011', + '0110111', + '0001011' + ], + G: [ + // The G type of encoding + '0100111', + '0110011', + '0011011', + '0100001', + '0011101', + '0111001', + '0000101', + '0010001', + '0001001', + '0010111' + ], + R: [ + // The R (right) type of encoding + '1110010', + '1100110', + '1101100', + '1000010', + '1011100', + '1001110', + '1010000', + '1000100', + '1001000', + '1110100' + ], + O: [ + // The O (odd) encoding for UPC-E + '0001101', + '0011001', + '0010011', + '0111101', + '0100011', + '0110001', + '0101111', + '0111011', + '0110111', + '0001011' + ], + E: [ + // The E (even) encoding for UPC-E + '0100111', + '0110011', + '0011011', + '0100001', + '0011101', + '0111001', + '0000101', + '0010001', + '0001001', + '0010111' + ] +}; + +// Define the EAN-2 structure +export const EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG']; + +// Define the EAN-5 structure +export const EAN5_STRUCTURE = [ + 'GGLLL', + 'GLGLL', + 'GLLGL', + 'GLLLG', + 'LGGLL', + 'LLGGL', + 'LLLGG', + 'LGLGL', + 'LGLLG', + 'LLGLG' +]; + +// Define the EAN-13 structure +export const EAN13_STRUCTURE = [ + 'LLLLLL', + 'LLGLGG', + 'LLGGLG', + 'LLGGGL', + 'LGLLGG', + 'LGGLLG', + 'LGGGLL', + 'LGLGLG', + 'LGLGGL', + 'LGGLGL' +]; diff --git a/packages/barcodes/ean-upc/src/encoder.ts b/packages/barcodes/ean-upc/src/encoder.ts new file mode 100644 index 00000000..0f795047 --- /dev/null +++ b/packages/barcodes/ean-upc/src/encoder.ts @@ -0,0 +1,27 @@ +import { BINARIES } from './constants'; + +// Encode data string +const encode = (data: string, structure: string, separator: string | null = null): string => { + let encoded = data + .split('') + .map((val, idx) => { + const structChar = structure[idx] as keyof typeof BINARIES; + return BINARIES[structChar]; + }) + .map((val, idx) => { + if (val) { + const charCode = parseInt(data[idx], 10); + return val[charCode] || ''; + } + return ''; + }); + + if (separator) { + const last = data.length - 1; + encoded = encoded.map((val, idx) => (idx < last ? val + separator : val)); + } + + return encoded.join(''); +}; + +export default encode; diff --git a/packages/barcodes/ean-upc/src/index.spec.ts b/packages/barcodes/ean-upc/src/index.spec.ts new file mode 100644 index 00000000..45379d3c --- /dev/null +++ b/packages/barcodes/ean-upc/src/index.spec.ts @@ -0,0 +1,241 @@ +import assert from 'assert'; +import _ean13 from './EAN13'; +import _ean8 from './EAN8'; +import _ean5 from './EAN5'; +import _ean2 from './EAN2'; +import _upc from './UPC'; +import _upce from './UPCE'; +const ean13 = _ean13 as any; +const ean8 = _ean8 as any; +const ean5 = _ean5 as any; +const ean2 = _ean2 as any; +const upc = _upc as any; +const upce = _upce as any; +function fixBin(a: any): string { + return stripZero(mergeToBin(a)); +} + +function fixText(encodeData: any): string { + if (Array.isArray(encodeData)) { + var ret = ''; + for (var i = 0; i < encodeData.length; i++) { + ret += fixText(encodeData[i]); + } + return ret; + } else { + return encodeData.text || ''; + } +} + +function mergeToBin(encodeData: any): string { + if (Array.isArray(encodeData)) { + var ret = ''; + for (var i = 0; i < encodeData.length; i++) { + ret += toBin(encodeData[i].data); + } + return ret; + } else { + return toBin(encodeData); + } +} + +function toBin(res: any): string { + var ret = ''; + for (var i = 0; i < res.length; i++) { + if (res[i] > 0) { + ret += '1'; + } else { + ret += '0'; + } + } + return ret; +} + +function stripZero(string: string): string { + const match = string.match(/^0*(.+?)0*$/); + return match ? match[1] : ''; +} + +var options = { height: 100, displayValue: true, fontSize: 20, textMargin: 2, width: 2 }; + +describe('UPC-A', function() { + it('should be able to encode normal text', function() { + const encoded = upc().encode('123456789999', { ...options }); + assert.equal( + '10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101', + fixBin(encoded), + ); + }); + + it('should warn with invalid text', function() { + const valid = upc().valid('12345678999'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + const encoded = upc().encode('123456789999', { ...options, ...{ text: 'THISISTEXT' } }); + assert.equal('THISISTEXT', fixText(encoded)); + }); + + it('should work with flat option', function() { + const encoded: any = upc({ flat: true }).encode('123456789999', { ...options }); + assert.equal( + '10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101', + encoded.data, + ); + assert.equal('123456789999', encoded.text); + }); +}); + +const UPCE_BINARY = '101011001100100110011101011100101110110011001010101'; +describe('UPC-E', function() { + it('should be able to encode 8-digit codes', function() { + const encoded = upce().encode('01245714', { ...options }); + assert.equal(UPCE_BINARY, fixBin(encoded)); + }); + + it('should be able to encode 6-digit codes by assuming a 0 number system', function() { + const encoded = upce().encode('124571', { ...options }); + assert.equal(UPCE_BINARY, fixBin(encoded)); + }); + + it('should warn with invalid text', function() { + const valid = upce().valid('01245715'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + const encoded = upce().encode('124571', { ...options, ...{ text: 'SOMETEXT' } }); + assert.equal('SOMETEXT', fixText(encoded)); + }); + + it('should work with flat option', function() { + const encoded: any = upce().encode('01245714', { ...options, ...{ flat: true } }); + assert.equal(UPCE_BINARY, encoded.data); + assert.equal('01245714', encoded.text); + }); +}); + +describe('EAN', function() { + it('should be able to encode normal text', function() { + var encoded = ean13().encode('5901234123457', { ...options }); + var valid = ean13().valid('5901234123457'); + assert.equal(true, valid); + assert.equal( + '10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101', + fixBin(encoded), + ); + assert.equal('5901234123457', fixText(encoded)); + }); + + it('should be able to encode normal text with flat option', function() { + var encoded: any = ean13({ flat: true }).encode('5901234123457', { ...options }); + var valid = ean13({ flat: true }).valid('5901234123457'); + assert.equal(true, valid); + assert.equal( + '10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101', + encoded.data, + ); + assert.equal('5901234123457', fixText(encoded)); + }); + + it('should warn with invalid text', function() { + var valid = ean13().valid('12345'); + assert.equal(false, valid); + + valid = ean13().valid('5901234123456 '); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + var encoded = ean13().encode('12345678999', { ...options, ...{ text: 'THISISTEXT' } }); + assert.equal('THISISTEXT', fixText(encoded)); + }); +}); + +describe('EAN-8', function() { + it('should be able to encode normal text', function() { + var encoded = ean8().encode('96385074', {}); + var valid = ean8().valid('96385074'); + + assert.equal(true, valid); + assert.equal('1010001011010111101111010110111010101001110111001010001001011100101', fixBin(encoded)); + assert.equal('96385074', fixText(encoded)); + }); + + it('should be able to encode normal text with flat option', function() { + const encoded: any = ean8().encode('96385074', { ...options, ...{ flat: true } }); + const valid = ean8().valid('96385074'); + + assert.equal(true, valid); + assert.equal('1010001011010111101111010110111010101001110111001010001001011100101', encoded.data); + assert.equal('96385074', fixText(encoded)); + }); + + it('should warn with invalid text', function() { + var valid = ean8().valid('12345'); + assert.equal(false, valid); + + var valid = ean8().valid('96385073'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + var encoded = ean8().encode('96385074', { ...options, ...{ text: 'THISISTEXT', flat: true } }); + assert.equal('THISISTEXT', fixText(encoded)); + }); +}); + +describe('EAN-5', function() { + it('should be able to encode normal text', function() { + let encoded = ean5().encode('54495', {}); + let valid = ean5().valid('54495'); + assert.equal(true, valid); + assert.equal('10110110001010100011010011101010001011010111001', encoded.data); + + encoded = ean5().encode('12345', {}); + valid = ean5().valid('12345'); + assert.equal(true, valid); + assert.equal('10110110011010010011010100001010100011010110001', encoded.data); + }); + + it('should warn with invalid text', function() { + let valid = ean5().valid('1234'); + assert.equal(false, valid); + + valid = ean5().valid('123a5'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + let encoded = ean5().encode('12345', { ...options, ...{ text: 'THISISTEXT' } }); + assert.equal('THISISTEXT', fixText(encoded)); + }); +}); + +describe('EAN-2', function() { + it('should be able to encode normal text', function() { + let encoded = ean2().encode('53', {}); + let valid = ean2().valid('53'); + assert.equal(true, valid); + assert.equal('10110110001010100001', encoded.data); + + encoded = ean2().encode('12', {}); + valid = ean2().valid('12'); + assert.equal(true, valid); + assert.equal('10110011001010010011', encoded.data); + }); + + it('should warn with invalid text', function() { + let valid = ean2().valid('1'); + assert.equal(false, valid); + + valid = ean2().valid('a2'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + const encoded = ean2().encode('12', { ...options, ...{ text: 'THISISTEXT' } }); + assert.equal('THISISTEXT', fixText(encoded)); + }); +}); diff --git a/packages/barcodes/ean-upc/src/index.ts b/packages/barcodes/ean-upc/src/index.ts new file mode 100644 index 00000000..dd2ef0d4 --- /dev/null +++ b/packages/barcodes/ean-upc/src/index.ts @@ -0,0 +1,8 @@ +import EAN13 from './EAN13'; +import EAN8 from './EAN8'; +import EAN5 from './EAN5'; +import EAN2 from './EAN2'; +import UPC from './UPC'; +import UPCE from './UPCE'; + +export { EAN13, EAN8, EAN5, EAN2, UPC, UPCE }; diff --git a/packages/barcodes/ean-upc/tsconfig.esm.json b/packages/barcodes/ean-upc/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/ean-upc/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/ean-upc/tsconfig.json b/packages/barcodes/ean-upc/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/ean-upc/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/generic-barcode/package.json b/packages/barcodes/generic-barcode/package.json new file mode 100644 index 00000000..408efa7e --- /dev/null +++ b/packages/barcodes/generic-barcode/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/generic-barcode", + "version": "4.0.0-alpha.5", + "description": "Generic mock barcode encoder for testing JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/generic-barcode/src/index.ts b/packages/barcodes/generic-barcode/src/index.ts new file mode 100644 index 00000000..1f33a9a9 --- /dev/null +++ b/packages/barcodes/generic-barcode/src/index.ts @@ -0,0 +1,18 @@ +import { Options, Encoding } from '@jsbarcode/core'; + +function encode(_: string, options: Options): Encoding { + return { + data: '10101010101010101010101010101010101010101', + text: options.text, + }; +} + +function valid(): boolean { + return true; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/generic-barcode/tsconfig.esm.json b/packages/barcodes/generic-barcode/tsconfig.esm.json new file mode 100644 index 00000000..a1d5764c --- /dev/null +++ b/packages/barcodes/generic-barcode/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} diff --git a/packages/barcodes/generic-barcode/tsconfig.json b/packages/barcodes/generic-barcode/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/generic-barcode/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/itf/package.json b/packages/barcodes/itf/package.json new file mode 100644 index 00000000..c7e0d175 --- /dev/null +++ b/packages/barcodes/itf/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/itf", + "version": "4.0.0-alpha.5", + "description": "ITF and ITF-14 barcode encoders for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/itf/src/ITF.spec.ts b/packages/barcodes/itf/src/ITF.spec.ts new file mode 100644 index 00000000..9ec0638a --- /dev/null +++ b/packages/barcodes/itf/src/ITF.spec.ts @@ -0,0 +1,28 @@ +import assert from 'assert'; +import _itf from './ITF'; +const itf = _itf as any; + +describe('ITF', function() { + it('should be able to encode normal text', function() { + const encoded = itf().encode('123456', {}); + assert.equal('101011101000101011100011101110100010100011101000111000101011101', encoded.data); + }); + + it('should return getText correct', function() { + const encoded = itf().encode('123456', {}); + assert.equal('123456', encoded.text); + }); + + it('should warn with invalid text', function() { + let valid = itf().valid('12345'); + assert.equal(false, valid); + + valid = itf().valid('1234AB'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + const encoded = itf().encode('123456', { text: 'THISISTEXT' }); + assert.equal('THISISTEXT', encoded.text); + }); +}); diff --git a/packages/barcodes/itf/src/ITF.ts b/packages/barcodes/itf/src/ITF.ts new file mode 100644 index 00000000..cdd79345 --- /dev/null +++ b/packages/barcodes/itf/src/ITF.ts @@ -0,0 +1,37 @@ +import { START_BIN, END_BIN, BINARIES } from './constants'; +import { Options, Encoding } from '@jsbarcode/core'; + +function valid(text: string): boolean { + return text.search(/^([0-9]{2})+$/) !== -1; +} + +function encode(data: string, options: Options): Encoding { + // Calculate all the digit pairs + const matches = data.match(/.{2}/g); + const encoded = matches + ? matches.map(pair => encodePair(pair)).join('') + : ''; + + return { + data: START_BIN + encoded + END_BIN, + text: options.text || data, + }; +} + +// Calculate the data of a number pair +function encodePair(pair: string): string { + const firstIndex = parseInt(pair[0], 10); + const secondIndex = parseInt(pair[1], 10); + const second = BINARIES[secondIndex]; + + return BINARIES[firstIndex] + .split('') + .map((first, idx) => (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0')) + .join(''); +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/itf/src/ITF14.spec.ts b/packages/barcodes/itf/src/ITF14.spec.ts new file mode 100644 index 00000000..a73aee48 --- /dev/null +++ b/packages/barcodes/itf/src/ITF14.spec.ts @@ -0,0 +1,64 @@ +import assert from 'assert'; +import _itf14 from './ITF14'; +const itf14 = _itf14 as any; + +describe('ITF-14', function() { + it('should be able to encode normal text', function() { + const encoded = itf14().encode('98765432109213', {}); + assert.equal( + '101010001110101110001010100010001110111011101011100010100011101110001010100011101010001000111010111000101110100011100010001010111011101', + encoded.data, + ); + }); + + it('should be able to add checksum if needed', function() { + let encoded = itf14().encode('9876543210921', {}); + assert.equal( + '101010001110101110001010100010001110111011101011100010100011101110001010100011101010001000111010111000101110100011100010001010111011101', + encoded.data, + ); + }); + + it('should return text correct', function() { + let encoded = itf14().encode('9876543210921', {}); + assert.equal('98765432109213', encoded.text); + + encoded = itf14().encode('98765432109213', {}); + assert.equal('98765432109213', encoded.text); + }); + + it('should warn with invalid text and not when valid', function() { + let valid = itf14().valid('987654321092'); + assert.equal(false, valid); + + valid = itf14().valid('98765432109212'); + assert.equal(false, valid); + + valid = itf14().valid('98765432109213'); + assert.equal(true, valid); + + // Edge cases for check digit of zero + valid = itf14().valid('00847280031740'); + assert.equal(true, valid); + + valid = itf14().valid('00847280031900'); + assert.equal(true, valid); + + valid = itf14().valid('00847280032020'); + assert.equal(true, valid); + + valid = itf14().valid('00847280031870'); + assert.equal(true, valid); + + valid = itf14().valid('00847280031450'); + assert.equal(true, valid); + + valid = itf14().valid('00847280031320'); + assert.equal(true, valid); + }); + + it('should work with text option', function() { + let encoded = itf14().encode('00847280031450', { text: 'THISISTEXT' }); + assert.equal('THISISTEXT', encoded.text); + }); +}); diff --git a/packages/barcodes/itf/src/ITF14.ts b/packages/barcodes/itf/src/ITF14.ts new file mode 100644 index 00000000..cf24d2d5 --- /dev/null +++ b/packages/barcodes/itf/src/ITF14.ts @@ -0,0 +1,31 @@ +import ifc from './ITF'; +import { Options, Encoding } from '@jsbarcode/core'; + +// Calculate the checksum digit +function checksum(data: string): number { + const res = data + .substr(0, 13) + .split('') + .map(num => parseInt(num, 10)) + .reduce((sum, n, idx) => sum + n * (3 - (idx % 2) * 2), 0); + + return Math.ceil(res / 10) * 10 - res; +} + +function encode(data: string, options: Options): Encoding { + // Add checksum if it does not exist + if (data.search(/^[0-9]{13}$/) !== -1) { + data += checksum(data); + } + return ifc().encode(data, options); +} + +function valid(data: string): boolean { + return data.search(/^[0-9]{14}$/) !== -1 && +data[13] === checksum(data); +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/itf/src/constants.ts b/packages/barcodes/itf/src/constants.ts new file mode 100644 index 00000000..3275836c --- /dev/null +++ b/packages/barcodes/itf/src/constants.ts @@ -0,0 +1,4 @@ +export const START_BIN = '1010'; +export const END_BIN = '11101'; + +export const BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010']; diff --git a/src/barcodes/ITF/index.js b/packages/barcodes/itf/src/index.ts similarity index 100% rename from src/barcodes/ITF/index.js rename to packages/barcodes/itf/src/index.ts diff --git a/packages/barcodes/itf/tsconfig.esm.json b/packages/barcodes/itf/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/itf/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/itf/tsconfig.json b/packages/barcodes/itf/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/itf/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/msi/package.json b/packages/barcodes/msi/package.json new file mode 100644 index 00000000..93c752db --- /dev/null +++ b/packages/barcodes/msi/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/msi", + "version": "4.0.0-alpha.5", + "description": "MSI barcode encoders for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/msi/src/MSI.spec.ts b/packages/barcodes/msi/src/MSI.spec.ts new file mode 100644 index 00000000..c8aee7f1 --- /dev/null +++ b/packages/barcodes/msi/src/MSI.spec.ts @@ -0,0 +1,79 @@ +import assert from 'assert'; +import { MSI as _MSI, MSI10 as _MSI10, MSI11 as _MSI11, MSI1010 as _MSI1010, MSI1110 as _MSI1110 } from '.'; +const MSI = _MSI as any; +const MSI10 = _MSI10 as any; +const MSI11 = _MSI11 as any; +const MSI1010 = _MSI1010 as any; +const MSI1110 = _MSI1110 as any; + +describe('MSI', function() { + it('should be able to encode normal text', function() { + let encoded = MSI10().encode('1234567', {}); + let valid = MSI10().valid('1234567'); + assert.equal(true, valid); + assert.equal('12345674', encoded.text); + assert.equal( + '1101001001001101001001101001001001101101001101001001001101001101001101101001001101101101001101001001001', + encoded.data, + ); + + encoded = MSI().encode('12345674', {}); + assert.equal( + '1101001001001101001001101001001001101101001101001001001101001101001101101001001101101101001101001001001', + encoded.data, + ); + + valid = MSI10().valid('17345'); + encoded = MSI10().encode('17345', {}); + assert.equal(true, valid); + assert.equal('173450', encoded.text); + + valid = MSI10().valid('1234'); + encoded = MSI10().encode('1234', {}); + assert.equal(true, valid); + assert.equal('12344', encoded.text); + }); + + it('should encode MSI11', function() { + let encoded = MSI11().encode('123456', {}); + assert.equal('1234560', encoded.text); + + encoded = MSI11().encode('12345678', {}); + assert.equal('123456785', encoded.text); + + encoded = MSI11().encode('1234567891011', {}); + assert.equal('12345678910115', encoded.text); + + encoded = MSI11().encode('1134567', {}); + assert.equal('11345670', encoded.text); + }); + + it('should encode MSI1010', function() { + let encoded = MSI1010().encode('1234567', {}); + assert.equal('123456741', encoded.text); + + encoded = MSI1010().encode('1337', {}); + assert.equal('133751', encoded.text); + }); + + it('should encode MSI1110', function() { + let encoded = MSI1110().encode('12345678', {}); + assert.equal('1234567855', encoded.text); + + encoded = MSI1110().encode('1337', {}); + assert.equal('133744', encoded.text); + }); + + it('should warn with invalid text', function() { + let valid = MSI().valid('12345ABC'); + assert.equal(false, valid); + + valid = MSI().valid('12345AB675'); + assert.equal(false, valid); + }); + + it('should work with text option', function() { + let encoded = MSI().encode('12345674', { text: 'THISISTEXT' }); + assert.equal('THISISTEXT', encoded.text); + }); +}); diff --git a/packages/barcodes/msi/src/MSI.ts b/packages/barcodes/msi/src/MSI.ts new file mode 100644 index 00000000..1a93e23a --- /dev/null +++ b/packages/barcodes/msi/src/MSI.ts @@ -0,0 +1,46 @@ +// Encoding documentation +// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup + +import { Options, Encoding } from '@jsbarcode/core'; + +function encode(data: string, options: Options): Encoding { + // Start bits + var ret = '110'; + + for (var i = 0; i < data.length; i++) { + // Convert the character to binary (always 4 binary digits) + var digit = parseInt(data[i], 10); + var bin = digit.toString(2); + bin = addZeroes(bin, 4 - bin.length); + + // Add 100 for every zero and 110 for every 1 + for (var b = 0; b < bin.length; b++) { + ret += bin[b] == '0' ? '100' : '110'; + } + } + + // End bits + ret += '1001'; + + return { + data: ret, + text: options.text || data, + }; +} + +function valid(data: string): boolean { + return data.search(/^[0-9]+$/) !== -1; +} + +function addZeroes(number: string, n: number): string { + for (var i = 0; i < n; i++) { + number = '0' + number; + } + return number; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/msi/src/MSI10.ts b/packages/barcodes/msi/src/MSI10.ts new file mode 100644 index 00000000..6a5e7d49 --- /dev/null +++ b/packages/barcodes/msi/src/MSI10.ts @@ -0,0 +1,10 @@ +import msi from './MSI'; +import { mod10 } from './checksums'; +import { Options, Encoding } from '@jsbarcode/core'; + +export default () => ({ + encode: (data: string, options: Options): Encoding => { + return msi().encode(data + mod10(data), options); + }, + valid: msi().valid, +}); diff --git a/packages/barcodes/msi/src/MSI1010.ts b/packages/barcodes/msi/src/MSI1010.ts new file mode 100644 index 00000000..f4447bb7 --- /dev/null +++ b/packages/barcodes/msi/src/MSI1010.ts @@ -0,0 +1,12 @@ +import msi from './MSI'; +import { mod10 } from './checksums'; +import { Options, Encoding } from '@jsbarcode/core'; + +export default () => ({ + encode: (data: string, options: Options): Encoding => { + data += mod10(data); + data += mod10(data); + return msi().encode(data, options); + }, + valid: msi().valid, +}); diff --git a/packages/barcodes/msi/src/MSI11.ts b/packages/barcodes/msi/src/MSI11.ts new file mode 100644 index 00000000..b9566f51 --- /dev/null +++ b/packages/barcodes/msi/src/MSI11.ts @@ -0,0 +1,10 @@ +import msi from './MSI'; +import { mod11 } from './checksums'; +import { Options, Encoding } from '@jsbarcode/core'; + +export default () => ({ + encode: (data: string, options: Options): Encoding => { + return msi().encode(data + mod11(data), options); + }, + valid: msi().valid, +}); diff --git a/packages/barcodes/msi/src/MSI1110.ts b/packages/barcodes/msi/src/MSI1110.ts new file mode 100644 index 00000000..a15e7e22 --- /dev/null +++ b/packages/barcodes/msi/src/MSI1110.ts @@ -0,0 +1,12 @@ +import msi from './MSI'; +import { mod10, mod11 } from './checksums'; +import { Options, Encoding } from '@jsbarcode/core'; + +export default () => ({ + encode: (data: string, options: Options): Encoding => { + data += mod11(data); + data += mod10(data); + return msi().encode(data, options); + }, + valid: msi().valid, +}); diff --git a/packages/barcodes/msi/src/checksums.ts b/packages/barcodes/msi/src/checksums.ts new file mode 100644 index 00000000..a6590253 --- /dev/null +++ b/packages/barcodes/msi/src/checksums.ts @@ -0,0 +1,22 @@ +export function mod10(number: string): number { + var sum = 0; + for (var i = 0; i < number.length; i++) { + var n = parseInt(number[i], 10); + if ((i + number.length) % 2 === 0) { + sum += n; + } else { + sum += ((n * 2) % 10) + Math.floor((n * 2) / 10); + } + } + return (10 - (sum % 10)) % 10; +} + +export function mod11(number: string): number { + var sum = 0; + var weights = [2, 3, 4, 5, 6, 7]; + for (var i = 0; i < number.length; i++) { + var n = parseInt(number[number.length - 1 - i], 10); + sum += weights[i % weights.length] * n; + } + return (11 - (sum % 11)) % 11; +} diff --git a/packages/barcodes/msi/src/index.ts b/packages/barcodes/msi/src/index.ts new file mode 100644 index 00000000..481b272c --- /dev/null +++ b/packages/barcodes/msi/src/index.ts @@ -0,0 +1,7 @@ +import MSI from './MSI'; +import MSI10 from './MSI10'; +import MSI11 from './MSI11'; +import MSI1010 from './MSI1010'; +import MSI1110 from './MSI1110'; + +export { MSI, MSI10, MSI11, MSI1010, MSI1110 }; diff --git a/packages/barcodes/msi/tsconfig.esm.json b/packages/barcodes/msi/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/msi/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/msi/tsconfig.json b/packages/barcodes/msi/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/msi/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/barcodes/pharmacode/package.json b/packages/barcodes/pharmacode/package.json new file mode 100644 index 00000000..26c34dc6 --- /dev/null +++ b/packages/barcodes/pharmacode/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/pharmacode", + "version": "4.0.0-alpha.5", + "description": "Pharmacode barcode encoder for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/barcodes/pharmacode/src/index.ts b/packages/barcodes/pharmacode/src/index.ts new file mode 100644 index 00000000..684dfd39 --- /dev/null +++ b/packages/barcodes/pharmacode/src/index.ts @@ -0,0 +1,35 @@ +import { Options, Encoding } from '@jsbarcode/core'; + +function encode(data: string, options: Options): Encoding { + let num = parseInt(data, 10); + + let result = ''; + while (!isNaN(num) && num !== 0) { + if (num % 2 === 0) { + result = '11100' + result; + num = (num - 2) / 2; + } else { + result = '100' + result; + num = (num - 1) / 2; + } + } + + // Remove the last space + result = result.slice(0, -2); + + return { + data: result, + text: options.text || data, + }; +} + +function valid(data: string): boolean { + const num = parseInt(data, 10); + return !isNaN(num) && num >= 3 && num <= 131070 && data.search(/^[0-9]+$/) !== -1; +} + +export default () => ({ + encode, + valid, +}); +export { encode, valid }; diff --git a/packages/barcodes/pharmacode/tsconfig.esm.json b/packages/barcodes/pharmacode/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/barcodes/pharmacode/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/barcodes/pharmacode/tsconfig.json b/packages/barcodes/pharmacode/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/barcodes/pharmacode/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000..bcc8f70b --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/core", + "version": "4.0.0-alpha.5", + "description": "Core engine of JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/core/src/exceptions/exceptions.ts b/packages/core/src/exceptions/exceptions.ts new file mode 100644 index 00000000..e7961491 --- /dev/null +++ b/packages/core/src/exceptions/exceptions.ts @@ -0,0 +1,25 @@ +class InvalidInputException extends Error { + public input: string; + + constructor(input: string) { + super(`"${input}" is not a valid input`); + this.name = 'InvalidInputException'; + this.input = input; + } +} + +class InvalidElementException extends Error { + constructor() { + super('Not supported type to render on'); + this.name = 'InvalidElementException'; + } +} + +class NoElementException extends Error { + constructor() { + super('No element to render on.'); + this.name = 'NoElementException'; + } +} + +export { InvalidInputException, InvalidElementException, NoElementException }; diff --git a/src/help/fixOptions.js b/packages/core/src/help/fixOptions.ts similarity index 74% rename from src/help/fixOptions.js rename to packages/core/src/help/fixOptions.ts index 0e1c0825..99ff5e5e 100644 --- a/src/help/fixOptions.js +++ b/packages/core/src/help/fixOptions.ts @@ -1,6 +1,8 @@ export default fixOptions; -function fixOptions(options){ +import { Options } from '../options/options'; + +function fixOptions(options: Options | Partial) { // Fix the margins options.marginTop = options.marginTop || options.margin; options.marginBottom = options.marginBottom || options.margin; diff --git a/packages/core/src/help/linearizeEncodings.ts b/packages/core/src/help/linearizeEncodings.ts new file mode 100644 index 00000000..ba088e0a --- /dev/null +++ b/packages/core/src/help/linearizeEncodings.ts @@ -0,0 +1,25 @@ +import { Encoding } from '../options/options'; + +// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] +// Convert to [1-1, 1-2, 2, 3-1, 3-2] +type NestedArray = T | NestedArray[]; + +function linearizeEncodings(encodings: NestedArray): Encoding[] { + var linearEncodings: Encoding[] = []; + function nextLevel(encoded: NestedArray) { + if (Array.isArray(encoded)) { + for (let i = 0; i < encoded.length; i++) { + nextLevel(encoded[i]); + } + } else { + encoded.text = encoded.text || ''; + encoded.data = encoded.data || ''; + linearEncodings.push(encoded); + } + } + nextLevel(encodings); + + return linearEncodings; +} + +export default linearizeEncodings; diff --git a/packages/core/src/help/optionsFromStrings.ts b/packages/core/src/help/optionsFromStrings.ts new file mode 100644 index 00000000..2e60e1f0 --- /dev/null +++ b/packages/core/src/help/optionsFromStrings.ts @@ -0,0 +1,28 @@ +// Convert string to integers/booleans where it should be +function optionsFromStrings(options: Record) { + var intOptions = [ + 'width', + 'height', + 'textMargin', + 'fontSize', + 'margin', + 'marginTop', + 'marginBottom', + 'marginLeft', + 'marginRight' + ]; + + for (const intOption of intOptions) { + if (typeof options[intOption] === 'string') { + options[intOption] = parseInt(options[intOption] as string, 10); + } + } + + if (typeof options['displayValue'] === 'string') { + options['displayValue'] = options['displayValue'] !== 'false'; + } + + return options; +} + +export default optionsFromStrings; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000..281976cd --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1,124 @@ +// Help functions +import linearizeEncodings from './help/linearizeEncodings'; +import fixOptions from './help/fixOptions'; + +// Exceptions +import { InvalidInputException, InvalidElementException, NoElementException } from './exceptions/exceptions'; + +// Options +import { Options, Encoding, Renderer, Encoder } from './options/options'; +import defaults from './options/defaults'; + +// The first call of the library API +// Will return an object with all barcodes calls and the data that is used +// by the renderers +function JsBarcode(element: HTMLElement | SVGElement | object | string | null | undefined, text?: string, options?: Partial): API { + let el: HTMLElement | SVGElement | object | null | undefined; + if (typeof element === 'string') { + if (typeof document !== 'undefined') { + el = document.querySelector(element) as HTMLElement | SVGElement | null; + } else { + el = null; + } + } else { + el = element; + } + + if (!el) { + throw new NoElementException(); + } + + const newOptions = { ...defaults, ...(options || {}) }; + const api = new API(el, [], newOptions); + + // If text is set, use the simple syntax (render the barcode directly) + if (typeof text !== 'undefined') { + options = options || defaults; + + api.appendEncoded(encode(text, api.existingOptions)); + api.options(options).render(); + } + + return api; +} + +// encode() handles the Encoder call and builds the binary string to be rendered +function encode(text: string, options: Options): Encoding | Encoding[] { + // Ensure that text is a string + text = '' + text; + + if (!options.encoder) { + throw new Error('No encoder defined.'); + } + + // If the input is not valid for the encoder, throw error. + // If the valid callback option is set, call it instead of throwing error + if (!options.encoder.valid(text, options)) { + throw new InvalidInputException(text); + } + + // Make a request for the binary data (and other infromation) that should be rendered + const encoded = options.encoder.encode(text, options); + + return encoded; +} + +class API { + constructor( + public readonly element: HTMLElement | SVGElement | object, + public readonly encodings: (Encoding | Encoding[])[], + public readonly existingOptions: Options, + ) {} + + // Sets global encoder options + // Added to the api by the JsBarcode function + options(options: Partial): this { + ((this as unknown) as { existingOptions: Options }).existingOptions = { ...this.existingOptions, ...options }; + return this; + } + + // Will create a blank space (usually in between barcodes) + blank(size: number): this { + const zeroes = new Array(size + 1).join('0'); + this.encodings.push({ data: zeroes }); + return this; + } + + // Will encode another barcode + barcode(text: string, options?: Partial): this { + this.encodings.push(encode(text, { ...this.existingOptions, ...(options || {}) })); + return this; + } + + appendEncoded(data: Encoding | Encoding[]): this { + this.encodings.push(data); + return this; + } + + // The render API call. Calls the real render function. + render(): this { + render(this.element, this.encodings, this.existingOptions); + + return this; + } +} + +// Prepares the encodings and calls the renderer +function render(element: HTMLElement | SVGElement | object, encodings: (Encoding | Encoding[])[], options: Options) { + let linearized = linearizeEncodings(encodings); + + for (let i = 0; i < linearized.length; i++) { + linearized[i].options = { ...options, ...linearized[i].options }; + fixOptions(linearized[i].options!); + } + + fixOptions(options); + + if (!options.renderer) { + throw new Error('No renderer defined.'); + } + options.renderer(element, linearized, options); +} + +export { API, Options, Encoding, Renderer, Encoder, defaults, JsBarcode, InvalidInputException, InvalidElementException, NoElementException }; +export default JsBarcode; diff --git a/packages/core/src/options/defaults.ts b/packages/core/src/options/defaults.ts new file mode 100644 index 00000000..f1b64a5d --- /dev/null +++ b/packages/core/src/options/defaults.ts @@ -0,0 +1,27 @@ +import { Options } from './options'; + +const defaults: Options = { + width: 2, + height: 100, + format: 'auto', + displayValue: true, + fontOptions: '', + font: 'monospace', + text: undefined, + textAlign: 'center', + textPosition: 'bottom', + textMargin: 2, + fontSize: 20, + background: '#ffffff', + lineColor: '#000000', + margin: 10, + marginTop: undefined, + marginBottom: undefined, + marginLeft: undefined, + marginRight: undefined, + + encoder: undefined, + renderer: undefined, +}; + +export default defaults; diff --git a/packages/core/src/options/options.ts b/packages/core/src/options/options.ts new file mode 100644 index 00000000..377c17b3 --- /dev/null +++ b/packages/core/src/options/options.ts @@ -0,0 +1,47 @@ +export interface Encoder { + valid: (text: string, options?: Options) => boolean; + encode: (text: string, options?: Options) => Encoding | Encoding[]; +} + +export type Renderer = (element: HTMLElement | SVGElement | object, encodings: Encoding[], options: Options) => void; + +export interface Encoding { + data: string; + text?: string; + options?: Partial; + width?: number; + height?: number; + barcodePadding?: number; +} + +export interface Options { + width: number; + height: number; + format: string; + displayValue: boolean; + fontOptions: string; + font: string; + text?: string; + textAlign: string; + textPosition: string; + textMargin: number; + fontSize: number; + background: string; + lineColor: string; + margin: number; + marginTop?: number; + marginBottom?: number; + marginLeft?: number; + marginRight?: number; + + encoder?: Encoder; + renderer?: Renderer; + + mod43?: boolean; + flat?: boolean; + ean128?: boolean; + guardHeight?: number; + lastChar?: string; + + [key: string]: unknown; +} diff --git a/packages/core/src/renderers/object.ts b/packages/core/src/renderers/object.ts new file mode 100644 index 00000000..1e544913 --- /dev/null +++ b/packages/core/src/renderers/object.ts @@ -0,0 +1,11 @@ +import { InvalidElementException } from '../exceptions/exceptions'; +import { Encoding } from '../options/options'; + +function renderer(object: HTMLElement | SVGElement | object, encodings: Encoding[]) { + if (typeof object !== 'object' || !object) { + throw new InvalidElementException(); + } + (object as { encodings?: Encoding[] }).encodings = encodings; +} + +export default renderer; diff --git a/packages/core/tsconfig.esm.json b/packages/core/tsconfig.esm.json new file mode 100644 index 00000000..81ac086a --- /dev/null +++ b/packages/core/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + } +} \ No newline at end of file diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 00000000..83db8143 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"] +} diff --git a/jsbarcode.d.ts b/packages/jsbarcode/jsbarcode.d.ts similarity index 87% rename from jsbarcode.d.ts rename to packages/jsbarcode/jsbarcode.d.ts index 2b934bf6..ce97cd73 100644 --- a/jsbarcode.d.ts +++ b/packages/jsbarcode/jsbarcode.d.ts @@ -63,8 +63,8 @@ declare namespace JsBarcode { } } -declare function JsBarcode(element: any): JsBarcode.api; -declare function JsBarcode(element: any, data: string, options?: JsBarcode.Options): void; +declare function JsBarcode(element: string | HTMLElement | SVGElement | object | ArrayLike): JsBarcode.api; +declare function JsBarcode(element: string | HTMLElement | SVGElement | object | ArrayLike, data: string, options?: JsBarcode.Options): void; export = JsBarcode; export as namespace JsBarcode; diff --git a/packages/jsbarcode/package.json b/packages/jsbarcode/package.json new file mode 100644 index 00000000..07ccfc6e --- /dev/null +++ b/packages/jsbarcode/package.json @@ -0,0 +1,23 @@ +{ + "name": "jsbarcode", + "version": "4.0.0-alpha.5", + "description": "Customizable barcode generator with support for multiple barcode formats", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./jsbarcode.d.ts", + "dependencies": { + "@jsbarcode/core": "*", + "@jsbarcode/renderer-canvas": "*", + "@jsbarcode/renderer-svg": "*", + "@jsbarcode/code128": "*", + "@jsbarcode/code39": "*", + "@jsbarcode/codabar": "*", + "@jsbarcode/ean-upc": "*", + "@jsbarcode/itf": "*", + "@jsbarcode/msi": "*", + "@jsbarcode/pharmacode": "*" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/jsbarcode/src/index.spec.ts b/packages/jsbarcode/src/index.spec.ts new file mode 100644 index 00000000..fd2d5258 --- /dev/null +++ b/packages/jsbarcode/src/index.spec.ts @@ -0,0 +1,27 @@ +import assert from 'assert'; +import jsbarcode from '.'; +import { CODE128 } from '@jsbarcode/code128'; +import code39 from '@jsbarcode/code39'; +import canvasRenderer from '@jsbarcode/renderer-canvas'; + +const { createCanvas } = require('canvas'); + +describe('node-canvas generation', function () { + it('should generate normal canvas', function () { + var canvas = createCanvas(); + jsbarcode(canvas, 'Hello', { + encoder: CODE128(), + renderer: canvasRenderer, + }); + }); + + it('checking width', function () { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1, 'HELLO', { encoder: CODE128(), renderer: canvasRenderer }); + jsbarcode(canvas2, 'HELLO', { encoder: code39(), renderer: canvasRenderer }); + + assert.notEqual(canvas1.width, canvas2.width); + }); +}); diff --git a/packages/jsbarcode/src/index.ts b/packages/jsbarcode/src/index.ts new file mode 100644 index 00000000..03d30e34 --- /dev/null +++ b/packages/jsbarcode/src/index.ts @@ -0,0 +1,344 @@ +interface JQuery { + each(callback: (this: HTMLElement, index: number, element: HTMLElement) => void): this; +} +interface JQueryStatic { + (selector: string | JQuery | HTMLElement | HTMLElement[]): JQuery; + fn: { + JsBarcode?: (this: JQuery, content: string | undefined, options?: Partial) => JQuery; + }; +} +declare var jQuery: JQueryStatic | undefined; + +import coreJsBarcode, { API, defaults, Encoder, InvalidElementException, NoElementException, Options, Renderer } from '@jsbarcode/core'; +import { CODE128, CODE128A, CODE128B, CODE128C } from '@jsbarcode/code128'; +import CODE39 from '@jsbarcode/code39'; +import codabar from '@jsbarcode/codabar'; +import { EAN13, EAN8, EAN5, EAN2, UPC, UPCE } from '@jsbarcode/ean-upc'; +import { ITF, ITF14 } from '@jsbarcode/itf'; +import { MSI, MSI10, MSI11, MSI1010, MSI1110 } from '@jsbarcode/msi'; +import pharmacode from '@jsbarcode/pharmacode'; +import canvasRenderer from '@jsbarcode/renderer-canvas'; +import svgRenderer from '@jsbarcode/renderer-svg'; + +const encoders: Record Encoder> = { + code128: CODE128, + code128a: CODE128A, + code128b: CODE128B, + code128c: CODE128C, + code39: CODE39, + codabar: codabar, + ean13: EAN13, + ean8: EAN8, + ean5: EAN5, + ean2: EAN2, + upc: UPC, + upce: UPCE, + itf: ITF, + itf14: ITF14, + msi: MSI, + msi10: MSI10, + msi11: MSI11, + msi1010: MSI1010, + msi1110: MSI1110, + pharmacode: pharmacode, +}; + +// Add chainable barcode methods to API prototype dynamically +const methods: Record Encoder> = { + CODE128, + CODE128A, + CODE128B, + CODE128C, + CODE39, + codabar, + EAN13, + EAN8, + EAN5, + EAN2, + UPC, + UPCE, + ITF, + ITF14, + MSI, + MSI10, + MSI11, + MSI1010, + MSI1110, + pharmacode, +}; + +for (const name in methods) { + if (methods.hasOwnProperty(name)) { + const encoder = methods[name]; + const lowerName = name.toLowerCase(); + const upperName = name.toUpperCase(); + + const barcodeMethod = function(this: API, text: string, options?: Partial) { + return this.barcode(text, { encoder: encoder(), ...options }); + }; + + ((API.prototype as unknown) as Record)[name] = barcodeMethod; + if (name !== lowerName) { + ((API.prototype as unknown) as Record)[lowerName] = barcodeMethod; + } + if (name !== upperName) { + ((API.prototype as unknown) as Record)[upperName] = barcodeMethod; + } + } +} + +class WrapperAPI { + constructor(private readonly targets: { element: HTMLElement | SVGElement | object, renderer: Renderer, afterRender?: () => void, api: API }[]) {} + + options(options: Partial): this { + this.targets.forEach(t => t.api.options(options)); + return this; + } + + blank(size: number): this { + this.targets.forEach(t => t.api.blank(size)); + return this; + } + + barcode(text: string, options: Partial = {}): this { + this.targets.forEach(t => { + const opts = { ...options }; + if (!opts.encoder && opts.format) { + const format = opts.format.toLowerCase(); + const encoderCreator = encoders[format]; + if (encoderCreator) { + opts.encoder = encoderCreator(); + } + } + t.api.barcode(text, opts); + }); + return this; + } + + render(): this { + this.targets.forEach(t => { + t.api.render(); + if (t.afterRender) { + t.afterRender(); + } + }); + return this; + } + + init(): void { + this.targets.forEach(t => { + const options = getOptionsFromElement(t.element); + const text = options.value as string | undefined; + if (!text) return; + + const opts = { ...t.api.existingOptions, ...options }; + JsBarcode(t.element, text, opts); + }); + } +} + +// Dynamically expose barcode methods on WrapperAPI too +for (const name in methods) { + if (methods.hasOwnProperty(name)) { + const lowerName = name.toLowerCase(); + const upperName = name.toUpperCase(); + + const wrapperMethod = function(this: WrapperAPI, text: string, options?: Partial) { + this.barcode(text, { format: name, ...options }); + return this; + }; + + ((WrapperAPI.prototype as unknown) as Record)[name] = wrapperMethod; + if (name !== lowerName) { + ((WrapperAPI.prototype as unknown) as Record)[lowerName] = wrapperMethod; + } + if (name !== upperName) { + ((WrapperAPI.prototype as unknown) as Record)[upperName] = wrapperMethod; + } + } +} + +function getOptionsFromElement(element: HTMLElement | SVGElement | object): Record { + const options: Record = {}; + if (!element || !('hasAttribute' in element)) return options; + + const el = element as unknown as HTMLElement; + for (const property in defaults) { + if (defaults.hasOwnProperty(property)) { + // jsbarcode-* + if (el.hasAttribute('jsbarcode-' + property.toLowerCase())) { + options[property] = el.getAttribute('jsbarcode-' + property.toLowerCase()); + } + // data-* + if (el.hasAttribute('data-' + property.toLowerCase())) { + options[property] = el.getAttribute('data-' + property.toLowerCase()); + } + } + } + + options.value = el.getAttribute('jsbarcode-value') || el.getAttribute('data-value'); + + return optionsFromStrings(options); +} + +function optionsFromStrings(options: Record): Record { + const intOptions = [ + 'width', + 'height', + 'textMargin', + 'fontSize', + 'margin', + 'marginTop', + 'marginBottom', + 'marginLeft', + 'marginRight' + ]; + + for (const intOption of intOptions) { + if (typeof options[intOption] === 'string') { + options[intOption] = parseInt(options[intOption] as string, 10); + } + } + + if (typeof options['displayValue'] === 'string') { + options['displayValue'] = options['displayValue'] !== 'false'; + } + + return options; +} + +function getTargets(element: unknown): { element: HTMLElement | SVGElement | object, renderer: Renderer, afterRender?: () => void }[] { + if (typeof element === 'string') { + if (typeof document === 'undefined') { + throw new NoElementException(); + } + const selector = document.querySelectorAll(element); + if (selector.length === 0) { + throw new NoElementException(); + } + const targets: { element: HTMLElement | SVGElement | object, renderer: Renderer, afterRender?: () => void }[] = []; + for (let i = 0; i < selector.length; i++) { + targets.push(...getTargets(selector[i])); + } + return targets; + } else if (Array.isArray(element)) { + const targets: { element: HTMLElement | SVGElement | object, renderer: Renderer, afterRender?: () => void }[] = []; + for (let i = 0; i < element.length; i++) { + targets.push(...getTargets(element[i])); + } + return targets; + } else if (typeof jQuery !== 'undefined' && element instanceof (jQuery as unknown as Function)) { + const targets: { element: HTMLElement | SVGElement | object, renderer: Renderer, afterRender?: () => void }[] = []; + (element as unknown as JQuery).each(function(this: HTMLElement) { + targets.push(...getTargets(this)); + }); + return targets; + } else if (element && typeof element === 'object') { + const el = element as Record; + const tagName = typeof el.tagName === 'string' ? el.tagName.toLowerCase() : ''; + if (tagName === 'img') { + if (typeof document === 'undefined') { + throw new Error('Image rendering is only supported in browser environments'); + } + const canvas = document.createElement('canvas'); + return [{ + element: canvas, + renderer: canvasRenderer, + afterRender: () => { + (el as unknown as HTMLImageElement).setAttribute('src', canvas.toDataURL()); + } + }]; + } else if (tagName === 'svg') { + return [{ + element: el as unknown as SVGElement, + renderer: svgRenderer + }]; + } else if (tagName === 'canvas') { + return [{ + element: el as unknown as HTMLCanvasElement, + renderer: canvasRenderer + }]; + } else if (typeof el.getContext === 'function') { + return [{ + element: el, + renderer: canvasRenderer + }]; + } else { + return [{ + element: el, + renderer: canvasRenderer + }]; + } + } + throw new InvalidElementException(); +} + +function JsBarcode(element: unknown, text?: string, options?: Partial): WrapperAPI { + if (typeof element === 'undefined') { + throw new NoElementException(); + } + const targets = getTargets(element); + + const wrapper = new WrapperAPI(targets.map(t => { + const opts = { ...options }; + const isModular = !!opts.encoder || !!opts.renderer; + + if (!isModular) { + if (!opts.encoder) { + const format = (opts.format || 'auto').toLowerCase(); + const encoderCreator = encoders[format]; + if (encoderCreator) { + opts.encoder = encoderCreator(); + } + } + if (!opts.renderer) { + opts.renderer = t.renderer; + } + } + + const api = coreJsBarcode(t.element, undefined, opts); + return { + element: t.element, + renderer: t.renderer, + afterRender: t.afterRender, + api + }; + })); + + if (typeof text !== 'undefined') { + const opts = { ...options }; + const isModular = !!opts.encoder || !!opts.renderer; + + if (!isModular) { + if (!opts.encoder) { + const format = (opts.format || 'auto').toLowerCase(); + const encoderCreator = encoders[format]; + if (encoderCreator) { + opts.encoder = encoderCreator(); + } + } + } + wrapper.barcode(text, opts).render(); + } + + return wrapper; +} + +if (typeof window !== 'undefined') { + ((window as unknown) as Record).JsBarcode = JsBarcode; +} + +/*global jQuery */ +if (typeof jQuery !== 'undefined' && jQuery.fn) { + jQuery.fn.JsBarcode = function(this: JQuery, content: string | undefined, options?: Partial) { + const elements: HTMLElement[] = []; + this.each(function(this: HTMLElement) { + elements.push(this); + }); + return JsBarcode(elements, content, options) as unknown as JQuery; + }; +} + +export default JsBarcode; +export { JsBarcode }; +export { WrapperAPI as api }; diff --git a/packages/jsbarcode/tsconfig.esm.json b/packages/jsbarcode/tsconfig.esm.json new file mode 100644 index 00000000..25cc5ac4 --- /dev/null +++ b/packages/jsbarcode/tsconfig.esm.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../core/tsconfig.esm.json" }, + { "path": "../renderer/canvas/tsconfig.esm.json" }, + { "path": "../renderer/svg/tsconfig.esm.json" }, + { "path": "../barcodes/code128/tsconfig.esm.json" }, + { "path": "../barcodes/code39/tsconfig.esm.json" }, + { "path": "../barcodes/codabar/tsconfig.esm.json" }, + { "path": "../barcodes/ean-upc/tsconfig.esm.json" }, + { "path": "../barcodes/itf/tsconfig.esm.json" }, + { "path": "../barcodes/msi/tsconfig.esm.json" }, + { "path": "../barcodes/pharmacode/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/jsbarcode/tsconfig.json b/packages/jsbarcode/tsconfig.json new file mode 100644 index 00000000..23c5f83f --- /dev/null +++ b/packages/jsbarcode/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../core" }, + { "path": "../renderer/canvas" }, + { "path": "../renderer/svg" }, + { "path": "../barcodes/code128" }, + { "path": "../barcodes/code39" }, + { "path": "../barcodes/codabar" }, + { "path": "../barcodes/ean-upc" }, + { "path": "../barcodes/itf" }, + { "path": "../barcodes/msi" }, + { "path": "../barcodes/pharmacode" } + ] +} diff --git a/packages/renderer/canvas/package.json b/packages/renderer/canvas/package.json new file mode 100644 index 00000000..2343092f --- /dev/null +++ b/packages/renderer/canvas/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/renderer-canvas", + "version": "4.0.0-alpha.5", + "description": "Canvas renderer for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/renderer/canvas/src/index.ts b/packages/renderer/canvas/src/index.ts new file mode 100644 index 00000000..139707a8 --- /dev/null +++ b/packages/renderer/canvas/src/index.ts @@ -0,0 +1,107 @@ +import { calculateEncodingAttributes, getTotalWidthOfEncodings, getMaximumHeightOfEncodings } from './shared'; +import { Options, Encoding } from '@jsbarcode/core'; + +function renderer(canvas: HTMLCanvasElement, encodings: Encoding[], options: Options): void { + // Abort if the browser does not support HTML5 canvas + if (!canvas.getContext) { + throw new Error('The browser does not support canvas'); + } + + const ctx = canvas.getContext('2d'); + if (!ctx) return; + + prepareCanvas(); + for (let i = 0; i < encodings.length; i++) { + var encodingOptions = { ...options, ...encodings[i].options }; + + drawCanvasBarcode(encodingOptions, encodings[i]); + drawCanvasText(encodingOptions, encodings[i]); + + moveCanvasDrawing(encodings[i]); + } + ctx.restore(); + + function prepareCanvas() { + ctx.save(); + + calculateEncodingAttributes(encodings, options, ctx); + var totalWidth = getTotalWidthOfEncodings(encodings); + var maxHeight = getMaximumHeightOfEncodings(encodings); + + canvas.width = totalWidth + options.marginLeft! + options.marginRight!; + + canvas.height = maxHeight; + + // Paint the canvas + ctx.clearRect(0, 0, canvas.width, canvas.height); + if (options.background) { + ctx.fillStyle = options.background; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } + + ctx.translate(options.marginLeft!, 0); + } + + function drawCanvasBarcode(options: Options, encoding: Encoding) { + var binary = encoding.data; + + // Creates the barcode out of the encoded binary + var yFrom: number; + if (options.textPosition == 'top') { + yFrom = options.marginTop! + options.fontSize + options.textMargin; + } else { + yFrom = options.marginTop!; + } + + ctx.fillStyle = options.lineColor; + + for (var b = 0; b < binary.length; b++) { + var x = b * options.width + (encoding.barcodePadding || 0); + + if (binary[b] === '1') { + ctx.fillRect(x, yFrom, options.width, options.height); + } else if (binary[b]) { + ctx.fillRect(x, yFrom, options.width, options.height * (+binary[b])); + } + } + } + + function drawCanvasText(options: Options, encoding: Encoding) { + var font = options.fontOptions + ' ' + options.fontSize + 'px ' + options.font; + + // Draw the text if displayValue is set + if (options.displayValue && encoding.text) { + var x: number, y: number; + + if (options.textPosition == 'top') { + y = options.marginTop! + options.fontSize - options.textMargin; + } else { + y = options.height + options.textMargin + options.marginTop! + options.fontSize; + } + + ctx.font = font; + + // Draw the text in the correct X depending on the textAlign option + if (options.textAlign == 'left' || (encoding.barcodePadding && encoding.barcodePadding > 0)) { + x = 0; + ctx.textAlign = 'left'; + } else if (options.textAlign == 'right') { + x = (encoding.width || 0) - 1; + ctx.textAlign = 'right'; + } + // In all other cases, center the text + else { + x = (encoding.width || 0) / 2; + ctx.textAlign = 'center'; + } + + ctx.fillText(encoding.text, x, y); + } + } + + function moveCanvasDrawing(encoding: Encoding) { + ctx.translate(encoding.width || 0, 0); + } +} + +export default renderer; diff --git a/packages/renderer/canvas/src/shared.ts b/packages/renderer/canvas/src/shared.ts new file mode 100644 index 00000000..ade24741 --- /dev/null +++ b/packages/renderer/canvas/src/shared.ts @@ -0,0 +1,93 @@ +import { Encoding, Options } from '@jsbarcode/core'; + +function getEncodingHeight(encoding: Encoding, options: Options): number { + return ( + options.height + + (options.displayValue && encoding.text && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + + options.marginTop! + + options.marginBottom! + ); +} + +function getBarcodePadding(textWidth: number, barcodeWidth: number, options: Options): number { + if (options.displayValue && barcodeWidth < textWidth) { + if (options.textAlign == 'center') { + return Math.floor((textWidth - barcodeWidth) / 2); + } else if (options.textAlign == 'left') { + return 0; + } else if (options.textAlign == 'right') { + return Math.floor(textWidth - barcodeWidth); + } + } + return 0; +} + +function calculateEncodingAttributes(encodings: Encoding[], barcodeOptions: Options, context?: CanvasRenderingContext2D): void { + for (let i = 0; i < encodings.length; i++) { + var encoding = encodings[i]; + var options = { ...barcodeOptions, ...encoding.options }; + + // Calculate the width of the encoding + var textWidth: number; + if (options.displayValue && encoding.text) { + textWidth = messureText(encoding.text, options, context); + } else { + textWidth = 0; + } + + var barcodeWidth = encoding.data.length * options.width; + encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth)); + + encoding.height = getEncodingHeight(encoding, options); + + encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options); + } +} + +function getTotalWidthOfEncodings(encodings: Encoding[]): number { + var totalWidth = 0; + for (let i = 0; i < encodings.length; i++) { + totalWidth += encodings[i].width || 0; + } + return totalWidth; +} + +function getMaximumHeightOfEncodings(encodings: Encoding[]): number { + var maxHeight = 0; + for (let i = 0; i < encodings.length; i++) { + if (encodings[i].height && encodings[i].height! > maxHeight) { + maxHeight = encodings[i].height!; + } + } + return maxHeight; +} + +function messureText(string: string, options: Options, context?: CanvasRenderingContext2D): number { + var ctx: CanvasRenderingContext2D | null = null; + + if (context) { + ctx = context; + } else if (typeof document !== 'undefined') { + ctx = document.createElement('canvas').getContext('2d'); + } + + if (!ctx) { + // If the text cannot be messured we will return 0. + // This will make some barcode with big text render incorrectly + return 0; + } + ctx.font = options.fontOptions + ' ' + options.fontSize + 'px ' + options.font; + + // Calculate the width of the encoding + var size = ctx.measureText(string).width; + + return size; +} + +export { + getMaximumHeightOfEncodings, + getEncodingHeight, + getBarcodePadding, + calculateEncodingAttributes, + getTotalWidthOfEncodings +}; diff --git a/packages/renderer/canvas/tsconfig.esm.json b/packages/renderer/canvas/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/renderer/canvas/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/renderer/canvas/tsconfig.json b/packages/renderer/canvas/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/renderer/canvas/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/packages/renderer/svg/package.json b/packages/renderer/svg/package.json new file mode 100644 index 00000000..b0caea84 --- /dev/null +++ b/packages/renderer/svg/package.json @@ -0,0 +1,11 @@ +{ + "name": "@jsbarcode/renderer-svg", + "version": "4.0.0-alpha.5", + "description": "SVG renderer for JsBarcode", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/cjs/index.d.ts", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/renderer/svg/src/index.ts b/packages/renderer/svg/src/index.ts new file mode 100644 index 00000000..134a4b51 --- /dev/null +++ b/packages/renderer/svg/src/index.ts @@ -0,0 +1,152 @@ +import { calculateEncodingAttributes, getTotalWidthOfEncodings, getMaximumHeightOfEncodings } from './shared'; +import { Options, Encoding } from '@jsbarcode/core'; + +var svgns = 'http://www.w3.org/2000/svg'; + +function renderer(svg: SVGElement, encodings: Encoding[], options: Options): void { + const doc: Document = (options.xmlDocument as Document) || (typeof document !== 'undefined' ? document : undefined) as Document; + + var currentX = options.marginLeft!; + + prepareSVG(); + for (let i = 0; i < encodings.length; i++) { + var encoding = encodings[i]; + var encodingOptions = { ...options, ...encoding.options }; + + var group = createGroup(currentX, encodingOptions.marginTop!, svg); + + setGroupOptions(group, encodingOptions); + + drawSvgBarcode(group, encodingOptions, encoding); + drawSVGText(group, encodingOptions, encoding); + + currentX += encoding.width || 0; + } + + function prepareSVG() { + // Clear the SVG + while (svg.firstChild) { + svg.removeChild(svg.firstChild); + } + + calculateEncodingAttributes(encodings, options); + var totalWidth = getTotalWidthOfEncodings(encodings); + var maxHeight = getMaximumHeightOfEncodings(encodings); + + var width = totalWidth + options.marginLeft! + options.marginRight!; + setSvgAttributes(width, maxHeight); + + if (options.background) { + drawRect(0, 0, width, maxHeight, svg).setAttribute('style', 'fill:' + options.background + ';'); + } + } + + function drawSvgBarcode(parent: SVGElement, options: Options, encoding: Encoding) { + var binary = encoding.data; + + // Creates the barcode out of the encoded binary + var yFrom: number; + if (options.textPosition == 'top') { + yFrom = options.fontSize + options.textMargin; + } else { + yFrom = 0; + } + + var barWidth = 0; + var x = 0; + for (var b = 0; b < binary.length; b++) { + x = b * options.width + (encoding.barcodePadding || 0); + + if (binary[b] === '1') { + barWidth++; + } else if (barWidth > 0) { + drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent); + barWidth = 0; + } + } + + // Last draw is needed since the barcode ends with 1 + if (barWidth > 0) { + drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent); + } + } + + function drawSVGText(parent: SVGElement, options: Options, encoding: Encoding) { + var textElem = doc.createElementNS(svgns, 'text'); + + // Draw the text if displayValue is set + if (options.displayValue && encoding.text) { + var x: number, y: number; + + textElem.setAttribute('style', 'font:' + options.fontOptions + ' ' + options.fontSize + 'px ' + options.font); + + if (options.textPosition == 'top') { + y = options.fontSize - options.textMargin; + } else { + y = options.height + options.textMargin + options.fontSize; + } + + // Draw the text in the correct X depending on the textAlign option + if (options.textAlign == 'left' || (encoding.barcodePadding && encoding.barcodePadding > 0)) { + x = 0; + textElem.setAttribute('text-anchor', 'start'); + } else if (options.textAlign == 'right') { + x = (encoding.width || 0) - 1; + textElem.setAttribute('text-anchor', 'end'); + } + // In all other cases, center the text + else { + x = (encoding.width || 0) / 2; + textElem.setAttribute('text-anchor', 'middle'); + } + + textElem.setAttribute('x', x.toString()); + textElem.setAttribute('y', y.toString()); + + textElem.appendChild(doc.createTextNode(encoding.text)); + + parent.appendChild(textElem); + } + } + + function setSvgAttributes(width: number, height: number) { + svg.setAttribute('width', width + 'px'); + svg.setAttribute('height', height + 'px'); + svg.setAttribute('x', '0px'); + svg.setAttribute('y', '0px'); + svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); + + svg.setAttribute('xmlns', svgns); + svg.setAttribute('version', '1.1'); + + svg.setAttribute('style', 'transform: translate(0,0)'); + } + + function createGroup(x: number, y: number, parent: SVGElement): SVGElement { + var group = doc.createElementNS(svgns, 'g') as SVGElement; + group.setAttribute('transform', 'translate(' + x + ', ' + y + ')'); + + parent.appendChild(group); + + return group; + } + + function setGroupOptions(group: SVGElement, options: Options) { + group.setAttribute('style', 'fill:' + options.lineColor + ';'); + } + + function drawRect(x: number, y: number, width: number, height: number, parent: SVGElement): SVGElement { + var rect = doc.createElementNS(svgns, 'rect') as SVGElement; + + rect.setAttribute('x', x.toString()); + rect.setAttribute('y', y.toString()); + rect.setAttribute('width', width.toString()); + rect.setAttribute('height', height.toString()); + + parent.appendChild(rect); + + return rect; + } +} + +export default renderer; diff --git a/packages/renderer/svg/src/shared.ts b/packages/renderer/svg/src/shared.ts new file mode 100644 index 00000000..ade24741 --- /dev/null +++ b/packages/renderer/svg/src/shared.ts @@ -0,0 +1,93 @@ +import { Encoding, Options } from '@jsbarcode/core'; + +function getEncodingHeight(encoding: Encoding, options: Options): number { + return ( + options.height + + (options.displayValue && encoding.text && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + + options.marginTop! + + options.marginBottom! + ); +} + +function getBarcodePadding(textWidth: number, barcodeWidth: number, options: Options): number { + if (options.displayValue && barcodeWidth < textWidth) { + if (options.textAlign == 'center') { + return Math.floor((textWidth - barcodeWidth) / 2); + } else if (options.textAlign == 'left') { + return 0; + } else if (options.textAlign == 'right') { + return Math.floor(textWidth - barcodeWidth); + } + } + return 0; +} + +function calculateEncodingAttributes(encodings: Encoding[], barcodeOptions: Options, context?: CanvasRenderingContext2D): void { + for (let i = 0; i < encodings.length; i++) { + var encoding = encodings[i]; + var options = { ...barcodeOptions, ...encoding.options }; + + // Calculate the width of the encoding + var textWidth: number; + if (options.displayValue && encoding.text) { + textWidth = messureText(encoding.text, options, context); + } else { + textWidth = 0; + } + + var barcodeWidth = encoding.data.length * options.width; + encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth)); + + encoding.height = getEncodingHeight(encoding, options); + + encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options); + } +} + +function getTotalWidthOfEncodings(encodings: Encoding[]): number { + var totalWidth = 0; + for (let i = 0; i < encodings.length; i++) { + totalWidth += encodings[i].width || 0; + } + return totalWidth; +} + +function getMaximumHeightOfEncodings(encodings: Encoding[]): number { + var maxHeight = 0; + for (let i = 0; i < encodings.length; i++) { + if (encodings[i].height && encodings[i].height! > maxHeight) { + maxHeight = encodings[i].height!; + } + } + return maxHeight; +} + +function messureText(string: string, options: Options, context?: CanvasRenderingContext2D): number { + var ctx: CanvasRenderingContext2D | null = null; + + if (context) { + ctx = context; + } else if (typeof document !== 'undefined') { + ctx = document.createElement('canvas').getContext('2d'); + } + + if (!ctx) { + // If the text cannot be messured we will return 0. + // This will make some barcode with big text render incorrectly + return 0; + } + ctx.font = options.fontOptions + ' ' + options.fontSize + 'px ' + options.font; + + // Calculate the width of the encoding + var size = ctx.measureText(string).width; + + return size; +} + +export { + getMaximumHeightOfEncodings, + getEncodingHeight, + getBarcodePadding, + calculateEncodingAttributes, + getTotalWidthOfEncodings +}; diff --git a/packages/renderer/svg/tsconfig.esm.json b/packages/renderer/svg/tsconfig.esm.json new file mode 100644 index 00000000..04539e63 --- /dev/null +++ b/packages/renderer/svg/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "outDir": "./dist/esm", + "moduleResolution": "node" + }, + "references": [ + { "path": "../../core/tsconfig.esm.json" } + ] +} \ No newline at end of file diff --git a/packages/renderer/svg/tsconfig.json b/packages/renderer/svg/tsconfig.json new file mode 100644 index 00000000..685c1dc5 --- /dev/null +++ b/packages/renderer/svg/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist/cjs", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "references": [ + { "path": "../../core" } + ] +} diff --git a/src/JsBarcode.js b/src/JsBarcode.js deleted file mode 100644 index 177d9dd4..00000000 --- a/src/JsBarcode.js +++ /dev/null @@ -1,225 +0,0 @@ -// Import all the barcodes -import barcodes from './barcodes/'; - -// Help functions -import merge from './help/merge.js'; -import linearizeEncodings from './help/linearizeEncodings.js'; -import fixOptions from './help/fixOptions.js'; -import getRenderProperties from './help/getRenderProperties.js'; -import optionsFromStrings from './help/optionsFromStrings.js'; - -// Exceptions -import ErrorHandler from './exceptions/ErrorHandler.js'; -import {InvalidInputException, NoElementException} from './exceptions/exceptions.js'; - -// Default values -import defaults from './options/defaults.js'; - -// The protype of the object returned from the JsBarcode() call -let API = function(){}; - -// The first call of the library API -// Will return an object with all barcodes calls and the data that is used -// by the renderers -let JsBarcode = function(element, text, options){ - var api = new API(); - - if(typeof element === "undefined"){ - throw Error("No element to render on was provided."); - } - - // Variables that will be pased through the API calls - api._renderProperties = getRenderProperties(element); - api._encodings = []; - api._options = defaults; - api._errorHandler = new ErrorHandler(api); - - // If text is set, use the simple syntax (render the barcode directly) - if(typeof text !== "undefined"){ - options = options || {}; - - if(!options.format){ - options.format = autoSelectBarcode(); - } - - api.options(options)[options.format](text, options).render(); - } - - return api; -}; - -// To make tests work TODO: remove -JsBarcode.getModule = function(name){ - return barcodes[name]; -}; - -// Register all barcodes -for(var name in barcodes){ - if(barcodes.hasOwnProperty(name)){ // Security check if the propery is a prototype property - registerBarcode(barcodes, name); - } -} -function registerBarcode(barcodes, name){ - API.prototype[name] = - API.prototype[name.toUpperCase()] = - API.prototype[name.toLowerCase()] = - function(text, options){ - var api = this; - return api._errorHandler.wrapBarcodeCall(function(){ - // Ensure text is options.text - options.text = typeof options.text === 'undefined' ? undefined : '' + options.text; - - var newOptions = merge(api._options, options); - newOptions = optionsFromStrings(newOptions); - var Encoder = barcodes[name]; - var encoded = encode(text, Encoder, newOptions); - api._encodings.push(encoded); - - return api; - }); - }; -} - -// encode() handles the Encoder call and builds the binary string to be rendered -function encode(text, Encoder, options){ - // Ensure that text is a string - text = "" + text; - - var encoder = new Encoder(text, options); - - // If the input is not valid for the encoder, throw error. - // If the valid callback option is set, call it instead of throwing error - if(!encoder.valid()){ - throw new InvalidInputException(encoder.constructor.name, text); - } - - // Make a request for the binary data (and other infromation) that should be rendered - var encoded = encoder.encode(); - - // Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] - // Convert to [1-1, 1-2, 2, 3-1, 3-2] - encoded = linearizeEncodings(encoded); - - // Merge - for(let i = 0; i < encoded.length; i++){ - encoded[i].options = merge(options, encoded[i].options); - } - - return encoded; -} - -function autoSelectBarcode(){ - // If CODE128 exists. Use it - if(barcodes["CODE128"]){ - return "CODE128"; - } - - // Else, take the first (probably only) barcode - return Object.keys(barcodes)[0]; -} - -// Sets global encoder options -// Added to the api by the JsBarcode function -API.prototype.options = function(options){ - this._options = merge(this._options, options); - return this; -}; - -// Will create a blank space (usually in between barcodes) -API.prototype.blank = function(size){ - const zeroes = new Array(size + 1).join("0"); - this._encodings.push({data: zeroes}); - return this; -}; - -// Initialize JsBarcode on all HTML elements defined. -API.prototype.init = function(){ - // Should do nothing if no elements where found - if(!this._renderProperties){ - return; - } - - // Make sure renderProperies is an array - if(!Array.isArray(this._renderProperties)){ - this._renderProperties = [this._renderProperties]; - } - - var renderProperty; - for(let i in this._renderProperties){ - renderProperty = this._renderProperties[i]; - var options = merge(this._options, renderProperty.options); - - if(options.format == "auto"){ - options.format = autoSelectBarcode(); - } - - this._errorHandler.wrapBarcodeCall(function(){ - var text = options.value; - var Encoder = barcodes[options.format.toUpperCase()]; - var encoded = encode(text, Encoder, options); - - render(renderProperty, encoded, options); - }); - } -}; - - -// The render API call. Calls the real render function. -API.prototype.render = function(){ - if(!this._renderProperties){ - throw new NoElementException(); - } - - if(Array.isArray(this._renderProperties)){ - for(var i = 0; i < this._renderProperties.length; i++){ - render(this._renderProperties[i], this._encodings, this._options); - } - } - else{ - render(this._renderProperties, this._encodings, this._options); - } - - return this; -}; - -API.prototype._defaults = defaults; - -// Prepares the encodings and calls the renderer -function render(renderProperties, encodings, options){ - encodings = linearizeEncodings(encodings); - - for(let i = 0; i < encodings.length; i++){ - encodings[i].options = merge(options, encodings[i].options); - fixOptions(encodings[i].options); - } - - fixOptions(options); - - var Renderer = renderProperties.renderer; - var renderer = new Renderer(renderProperties.element, encodings, options); - renderer.render(); - - if(renderProperties.afterRender){ - renderProperties.afterRender(); - } -} - -// Export to browser -if(typeof window !== "undefined"){ - window.JsBarcode = JsBarcode; -} - -// Export to jQuery -/*global jQuery */ -if (typeof jQuery !== 'undefined') { - jQuery.fn.JsBarcode = function(content, options){ - var elementArray = []; - jQuery(this).each(function() { - elementArray.push(this); - }); - return JsBarcode(elementArray, content, options); - }; -} - -// Export to commonJS -module.exports = JsBarcode; diff --git a/src/barcodes/Barcode.js b/src/barcodes/Barcode.js deleted file mode 100644 index 89a55e0a..00000000 --- a/src/barcodes/Barcode.js +++ /dev/null @@ -1,9 +0,0 @@ -class Barcode{ - constructor(data, options){ - this.data = data; - this.text = options.text || data; - this.options = options; - } -} - -export default Barcode; diff --git a/src/barcodes/CODE128/CODE128.js b/src/barcodes/CODE128/CODE128.js deleted file mode 100644 index dfd929b1..00000000 --- a/src/barcodes/CODE128/CODE128.js +++ /dev/null @@ -1,127 +0,0 @@ -import Barcode from "../Barcode.js"; -import { SHIFT, SET_A, SET_B, MODULO, STOP, FNC1, SET_BY_CODE, SWAP, BARS } from './constants'; - -// This is the master class, -// it does require the start code to be included in the string -class CODE128 extends Barcode { - constructor(data, options) { - super(data.substring(1), options); - - // Get array of ascii codes from data - this.bytes = data.split('') - .map(char => char.charCodeAt(0)); - } - - valid() { - // ASCII value ranges 0-127, 200-211 - return /^[\x00-\x7F\xC8-\xD3]+$/.test(this.data); - } - - // The public encoding function - encode() { - const bytes = this.bytes; - // Remove the start code from the bytes and set its index - const startIndex = bytes.shift() - 105; - // Get start set by index - const startSet = SET_BY_CODE[startIndex]; - - if (startSet === undefined) { - throw new RangeError('The encoding does not start with a start character.'); - } - - if (this.shouldEncodeAsEan128() === true) { - bytes.unshift(FNC1); - } - - // Start encode with the right type - const encodingResult = CODE128.next(bytes, 1, startSet); - - return { - text: - this.text === this.data - ? this.text.replace(/[^\x20-\x7E]/g, '') - : this.text, - data: - // Add the start bits - CODE128.getBar(startIndex) + - // Add the encoded bits - encodingResult.result + - // Add the checksum - CODE128.getBar((encodingResult.checksum + startIndex) % MODULO) + - // Add the end bits - CODE128.getBar(STOP) - }; - } - - // GS1-128/EAN-128 - shouldEncodeAsEan128() { - let isEAN128 = this.options.ean128 || false; - if (typeof isEAN128 === 'string') { - isEAN128 = isEAN128.toLowerCase() === 'true'; - } - return isEAN128; - } - - // Get a bar symbol by index - static getBar(index) { - return BARS[index] ? BARS[index].toString() : ''; - } - - // Correct an index by a set and shift it from the bytes array - static correctIndex(bytes, set) { - if (set === SET_A) { - const charCode = bytes.shift(); - return charCode < 32 ? charCode + 64 : charCode - 32; - } else if (set === SET_B) { - return bytes.shift() - 32; - } else { - return (bytes.shift() - 48) * 10 + bytes.shift() - 48; - } - } - - static next(bytes, pos, set) { - if (!bytes.length) { - return { result: '', checksum: 0 }; - } - - let nextCode, index; - - // Special characters - if (bytes[0] >= 200){ - index = bytes.shift() - 105; - const nextSet = SWAP[index]; - - // Swap to other set - if (nextSet !== undefined) { - nextCode = CODE128.next(bytes, pos + 1, nextSet); - } - // Continue on current set but encode a special character - else { - // Shift - if ((set === SET_A || set === SET_B) && index === SHIFT) { - // Convert the next character so that is encoded correctly - bytes[0] = (set === SET_A) - ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] - : bytes[0] < 32 ? bytes[0] + 96 : bytes[0]; - } - nextCode = CODE128.next(bytes, pos + 1, set); - } - } - // Continue encoding - else { - index = CODE128.correctIndex(bytes, set); - nextCode = CODE128.next(bytes, pos + 1, set); - } - - // Get the correct binary encoding and calculate the weight - const enc = CODE128.getBar(index); - const weight = index * pos; - - return { - result: enc + nextCode.result, - checksum: weight + nextCode.checksum - }; - } -} - -export default CODE128; diff --git a/src/barcodes/CODE128/CODE128A.js b/src/barcodes/CODE128/CODE128A.js deleted file mode 100644 index c8e9af5d..00000000 --- a/src/barcodes/CODE128/CODE128A.js +++ /dev/null @@ -1,14 +0,0 @@ -import CODE128 from './CODE128.js'; -import { A_START_CHAR, A_CHARS } from './constants'; - -class CODE128A extends CODE128 { - constructor(string, options) { - super(A_START_CHAR + string, options); - } - - valid() { - return (new RegExp(`^${A_CHARS}+$`)).test(this.data); - } -} - -export default CODE128A; diff --git a/src/barcodes/CODE128/CODE128B.js b/src/barcodes/CODE128/CODE128B.js deleted file mode 100644 index 00563152..00000000 --- a/src/barcodes/CODE128/CODE128B.js +++ /dev/null @@ -1,14 +0,0 @@ -import CODE128 from './CODE128.js'; -import { B_START_CHAR, B_CHARS } from './constants'; - -class CODE128B extends CODE128 { - constructor(string, options) { - super(B_START_CHAR + string, options); - } - - valid() { - return (new RegExp(`^${B_CHARS}+$`)).test(this.data); - } -} - -export default CODE128B; diff --git a/src/barcodes/CODE128/CODE128C.js b/src/barcodes/CODE128/CODE128C.js deleted file mode 100644 index db33269e..00000000 --- a/src/barcodes/CODE128/CODE128C.js +++ /dev/null @@ -1,14 +0,0 @@ -import CODE128 from './CODE128.js'; -import { C_START_CHAR, C_CHARS } from './constants'; - -class CODE128C extends CODE128 { - constructor(string, options) { - super(C_START_CHAR + string, options); - } - - valid() { - return (new RegExp(`^${C_CHARS}+$`)).test(this.data); - } -} - -export default CODE128C; diff --git a/src/barcodes/CODE128/CODE128_AUTO.js b/src/barcodes/CODE128/CODE128_AUTO.js deleted file mode 100644 index 6b006433..00000000 --- a/src/barcodes/CODE128/CODE128_AUTO.js +++ /dev/null @@ -1,15 +0,0 @@ -import CODE128 from './CODE128'; -import autoSelectModes from './auto'; - -class CODE128AUTO extends CODE128{ - constructor(data, options){ - // ASCII value ranges 0-127, 200-211 - if (/^[\x00-\x7F\xC8-\xD3]+$/.test(data)) { - super(autoSelectModes(data), options); - } else{ - super(data, options); - } - } -} - -export default CODE128AUTO; diff --git a/src/barcodes/CODE128/constants.js b/src/barcodes/CODE128/constants.js deleted file mode 100644 index 10846cae..00000000 --- a/src/barcodes/CODE128/constants.js +++ /dev/null @@ -1,71 +0,0 @@ -// constants for internal usage -export const SET_A = 0; -export const SET_B = 1; -export const SET_C = 2; - -// Special characters -export const SHIFT = 98; -export const START_A = 103; -export const START_B = 104; -export const START_C = 105; -export const MODULO = 103; -export const STOP = 106; -export const FNC1 = 207; - -// Get set by start code -export const SET_BY_CODE = { - [START_A]: SET_A, - [START_B]: SET_B, - [START_C]: SET_C, -}; - -// Get next set by code -export const SWAP = { - 101: SET_A, - 100: SET_B, - 99: SET_C, -}; - -export const A_START_CHAR = String.fromCharCode(208); // START_A + 105 -export const B_START_CHAR = String.fromCharCode(209); // START_B + 105 -export const C_START_CHAR = String.fromCharCode(210); // START_C + 105 - -// 128A (Code Set A) -// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4 -export const A_CHARS = "[\x00-\x5F\xC8-\xCF]"; - -// 128B (Code Set B) -// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4 -export const B_CHARS = "[\x20-\x7F\xC8-\xCF]"; - -// 128C (Code Set C) -// 00–99 (encodes two digits with a single code point) and FNC1 -export const C_CHARS = "(\xCF*[0-9]{2}\xCF*)"; - -// CODE128 includes 107 symbols: -// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one) -// Each symbol consist of three black bars (1) and three white spaces (0). -export const BARS = [ - 11011001100, 11001101100, 11001100110, 10010011000, 10010001100, - 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, - 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, - 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, - 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, - 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, - 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, - 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, - 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, - 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, - 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, - 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, - 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, - 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, - 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, - 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, - 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, - 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, - 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, - 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, - 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, - 11010011100, 1100011101011 -]; diff --git a/src/barcodes/CODE128/index.js b/src/barcodes/CODE128/index.js deleted file mode 100644 index e45411d6..00000000 --- a/src/barcodes/CODE128/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import CODE128 from './CODE128_AUTO.js'; -import CODE128A from './CODE128A.js'; -import CODE128B from './CODE128B.js'; -import CODE128C from './CODE128C.js'; - -export {CODE128, CODE128A, CODE128B, CODE128C}; diff --git a/src/barcodes/CODE39/index.js b/src/barcodes/CODE39/index.js deleted file mode 100644 index e793a6ad..00000000 --- a/src/barcodes/CODE39/index.js +++ /dev/null @@ -1,105 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/Code_39#Encoding - -import Barcode from "../Barcode.js"; - -class CODE39 extends Barcode { - constructor(data, options){ - data = data.toUpperCase(); - - // Calculate mod43 checksum if enabled - if(options.mod43){ - data += getCharacter(mod43checksum(data)); - } - - super(data, options); - } - - encode(){ - // First character is always a * - var result = getEncoding("*"); - - // Take every character and add the binary representation to the result - for(let i = 0; i < this.data.length; i++){ - result += getEncoding(this.data[i]) + "0"; - } - - // Last character is always a * - result += getEncoding("*"); - - return { - data: result, - text: this.text - }; - } - - valid(){ - return this.data.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/) !== -1; - } -} - - - - - - -// All characters. The position in the array is the (checksum) value -var characters = [ - "0", "1", "2", "3", - "4", "5", "6", "7", - "8", "9", "A", "B", - "C", "D", "E", "F", - "G", "H", "I", "J", - "K", "L", "M", "N", - "O", "P", "Q", "R", - "S", "T", "U", "V", - "W", "X", "Y", "Z", - "-", ".", " ", "$", - "/", "+", "%", "*" -]; - -// The decimal representation of the characters, is converted to the -// corresponding binary with the getEncoding function -var encodings = [ - 20957, 29783, 23639, 30485, - 20951, 29813, 23669, 20855, - 29789, 23645, 29975, 23831, - 30533, 22295, 30149, 24005, - 21623, 29981, 23837, 22301, - 30023, 23879, 30545, 22343, - 30161, 24017, 21959, 30065, - 23921, 22385, 29015, 18263, - 29141, 17879, 29045, 18293, - 17783, 29021, 18269, 17477, - 17489, 17681, 20753, 35770 -]; - -// Get the binary representation of a character by converting the encodings -// from decimal to binary -function getEncoding(character){ - return getBinary(characterValue(character)); -} - -function getBinary(characterValue){ - return encodings[characterValue].toString(2); -} - -function getCharacter(characterValue){ - return characters[characterValue]; -} - -function characterValue(character){ - return characters.indexOf(character); -} - -function mod43checksum(data){ - var checksum = 0; - for(let i = 0; i < data.length; i++){ - checksum += characterValue(data[i]); - } - - checksum = checksum % 43; - return checksum; -} - -export {CODE39}; diff --git a/src/barcodes/EAN_UPC/EAN.js b/src/barcodes/EAN_UPC/EAN.js deleted file mode 100644 index b6260cfb..00000000 --- a/src/barcodes/EAN_UPC/EAN.js +++ /dev/null @@ -1,72 +0,0 @@ -import { SIDE_BIN, MIDDLE_BIN } from './constants'; -import encode from './encoder'; -import Barcode from '../Barcode'; - -// Base class for EAN8 & EAN13 -class EAN extends Barcode { - - constructor(data, options) { - super(data, options); - - // Make sure the font is not bigger than the space between the guard bars - this.fontSize = !options.flat && options.fontSize > options.width * 10 - ? options.width * 10 - : options.fontSize; - - // Make the guard bars go down half the way of the text - this.guardHeight = options.height + this.fontSize / 2 + options.textMargin; - } - - encode() { - return this.options.flat - ? this.encodeFlat() - : this.encodeGuarded(); - } - - leftText(from, to) { - return this.text.substr(from, to); - } - - leftEncode(data, structure) { - return encode(data, structure); - } - - rightText(from, to) { - return this.text.substr(from, to); - } - - rightEncode(data, structure) { - return encode(data, structure); - } - - encodeGuarded() { - const textOptions = { fontSize: this.fontSize }; - const guardOptions = { height: this.guardHeight }; - - return [ - { data: SIDE_BIN, options: guardOptions }, - { data: this.leftEncode(), text: this.leftText(), options: textOptions }, - { data: MIDDLE_BIN, options: guardOptions }, - { data: this.rightEncode(), text: this.rightText(), options: textOptions }, - { data: SIDE_BIN, options: guardOptions }, - ]; - } - - encodeFlat() { - const data = [ - SIDE_BIN, - this.leftEncode(), - MIDDLE_BIN, - this.rightEncode(), - SIDE_BIN - ]; - - return { - data: data.join(''), - text: this.text - }; - } - -} - -export default EAN; diff --git a/src/barcodes/EAN_UPC/EAN13.js b/src/barcodes/EAN_UPC/EAN13.js deleted file mode 100644 index dc82dd9f..00000000 --- a/src/barcodes/EAN_UPC/EAN13.js +++ /dev/null @@ -1,90 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode - -import { EAN13_STRUCTURE } from './constants'; -import EAN from './EAN'; - -// Calculate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit -const checksum = (number) => { - const res = number - .substr(0, 12) - .split('') - .map((n) => +n) - .reduce((sum, a, idx) => ( - idx % 2 ? sum + a * 3 : sum + a - ), 0); - - return (10 - (res % 10)) % 10; -}; - -class EAN13 extends EAN { - - constructor(data, options) { - // Add checksum if it does not exist - if (data.search(/^[0-9]{12}$/) !== -1) { - data += checksum(data); - } - - super(data, options); - - // Adds a last character to the end of the barcode - this.lastChar = options.lastChar; - } - - valid() { - return ( - this.data.search(/^[0-9]{13}$/) !== -1 && - +this.data[12] === checksum(this.data) - ); - } - - leftText() { - return super.leftText(1, 6); - } - - leftEncode() { - const data = this.data.substr(1, 6); - const structure = EAN13_STRUCTURE[this.data[0]]; - return super.leftEncode(data, structure); - } - - rightText() { - return super.rightText(7, 6); - } - - rightEncode() { - const data = this.data.substr(7, 6); - return super.rightEncode(data, 'RRRRRR'); - } - - // The "standard" way of printing EAN13 barcodes with guard bars - encodeGuarded() { - const data = super.encodeGuarded(); - - // Extend data with left digit & last character - if (this.options.displayValue) { - data.unshift({ - data: '000000000000', - text: this.text.substr(0, 1), - options: { textAlign: 'left', fontSize: this.fontSize } - }); - - if (this.options.lastChar) { - data.push({ - data: '00' - }); - data.push({ - data: '00000', - text: this.options.lastChar, - options: { fontSize: this.fontSize } - }); - } - } - - return data; - } - -} - -export default EAN13; diff --git a/src/barcodes/EAN_UPC/EAN2.js b/src/barcodes/EAN_UPC/EAN2.js deleted file mode 100644 index 672ee8e4..00000000 --- a/src/barcodes/EAN_UPC/EAN2.js +++ /dev/null @@ -1,30 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_2#Encoding - -import { EAN2_STRUCTURE } from './constants'; -import encode from './encoder'; -import Barcode from '../Barcode'; - -class EAN2 extends Barcode { - - constructor(data, options) { - super(data, options); - } - - valid() { - return this.data.search(/^[0-9]{2}$/) !== -1; - } - - encode(){ - // Choose the structure based on the number mod 4 - const structure = EAN2_STRUCTURE[parseInt(this.data) % 4]; - return { - // Start bits + Encode the two digits with 01 in between - data: '1011' + encode(this.data, structure, '01'), - text: this.text - }; - } - -} - -export default EAN2; diff --git a/src/barcodes/EAN_UPC/EAN5.js b/src/barcodes/EAN_UPC/EAN5.js deleted file mode 100644 index 79b89e56..00000000 --- a/src/barcodes/EAN_UPC/EAN5.js +++ /dev/null @@ -1,40 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/EAN_5#Encoding - -import { EAN5_STRUCTURE } from './constants'; -import encode from './encoder'; -import Barcode from '../Barcode'; - -const checksum = (data) => { - const result = data - .split('') - .map(n => +n) - .reduce((sum, a, idx) => { - return idx % 2 - ? sum + a * 9 - : sum + a * 3; - }, 0); - return result % 10; -}; - -class EAN5 extends Barcode { - - constructor(data, options) { - super(data, options); - } - - valid() { - return this.data.search(/^[0-9]{5}$/) !== -1; - } - - encode() { - const structure = EAN5_STRUCTURE[checksum(this.data)]; - return { - data: '1011' + encode(this.data, structure, '01'), - text: this.text - }; - } - -} - -export default EAN5; diff --git a/src/barcodes/EAN_UPC/EAN8.js b/src/barcodes/EAN_UPC/EAN8.js deleted file mode 100644 index adf608ca..00000000 --- a/src/barcodes/EAN_UPC/EAN8.js +++ /dev/null @@ -1,57 +0,0 @@ -// Encoding documentation: -// http://www.barcodeisland.com/ean8.phtml - -import EAN from './EAN'; - -// Calculate the checksum digit -const checksum = (number) => { - const res = number - .substr(0, 7) - .split('') - .map((n) => +n) - .reduce((sum, a, idx) => ( - idx % 2 ? sum + a : sum + a * 3 - ), 0); - - return (10 - (res % 10)) % 10; -}; - -class EAN8 extends EAN { - - constructor(data, options) { - // Add checksum if it does not exist - if (data.search(/^[0-9]{7}$/) !== -1) { - data += checksum(data); - } - - super(data, options); - } - - valid() { - return ( - this.data.search(/^[0-9]{8}$/) !== -1 && - +this.data[7] === checksum(this.data) - ); - } - - leftText() { - return super.leftText(0, 4); - } - - leftEncode() { - const data = this.data.substr(0, 4); - return super.leftEncode(data, 'LLLL'); - } - - rightText() { - return super.rightText(4, 4); - } - - rightEncode() { - const data = this.data.substr(4, 4); - return super.rightEncode(data, 'RRRR'); - } - -} - -export default EAN8; diff --git a/src/barcodes/EAN_UPC/UPC.js b/src/barcodes/EAN_UPC/UPC.js deleted file mode 100644 index 8e36bcb5..00000000 --- a/src/barcodes/EAN_UPC/UPC.js +++ /dev/null @@ -1,132 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding - -import encode from './encoder'; -import Barcode from "../Barcode.js"; - -class UPC extends Barcode{ - constructor(data, options){ - // Add checksum if it does not exist - if(data.search(/^[0-9]{11}$/) !== -1){ - data += checksum(data); - } - - super(data, options); - - this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if(options.fontSize > options.width * 10){ - this.fontSize = options.width * 10; - } - else{ - this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - this.guardHeight = options.height + this.fontSize / 2 + options.textMargin; - } - - valid(){ - return this.data.search(/^[0-9]{12}$/) !== -1 && - this.data[11] == checksum(this.data); - } - - encode(){ - if(this.options.flat){ - return this.flatEncoding(); - } - else{ - return this.guardedEncoding(); - } - } - - flatEncoding(){ - var result = ""; - - result += "101"; - result += encode(this.data.substr(0, 6), "LLLLLL"); - result += "01010"; - result += encode(this.data.substr(6, 6), "RRRRRR"); - result += "101"; - - return { - data: result, - text: this.text - }; - } - - guardedEncoding(){ - var result = []; - - // Add the first digit - if(this.displayValue){ - result.push({ - data: "00000000", - text: this.text.substr(0, 1), - options: {textAlign: "left", fontSize: this.fontSize} - }); - } - - // Add the guard bars - result.push({ - data: "101" + encode(this.data[0], "L"), - options: {height: this.guardHeight} - }); - - // Add the left side - result.push({ - data: encode(this.data.substr(1, 5), "LLLLL"), - text: this.text.substr(1, 5), - options: {fontSize: this.fontSize} - }); - - // Add the middle bits - result.push({ - data: "01010", - options: {height: this.guardHeight} - }); - - // Add the right side - result.push({ - data: encode(this.data.substr(6, 5), "RRRRR"), - text: this.text.substr(6, 5), - options: {fontSize: this.fontSize} - }); - - // Add the end bits - result.push({ - data: encode(this.data[11], "R") + "101", - options: {height: this.guardHeight} - }); - - // Add the last digit - if(this.displayValue){ - result.push({ - data: "00000000", - text: this.text.substr(11, 1), - options: {textAlign: "right", fontSize: this.fontSize} - }); - } - - return result; - } -} - -// Calulate the checksum digit -// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit -export function checksum(number){ - var result = 0; - - var i; - for(i = 1; i < 11; i += 2){ - result += parseInt(number[i]); - } - for(i = 0; i < 11; i += 2){ - result += parseInt(number[i]) * 3; - } - - return (10 - (result % 10)) % 10; -} - -export default UPC; diff --git a/src/barcodes/EAN_UPC/UPCE.js b/src/barcodes/EAN_UPC/UPCE.js deleted file mode 100644 index 3b9b3607..00000000 --- a/src/barcodes/EAN_UPC/UPCE.js +++ /dev/null @@ -1,177 +0,0 @@ -// Encoding documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding -// -// UPC-E documentation: -// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E - -import encode from './encoder'; -import Barcode from "../Barcode.js"; -import { checksum } from './UPC.js'; - -const EXPANSIONS = [ - "XX00000XXX", - "XX10000XXX", - "XX20000XXX", - "XXX00000XX", - "XXXX00000X", - "XXXXX00005", - "XXXXX00006", - "XXXXX00007", - "XXXXX00008", - "XXXXX00009" -]; - -const PARITIES = [ - ["EEEOOO", "OOOEEE"], - ["EEOEOO", "OOEOEE"], - ["EEOOEO", "OOEEOE"], - ["EEOOOE", "OOEEEO"], - ["EOEEOO", "OEOOEE"], - ["EOOEEO", "OEEOOE"], - ["EOOOEE", "OEEEOO"], - ["EOEOEO", "OEOEOE"], - ["EOEOOE", "OEOEEO"], - ["EOOEOE", "OEEOEO"] -]; - -class UPCE extends Barcode{ - constructor(data, options){ - // Code may be 6 or 8 digits; - // A 7 digit code is ambiguous as to whether the extra digit - // is a UPC-A check or number system digit. - super(data, options); - this.isValid = false; - if(data.search(/^[0-9]{6}$/) !== -1){ - this.middleDigits = data; - this.upcA = expandToUPCA(data, "0"); - this.text = options.text || - `${this.upcA[0]}${data}${this.upcA[this.upcA.length - 1]}`; - this.isValid = true; - } - else if(data.search(/^[01][0-9]{7}$/) !== -1){ - this.middleDigits = data.substring(1, data.length - 1); - this.upcA = expandToUPCA(this.middleDigits, data[0]); - - if(this.upcA[this.upcA.length - 1] === data[data.length - 1]){ - this.isValid = true; - } - else{ - // checksum mismatch - return; - } - } - else{ - return; - } - - this.displayValue = options.displayValue; - - // Make sure the font is not bigger than the space between the guard bars - if(options.fontSize > options.width * 10){ - this.fontSize = options.width * 10; - } - else{ - this.fontSize = options.fontSize; - } - - // Make the guard bars go down half the way of the text - this.guardHeight = options.height + this.fontSize / 2 + options.textMargin; - } - - valid(){ - return this.isValid; - } - - encode(){ - if(this.options.flat){ - return this.flatEncoding(); - } - else{ - return this.guardedEncoding(); - } - } - - flatEncoding(){ - var result = ""; - - result += "101"; - result += this.encodeMiddleDigits(); - result += "010101"; - - return { - data: result, - text: this.text - }; - } - - guardedEncoding(){ - var result = []; - - // Add the UPC-A number system digit beneath the quiet zone - if(this.displayValue){ - result.push({ - data: "00000000", - text: this.text[0], - options: {textAlign: "left", fontSize: this.fontSize} - }); - } - - // Add the guard bars - result.push({ - data: "101", - options: {height: this.guardHeight} - }); - - // Add the 6 UPC-E digits - result.push({ - data: this.encodeMiddleDigits(), - text: this.text.substring(1, 7), - options: {fontSize: this.fontSize} - }); - - // Add the end bits - result.push({ - data: "010101", - options: {height: this.guardHeight} - }); - - // Add the UPC-A check digit beneath the quiet zone - if(this.displayValue){ - result.push({ - data: "00000000", - text: this.text[7], - options: {textAlign: "right", fontSize: this.fontSize} - }); - } - - return result; - } - - encodeMiddleDigits() { - const numberSystem = this.upcA[0]; - const checkDigit = this.upcA[this.upcA.length - 1]; - const parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)]; - return encode(this.middleDigits, parity); - } -} - -function expandToUPCA(middleDigits, numberSystem) { - const lastUpcE = parseInt(middleDigits[middleDigits.length - 1]); - const expansion = EXPANSIONS[lastUpcE]; - - let result = ""; - let digitIndex = 0; - for(let i = 0; i < expansion.length; i++) { - let c = expansion[i]; - if (c === 'X') { - result += middleDigits[digitIndex++]; - } else { - result += c; - } - } - - result = `${numberSystem}${result}`; - return `${result}${checksum(result)}`; -} - -export default UPCE; diff --git a/src/barcodes/EAN_UPC/constants.js b/src/barcodes/EAN_UPC/constants.js deleted file mode 100644 index abbe38fc..00000000 --- a/src/barcodes/EAN_UPC/constants.js +++ /dev/null @@ -1,41 +0,0 @@ -// Standard start end and middle bits -export const SIDE_BIN = '101'; -export const MIDDLE_BIN = '01010'; - -export const BINARIES = { - 'L': [ // The L (left) type of encoding - '0001101', '0011001', '0010011', '0111101', '0100011', - '0110001', '0101111', '0111011', '0110111', '0001011' - ], - 'G': [ // The G type of encoding - '0100111', '0110011', '0011011', '0100001', '0011101', - '0111001', '0000101', '0010001', '0001001', '0010111' - ], - 'R': [ // The R (right) type of encoding - '1110010', '1100110', '1101100', '1000010', '1011100', - '1001110', '1010000', '1000100', '1001000', '1110100' - ], - 'O': [ // The O (odd) encoding for UPC-E - '0001101', '0011001', '0010011', '0111101', '0100011', - '0110001', '0101111', '0111011', '0110111', '0001011' - ], - 'E': [ // The E (even) encoding for UPC-E - '0100111', '0110011', '0011011', '0100001', '0011101', - '0111001', '0000101', '0010001', '0001001', '0010111' - ] -}; - -// Define the EAN-2 structure -export const EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG']; - -// Define the EAN-5 structure -export const EAN5_STRUCTURE = [ - 'GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', - 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG' -]; - -// Define the EAN-13 structure -export const EAN13_STRUCTURE = [ - 'LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', - 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL' -]; diff --git a/src/barcodes/EAN_UPC/encoder.js b/src/barcodes/EAN_UPC/encoder.js deleted file mode 100644 index e66a3127..00000000 --- a/src/barcodes/EAN_UPC/encoder.js +++ /dev/null @@ -1,20 +0,0 @@ -import { BINARIES } from './constants'; - -// Encode data string -const encode = (data, structure, separator) => { - let encoded = data - .split('') - .map((val, idx) => BINARIES[structure[idx]]) - .map((val, idx) => val ? val[data[idx]] : ''); - - if (separator) { - const last = data.length - 1; - encoded = encoded.map((val, idx) => ( - idx < last ? val + separator : val - )); - } - - return encoded.join(''); -}; - -export default encode; diff --git a/src/barcodes/EAN_UPC/index.js b/src/barcodes/EAN_UPC/index.js deleted file mode 100644 index 34cad19b..00000000 --- a/src/barcodes/EAN_UPC/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import EAN13 from './EAN13.js'; -import EAN8 from './EAN8.js'; -import EAN5 from './EAN5.js'; -import EAN2 from './EAN2.js'; -import UPC from './UPC.js'; -import UPCE from './UPCE.js'; - -export {EAN13, EAN8, EAN5, EAN2, UPC, UPCE}; diff --git a/src/barcodes/GenericBarcode/index.js b/src/barcodes/GenericBarcode/index.js deleted file mode 100644 index c9c1f0e3..00000000 --- a/src/barcodes/GenericBarcode/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import Barcode from "../Barcode.js"; - -class GenericBarcode extends Barcode{ - constructor(data, options){ - super(data, options); // Sets this.data and this.text - } - - // Return the corresponding binary numbers for the data provided - encode(){ - return { - data: "10101010101010101010101010101010101010101", - text: this.text - }; - } - - // Resturn true/false if the string provided is valid for this encoder - valid(){ - return true; - } -} - -export {GenericBarcode}; diff --git a/src/barcodes/ITF/ITF.js b/src/barcodes/ITF/ITF.js deleted file mode 100644 index 14a7caee..00000000 --- a/src/barcodes/ITF/ITF.js +++ /dev/null @@ -1,37 +0,0 @@ -import { START_BIN, END_BIN, BINARIES } from './constants'; -import Barcode from '../Barcode'; - -class ITF extends Barcode { - - valid() { - return this.data.search(/^([0-9]{2})+$/) !== -1; - } - - encode() { - // Calculate all the digit pairs - const encoded = this.data - .match(/.{2}/g) - .map(pair => this.encodePair(pair)) - .join(''); - - return { - data: START_BIN + encoded + END_BIN, - text: this.text - }; - } - - // Calculate the data of a number pair - encodePair(pair) { - const second = BINARIES[pair[1]]; - - return BINARIES[pair[0]] - .split('') - .map((first, idx) => ( - (first === '1' ? '111' : '1') + - (second[idx] === '1' ? '000' : '0') - )) - .join(''); - } -} - -export default ITF; diff --git a/src/barcodes/ITF/ITF14.js b/src/barcodes/ITF/ITF14.js deleted file mode 100644 index 3ff25ff8..00000000 --- a/src/barcodes/ITF/ITF14.js +++ /dev/null @@ -1,33 +0,0 @@ -import ITF from './ITF'; - -// Calculate the checksum digit -const checksum = (data) => { - const res = data - .substr(0, 13) - .split('') - .map(num => parseInt(num, 10)) - .reduce((sum, n, idx) => sum + (n * (3 - (idx % 2) * 2)), 0); - - return Math.ceil(res / 10) * 10 - res; -}; - -class ITF14 extends ITF { - - constructor(data, options) { - // Add checksum if it does not exist - if (data.search(/^[0-9]{13}$/) !== -1) { - data += checksum(data); - } - super(data, options); - } - - valid() { - return ( - this.data.search(/^[0-9]{14}$/) !== -1 && - +this.data[13] === checksum(this.data) - ); - } - -} - -export default ITF14; diff --git a/src/barcodes/ITF/constants.js b/src/barcodes/ITF/constants.js deleted file mode 100644 index 2a941b0e..00000000 --- a/src/barcodes/ITF/constants.js +++ /dev/null @@ -1,7 +0,0 @@ -export const START_BIN = '1010'; -export const END_BIN = '11101'; - -export const BINARIES = [ - '00110', '10001', '01001', '11000', '00101', - '10100', '01100', '00011', '10010', '01010', -]; diff --git a/src/barcodes/MSI/MSI.js b/src/barcodes/MSI/MSI.js deleted file mode 100644 index ba16909b..00000000 --- a/src/barcodes/MSI/MSI.js +++ /dev/null @@ -1,48 +0,0 @@ -// Encoding documentation -// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup - -import Barcode from "../Barcode.js"; - -class MSI extends Barcode{ - constructor(data, options){ - super(data, options); - } - - encode(){ - // Start bits - var ret = "110"; - - for(var i = 0; i < this.data.length; i++){ - // Convert the character to binary (always 4 binary digits) - var digit = parseInt(this.data[i]); - var bin = digit.toString(2); - bin = addZeroes(bin, 4 - bin.length); - - // Add 100 for every zero and 110 for every 1 - for(var b = 0; b < bin.length; b++){ - ret += bin[b] == "0" ? "100" : "110"; - } - } - - // End bits - ret += "1001"; - - return { - data: ret, - text: this.text - }; - } - - valid(){ - return this.data.search(/^[0-9]+$/) !== -1; - } -} - -function addZeroes(number, n){ - for(var i = 0; i < n; i++){ - number = "0" + number; - } - return number; -} - -export default MSI; diff --git a/src/barcodes/MSI/MSI10.js b/src/barcodes/MSI/MSI10.js deleted file mode 100644 index a89bae83..00000000 --- a/src/barcodes/MSI/MSI10.js +++ /dev/null @@ -1,10 +0,0 @@ -import MSI from './MSI.js'; -import {mod10} from './checksums.js'; - -class MSI10 extends MSI{ - constructor(data, options){ - super(data + mod10(data), options); - } -} - -export default MSI10; diff --git a/src/barcodes/MSI/MSI1010.js b/src/barcodes/MSI/MSI1010.js deleted file mode 100644 index 0337ec35..00000000 --- a/src/barcodes/MSI/MSI1010.js +++ /dev/null @@ -1,12 +0,0 @@ -import MSI from './MSI.js'; -import {mod10} from './checksums.js'; - -class MSI1010 extends MSI{ - constructor(data, options){ - data += mod10(data); - data += mod10(data); - super(data, options); - } -} - -export default MSI1010; diff --git a/src/barcodes/MSI/MSI11.js b/src/barcodes/MSI/MSI11.js deleted file mode 100644 index 90380611..00000000 --- a/src/barcodes/MSI/MSI11.js +++ /dev/null @@ -1,10 +0,0 @@ -import MSI from './MSI.js'; -import {mod11} from './checksums.js'; - -class MSI11 extends MSI{ - constructor(data, options){ - super(data + mod11(data), options); - } -} - -export default MSI11; diff --git a/src/barcodes/MSI/MSI1110.js b/src/barcodes/MSI/MSI1110.js deleted file mode 100644 index 6dac1556..00000000 --- a/src/barcodes/MSI/MSI1110.js +++ /dev/null @@ -1,12 +0,0 @@ -import MSI from './MSI.js'; -import {mod10, mod11} from './checksums.js'; - -class MSI1110 extends MSI{ - constructor(data, options){ - data += mod11(data); - data += mod10(data); - super(data, options); - } -} - -export default MSI1110; diff --git a/src/barcodes/MSI/checksums.js b/src/barcodes/MSI/checksums.js deleted file mode 100644 index 8a027218..00000000 --- a/src/barcodes/MSI/checksums.js +++ /dev/null @@ -1,23 +0,0 @@ -export function mod10(number){ - var sum = 0; - for(var i = 0; i < number.length; i++){ - var n = parseInt(number[i]); - if((i + number.length) % 2 === 0){ - sum += n; - } - else{ - sum += (n * 2) % 10 + Math.floor((n * 2) / 10); - } - } - return (10 - (sum % 10)) % 10; -} - -export function mod11(number){ - var sum = 0; - var weights = [2, 3, 4, 5, 6, 7]; - for(var i = 0; i < number.length; i++){ - var n = parseInt(number[number.length - 1 - i]); - sum += weights[i % weights.length] * n; - } - return (11 - (sum % 11)) % 11; -} diff --git a/src/barcodes/MSI/index.js b/src/barcodes/MSI/index.js deleted file mode 100644 index 2c20baf4..00000000 --- a/src/barcodes/MSI/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import MSI from './MSI.js'; -import MSI10 from './MSI10.js'; -import MSI11 from './MSI11.js'; -import MSI1010 from './MSI1010.js'; -import MSI1110 from './MSI1110.js'; - -export {MSI, MSI10, MSI11, MSI1010, MSI1110}; diff --git a/src/barcodes/codabar/index.js b/src/barcodes/codabar/index.js deleted file mode 100644 index 005df080..00000000 --- a/src/barcodes/codabar/index.js +++ /dev/null @@ -1,63 +0,0 @@ -// Encoding specification: -// http://www.barcodeisland.com/codabar.phtml - -import Barcode from "../Barcode.js"; - -class codabar extends Barcode{ - constructor(data, options){ - if (data.search(/^[0-9\-\$\:\.\+\/]+$/) === 0) { - data = "A" + data + "A"; - } - - super(data.toUpperCase(), options); - - this.text = this.options.text || this.text.replace(/[A-D]/g, ''); - } - - valid(){ - return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/) !== -1; - } - - encode(){ - var result = []; - var encodings = this.getEncodings(); - for(var i = 0; i < this.data.length; i++){ - result.push(encodings[this.data.charAt(i)]); - // for all characters except the last, append a narrow-space ("0") - if (i !== this.data.length - 1) { - result.push("0"); - } - } - return { - text: this.text, - data: result.join('') - }; - } - - getEncodings(){ - return { - "0": "101010011", - "1": "101011001", - "2": "101001011", - "3": "110010101", - "4": "101101001", - "5": "110101001", - "6": "100101011", - "7": "100101101", - "8": "100110101", - "9": "110100101", - "-": "101001101", - "$": "101100101", - ":": "1101011011", - "/": "1101101011", - ".": "1101101101", - "+": "101100110011", - "A": "1011001001", - "B": "1001001011", - "C": "1010010011", - "D": "1010011001" - }; - } -} - -export {codabar}; diff --git a/src/barcodes/index.js b/src/barcodes/index.js deleted file mode 100644 index 36e98759..00000000 --- a/src/barcodes/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import {CODE39} from './CODE39/'; -import {CODE128, CODE128A, CODE128B, CODE128C} from './CODE128/'; -import {EAN13, EAN8, EAN5, EAN2, UPC, UPCE} from './EAN_UPC/'; -import {ITF, ITF14} from './ITF/'; -import {MSI, MSI10, MSI11, MSI1010, MSI1110} from './MSI/'; -import {pharmacode} from './pharmacode/'; -import {codabar} from './codabar'; -import {GenericBarcode} from './GenericBarcode/'; - -export default { - CODE39, - CODE128, CODE128A, CODE128B, CODE128C, - EAN13, EAN8, EAN5, EAN2, UPC, UPCE, - ITF14, - ITF, - MSI, MSI10, MSI11, MSI1010, MSI1110, - pharmacode, - codabar, - GenericBarcode -}; diff --git a/src/barcodes/pharmacode/index.js b/src/barcodes/pharmacode/index.js deleted file mode 100644 index 2cde723c..00000000 --- a/src/barcodes/pharmacode/index.js +++ /dev/null @@ -1,43 +0,0 @@ -// Encoding documentation -// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf - -import Barcode from "../Barcode.js"; - -class pharmacode extends Barcode{ - constructor(data, options){ - super(data, options); - this.number = parseInt(data, 10); - } - - encode(){ - var z = this.number; - var result = ""; - - // http://i.imgur.com/RMm4UDJ.png - // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34) - while(!isNaN(z) && z != 0){ - if(z % 2 === 0){ // Even - result = "11100" + result; - z = (z - 2) / 2; - } - else{ // Odd - result = "100" + result; - z = (z - 1) / 2; - } - } - - // Remove the two last zeroes - result = result.slice(0, -2); - - return { - data: result, - text: this.text - }; - } - - valid(){ - return this.number >= 3 && this.number <= 131070; - } -} - -export {pharmacode}; diff --git a/src/exceptions/ErrorHandler.js b/src/exceptions/ErrorHandler.js deleted file mode 100644 index 1a684faf..00000000 --- a/src/exceptions/ErrorHandler.js +++ /dev/null @@ -1,39 +0,0 @@ -/*eslint no-console: 0 */ - -class ErrorHandler{ - constructor(api){ - this.api = api; - } - - handleCatch(e){ - // If babel supported extending of Error in a correct way instanceof would be used here - if(e.name === "InvalidInputException"){ - if(this.api._options.valid !== this.api._defaults.valid){ - this.api._options.valid(false); - } - else{ - throw e.message; - } - } - else{ - throw e; - } - - this.api.render = function(){}; - } - - wrapBarcodeCall(func){ - try{ - var result = func(...arguments); - this.api._options.valid(true); - return result; - } - catch(e){ - this.handleCatch(e); - - return this.api; - } - } -} - -export default ErrorHandler; diff --git a/src/exceptions/exceptions.js b/src/exceptions/exceptions.js deleted file mode 100644 index 4835435b..00000000 --- a/src/exceptions/exceptions.js +++ /dev/null @@ -1,29 +0,0 @@ -class InvalidInputException extends Error{ - constructor(symbology, input) { - super(); - this.name = "InvalidInputException"; - - this.symbology = symbology; - this.input = input; - - this.message = '"' + this.input + '" is not a valid input for ' + this.symbology; - } -} - -class InvalidElementException extends Error{ - constructor() { - super(); - this.name = "InvalidElementException"; - this.message = "Not supported type to render on"; - } -} - -class NoElementException extends Error{ - constructor() { - super(); - this.name = "NoElementException"; - this.message = "No element to render on."; - } -} - -export {InvalidInputException, InvalidElementException, NoElementException}; diff --git a/src/help/getOptionsFromElement.js b/src/help/getOptionsFromElement.js deleted file mode 100644 index f24e187d..00000000 --- a/src/help/getOptionsFromElement.js +++ /dev/null @@ -1,28 +0,0 @@ -import optionsFromStrings from "./optionsFromStrings.js"; -import defaults from "../options/defaults.js"; - -function getOptionsFromElement(element){ - var options = {}; - for(var property in defaults){ - if(defaults.hasOwnProperty(property)){ - // jsbarcode-* - if(element.hasAttribute("jsbarcode-" + property.toLowerCase())){ - options[property] = element.getAttribute("jsbarcode-" + property.toLowerCase()); - } - - // data-* - if(element.hasAttribute("data-" + property.toLowerCase())){ - options[property] = element.getAttribute("data-" + property.toLowerCase()); - } - } - } - - options["value"] = element.getAttribute("jsbarcode-value") || element.getAttribute("data-value"); - -// Since all atributes are string they need to be converted to integers - options = optionsFromStrings(options); - - return options; -} - -export default getOptionsFromElement; diff --git a/src/help/getRenderProperties.js b/src/help/getRenderProperties.js deleted file mode 100644 index 6d4d6bba..00000000 --- a/src/help/getRenderProperties.js +++ /dev/null @@ -1,102 +0,0 @@ -/* global HTMLImageElement */ -/* global HTMLCanvasElement */ -/* global SVGElement */ - -import getOptionsFromElement from "./getOptionsFromElement.js"; -import renderers from "../renderers"; - -import {InvalidElementException} from "../exceptions/exceptions.js"; - -// Takes an element and returns an object with information about how -// it should be rendered -// This could also return an array with these objects -// { -// element: The element that the renderer should draw on -// renderer: The name of the renderer -// afterRender (optional): If something has to done after the renderer -// completed, calls afterRender (function) -// options (optional): Options that can be defined in the element -// } - -function getRenderProperties(element){ - // If the element is a string, query select call again - if(typeof element === "string"){ - return querySelectedRenderProperties(element); - } - // If element is array. Recursivly call with every object in the array - else if(Array.isArray(element)){ - var returnArray = []; - for(let i = 0; i < element.length; i++){ - returnArray.push(getRenderProperties(element[i])); - } - return returnArray; - } - // If element, render on canvas and set the uri as src - else if(typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement){ - return newCanvasRenderProperties(element); - } - // If SVG - else if( - (element && element.nodeName === 'svg') || - (typeof SVGElement !== 'undefined' && element instanceof SVGElement) - ){ - return { - element: element, - options: getOptionsFromElement(element), - renderer: renderers.SVGRenderer - }; - } - // If canvas (in browser) - else if(typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement){ - return { - element: element, - options: getOptionsFromElement(element), - renderer: renderers.CanvasRenderer - }; - } - // If canvas (in node) - else if(element && element.getContext){ - return { - element: element, - renderer: renderers.CanvasRenderer - }; - } - else if(element && typeof element === 'object' && !element.nodeName) { - return { - element: element, - renderer: renderers.ObjectRenderer - }; - } - else{ - throw new InvalidElementException(); - } -} - -function querySelectedRenderProperties(string){ - var selector = document.querySelectorAll(string); - if(selector.length === 0){ - return undefined; - } - else{ - let returnArray = []; - for(let i = 0; i < selector.length; i++){ - returnArray.push(getRenderProperties(selector[i])); - } - return returnArray; - } -} - - -function newCanvasRenderProperties(imgElement){ - var canvas = document.createElement('canvas'); - return { - element: canvas, - options: getOptionsFromElement(imgElement), - renderer: renderers.CanvasRenderer, - afterRender: function(){ - imgElement.setAttribute("src", canvas.toDataURL()); - } - }; -} - -export default getRenderProperties; diff --git a/src/help/linearizeEncodings.js b/src/help/linearizeEncodings.js deleted file mode 100644 index eb13a66c..00000000 --- a/src/help/linearizeEncodings.js +++ /dev/null @@ -1,22 +0,0 @@ -export default linearizeEncodings; - -// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2] -// Convert to [1-1, 1-2, 2, 3-1, 3-2] -function linearizeEncodings(encodings){ - var linearEncodings = []; - function nextLevel(encoded){ - if(Array.isArray(encoded)){ - for(let i = 0; i < encoded.length; i++){ - nextLevel(encoded[i]); - } - } - else{ - encoded.text = encoded.text || ""; - encoded.data = encoded.data || ""; - linearEncodings.push(encoded); - } - } - nextLevel(encodings); - - return linearEncodings; -} diff --git a/src/help/merge.js b/src/help/merge.js deleted file mode 100644 index 88eb19c1..00000000 --- a/src/help/merge.js +++ /dev/null @@ -1 +0,0 @@ -export default (old, replaceObj) => ({ ...old, ...replaceObj }); diff --git a/src/help/optionsFromStrings.js b/src/help/optionsFromStrings.js deleted file mode 100644 index a9adfda3..00000000 --- a/src/help/optionsFromStrings.js +++ /dev/null @@ -1,31 +0,0 @@ -export default optionsFromStrings; - -// Convert string to integers/booleans where it should be -function optionsFromStrings(options){ - var intOptions = [ - "width", - "height", - "textMargin", - "fontSize", - "margin", - "marginTop", - "marginBottom", - "marginLeft", - "marginRight" - ]; - - for(var intOption in intOptions){ - if(intOptions.hasOwnProperty(intOption)){ - intOption = intOptions[intOption]; - if(typeof options[intOption] === "string"){ - options[intOption] = parseInt(options[intOption], 10); - } - } - } - - if(typeof options["displayValue"] === "string"){ - options["displayValue"] = (options["displayValue"] != "false"); - } - - return options; -} diff --git a/src/options/defaults.js b/src/options/defaults.js deleted file mode 100644 index f2362ffa..00000000 --- a/src/options/defaults.js +++ /dev/null @@ -1,23 +0,0 @@ -var defaults = { - width: 2, - height: 100, - format: "auto", - displayValue: true, - fontOptions: "", - font: "monospace", - text: undefined, - textAlign: "center", - textPosition: "bottom", - textMargin: 2, - fontSize: 20, - background: "#ffffff", - lineColor: "#000000", - margin: 10, - marginTop: undefined, - marginBottom: undefined, - marginLeft: undefined, - marginRight: undefined, - valid: function(){} -}; - -export default defaults; diff --git a/src/renderers/canvas.js b/src/renderers/canvas.js deleted file mode 100644 index bba16d41..00000000 --- a/src/renderers/canvas.js +++ /dev/null @@ -1,137 +0,0 @@ -import merge from "../help/merge.js"; -import {calculateEncodingAttributes, getTotalWidthOfEncodings, getMaximumHeightOfEncodings} from "./shared.js"; - -class CanvasRenderer{ - constructor(canvas, encodings, options){ - this.canvas = canvas; - this.encodings = encodings; - this.options = options; - } - - render(){ - // Abort if the browser does not support HTML5 canvas - if (!this.canvas.getContext) { - throw new Error('The browser does not support canvas.'); - } - - this.prepareCanvas(); - for(let i = 0; i < this.encodings.length; i++){ - var encodingOptions = merge(this.options, this.encodings[i].options); - - this.drawCanvasBarcode(encodingOptions, this.encodings[i]); - this.drawCanvasText(encodingOptions, this.encodings[i]); - - this.moveCanvasDrawing(this.encodings[i]); - } - - this.restoreCanvas(); - } - - prepareCanvas(){ - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.save(); - - calculateEncodingAttributes(this.encodings, this.options, ctx); - var totalWidth = getTotalWidthOfEncodings(this.encodings); - var maxHeight = getMaximumHeightOfEncodings(this.encodings); - - this.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight; - - this.canvas.height = maxHeight; - - // Paint the canvas - ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); - if(this.options.background){ - ctx.fillStyle = this.options.background; - ctx.fillRect(0, 0, this.canvas.width, this.canvas.height); - } - - ctx.translate(this.options.marginLeft, 0); - } - - drawCanvasBarcode(options, encoding){ - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if(options.textPosition == "top"){ - yFrom = options.marginTop + options.fontSize + options.textMargin; - } - else{ - yFrom = options.marginTop; - } - - ctx.fillStyle = options.lineColor; - - for(var b = 0; b < binary.length; b++){ - var x = b * options.width + encoding.barcodePadding; - - if(binary[b] === "1"){ - ctx.fillRect(x, yFrom, options.width, options.height); - } - else if(binary[b]){ - ctx.fillRect(x, yFrom, options.width, options.height * binary[b]); - } - } - } - - drawCanvasText(options, encoding){ - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - var font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Draw the text if displayValue is set - if(options.displayValue){ - var x, y; - - if(options.textPosition == "top"){ - y = options.marginTop + options.fontSize - options.textMargin; - } - else{ - y = options.height + options.textMargin + options.marginTop + options.fontSize; - } - - ctx.font = font; - - // Draw the text in the correct X depending on the textAlign option - if(options.textAlign == "left" || encoding.barcodePadding > 0){ - x = 0; - ctx.textAlign = 'left'; - } - else if(options.textAlign == "right"){ - x = encoding.width - 1; - ctx.textAlign = 'right'; - } - // In all other cases, center the text - else{ - x = encoding.width / 2; - ctx.textAlign = 'center'; - } - - ctx.fillText(encoding.text, x, y); - } - } - - - - moveCanvasDrawing(encoding){ - var ctx = this.canvas.getContext("2d"); - - ctx.translate(encoding.width, 0); - } - - restoreCanvas(){ - // Get the canvas context - var ctx = this.canvas.getContext("2d"); - - ctx.restore(); - } -} - -export default CanvasRenderer; diff --git a/src/renderers/index.js b/src/renderers/index.js deleted file mode 100644 index 3797e015..00000000 --- a/src/renderers/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import CanvasRenderer from './canvas.js'; -import SVGRenderer from './svg.js'; -import ObjectRenderer from './object.js'; - -export default {CanvasRenderer, SVGRenderer, ObjectRenderer}; diff --git a/src/renderers/object.js b/src/renderers/object.js deleted file mode 100644 index fd0b7cae..00000000 --- a/src/renderers/object.js +++ /dev/null @@ -1,14 +0,0 @@ -class ObjectRenderer { - constructor(object, encodings, options) { - this.object = object; - this.encodings = encodings; - this.options = options; - } - - render() { - this.object.encodings = this.encodings; - } -} - - -export default ObjectRenderer; diff --git a/src/renderers/shared.js b/src/renderers/shared.js deleted file mode 100644 index b7fe4002..00000000 --- a/src/renderers/shared.js +++ /dev/null @@ -1,88 +0,0 @@ -import merge from "../help/merge.js"; - -function getEncodingHeight(encoding, options){ - return options.height + - ((options.displayValue && encoding.text.length > 0) ? options.fontSize + options.textMargin : 0) + - options.marginTop + - options.marginBottom; -} - -function getBarcodePadding(textWidth, barcodeWidth, options){ - if(options.displayValue && barcodeWidth < textWidth){ - if(options.textAlign == "center"){ - return Math.floor((textWidth - barcodeWidth) / 2); - } - else if(options.textAlign == "left"){ - return 0; - } - else if(options.textAlign == "right"){ - return Math.floor(textWidth - barcodeWidth); - } - } - return 0; -} - -function calculateEncodingAttributes(encodings, barcodeOptions, context){ - for(let i = 0; i < encodings.length; i++){ - var encoding = encodings[i]; - var options = merge(barcodeOptions, encoding.options); - - // Calculate the width of the encoding - var textWidth; - if(options.displayValue){ - textWidth = messureText(encoding.text, options, context); - } - else{ - textWidth = 0; - } - - var barcodeWidth = encoding.data.length * options.width; - encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth)); - - encoding.height = getEncodingHeight(encoding, options); - - encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options); - } -} - -function getTotalWidthOfEncodings(encodings){ - var totalWidth = 0; - for(let i = 0; i < encodings.length; i++){ - totalWidth += encodings[i].width; - } - return totalWidth; -} - -function getMaximumHeightOfEncodings(encodings){ - var maxHeight = 0; - for(let i = 0; i < encodings.length; i++){ - if(encodings[i].height > maxHeight){ - maxHeight = encodings[i].height; - } - } - return maxHeight; -} - -function messureText(string, options, context){ - var ctx; - - if(context){ - ctx = context; - } - else if(typeof document !== "undefined"){ - ctx = document.createElement("canvas").getContext("2d"); - } - else{ - // If the text cannot be messured we will return 0. - // This will make some barcode with big text render incorrectly - return 0; - } - ctx.font = options.fontOptions + " " + options.fontSize + "px " + options.font; - - // Calculate the width of the encoding - var size = ctx.measureText(string).width; - - return size; -} - -export {getMaximumHeightOfEncodings, getEncodingHeight, getBarcodePadding, calculateEncodingAttributes, getTotalWidthOfEncodings}; diff --git a/src/renderers/svg.js b/src/renderers/svg.js deleted file mode 100644 index 33d3b0bc..00000000 --- a/src/renderers/svg.js +++ /dev/null @@ -1,171 +0,0 @@ -import merge from "../help/merge.js"; -import {calculateEncodingAttributes, getTotalWidthOfEncodings, getMaximumHeightOfEncodings} from "./shared.js"; - -var svgns = "http://www.w3.org/2000/svg"; - -class SVGRenderer{ - constructor(svg, encodings, options){ - this.svg = svg; - this.encodings = encodings; - this.options = options; - this.document = options.xmlDocument || document; - } - - render(){ - var currentX = this.options.marginLeft; - - this.prepareSVG(); - for(let i = 0; i < this.encodings.length; i++){ - var encoding = this.encodings[i]; - var encodingOptions = merge(this.options, encoding.options); - - var group = this.createGroup(currentX, encodingOptions.marginTop, this.svg); - - this.setGroupOptions(group, encodingOptions); - - this.drawSvgBarcode(group, encodingOptions, encoding); - this.drawSVGText(group, encodingOptions, encoding); - - currentX += encoding.width; - } - } - - prepareSVG(){ - // Clear the SVG - while (this.svg.firstChild) { - this.svg.removeChild(this.svg.firstChild); - } - - calculateEncodingAttributes(this.encodings, this.options); - var totalWidth = getTotalWidthOfEncodings(this.encodings); - var maxHeight = getMaximumHeightOfEncodings(this.encodings); - - var width = totalWidth + this.options.marginLeft + this.options.marginRight; - this.setSvgAttributes(width, maxHeight); - - if(this.options.background){ - this.drawRect(0, 0, width, maxHeight, this.svg).setAttribute( - "style", "fill:" + this.options.background + ";" - ); - } - } - - drawSvgBarcode(parent, options, encoding){ - var binary = encoding.data; - - // Creates the barcode out of the encoded binary - var yFrom; - if(options.textPosition == "top"){ - yFrom = options.fontSize + options.textMargin; - } - else{ - yFrom = 0; - } - - var barWidth = 0; - var x = 0; - for(var b = 0; b < binary.length; b++){ - x = b * options.width + encoding.barcodePadding; - - if(binary[b] === "1"){ - barWidth++; - } - else if(barWidth > 0){ - this.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent); - barWidth = 0; - } - } - - // Last draw is needed since the barcode ends with 1 - if(barWidth > 0){ - this.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent); - } - } - - drawSVGText(parent, options, encoding){ - var textElem = this.document.createElementNS(svgns, 'text'); - - // Draw the text if displayValue is set - if(options.displayValue){ - var x, y; - - textElem.setAttribute("style", - "font:" + options.fontOptions + " " + options.fontSize + "px " + options.font - ); - - if(options.textPosition == "top"){ - y = options.fontSize - options.textMargin; - } - else{ - y = options.height + options.textMargin + options.fontSize; - } - - // Draw the text in the correct X depending on the textAlign option - if(options.textAlign == "left" || encoding.barcodePadding > 0){ - x = 0; - textElem.setAttribute("text-anchor", "start"); - } - else if(options.textAlign == "right"){ - x = encoding.width - 1; - textElem.setAttribute("text-anchor", "end"); - } - // In all other cases, center the text - else{ - x = encoding.width / 2; - textElem.setAttribute("text-anchor", "middle"); - } - - textElem.setAttribute("x", x); - textElem.setAttribute("y", y); - - textElem.appendChild(this.document.createTextNode(encoding.text)); - - parent.appendChild(textElem); - } - } - - - setSvgAttributes(width, height){ - var svg = this.svg; - svg.setAttribute("width", width + "px"); - svg.setAttribute("height", height + "px"); - svg.setAttribute("x", "0px"); - svg.setAttribute("y", "0px"); - svg.setAttribute("viewBox", "0 0 " + width + " " + height); - - svg.setAttribute("xmlns", svgns); - svg.setAttribute("version", "1.1"); - - svg.setAttribute("style", "transform: translate(0,0)"); - } - - createGroup(x, y, parent){ - var group = this.document.createElementNS(svgns, 'g'); - group.setAttribute("transform", "translate(" + x + ", " + y + ")"); - - parent.appendChild(group); - - return group; - } - - setGroupOptions(group, options){ - group.setAttribute("style", - "fill:" + options.lineColor + ";" - ); - } - - drawRect(x, y, width, height, parent){ - var rect = this.document.createElementNS(svgns, 'rect'); - - rect.setAttribute("x", x); - rect.setAttribute("y", y); - rect.setAttribute("width", width); - rect.setAttribute("height", height); - - parent.appendChild(rect); - - return rect; - } -} - -export default SVGRenderer; diff --git a/test/coverage.html b/test/coverage.html deleted file mode 100644 index 7757f598..00000000 --- a/test/coverage.html +++ /dev/null @@ -1,359 +0,0 @@ -Coverage - -

Coverage

97%
571
554
17

/home/johan/DevZone/JsBarcode/JsBarcode.js

86%
130
113
17
LineHitsSource
11(function(){
2
3 // Main function, calls drawCanvas(...) in the right way
41 var JsBarcode = function(image, content, options){
5 // If the image is a string, query select call again
621 if(typeof image === "string"){
71 image = document.querySelector(image);
80 JsBarcode(image, content, options);
9 }
10 // If image, draw on canvas and set the uri as src
1120 else if(typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLImageElement){
120 canvas = document.createElement('canvas');
130 drawCanvas(canvas, content, options);
140 image.setAttribute("src", canvas.toDataURL());
15 }
16 // If canvas, just draw
1720 else if(image.getContext){
1819 drawCanvas(image, content, options);
19 }
20 else{
211 throw new Error("Not supported type to draw on.");
22 }
23 }
24
25 // The main function, handles everything with the modules and draws the image
261 var drawCanvas = function(canvas, content, options) {
27 // Merge the user options with the default
2819 options = merge(JsBarcode.defaults, options);
29
30 // Fix the margins
3119 options.marginTop = options.marginTop | options.margin;
3219 options.marginBottom = options.marginBottom | options.margin;
3319 options.marginRight = options.marginRight | options.margin;
3419 options.marginLeft = options.marginLeft | options.margin;
35
36 //Abort if the browser does not support HTML5 canvas
3719 if (!canvas.getContext) {
380 throw new Error('The browser does not support canvas.');
39 }
40
41 // Automatically choose barcode if format set to "auto"...
4219 if(options.format == "auto"){
433 var encoder = new (JsBarcode.autoSelectEncoder(content))(content);
44 }
45 // ...or else, get by name
46 else{
4716 var encoder = new (JsBarcode.getModule(options.format))(content);
48 }
49
50 //Abort if the barcode format does not support the content
5118 if(!encoder.valid()){
522 options.valid(false);
532 if(options.valid == JsBarcode.defaults.valid){
541 throw new Error('The data is not valid for the type of barcode.');
55 }
561 return;
57 }
58
59 // Set the binary to a cached version if possible
6016 var cachedBinary = JsBarcode.getCache(options.format, content);
6116 if(cachedBinary){
629 var binary = cachedBinary;
63 }
64 else{
65 // Encode the content
667 var binary = encoder.encoded();
67 // Cache the encoding if it will be used again later
687 JsBarcode.cache(options.format, content, binary);
69 }
70
71 // Get the canvas context
7216 var ctx = canvas.getContext("2d");
73
74 // Set font
7516 var font = options.fontOptions + " " + options.fontSize + "px "+options.font;
7616 ctx.font = font;
77
78 // Set the width and height of the barcode
7916 var width = binary.length*options.width;
80 // Replace with width of the text if it is wider then the barcode
8116 var textWidth = ctx.measureText(encoder.getText()).width;
8216 if(options.displayValue && width < textWidth){
830 if(options.textAlign == "center"){
840 var barcodePadding = Math.floor((textWidth - width)/2);
85 }
860 else if(options.textAlign == "left"){
870 var barcodePadding = 0;
88 }
890 else if(options.textAlign == "right"){
900 var barcodePadding = Math.floor(textWidth - width);
91 }
92
930 width = textWidth;
94 }
95 // Make sure barcodePadding is not undefined
9616 var barcodePadding = barcodePadding || 0;
97
9816 canvas.width = width + options.marginLeft + options.marginRight;
99
100 // Set extra height if the value is displayed under the barcode. Multiplication with 1.3 t0 ensure that some
101 //characters are not cut in half
10216 canvas.height = options.height
103 + (options.displayValue ? options.fontSize : 0)
104 + options.textMargin
105 + options.marginTop
106 + options.marginBottom;
107
108 // Paint the canvas
10916 ctx.clearRect(0,0,canvas.width,canvas.height);
11016 if(options.background){
11116 ctx.fillStyle = options.background;
11216 ctx.fillRect(0,0,canvas.width, canvas.height);
113 }
114
115 // Creates the barcode out of the encoded binary
11616 ctx.fillStyle = options.lineColor;
11716 for(var i=0;i<binary.length;i++){
1181538 var x = i*options.width + options.marginLeft + barcodePadding;
1191538 if(binary[i] == "1"){
120730 ctx.fillRect(x, options.marginTop, options.width, options.height);
121 }
122 }
123
124 // Draw the text if displayValue is set
12516 if(options.displayValue){
12615 var x, y;
127
12815 y = options.height + options.textMargin + options.marginTop;
129
13015 ctx.font = font;
13115 ctx.textBaseline = "bottom";
13215 ctx.textBaseline = 'top';
133
134 // Draw the text in the correct X depending on the textAlign option
13515 if(options.textAlign == "left" || barcodePadding > 0){
1361 x = options.marginLeft;
1371 ctx.textAlign = 'left';
138 }
13914 else if(options.textAlign == "right"){
1401 x = canvas.width - options.marginRight;
1411 ctx.textAlign = 'right';
142 }
143 //In all other cases, center the text
144 else{
14513 x = canvas.width / 2;
14613 ctx.textAlign = 'center';
147 }
148
14915 ctx.fillText(encoder.getText(), x, y);
150 }
151
152 // Send a confirmation that the generation was successful to the valid function if it does exist
15316 options.valid(true);
154 };
155
1561 JsBarcode._modules = [];
157
158 // Add a new module sorted in the array
1591 JsBarcode.register = function(module, regex, priority){
16017 var position = 0;
16117 if(typeof priority === "undefined"){
1624 position = JsBarcode._modules.length - 1;
163 }
164 else{
16513 for(var i=0;i<JsBarcode._modules.length;i++){
16638 position = i;
16738 if(!(priority < JsBarcode._modules[i].priority)){
16810 break;
169 }
170 }
171 }
172
173 // Add the module in position position
17417 JsBarcode._modules.splice(position, 0, {
175 "regex": regex,
176 "module": module,
177 "priority": priority
178 });
179 };
180
181 // Get module by name
1821 JsBarcode.getModule = function(name){
18333 for(var i in JsBarcode._modules){
184368 if(name.search(JsBarcode._modules[i].regex) !== -1){
18532 return JsBarcode._modules[i].module;
186 }
187 }
1881 throw new Error('Module ' + name + ' does not exist or is not loaded.');
189 };
190
191 // If any format is valid with the content, return the format with highest priority
1921 JsBarcode.autoSelectEncoder = function(content){
1933 for(var i in JsBarcode._modules){
19417 var barcode = new (JsBarcode._modules[i].module)(content);
19517 if(barcode.valid(content)){
1963 return JsBarcode._modules[i].module;
197 }
198 }
1990 throw new Error("Can't automatically find a barcode format matching the string '" + content + "'");
200 };
201
202 // Defining the cache dictionary
2031 JsBarcode._cache = {};
204
205 // Cache a regerated barcode
2061 JsBarcode.cache = function(format, input, output){
2077 if(!JsBarcode._cache[format]){
2084 JsBarcode._cache[format] = {};
209 }
2107 JsBarcode._cache[format][input] = output;
211 };
212
213 // Get a chached barcode
2141 JsBarcode.getCache = function(format, input){
21516 if(JsBarcode._cache[format]){
21612 if(JsBarcode._cache[format][input]){
2179 return JsBarcode._cache[format][input];
218 }
219 }
2207 return "";
221 };
222
223 // Detect if the code is running under nodejs
2241 JsBarcode._isNode = false;
2251 if (typeof module !== 'undefined' && module.exports) {
2261 module.exports = JsBarcode; // Export to nodejs
2271 JsBarcode._isNode = true;
228
229 //Register all modules in ./barcodes/
2301 var path = require("path");
2311 var dir = path.join(__dirname, "barcodes");
2321 var files = require("fs").readdirSync(dir);
2331 for(var i in files){
2348 var barcode = require(path.join(dir, files[i]));
2358 barcode.register(JsBarcode);
236 }
237 }
238
239 //Regsiter JsBarcode for the browser
2401 if(typeof window !== 'undefined'){
2410 window.JsBarcode = JsBarcode;
242 }
243
244 // Register JsBarcode as an jQuery plugin if jQuery exist
2451 if (typeof jQuery !== 'undefined') {
2460 jQuery.fn.JsBarcode = function(content, options, validFunction){
2470 JsBarcode(this.get(0), content, options, validFunction);
2480 return this;
249 };
250 }
251
252 // All the default options. If one is not set.
2531 JsBarcode.defaults = {
254 width: 2,
255 height: 100,
256 format: "auto",
257 displayValue: true,
258 fontOptions: "",
259 font: "monospace",
260 textAlign: "center",
261 textMargin: 2,
262 fontSize: 20,
263 background: "#ffffff",
264 lineColor: "#000000",
265 margin: 10,
266 marginTop: undefined,
267 marginBottom: undefined,
268 marginLeft: undefined,
269 marginRight: undefined,
270 valid: function(valid){}
271 };
272
273 // Function to merge the default options with the default ones
2741 var merge = function(m1, m2) {
27519 var newMerge = {};
27619 for (var k in m1) {
277323 newMerge[k] = m1[k];
278 }
27919 for (var k in m2) {
28026 if(typeof m2[k] !== "undefined"){
28126 newMerge[k] = m2[k];
282 }
283 }
28419 return newMerge;
285 };
286})();
287

/home/johan/DevZone/JsBarcode/barcodes/CODE128.js

100%
157
157
0
LineHitsSource
1// ASCII value ranges 0-127, 200-211
21var validCODE128 = /^[\x00-\x7F\xC8-\xD3]+$/;
3
4// This is the master class, it does require the start code to be
5//included in the string
61function CODE128(string) {
7 // Fill the bytes variable with the ascii codes of string
829 this.bytes = [];
929 for (var i = 0; i < string.length; ++i) {
10232 this.bytes.push(string.charCodeAt(i));
11 }
12
13 // First element should be startcode, remove that
1429 this.string = string.substring(1);
15
1629 this.getText = function() {
1719 var string = this.string;
18
1919 string = string.replace(String.fromCharCode(201), "[FNC3]");
2019 string = string.replace(String.fromCharCode(202), "[FNC2]");
2119 string = string.replace(String.fromCharCode(203), "[SHIFT]");
2219 string = string.replace(String.fromCharCode(207), "[FNC1]");
23
2419 return string.replace(/[^\x20-\x7E]/g, "");
25 };
26
27 // The public encoding function
2829 this.encoded = function() {
2911 var encodingResult;
3011 var bytes = this.bytes;
31 // Remove the startcode from the bytes and set its index
3211 var startIndex = bytes.shift() - 105;
33
34 // Start encode with the right type
3511 if(startIndex === 103){
364 encodingResult = nextA(bytes, 1);
37 }
387 else if(startIndex === 104){
394 encodingResult = nextB(bytes, 1);
40 }
413 else if(startIndex === 105){
423 encodingResult = nextC(bytes, 1);
43 }
44
4511 return (
46 //Add the start bits
47 getEncoding(startIndex) +
48 //Add the encoded bits
49 encodingResult.result +
50 //Add the checksum
51 getEncoding((encodingResult.checksum + startIndex) % 103) +
52 //Add the end bits
53 getEncoding(106)
54 );
55 }
56
57 //Data for each character, the last characters will not be encoded but are used for error correction
58 //Numbers encode to (n + 1000) -> binary; 740 -> (740 + 1000).toString(2) -> "11011001100"
5929 var code128b = [ // + 1000
60 740, 644, 638, 176, 164, 100, 224, 220, 124, 608, 604,
61 572, 436, 244, 230, 484, 260, 254, 650, 628, 614, 764,
62 652, 902, 868, 836, 830, 892, 844, 842, 752, 734, 590,
63 304, 112, 94, 416, 128, 122, 672, 576, 570, 464, 422,
64 134, 496, 478, 142, 910, 678, 582, 768, 762, 774, 880,
65 862, 814, 896, 890, 818, 914, 602, 930, 328, 292, 200,
66 158, 68, 62, 424, 412, 232, 218, 76, 74, 554, 616,
67 978, 556, 146, 340, 212, 182, 508, 268, 266, 956, 940,
68 938, 758, 782, 974, 400, 310, 118, 512, 506, 960, 954,
69 502, 518, 886, 966, /* Start codes */ 668, 680, 692,
70 5379
71 ];
7229 var getEncoding = function(n) {
73122 return (code128b[n] ? (code128b[n] + 1000).toString(2) : '');
74 };
75
76 // Use the regexp variable for validation
7729 this.valid = function() {
7812 return !(this.string.search(validCODE128) === -1);
79 }
80
8129 function nextA(bytes, depth){
8232 if(bytes.length <= 0){
834 return {"result": "", "checksum": 0};
84 }
85
8628 var next, index;
87
88 // Special characters
8928 if(bytes[0] >= 200){
905 index = bytes[0] - 105;
91
92 //Remove first element
935 bytes.shift();
94
95 // Swap to CODE128C
965 if(index === 99){
971 next = nextC(bytes, depth + 1);
98 }
99 // Swap to CODE128B
1004 else if(index === 100){
1012 next = nextB(bytes, depth + 1);
102 }
103 // Shift
1042 else if(index === 98){
105 // Convert the next character so that is encoded correctly
1061 bytes[0] = bytes[0] > 95 ? bytes[0] - 96 : bytes[0];
1071 next = nextA(bytes, depth + 1);
108 }
109 // Continue on CODE128A but encode a special character
110 else{
1111 next = nextA(bytes, depth + 1);
112 }
113 }
114 // Continue encoding of CODE128A
115 else{
11623 var charCode = bytes[0];
11723 index = charCode < 32 ? charCode + 64 : charCode - 32;
118
119 // Remove first element
12023 bytes.shift();
121
12223 next = nextA(bytes, depth + 1);
123 }
124
125 // Get the correct binary encoding and calculate the weight
12628 var enc = getEncoding(index);
12728 var weight = index * depth;
128
12928 return {"result": enc + next.result, "checksum": weight + next.checksum}
130 }
131
13229 function nextB(bytes, depth){
13342 if(bytes.length <= 0){
1344 return {"result": "", "checksum": 0};
135 }
136
13738 var next, index;
138
139 // Special characters
14038 if(bytes[0] >= 200){
1415 index = bytes[0] - 105;
142
143 //Remove first element
1445 bytes.shift();
145
146 // Swap to CODE128C
1475 if(index === 99){
1482 next = nextC(bytes, depth + 1);
149 }
150 // Swap to CODE128A
1513 else if(index === 101){
1521 next = nextA(bytes, depth + 1);
153 }
154 // Shift
1552 else if(index === 98){
156 // Convert the next character so that is encoded correctly
1571 bytes[0] = bytes[0] < 32 ? bytes[0] + 96 : bytes[0];
1581 next = nextB(bytes, depth + 1);
159 }
160 // Continue on CODE128B but encode a special character
161 else{
1621 next = nextB(bytes, depth + 1);
163 }
164 }
165 // Continue encoding of CODE128B
166 else {
16733 index = bytes[0] - 32;
16833 bytes.shift();
16933 next = nextB(bytes, depth + 1);
170 }
171
172 // Get the correct binary encoding and calculate the weight
17338 var enc = getEncoding(index);
17438 var weight = index * depth;
175
17638 return {"result": enc + next.result, "checksum": weight + next.checksum};
177 }
178
17929 function nextC(bytes, depth){
18026 if(bytes.length <= 0){
1813 return {"result": "", "checksum": 0};
182 }
183
18423 var next, index;
185
186 // Special characters
18723 if(bytes[0] >= 200){
1885 index = bytes[0] - 105;
189
190 // Remove first element
1915 bytes.shift();
192
193 // Swap to CODE128B
1945 if(index === 100){
1951 next = nextB(bytes, depth + 1);
196 }
197 // Swap to CODE128A
1984 else if(index === 101){
1992 next = nextA(bytes, depth + 1);
200 }
201 // Continue on CODE128C but encode a special character
202 else{
2032 next = nextC(bytes, depth + 1);
204 }
205 }
206 // Continue encoding of CODE128C
207 else{
20818 index = (bytes[0]-48) * 10 + bytes[1]-48;
20918 bytes.shift();
21018 bytes.shift();
21118 next = nextC(bytes, depth + 1);
212 }
213
214 // Get the correct binary encoding and calculate the weight
21523 var enc = getEncoding(index);
21623 var weight = index * depth;
217
21823 return {"result": enc + next.result, "checksum": weight + next.checksum};
219 }
220}
221
2221function autoSelectModes(string){
223 // ASCII ranges 0-98 and 200-207 (FUNCs and SHIFTs)
22418 var aLength = string.match(/^[\x00-\x5F\xC8-\xCF]*/)[0].length;
225 // ASCII ranges 32-127 and 200-207 (FUNCs and SHIFTs)
22618 var bLength = string.match(/^[\x20-\x7F\xC8-\xCF]*/)[0].length;
227 // Number pairs or [FNC1]
22818 var cLength = string.match(/^(\xCF*[0-9]{2}\xCF*)*/)[0].length;
229
23018 var newString;
231 // Select CODE128C if the string start with enough digits
23218 if(cLength >= 2){
2332 newString = String.fromCharCode(210) + autoSelectFromC(string);
234 }
235 // Select A/C depending on the longest match
23616 else if(aLength > bLength){
2373 newString = String.fromCharCode(208) + autoSelectFromA(string);
238 }
239 else{
24013 newString = String.fromCharCode(209) + autoSelectFromB(string);
241 }
242
24318 newString = newString.replace(/[\xCD\xCE]([^])[\xCD\xCE]/, function(match, char){
2442 return String.fromCharCode(203) + char;
245 });
246
24718 return newString;
248}
249
2501function autoSelectFromA(string){
2518 var untilC = string.match(/^([\x00-\x5F\xC8-\xCF]+?)(([0-9]{2}){2,})([^0-9]|$)/);
252
2538 if(untilC){
2541 return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));
255 }
256
2577 var aChars = string.match(/^[\x00-\x5F\xC8-\xCF]+/);
2587 if(aChars[0].length === string.length){
2593 return string;
260 }
261
2624 return aChars[0] + String.fromCharCode(205) + autoSelectFromB(string.substring(aChars[0].length));
263}
264
2651function autoSelectFromB(string){
26618 var untilC = string.match(/^([\x20-\x7F\xC8-\xCF]+?)(([0-9]{2}){2,})([^0-9]|$)/);
267
26818 if(untilC){
2692 return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));
270 }
271
27216 var bChars = string.match(/^[\x20-\x7F\xC8-\xCF]+/);
27316 if(bChars[0].length === string.length){
27413 return string;
275 }
276
2773 return bChars[0] + String.fromCharCode(206) + autoSelectFromA(string.substring(bChars[0].length));
278}
279
280
2811function autoSelectFromC(string){
2825 var cMatch = string.match(/^(\xCF*[0-9]{2}\xCF*)+/)[0];
2835 var length = cMatch.length;
284
2855 if(length === string.length){
2862 return string;
287 }
288
2893 string = string.substring(length);
290
291 // Select A/B depending on the longest match
2923 var aLength = string.match(/^[\x00-\x5F\xC8-\xCF]*/)[0].length;
2933 var bLength = string.match(/^[\x20-\x7F\xC8-\xCF]*/)[0].length;
2943 if(aLength >= bLength){
2952 return cMatch + String.fromCharCode(206) + autoSelectFromA(string);
296 }
297 else{
2981 return cMatch + String.fromCharCode(205) + autoSelectFromB(string);
299 }
300}
301
3021function CODE128AUTO(string) {
303 // Check the validity of the string, don't even bother auto it when
304 //it's not valid
30519 if(string.search(validCODE128) !== -1){
30618 return new CODE128(autoSelectModes(string));
307 }
3081 return new CODE128(string);
309}
3101function CODE128A(string) {
3113 var code128 = new CODE128(String.fromCharCode(208) + string);
3123 code128.valid = function(){
3132 return this.string.search(/^[\x00-\x5F\xC8-\xCF]+$/) !== -1;
314 }
3153 return code128;
316}
3171function CODE128B(string) {
3183 var code128 = new CODE128(String.fromCharCode(209) + string);
3193 code128.valid = function(){
3202 return this.string.search(/^[\x20-\x7F\xC8-\xCF]+$/) !== -1;
321 }
3223 return code128;
323}
3241function CODE128C(string) {
3254 var code128 = new CODE128(String.fromCharCode(210) + string);
3264 code128.valid = function(str){
3273 return this.string.search(/^(\xCF*[0-9]{2}\xCF*)+$/) !== -1;
328 }
3294 return code128;
330}
331
332//Required to register for both browser and nodejs
3331var register = function(core) {
3341 core.register(CODE128AUTO, /^CODE128(.?AUTO)?$/, 10);
3351 core.register(CODE128A, /^CODE128.?A$/i, 2);
3361 core.register(CODE128B, /^CODE128.?B$/i, 3);
3371 core.register(CODE128C, /^CODE128.?C$/i, 2);
338}
3392try {register(JsBarcode)} catch(e) {}
3402try {module.exports.register = register} catch(e) {}
341

/home/johan/DevZone/JsBarcode/barcodes/CODE39.js

100%
18
18
0
LineHitsSource
11function CODE39(string){
29 this.string = string.toUpperCase();
3
49 var encodings = {
5 "0": 20957, "1": 29783, "2": 23639, "3": 30485,
6 "4": 20951, "5": 29813, "6": 23669, "7": 20855,
7 "8": 29789, "9": 23645, "A": 29975, "B": 23831,
8 "C": 30533, "D": 22295, "E": 30149, "F": 24005,
9 "G": 21623, "H": 29981, "I": 23837, "J": 22301,
10 "K": 30023, "L": 23879, "M": 30545, "N": 22343,
11 "O": 30161, "P": 24017, "Q": 21959, "R": 30065,
12 "S": 23921, "T": 22385, "U": 29015, "V": 18263,
13 "W": 29141, "X": 17879, "Y": 29045, "Z": 18293,
14 "-": 17783, ".": 29021, " ": 18269, "$": 17477,
15 "/": 17489, "+": 17681, "%": 20753, "*": 35770
16 };
17
18
199 this.getText = function(){
209 return this.string;
21 };
22
239 this.encoded = function(){
245 var result = "";
255 result += encodings["*"].toString(2);
265 for(var i=0; i<this.string.length; i++){
2724 result += encodings[this.string[i]].toString(2) + "0";
28 }
295 result += encodings["*"].toString(2);
30
315 return result;
32 };
33
34 //Use the regexp variable for validation
359 this.valid = function(){
367 return this.string.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/) !== -1;
37 };
38}
39
40
41//Required to register for both browser and nodejs
421var register = function(core){
431 core.register(CODE39, /^CODE.?39$/i, 3);
44};
452try{register(JsBarcode)} catch(e){}
462try{module.exports.register = register} catch(e){}
47

/home/johan/DevZone/JsBarcode/barcodes/EAN_UPC.js

100%
99
99
0
LineHitsSource
11function EAN(EANnumber){
215 this.EANnumber = EANnumber+"";
3
4 //Regexp to test if the EAN code is correct formated
515 var fullEanRegexp = /^[0-9]{13}$/;
615 var needLastDigitRegexp = /^[0-9]{12}$/;
7
8 //Add checksum if it does not exist
915 if(this.EANnumber.search(needLastDigitRegexp)!=-1){
102 this.EANnumber += checksum(this.EANnumber);
11 }
12
1315 this.getText = function(){
146 return this.EANnumber;
15 };
16
1715 this.valid = function(){
1812 return valid(this.EANnumber);
19 };
20
2115 this.encoded = function (){
224 return createEAN13(this.EANnumber);
23 }
24
25 //Create the binary representation of the EAN code
26 //number needs to be a string
2715 function createEAN13(number){
284 var encoder = new EANencoder();
29
30 //Create the return variable
314 var result = "";
32
334 var structure = encoder.getEANstructure(number);
34
35 //Get the number to be encoded on the left side of the EAN code
364 var leftSide = number.substr(1,7);
37
38 //Get the number to be encoded on the right side of the EAN code
394 var rightSide = number.substr(7,6);
40
41 //Add the start bits
424 result += encoder.startBin;
43
44 //Add the left side
454 result += encoder.encode(leftSide, structure);
46
47 //Add the middle bits
484 result += encoder.middleBin;
49
50 //Add the right side
514 result += encoder.encode(rightSide,"RRRRRR");
52
53 //Add the end bits
544 result += encoder.endBin;
55
564 return result;
57 }
58
59 //Calulate the checksum digit
6015 function checksum(number){
616 var result = 0;
62
6342 for(var i=0;i<12;i+=2){result+=parseInt(number[i])}
6442 for(var i=1;i<12;i+=2){result+=parseInt(number[i])*3}
65
666 return (10 - (result % 10)) % 10;
67 }
68
6915 function valid(number){
7012 if(number.search(fullEanRegexp)!=-1){
714 return number[12] == checksum(number);
72 }
73 else{
748 return false;
75 }
76 }
77}
78
791function EAN8(EAN8number){
808 this.EAN8number = EAN8number+"";
81
82 //Regexp to test if the EAN code is correct formated
838 var fullEanRegexp = /^[0-9]{8}$/;
848 var needLastDigitRegexp = /^[0-9]{7}$/;
85
86 //Add checksum if it does not exist
878 if(this.EAN8number.search(needLastDigitRegexp)!=-1){
881 this.EAN8number += checksum(this.EAN8number);
89 }
90
918 this.getText = function(){
921 return this.EAN8number;
93 }
94
958 this.valid = function(){
968 return valid(this.EAN8number);
97 };
98
998 this.encoded = function (){
1002 return createEAN8(this.EAN8number);
101 }
102
1038 function valid(number){
1048 if(number.search(fullEanRegexp)!=-1){
1053 return number[7] == checksum(number);
106 }
107 else{
1085 return false;
109 }
110 }
111
112 //Calulate the checksum digit
1138 function checksum(number){
1144 var result = 0;
115
11620 for(var i=0;i<7;i+=2){result+=parseInt(number[i])*3}
11716 for(var i=1;i<7;i+=2){result+=parseInt(number[i])}
118
1194 return (10 - (result % 10)) % 10;
120 }
121
1228 function createEAN8(number){
1232 var encoder = new EANencoder();
124
125 //Create the return variable
1262 var result = "";
127
128 //Get the number to be encoded on the left side of the EAN code
1292 var leftSide = number.substr(0,4);
130
131 //Get the number to be encoded on the right side of the EAN code
1322 var rightSide = number.substr(4,4);
133
134 //Add the start bits
1352 result += encoder.startBin;
136
137 //Add the left side
1382 result += encoder.encode(leftSide, "LLLL");
139
140 //Add the middle bits
1412 result += encoder.middleBin;
142
143 //Add the right side
1442 result += encoder.encode(rightSide,"RRRR");
145
146 //Add the end bits
1472 result += encoder.endBin;
148
1492 return result;
150 }
151}
152
153
1541function UPC(UPCnumber){
1556 this.ean = new EAN("0"+UPCnumber);
156
1576 this.getText = function(){
1581 return this.ean.getText().substring(1);
159 }
160
1616 this.valid = function(){
1624 return this.ean.valid();
163 }
164
1656 this.encoded = function(){
1661 return this.ean.encoded();
167 }
168
169}
170
171//
172// Help class that does all the encoding
173//
1741function EANencoder(){
175 //The start bits
1766 this.startBin = "101";
177 //The end bits
1786 this.endBin = "101";
179 //The middle bits
1806 this.middleBin = "01010";
181
182 //The L (left) type of encoding
1836 var Lbinary = {
184 0: "0001101",
185 1: "0011001",
186 2: "0010011",
187 3: "0111101",
188 4: "0100011",
189 5: "0110001",
190 6: "0101111",
191 7: "0111011",
192 8: "0110111",
193 9: "0001011"};
194
195 //The G type of encoding
1966 var Gbinary = {
197 0: "0100111",
198 1: "0110011",
199 2: "0011011",
200 3: "0100001",
201 4: "0011101",
202 5: "0111001",
203 6: "0000101",
204 7: "0010001",
205 8: "0001001",
206 9: "0010111"};
207
208 //The R (right) type of encoding
2096 var Rbinary = {
210 0: "1110010",
211 1: "1100110",
212 2: "1101100",
213 3: "1000010",
214 4: "1011100",
215 5: "1001110",
216 6: "1010000",
217 7: "1000100",
218 8: "1001000",
219 9: "1110100"};
220
221 //The left side structure in EAN-13
2226 var EANstructure = {
223 0: "LLLLLL",
224 1: "LLGLGG",
225 2: "LLGGLG",
226 3: "LLGGGL",
227 4: "LGLLGG",
228 5: "LGGLLG",
229 6: "LGGGLL",
230 7: "LGLGLG",
231 8: "LGLGGL",
232 9: "LGGLGL"}
233
2346 this.getEANstructure = function(number){
2354 return EANstructure[number[0]];
236 };
237
238 //Convert a numberarray to the representing
2396 this.encode = function(number,structure){
240 //Create the variable that should be returned at the end of the function
24112 var result = "";
242
243 //Loop all the numbers
24412 for(var i = 0;i<number.length;i++){
245 //Using the L, G or R encoding and add it to the returning variable
24668 if(structure[i]=="L"){
24723 result += Lbinary[number[i]];
248 }
24945 else if(structure[i]=="G"){
2509 result += Gbinary[number[i]];
251 }
25236 else if(structure[i]=="R"){
25332 result += Rbinary[number[i]];
254 }
255 }
25612 return result;
257 };
258}
259
260
261//Required to register for both browser and nodejs
2621var register = function(core){
2631 core.register(EAN, /^EAN(.?13)?$/i, 8);
2641 core.register(EAN8, /^EAN.?8$/i, 8);
2651 core.register(UPC, /^UPC(.?A)?$/i, 8);
266}
2672try{register(JsBarcode)} catch(e){}
2682try{module.exports.register = register} catch(e){}
269

/home/johan/DevZone/JsBarcode/barcodes/ITF.js

100%
31
31
0
LineHitsSource
11function ITF(ITFNumber){
2
36 this.ITFNumber = ITFNumber+"";
4
56 this.getText = function(){
61 return this.ITFNumber;
7 };
8
96 this.valid = function(){
104 return valid(this.ITFNumber);
11 };
12
136 this.encoded = function(){
14 //Create the variable that should be returned at the end of the function
151 var result = "";
16
17 //Always add the same start bits
181 result += startBin;
19
20 //Calculate all the digit pairs
211 for(var i=0;i<this.ITFNumber.length;i+=2){
223 result += calculatePair(this.ITFNumber.substr(i,2));
23 }
24
25 //Always add the same end bits
261 result += endBin;
27
281 return result;
29 }
30
31 //The structure for the all digits, 1 is wide and 0 is narrow
326 var digitStructure = {
33 "0":"00110"
34 ,"1":"10001"
35 ,"2":"01001"
36 ,"3":"11000"
37 ,"4":"00101"
38 ,"5":"10100"
39 ,"6":"01100"
40 ,"7":"00011"
41 ,"8":"10010"
42 ,"9":"01010"}
43
44 //The start bits
456 var startBin = "1010";
46 //The end bits
476 var endBin = "11101";
48
49 //Regexp for a valid Inter25 code
506 var regexp = /^([0-9][0-9])+$/;
51
52 //Calculate the data of a number pair
536 function calculatePair(twoNumbers){
543 var result = "";
55
563 var number1Struct = digitStructure[twoNumbers[0]];
573 var number2Struct = digitStructure[twoNumbers[1]];
58
59 //Take every second bit and add to the result
603 for(var i=0;i<5;i++){
6115 result += (number1Struct[i]=="1") ? "111" : "1";
6215 result += (number2Struct[i]=="1") ? "000" : "0";
63 }
643 return result;
65 }
66
676 function valid(number){
684 return number.search(regexp)!==-1;
69 }
70}
71
72//Required to register for both browser and nodejs
731var register = function(core){
741 core.register(ITF, /^ITF$/i, 4);
75};
762try{register(JsBarcode)} catch(e){}
772try{module.exports.register = register} catch(e){}
78

/home/johan/DevZone/JsBarcode/barcodes/ITF14.js

100%
41
41
0
LineHitsSource
11function ITF14(string){
29 this.string = string+"";
3}
4
51ITF14.prototype.getText = function(){
61 return this.string;
7};
8
91ITF14.prototype.valid = function(){
106 return valid(this.string);
11};
12
131ITF14.prototype.encoded = function(){
14 //Create the variable that should be returned at the end of the function
152 var result = "";
16
17 //If checksum is not already calculated, do it
182 if(this.string.length == 13){
191 this.string += checksum(this.string);
20 }
21
22 //Always add the same start bits
232 result += startBin;
24
25 //Calculate all the digit pairs
262 for(var i=0;i<14;i+=2){
2714 result += calculatePair(this.string.substr(i,2));
28 }
29
30 //Always add the same end bits
312 result += endBin;
32
332 return result;
34};
35
36//The structure for the all digits, 1 is wide and 0 is narrow
371var digitStructure = {
38 "0":"00110"
39,"1":"10001"
40,"2":"01001"
41,"3":"11000"
42,"4":"00101"
43,"5":"10100"
44,"6":"01100"
45,"7":"00011"
46,"8":"10010"
47,"9":"01010"}
48
49//The start bits
501var startBin = "1010";
51//The end bits
521var endBin = "11101";
53
54//Regexp for a valid ITF14 code
551var regexp = /^[0-9]{13,14}$/;
56
57//Calculate the data of a number pair
581function calculatePair(twoNumbers){
5914 var result = "";
60
6114 var number1Struct = digitStructure[twoNumbers[0]];
6214 var number2Struct = digitStructure[twoNumbers[1]];
63
64 //Take every second bit and add to the result
6514 for(var i=0;i<5;i++){
6670 result += (number1Struct[i]=="1") ? "111" : "1";
6770 result += (number2Struct[i]=="1") ? "000" : "0";
68 }
6914 return result;
70}
71
72//Calulate the checksum digit
731function checksum(numberString){
743 var result = 0;
75
7642 for(var i=0;i<13;i++){result+=parseInt(numberString[i])*(3-(i%2)*2)}
77
783 return 10 - (result % 10);
79}
80
811function valid(number){
826 if(number.search(regexp)==-1){
833 return false;
84 }
85 //Check checksum if it is already calculated
863 else if(number.length==14){
872 return number[13] == checksum(number);
88 }
891 return true;
90}
91
92//Required to register for both browser and nodejs
931var register = function(core){
941 core.register(ITF14, /^ITF.?14$/i, 5);
95}
962try{register(JsBarcode)} catch(e){}
972try{module.exports.register = register} catch(e){}
98

/home/johan/DevZone/JsBarcode/barcodes/MSI.js

100%
63
63
0
LineHitsSource
11var prototype = {};
2
31prototype.getText = function(){
411 return this.string;
5};
6
71prototype.encoded = function(){
82 var ret = "110";
9
102 for(var i=0;i<this.string.length;i++){
1116 var digit = parseInt(this.string[i]);
1216 var bin = digit.toString(2);
1316 bin = addZeroes(bin, 4-bin.length);
1416 for(var b=0;b<bin.length;b++){
1564 ret += bin[b]==0 ? "100" : "110";
16 }
17 }
18
192 ret += "1001";
202 return ret;
21};
22
231prototype.valid = function(){
247 return this.string.search(/^[0-9]+$/) != -1;
25};
26
271function MSI(string){
285 this.string = ""+string;
29}
30
311MSI.prototype = Object.create(prototype);
32
331function MSI10(string){
343 this.string = ""+string;
353 this.string += mod10(this.string);
36}
371MSI10.prototype = Object.create(prototype);
38
391function MSI11(string){
404 this.string = "" + string;
414 this.string += mod11(this.string);
42}
431MSI11.prototype = Object.create(prototype);
44
451function MSI1010(string){
462 this.string = "" + string;
472 this.string += mod10(this.string);
482 this.string += mod10(this.string);
49}
501MSI1010.prototype = Object.create(prototype);
51
521function MSI1110(string){
532 this.string = "" + string;
542 this.string += mod11(this.string);
552 this.string += mod10(this.string);
56}
571MSI1110.prototype = Object.create(prototype);
58
591function mod10(number){
609 var sum = 0;
619 for(var i=0;i<number.length;i++){
6254 var n = parseInt(number[i]);
6354 if((i + number.length) % 2 == 0){
6424 sum += n;
65 }
66 else{
6730 sum += (n*2)%10 + Math.floor((n*2)/10)
68 }
69 }
709 return (10-(sum%10))%10;
71}
72
731function mod11(number){
746 var sum = 0;
756 var weights = [2,3,4,5,6,7];
766 for(var i=0;i<number.length;i++){
7746 var n = parseInt(number[number.length-1-i]);
7846 sum += weights[i % weights.length] * n;
79 }
806 return (11-(sum%11))%11;
81}
82
831function addZeroes(number, n){
8416 for(var i=0;i<n;i++){
8524 number = "0"+number;
86 }
8716 return number;
88}
89
90//Required to register for both browser and nodejs
911var register = function(core){
921 core.register(MSI, /^MSI$/i, 4);
931 core.register(MSI10, /^MSI.?10$/i);
941 core.register(MSI11, /^MSI.?11$/i);
951 core.register(MSI1010, /^MSI.?1010$/i);
961 core.register(MSI1110, /^MSI.?1110$/i);
97}
982try{register(JsBarcode)} catch(e){}
992try{module.exports.register = register} catch(e){}
100

/home/johan/DevZone/JsBarcode/barcodes/pharmacode.js

100%
32
32
0
LineHitsSource
11function pharmacode(number){
2 //Ensure that the input is inturpreted as a number
36 this.number = parseInt(number);
4
56 this.getText = function(){
61 return this.number + "";
7 };
8
96 function recursiveEncoding(code,state){
10 //End condition
1121 if(code.length == 0) return "";
12
1315 var generated;
1415 var nextState = false;
1515 var nZeros = zeros(code);
1615 if(nZeros == 0){
177 generated = state ? "001" : "00111";
187 nextState = state;
19 }
20 else{
218 generated = "001".repeat(nZeros - (state ? 1 : 0));
228 generated += "00111";
23 }
2415 return recursiveEncoding(code.substr(0,code.length - nZeros - 1),nextState) + generated;
25 };
26
276 this.encoded = function(){
283 return recursiveEncoding(this.number.toString(2),true).substr(2);
29 };
30
316 this.valid = function(){
322 return this.number >= 3 && this.number <= 131070;
33 };
34
35 //A help function to calculate the zeros at the end of a string (the code)
366 var zeros = function(code){
3715 var i = code.length - 1;
3815 var zeros = 0;
3915 while(code[i]=="0" || i<0){
4013 zeros++;
4113 i--;
42 }
4315 return zeros;
44 };
45
46 //http://stackoverflow.com/a/202627
476 String.prototype.repeat = function( num )
48 {
498 return new Array( num + 1 ).join( this );
50 }
51};
52
53//Required to register for both browser and nodejs
541var register = function(core){
551 core.register(pharmacode, /^pharmacode$/i, 2);
56}
572try{register(JsBarcode)} catch(e){}
582try{module.exports.register = register} catch(e){}
59
\ No newline at end of file diff --git a/test/help/index.ts b/test/help/index.ts new file mode 100644 index 00000000..0f94bb90 --- /dev/null +++ b/test/help/index.ts @@ -0,0 +1,43 @@ +export function fixBin(a) { + return stripZero(mergeToBin(a)); +} + +export function fixText(encodeData) { + if (Array.isArray(encodeData)) { + var ret = ''; + for (var i = 0; i < encodeData.length; i++) { + ret += fixText(encodeData[i]); + } + return ret; + } else { + return encodeData.text || ''; + } +} + +export function mergeToBin(encodeData) { + if (Array.isArray(encodeData)) { + var ret = ''; + for (var i = 0; i < encodeData.length; i++) { + ret += toBin(encodeData[i].data); + } + return ret; + } else { + return toBin(encodeData); + } +} + +export function toBin(res) { + var ret = ''; + for (var i = 0; i < res.length; i++) { + if (res[i] > 0) { + ret += '1'; + } else { + ret += '0'; + } + } + return ret; +} + +export function stripZero(string) { + return string.match(/^0*(.+?)0*$/)[1]; +} diff --git a/test/node/CODE128.test.js b/test/node/CODE128.test.js deleted file mode 100644 index 95da3079..00000000 --- a/test/node/CODE128.test.js +++ /dev/null @@ -1,109 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - - -describe('CODE128', function() { - it('should be able to include the encoder(s)', function () { - CODE128 = JsBarcode.getModule("CODE128"); - CODE128A = JsBarcode.getModule("CODE128A"); - CODE128B = JsBarcode.getModule("CODE128B"); - CODE128C = JsBarcode.getModule("CODE128C"); - }); - - it('should encode CODE128A', function () { - var enc = new CODE128A("ABC" + String.fromCharCode(25), {}); - assert.equal("1101000010010100011000100010110001000100011011011011110100011101101100011101011" - , enc.encode().data); - }); - - it('should encode CODE128B', function () { - var enc = new CODE128B("a@B=1", {}); - assert.equal("110100100001001011000011000110110100010110001110011001010011100110110111001001100011101011" - , enc.encode().data); - }); - - it('should encode CODE128C', function () { - var enc = new CODE128C("123456", {}); - assert.equal("11010011100101100111001000101100011100010110100011011101100011101011" - , enc.encode().data); - }); - - it('should encode CODE128 as GS1-128/EAN-128', function () { - var enc = new CODE128C("12345678", { ean128: true }); - assert.equal("110100111001111010111010110011100100010110001110001011011000010100110010011101100011101011", - enc.encode().data); - }); - - it('should remove unprintable characters', function () { - var enc = new CODE128C("A\n\x00B \x04\x10\x1FC", {}); - assert.equal("AB C", enc.encode().text); - }); - - it('should encode CODE128 (auto)', function () { - var enc = new CODE128("12345Hejsan123456\tA", {}); - assert.equal("110100111001011001110010001011000101111011101101110010011000101000101100100001000011001010111100100100101100001100001010010111011110101100111001000101100011100010110111010111101000011010010100011000111011110101100011101011", - enc.encode().data); - - var enc = new CODE128("Hi\n12345", {}); - assert.equal("110100100001100010100010000110100111010111101000011001010011100110101110111101110110111010111011000111001100101100011101011" - , enc.encode().data); - - var enc = new CODE128("HI\nHi", {}); - assert.equal("11010000100110001010001100010001010000110010110001010001011110111010000110100110110011001100011101011" - , enc.encode().data); - - var enc = new CODE128("HI\n" + String.fromCharCode(201) + "Hi" + String.fromCharCode(202) + "123456" + String.fromCharCode(207), {}); - assert.equal("1101000010011000101000110001000101000011001010111100010110001010001011110111010000110100111101010001011101111010110011100100010110001110001011011110101110110011100101100011101011" - , enc.encode().data); - - var enc = new CODE128(String.fromCharCode(207) + "42184020500", {}); - assert.equal("110100111001111010111010110111000110011100101100010100011001001110110001011101110101111010011101100101011110001100011101011" - , enc.encode().data); - - var enc = new CODE128("Should\nshift", {}); - assert.equal("1101001000011011101000100110000101000111101010011110010110010100001000010011011110100010100001100101011110010010011000010100001101001011000010010011110100100011010001100011101011" - , enc.encode().data); - - var enc = new CODE128("\tHi\nHI", {}); - assert.equal("1101000010010000110100110001010001111010001010000110100100001100101100010100011000100010111101101101100011101011" - , enc.encode().data); - - }); - - it('should warn with invalid text', function () { - var enc = new CODE128("ABC" + String.fromCharCode(500), {}); - assert.equal(false, enc.valid(), {}); - - var enc = new CODE128A("Abc", {}); - assert.equal(false, enc.valid()); - - var enc = new CODE128B("Abc\t123", {}); - assert.equal(false, enc.valid()); - - var enc = new CODE128C("1234ab56", {}); - assert.equal(false, enc.valid()); - - var enc = new CODE128C("12345", {}); - assert.equal(false, enc.valid()); - }); - - it('should pass valid text', function () { - var enc = new CODE128("ABC" + String.fromCharCode(207), {}); - assert.equal(true, enc.valid()); - - var enc = new CODE128A("ABC\t\n123", {}); - assert.equal(true, enc.valid()); - - var enc = new CODE128B("Abc123" + String.fromCharCode(202), {}); - assert.equal(true, enc.valid()); - - var enc = new CODE128C("123456", {}); - assert.equal(true, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new CODE128("AB12", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); -}); diff --git a/test/node/CODE39.test.js b/test/node/CODE39.test.js deleted file mode 100644 index cb212dc8..00000000 --- a/test/node/CODE39.test.js +++ /dev/null @@ -1,37 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - - -describe('CODE39', function() { - it('should be able to include the encoder(s)', function () { - CODE39 = JsBarcode.getModule("CODE39"); - }); - - it('should be able to encode normal text', function () { - var enc = new CODE39("AB12", {}); - assert.equal("100010111011101011101010001011101011101000101110111010001010111010111000101011101000101110111010" - , enc.encode().data); - }); - - it('should warn with invalid text', function () { - var enc = new CODE39("AB!12", {}); - assert.equal(false, enc.valid()); - }); - - it('should make lowercase to uppercase', function () { - var enc = new CODE39("abc123ABC", {}); - assert.equal("ABC123ABC", enc.encode().text); - }); - - it('should calculate correct checksums', function () { - var enc = new CODE39("ABCDEFG", {mod43: true}); - assert.equal("1000101110111010111010100010111010111010001011101110111010001010101011100010111011101011100010101011101110001010101010001110111011101000111010101000101110111010" - , enc.encode().data); - }); - - it('should work with text option', function () { - var enc = new CODE39("AB12", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); -}); diff --git a/test/node/EAN-UPC.test.js b/test/node/EAN-UPC.test.js deleted file mode 100644 index 9c064dd9..00000000 --- a/test/node/EAN-UPC.test.js +++ /dev/null @@ -1,220 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); -var help = require("./help/help"); -var clone = help.clone; - -var options = {height: 100, displayValue: true, fontSize: 20, textMargin: 2, width: 2}; - -describe('UPC-A', function() { - it('should be able to include the encoder(s)', function () { - UPC = JsBarcode.getModule("UPC"); - }); - - it('should be able to encode normal text', function () { - var enc = new UPC("123456789999", clone(options)); - assert.equal("10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101" - , help.fixBin(enc.encode())); - }); - - it('should warn with invalid text', function () { - var enc = new UPC("12345", clone(options)); - assert.equal(false, enc.valid()); - }); - - it('should auto include the checksum if missing', function () { - var enc = new UPC("12345678999", clone(options)); - assert.equal("123456789999", help.fixText(enc.encode())); - }); - - it('should work with text option', function () { - var enc = new UPC("12345678999", help.merge(options, {text: "THISISTEXT"})); - assert.equal("THISISTEXT", help.fixText(enc.encode())); - }); - - it('should work with flat option', function () { - var enc = new UPC("123456789999", help.merge(options, {flat: true})); - assert.equal("10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101" - , enc.encode().data); - assert.equal("123456789999", enc.encode().text); - }); -}); - -const UPCE_BINARY = "101011001100100110011101011100101110110011001010101"; -describe('UPC-E', function() { - it('should be able to include the encoder(s)', function () { - UPCE = JsBarcode.getModule("UPCE"); - }); - - it('should be able to encode 8-digit codes', function () { - var enc = new UPCE("01245714", clone(options)); - assert.equal(UPCE_BINARY, help.fixBin(enc.encode())); - }); - - it('should be able to encode 6-digit codes by assuming a 0 number system', function () { - var enc = new UPCE("124571", clone(options)); - assert.equal(UPCE_BINARY, help.fixBin(enc.encode())); - }); - - it('should warn with invalid text', function () { - var enc = new UPCE("01245715", clone(options)); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new UPCE("124571", help.merge(options, {text: "SOMETEXT"})); - assert.equal("SOMETEXT", help.fixText(enc.encode())); - }); - - it('should work with flat option', function () { - var enc = new UPCE("01245714", help.merge(options, {flat: true})); - assert.equal(UPCE_BINARY, enc.encode().data); - assert.equal("01245714", enc.encode().text); - }); -}); - -describe('EAN', function() { - it('should be able to include the encoder(s)', function () { - EAN = JsBarcode.getModule("EAN13"); - }); - - it('should be able to encode normal text', function () { - var enc = new EAN("5901234123457", clone(options)); - assert.equal(true, enc.valid()); - assert.equal("10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101" - , help.fixBin(enc.encode())); - assert.equal("5901234123457", help.fixText(enc.encode())); - }); - - it('should be able to encode normal text with flat option', function () { - var enc = new EAN("5901234123457", help.merge(options, {flat: true})); - assert.equal(true, enc.valid()); - assert.equal("10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101" - , enc.encode().data); - assert.equal("5901234123457", help.fixText(enc.encode())); - }); - - it('should warn with invalid text', function () { - var enc = new EAN("12345", {}); - assert.equal(false, enc.valid()); - - var enc = new EAN("5901234123456 ", {}); - assert.equal(false, enc.valid()); - }); - - it('should auto include the checksum if missing', function () { - var enc = new EAN("590123412345", clone(options)); - assert.equal("5901234123457", help.fixText(enc.encode())); - }); - - it('should work with text option', function () { - var enc = new EAN("12345678999", help.merge(options, {text: "THISISTEXT"})); - assert.equal("THISISTEXT", help.fixText(enc.encode())); - }); -}); - -describe('EAN-8', function() { - it('should be able to include the encoder(s)', function () { - EAN8 = JsBarcode.getModule("EAN8"); - }); - - it('should be able to encode normal text', function () { - var enc = new EAN8("96385074", {}); - assert.equal(true, enc.valid()); - assert.equal("1010001011010111101111010110111010101001110111001010001001011100101" - , help.fixBin(enc.encode())); - assert.equal("96385074", help.fixText(enc.encode())); - }); - - it('should be able to encode normal text with flat option', function () { - var enc = new EAN8("96385074", help.merge(options, {flat: true})); - assert.equal(true, enc.valid()); - assert.equal("1010001011010111101111010110111010101001110111001010001001011100101" - , enc.encode().data); - assert.equal("96385074", help.fixText(enc.encode())); - }); - - it('should auto include the checksum if missing', function () { - var enc = new EAN8("9638507", {}); - - assert.equal(true, enc.valid()); - assert.equal("96385074", help.fixText(enc.encode())); - assert.equal("1010001011010111101111010110111010101001110111001010001001011100101" - , help.fixBin(enc.encode())); - }); - - it('should warn with invalid text', function () { - var enc = new EAN8("12345", {}); - assert.equal(false, enc.valid()); - - var enc = new EAN8("96385073", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new EAN8("96385074", help.merge(options, {text: "THISISTEXT", flat: true})); - assert.equal("THISISTEXT", help.fixText(enc.encode())); - }); -}); - -describe('EAN-5', function() { - it('should be able to include the encoder(s)', function () { - EAN5 = JsBarcode.getModule("EAN5"); - }); - - it('should be able to encode normal text', function () { - var enc = new EAN5("54495", {}); - assert.equal(true, enc.valid()); - assert.equal("10110110001010100011010011101010001011010111001" - , enc.encode().data); - - var enc = new EAN5("12345", {}); - assert.equal(true, enc.valid()); - assert.equal("10110110011010010011010100001010100011010110001" - , enc.encode().data); - }); - - it('should warn with invalid text', function () { - var enc = new EAN5("1234", {}); - assert.equal(false, enc.valid()); - - var enc = new EAN5("123a5", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new EAN5("12345", help.merge(options, {text: "THISISTEXT"})); - assert.equal("THISISTEXT", help.fixText(enc.encode())); - }); -}); - -describe('EAN-2', function() { - it('should be able to include the encoder(s)', function () { - EAN2 = JsBarcode.getModule("EAN2"); - }); - - it('should be able to encode normal text', function () { - var enc = new EAN2("53", {}); - assert.equal(true, enc.valid()); - assert.equal("10110110001010100001" - , enc.encode().data); - - var enc = new EAN2("12", {}); - assert.equal(true, enc.valid()); - assert.equal("10110011001010010011" - , enc.encode().data); - }); - - it('should warn with invalid text', function () { - var enc = new EAN2("1", {}); - assert.equal(false, enc.valid()); - - var enc = new EAN2("a2", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new EAN2("12", help.merge(options, {text: "THISISTEXT"})); - assert.equal("THISISTEXT", help.fixText(enc.encode())); - }); -}); diff --git a/test/node/ITF-14.test.js b/test/node/ITF-14.test.js deleted file mode 100644 index a6ddf634..00000000 --- a/test/node/ITF-14.test.js +++ /dev/null @@ -1,68 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - - -describe('ITF-14', function() { - it('should be able to include the encoder(s)', function () { - ITF14 = JsBarcode.getModule("ITF14"); - }); - - it('should be able to encode normal text', function () { - var enc = new ITF14("98765432109213", {}); - assert.equal("101010001110101110001010100010001110111011101011100010100011101110001010100011101010001000111010111000101110100011100010001010111011101" - , enc.encode().data); - }); - - it('should be able to add checksum if needed', function () { - var enc = new ITF14("9876543210921", {}); - assert.equal("101010001110101110001010100010001110111011101011100010100011101110001010100011101010001000111010111000101110100011100010001010111011101" - , enc.encode().data); - }); - - it('should return text correct', function () { - var enc = new ITF14("9876543210921", {}); - assert.equal("98765432109213", enc.encode().text); - - var enc = new ITF14("98765432109213", {}); - assert.equal("98765432109213", enc.encode().text); - }); - - it('should warn with invalid text and not when valid', function () { - var enc = new ITF14("987654321092", {}); - assert.equal(false, enc.valid()); - - var enc = new ITF14("98765432109212", {}); - assert.equal(false, enc.valid()); - - var enc = new ITF14("98765432109213", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("9876543210921", {}); - assert.equal(true, enc.valid()); - - // Edge cases for check digit of zero - var enc = new ITF14("00847280031740", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("00847280031900", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("00847280032020", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("00847280031870", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("00847280031450", {}); - assert.equal(true, enc.valid()); - - var enc = new ITF14("00847280031320", {}); - assert.equal(true, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new ITF14("00847280031450", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); -}); diff --git a/test/node/ITF.test.js b/test/node/ITF.test.js deleted file mode 100644 index 15790c7a..00000000 --- a/test/node/ITF.test.js +++ /dev/null @@ -1,34 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - - -describe('ITF', function() { - it('should be able to include the encoder(s)', function () { - ITF = JsBarcode.getModule("ITF"); - }); - - it('should be able to encode normal text', function () { - var enc = new ITF("123456", {}); - assert.equal("101011101000101011100011101110100010100011101000111000101011101" - , enc.encode().data); - }); - - it('should return getText correct', function () { - var enc = new ITF("123456", {}); - assert.equal("123456", enc.encode().text); - }); - - it('should warn with invalid text', function () { - var enc = new ITF("12345", {}); - assert.equal(false, enc.valid()); - - var enc = new ITF("1234AB", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new ITF("123456", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); -}); diff --git a/test/node/JsBarcode.test.js b/test/node/JsBarcode.test.js index 424da352..09e4d7a9 100644 --- a/test/node/JsBarcode.test.js +++ b/test/node/JsBarcode.test.js @@ -1,132 +1,167 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - -describe('Encoders', function() { - it('should be able to include the encoders needed', function () { - CODE128 = JsBarcode.getModule("CODE128"); - GENERIC = JsBarcode.getModule("GenericBarcode"); - }); -}); - -describe('node-canvas generation', function() { - it('should generate normal canvas', function () { - var canvas = new Canvas(); - JsBarcode(canvas, "Hello"); - }); - - it('checking width', function () { - var canvas1 = new Canvas(); - var canvas2 = new Canvas(); - - JsBarcode(canvas1, "Hello", {format: "CODE128"}); - JsBarcode(canvas2, "Hello", {format: "CODE39"}); - - assert.notEqual(canvas1.width, canvas2.width); - }); - - it('should throws errors when suppose to', function () { - var canvas = new Canvas(); - assert.throws(function(){JsBarcode(canvas, "Hello", {format: "EAN8"});}); - assert.throws(function(){JsBarcode("Hello", "Hello", {format: "DOESNOTEXIST"});}); - assert.throws(function(){JsBarcode(123, "Hello", {format: "DOESNOTEXIST"});}); - }); - - it('should use the valid callback correct', function (done) { - var canvas = new Canvas(); - - JsBarcode(canvas, "Hello", { - format: "CODE128", - valid: function(valid){ - if(valid){ - done(); - } - } - }); - }); - - it('should use false valid callback correct', function (done) { - var canvas = new Canvas(); - - JsBarcode(canvas, "Hello", { - format: "pharmacode", - valid: function(valid){ - if(!valid){ - done(); - } - } - }); - }); - - it('should create output with same input', function () { - var canvas1 = new Canvas(); - var canvas2 = new Canvas(); - - JsBarcode(canvas1, "Hello", {format: "CODE128"}); - JsBarcode(canvas2, "Hello", {format: "CODE128"}); - - assert.equal(canvas1.toDataURL(), canvas2.toDataURL()); - }); - - it('should set background', function () { - var canvas = new Canvas(); - var ctx = canvas.getContext("2d"); - JsBarcode(canvas, "Hello", {format: "CODE128", background: "#f00"}); - - var topLeft = ctx.getImageData(0,0,1,1); - assert.equal(255, topLeft.data[0]); - assert.equal(0, topLeft.data[1]); - assert.equal(0, topLeft.data[2]); - }); -}); - -describe('Text printing', function() { - it('should produce different output when displaying value', function () { - var canvas1 = new Canvas(); - var canvas2 = new Canvas(); - - JsBarcode(canvas1, "Hello", {format: "CODE128", displayValue: false}); - JsBarcode(canvas2, "Hello", {format: "CODE128"}); +const assert = require('assert'); +const jsbarcode = require('packages/jsbarcode/src/index').default; - assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL()); - }); +const code128 = require('packages/barcodes/code128/src/CODE128_AUTO').default(); +const code39 = require('packages/barcodes/code39/src/index').default(); +const ean8 = require('packages/barcodes/ean-upc/src/EAN8').default; +const ean13 = require('packages/barcodes/ean-upc/src/EAN13').default; +const GENERIC = require('packages/barcodes/generic-barcode/src/index').default; - it('should produce different output when having different textAlign', function () { - var canvas1 = new Canvas(); - var canvas2 = new Canvas(); - var canvas3 = new Canvas(); +const canvasRenderer = require('packages/renderer/canvas/src/index').default; - JsBarcode(canvas1, "Hello", {format: "CODE128", displayValue: true, textAlign: "center"}); - JsBarcode(canvas2, "Hello", {format: "CODE128", displayValue: true, textAlign: "left"}); - JsBarcode(canvas3, "Hello", {format: "CODE128", displayValue: true, textAlign: "right"}); +const { createCanvas } = require('canvas'); - assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL()); - assert.notEqual(canvas2.toDataURL(), canvas3.toDataURL()); - assert.notEqual(canvas1.toDataURL(), canvas3.toDataURL()); - }); - - it('should allow numbers as input', function () { - var canvas = new Canvas(); +describe('node-canvas generation', function() { + it('should generate normal canvas', function() { + var canvas = createCanvas(); + jsbarcode(canvas, 'Hello', { + encoder: code128, + renderer: canvasRenderer, + }); + }); + + it('checking width', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1, 'HELLO', { encoder: code128, renderer: canvasRenderer }); + jsbarcode(canvas2, 'HELLO', { encoder: code39, renderer: canvasRenderer }); + + assert.notEqual(canvas1.width, canvas2.width); + }); + + it('should throws errors when suppose to', function() { + var canvas = createCanvas(); + assert.throws(function() { + jsbarcode(canvas, 'Hello', { encoder: ean8, renderer: canvasRenderer }); + }); + assert.throws(function() { + jsbarcode(canvas, 'Hello', { encoder: code128 }); + }); + assert.throws(function() { + jsbarcode(canvas, 'Hello', { renderer: canvasRenderer }); + }); + assert.throws(function() { + jsbarcode('Hello', 'Hello'); + }); + assert.throws(function() { + jsbarcode(123, 'Hello'); + }); + }); + + it('should throws error when no object is provided', function() { + assert.throws( + () => { + jsbarcode(undefined, 'Hello', { encoder: ean8, renderer: canvasRenderer }); + }, + err => err.name === 'NoElementException', + ); + }); + + it('should create output with same input', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1, 'Hello', { encoder: code128, renderer: canvasRenderer }); + jsbarcode(canvas2, 'Hello', { encoder: code128, renderer: canvasRenderer }); + + assert.equal(canvas1.toDataURL(), canvas2.toDataURL()); + }); + + it('should set background', function() { + var canvas = createCanvas(); + var ctx = canvas.getContext('2d'); + jsbarcode(canvas, 'Hello', { + encoder: code128, + renderer: canvasRenderer, + background: '#f00', + }); + + var topLeft = ctx.getImageData(0, 0, 1, 1); + assert.equal(255, topLeft.data[0]); + assert.equal(0, topLeft.data[1]); + assert.equal(0, topLeft.data[2]); + }); +}); - JsBarcode(canvas, 1234567890128, {format: "EAN13"}); - }); +describe('Text printing', function() { + it('should produce different output when displaying value', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1, 'Hello', { encoder: code128, renderer: canvasRenderer, displayValue: false }); + jsbarcode(canvas2, 'Hello', { encoder: code128, renderer: canvasRenderer }); + + assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL()); + }); + + it('should produce different output when having different textAlign', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + var canvas3 = createCanvas(); + + jsbarcode(canvas1, 'Hello', { + encoder: code128, + renderer: canvasRenderer, + displayValue: true, + textAlign: 'center', + }); + jsbarcode(canvas2, 'Hello', { encoder: code128, renderer: canvasRenderer, displayValue: true, textAlign: 'left' }); + jsbarcode(canvas3, 'Hello', { encoder: code128, renderer: canvasRenderer, displayValue: true, textAlign: 'right' }); + + assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL()); + assert.notEqual(canvas2.toDataURL(), canvas3.toDataURL()); + assert.notEqual(canvas1.toDataURL(), canvas3.toDataURL()); + }); + + it('should allow numbers as input', function() { + var canvas = createCanvas(); + + jsbarcode(canvas, 1234567890128, { encoder: ean13(), renderer: canvasRenderer }); + }); }); -describe('Extended Arrays', function() { - it('should work with extended arrays', function () { - Array.prototype.test = function(){}; - Array.prototype._test = "test"; - - var canvas = new Canvas(); - JsBarcode(canvas, "Hello"); - JsBarcode(canvas, "HI", {format: "CODE39"}); - }); +describe('Advanced api use', function() { + it('should work as simple version', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1, 'Hello', { encoder: code128, renderer: canvasRenderer }); + jsbarcode(canvas2) + .options({ encoder: code128, renderer: canvasRenderer }) + .barcode('Hello') + .render(); + + assert.equal(canvas1.toDataURL(), canvas2.toDataURL()); + }); + + it('should work with blank', function() { + var canvas1 = createCanvas(); + var canvas2 = createCanvas(); + + jsbarcode(canvas1) + .options({ encoder: code128, renderer: canvasRenderer }) + .barcode('Hello') + .barcode('Hello') + .render(); + jsbarcode(canvas2) + .options({ encoder: code128, renderer: canvasRenderer }) + .barcode('Hello') + .blank(10) + .barcode('Hello') + .render(); + + assert.notEqual(canvas1.toDataURL(), canvas2.toDataURL()); + }); }); -describe('Generic barcode', function() { - it('should not fail generic barcode', function () { - var enc = new GENERIC("1234", {}); - assert.equal(enc.valid(), true); - assert.equal(enc.encode().text, "1234"); - }); +describe('Extended Arrays', function() { + it('should work with extended arrays', function() { + Array.prototype.test = function() {}; + Array.prototype._test = 'test'; + + var canvas = createCanvas(); + jsbarcode(canvas, 'Hello', { encoder: code128, renderer: canvasRenderer }); + jsbarcode(canvas, 'HI', { encoder: code39, renderer: canvasRenderer }); + }); }); diff --git a/test/node/MSI.test.js b/test/node/MSI.test.js deleted file mode 100644 index b48c2e9f..00000000 --- a/test/node/MSI.test.js +++ /dev/null @@ -1,77 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - - -describe('MSI', function() { - it('should be able to include the encoder(s)', function () { - MSI = JsBarcode.getModule("MSI"); - MSI10 = JsBarcode.getModule("MSI10"); - MSI11 = JsBarcode.getModule("MSI11"); - MSI1010 = JsBarcode.getModule("MSI1010"); - MSI1110 = JsBarcode.getModule("MSI1110"); - }); - - it('should be able to encode normal text', function () { - var enc = new MSI10("1234567", {}); - assert.equal(true, enc.valid()); - assert.equal("12345674", enc.encode().text); - assert.equal("1101001001001101001001101001001001101101001101001001001101001101001101101001001101101101001101001001001" - , enc.encode().data); - - var enc = new MSI("12345674", {}); - assert.equal("1101001001001101001001101001001001101101001101001001001101001101001101101001001101101101001101001001001" - , enc.encode().data); - - var enc = new MSI10("17345", {}); - assert.equal(true, enc.valid()); - assert.equal("173450", enc.encode().text); - - var enc = new MSI10("1234", {}); - assert.equal(true, enc.valid()); - assert.equal("12344", enc.encode().text); - }); - - it('should encode MSI11', function () { - var enc = new MSI11("123456", {}); - assert.equal("1234560", enc.encode().text); - - var enc = new MSI11("12345678", {}); - assert.equal("123456785", enc.encode().text); - - var enc = new MSI11("1234567891011", {}); - assert.equal("12345678910115", enc.encode().text); - - var enc = new MSI11("1134567", {}); - assert.equal("11345670", enc.encode().text); - }); - - it('should encode MSI1010', function () { - var enc = new MSI1010("1234567", {}); - assert.equal("123456741", enc.encode().text); - - var enc = new MSI1010("1337", {}); - assert.equal("133751", enc.encode().text); - }); - - it('should encode MSI1110', function () { - var enc = new MSI1110("12345678", {}); - assert.equal("1234567855", enc.encode().text); - - var enc = new MSI1110("1337", {}); - assert.equal("133744", enc.encode().text); - }); - - it('should warn with invalid text', function () { - var enc = new MSI("12345ABC", {}); - assert.equal(false, enc.valid()); - - var enc = new MSI("12345AB675", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new MSI("12345674", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); -}); diff --git a/test/node/Object-Render.test.js b/test/node/Object-Render.test.js index 88f5785f..f92369f5 100644 --- a/test/node/Object-Render.test.js +++ b/test/node/Object-Render.test.js @@ -1,41 +1,31 @@ var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); +var jsbarcode = require('packages/jsbarcode/src/index').default; +const objectRenderer = require('packages/core/src/renderers/object').default; +const code128 = require('packages/barcodes/code128/src/CODE128_AUTO').default(); +const upc = require('packages/barcodes/ean-upc/src/UPC').default(); describe('Object', function() { it('should handle default options', function () { var data = {}; - JsBarcode(data, '12345678'); - assert.equal(typeof data.encodings, 'object'); + jsbarcode(data, '12345678', { renderer: objectRenderer, encoder: code128 }); + assert.equal(typeof data.encodings, 'object', { renderer: objectRenderer }); }); it('should catch null', function() { assert.throws( () => { - JsBarcode(null, '12345678'); + jsbarcode(null, '12345678', { renderer: objectRenderer, encoder: code128 }); }, - /InvalidElementException/ + (err) => err.name === 'InvalidElementException' ); }); - - it('should ignore dom elements', function() { - var fakeElement = { - nodeName: 'Some Dom Element' - } - assert.throws( - () => { - JsBarcode(fakeElement, '2345678'); - }, - /InvalidElementException/ - ); - }); it('should work for different types', function () { var data = {}; - JsBarcode(data, '550000000000', { - format: 'upc' + jsbarcode(data, '550000000000', { + renderer: objectRenderer, + encoder: upc, }); assert.equal(data.encodings.length, 7); - assert.ok(data.encodings.every((val) => val.options.format === 'upc')); }); }); diff --git a/test/node/codabar.test.js b/test/node/codabar.test.js deleted file mode 100644 index fd3d776f..00000000 --- a/test/node/codabar.test.js +++ /dev/null @@ -1,73 +0,0 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); - -describe('Codabar', function() { - it('should be able to include the encoder(s)', function () { - Codabar = JsBarcode.getModule("codabar"); - }); - - it('should encode a string with start and stop characters', function() { - var enc = new Codabar("A12345B", {}); - assert.equal("10110010010101011001010100101101100101010101101001011010100101001001011" - , enc.encode().data); - }); - - it('should add start and stop characters to a string without them', function() { - var enc = new Codabar("12345", {}); - // should encode to "A12345A" - assert.equal("10110010010101011001010100101101100101010101101001011010100101011001001" - , enc.encode().data); - }); - - it('should return text string without start/stop characters', function() { - var enc = new Codabar("A12345B", {}); - assert.equal("12345", enc.encode().text) - }); - - it('should warn with invalid start/stop characters', function () { - var enc = new Codabar("X12345Y", {}); - assert.equal(false, enc.valid()); - }); - - it('should warn with only a start character', function () { - var enc = new Codabar("A12345", {}); - assert.equal(false, enc.valid()); - }); - - it('should warn with only an invalid start character', function () { - var enc = new Codabar("X12345", {}); - assert.equal(false, enc.valid()); - }); - - it('should warn with only a stop character', function () { - var enc = new Codabar("12345A", {}); - assert.equal(false, enc.valid()); - }); - - it('should warn with only an invalid stop character', function () { - var enc = new Codabar("12345X", {}); - assert.equal(false, enc.valid()); - }); - - it('should warn with only start and stop characters', function() { - var enc = new Codabar("AA", {}) - assert.equal(false, enc.valid()); - }); - - it('should warn with an empty string', function() { - var enc = new Codabar("", {}) - assert.equal(false, enc.valid()); - }); - - it('should warn with invalid input', function () { - var enc = new Codabar("A1234OOPS56A", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new Codabar("A1234OOPS56A", {text: "THISISATEXT"}); - assert.equal("THISISATEXT", enc.encode().text); - }); - -}); diff --git a/test/node/help/help.js b/test/node/help/help.js deleted file mode 100644 index 0ca0be78..00000000 --- a/test/node/help/help.js +++ /dev/null @@ -1,72 +0,0 @@ -module.exports.toBin = mergeToBin; -module.exports.stripZero = stripZero; -module.exports.fixText = mergeToText; -module.exports.merge = merge; -module.exports.clone = clone; - -module.exports.fixBin = function(a){ - return stripZero(mergeToBin(a)); -} - -function mergeToText(encodeData){ - if(Array.isArray(encodeData)){ - var ret = ""; - for(var i = 0; i < encodeData.length; i++){ - ret += mergeToText(encodeData[i]); - } - return ret; - } - else{ - return encodeData.text || ""; - } -} - -function mergeToBin(encodeData){ - if(Array.isArray(encodeData)){ - var ret = ""; - for(var i = 0; i < encodeData.length; i++){ - ret += toBin(encodeData[i].data); - } - return ret; - } - else{ - return toBin(encodeData); - } -} - -function toBin(res){ - var ret = ""; - for(var i=0;i 0){ - ret += "1"; - } - else{ - ret += "0"; - } - } - return ret; -} - -function stripZero(string){ - return string.match(/^0*(.+?)0*$/)[1]; -} - -function merge(old, replaceObj) { - var newMerge = {}; - var k; - for (k in old) { - if (old.hasOwnProperty(k)) { - newMerge[k] = old[k]; - } - } - for (k in replaceObj) { - if(replaceObj.hasOwnProperty(k) && typeof replaceObj[k] !== "undefined"){ - newMerge[k] = replaceObj[k]; - } - } - return newMerge; -} - -function clone(obj){ - return merge({}, obj) -} diff --git a/test/node/nodesvg.test.js b/test/node/nodesvg.test.js index b07ddb24..92b1bc9f 100644 --- a/test/node/nodesvg.test.js +++ b/test/node/nodesvg.test.js @@ -1,20 +1,24 @@ -var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var xmldom = require('xmldom'); -var DOMImplementation = xmldom.DOMImplementation; -var XMLSerializer = xmldom.XMLSerializer; -var xmlSerializer = new XMLSerializer(); -var document = new DOMImplementation().createDocument('http://www.w3.org/1999/xhtml', 'html', null); +const assert = require('assert'); +const JsBarcode = require('packages/jsbarcode/src/index').default; +const code128 = require('packages/barcodes/code128/src/CODE128_AUTO').default(); +const svgRenderer = require('packages/renderer/svg/src/index').default; +const xmldom = require('@xmldom/xmldom'); +const DOMImplementation = xmldom.DOMImplementation; +const XMLSerializer = xmldom.XMLSerializer; +const xmlSerializer = new XMLSerializer(); +const document = new DOMImplementation().createDocument('http://www.w3.org/1999/xhtml', 'html', null); describe('SVG', function() { it('should work with external SVG implementation', function () { - var svgNode = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + const svgNode = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); JsBarcode(svgNode, 'test', { - xmlDocument: document + xmlDocument: document, + encoder: code128, + renderer: svgRenderer, }); - var xml = xmlSerializer.serializeToString(svgNode); + const xml = xmlSerializer.serializeToString(svgNode); assert(xml.length > 200); }); }); diff --git a/test/node/pharmacode.test.js b/test/node/pharmacode.test.js index 5957fc43..2f4f0786 100644 --- a/test/node/pharmacode.test.js +++ b/test/node/pharmacode.test.js @@ -1,37 +1,29 @@ var assert = require('assert'); -var JsBarcode = require('../../bin/JsBarcode.js'); -var Canvas = require("canvas"); +const pharmacode = require('packages/barcodes/pharmacode/src/index').default(); describe('Pharmacode', function() { - it('should be able to include the encoder(s)', function () { - Pharmacode = JsBarcode.getModule("pharmacode"); - }); + it('should be able to encode normal text', function() { + let encoded = pharmacode.encode('1234', {}); + assert.equal('10010011100111001001110010010011100111', encoded.data); - it('should be able to encode normal text', function () { - var enc = new Pharmacode("1234", {}); - assert.equal("10010011100111001001110010010011100111" - , enc.encode().data); + encoded = pharmacode.encode('4567', {}); + assert.equal('10010010011100111001110010011100111001001001', encoded.data); - var enc = new Pharmacode("4567", {}); - assert.equal("10010010011100111001110010011100111001001001" - , enc.encode().data); + encoded = pharmacode.encode('12', {}); + assert.equal('11100100111', encoded.data); + }); - var enc = new Pharmacode("12", {}); - assert.equal("11100100111", enc.encode().data); - }); + it('should return getText correct', function() { + let encoded = pharmacode.encode('1234', {}); + assert.equal('1234', encoded.text); + }); - it('should return getText correct', function () { - var enc = new Pharmacode("1234", {}); - assert.equal("1234", enc.encode().text); - }); + it('should warn with invalid text', function() { + assert.equal(false, pharmacode.valid('12345678', {})); + }); - it('should warn with invalid text', function () { - var enc = new Pharmacode("12345678", {}); - assert.equal(false, enc.valid()); - }); - - it('should work with text option', function () { - var enc = new Pharmacode("12345678", {text: "THISISTEXT"}); - assert.equal("THISISTEXT", enc.encode().text); - }); + it('should work with text option', function() { + let encoded = pharmacode.encode('12345678', { text: 'THISISTEXT' }); + assert.equal('THISISTEXT', encoded.text); + }); }); diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..d36ebb2f --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ES2016", + "module": "CommonJS", + "declaration": true, + "strict": false, + "noImplicitAny": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "removeComments": true, + "composite": true, + "declarationMap": true, + "baseUrl": ".", + "paths": { + "@jsbarcode/core": ["./packages/core/src/index.ts"], + "@jsbarcode/renderer-canvas": ["./packages/renderer/canvas/src/index.ts"], + "@jsbarcode/renderer-svg": ["./packages/renderer/svg/src/index.ts"], + "@jsbarcode/code128": ["./packages/barcodes/code128/src/index.ts"], + "@jsbarcode/code39": ["./packages/barcodes/code39/src/index.ts"], + "@jsbarcode/codabar": ["./packages/barcodes/codabar/src/index.ts"], + "@jsbarcode/ean-upc": ["./packages/barcodes/ean-upc/src/index.ts"], + "@jsbarcode/itf": ["./packages/barcodes/itf/src/index.ts"], + "@jsbarcode/msi": ["./packages/barcodes/msi/src/index.ts"], + "@jsbarcode/pharmacode": ["./packages/barcodes/pharmacode/src/index.ts"], + "@jsbarcode/generic-barcode": ["./packages/barcodes/generic-barcode/src/index.ts"], + "test/help": ["./test/help/index.ts"], + "test/*": ["./test/*"] + } + } +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..ccd3195c --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,17 @@ +{ + "files": [], + "references": [ + { "path": "./packages/core/tsconfig.esm.json" }, + { "path": "./packages/renderer/canvas/tsconfig.esm.json" }, + { "path": "./packages/renderer/svg/tsconfig.esm.json" }, + { "path": "./packages/barcodes/code128/tsconfig.esm.json" }, + { "path": "./packages/barcodes/code39/tsconfig.esm.json" }, + { "path": "./packages/barcodes/codabar/tsconfig.esm.json" }, + { "path": "./packages/barcodes/ean-upc/tsconfig.esm.json" }, + { "path": "./packages/barcodes/itf/tsconfig.esm.json" }, + { "path": "./packages/barcodes/msi/tsconfig.esm.json" }, + { "path": "./packages/barcodes/pharmacode/tsconfig.esm.json" }, + { "path": "./packages/barcodes/generic-barcode/tsconfig.esm.json" }, + { "path": "./packages/jsbarcode/tsconfig.esm.json" } + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..b2bf2254 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "files": [], + "references": [ + { "path": "./packages/core" }, + { "path": "./packages/renderer/canvas" }, + { "path": "./packages/renderer/svg" }, + { "path": "./packages/barcodes/code128" }, + { "path": "./packages/barcodes/code39" }, + { "path": "./packages/barcodes/codabar" }, + { "path": "./packages/barcodes/ean-upc" }, + { "path": "./packages/barcodes/itf" }, + { "path": "./packages/barcodes/msi" }, + { "path": "./packages/barcodes/pharmacode" }, + { "path": "./packages/barcodes/generic-barcode" }, + { "path": "./packages/jsbarcode" } + ] +}