diff --git a/.gitignore b/.gitignore index e8b3688275..4187073f36 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,7 @@ packages/test-harness/data/insight/* # Mobile packages/mobile/ios/Pods +packages/mobile-nodeify/node_modules # Dapps Data documentation/sdql/examples/output diff --git a/packages/mobile-nodeify/.eslintrc.js b/packages/mobile-nodeify/.eslintrc.js new file mode 100644 index 0000000000..c9098bc787 --- /dev/null +++ b/packages/mobile-nodeify/.eslintrc.js @@ -0,0 +1,283 @@ +module.exports = { + "env": { + "es6": true, + "node": true + }, + "globals": { + // react native + "window": true, + "__DEV__": true, + "localStorage": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "accessor-pairs": "error", + "array-bracket-spacing": "warn", + "array-callback-return": "warn", + "arrow-body-style": "warn", + "arrow-parens": [ + "error", + "as-needed" + ], + "arrow-spacing": [ + "error", + { + "after": true, + "before": true + } + ], + "block-scoped-var": "error", + "block-spacing": "error", + "brace-style": [ + "error", + "1tbs" + ], + "callback-return": "error", + "camelcase": "warn", + "capitalized-comments": "off", + "class-methods-use-this": "error", + "comma-dangle": "off", + "comma-spacing": [ + "error", + { + "after": true, + "before": false + } + ], + "comma-style": [ + "error", + "last" + ], + "complexity": "error", + "computed-property-spacing": "error", + "consistent-return": "warn", + "consistent-this": "warn", + "curly": "off", + "default-case": "error", + "dot-location": "off", + "dot-notation": "warn", + "eol-last": "warn", + "eqeqeq": "warn", + "func-call-spacing": "error", + "func-name-matching": "error", + "func-names": "warn", + "func-style": "warn", + "generator-star-spacing": "off", + "global-require": "off", + "guard-for-in": "warn", + "handle-callback-err": "warn", + "id-blacklist": "error", + "id-length": "off", + "id-match": "error", + "indent": "off", + "init-declarations": "off", + "jsx-quotes": "error", + "key-spacing": "error", + "keyword-spacing": [ + "error", + { + "after": true, + "before": true + } + ], + "line-comment-position": "warn", + "linebreak-style": [ + "error", + "unix" + ], + "lines-around-comment": "warn", + "lines-around-directive": "error", + "max-depth": "error", + "max-len": "off", + "max-lines": "warn", + "max-nested-callbacks": "error", + "max-params": "warn", + "max-statements": "off", + "max-statements-per-line": "error", + "multiline-ternary": "warn", + "new-cap": "error", + "new-parens": "error", + "newline-after-var": "off", + "newline-before-return": "off", + "newline-per-chained-call": "warn", + "no-alert": "error", + "no-array-constructor": "error", + "no-await-in-loop": "error", + "no-bitwise": "error", + "no-caller": "error", + "no-case-declarations": "warn", + "no-catch-shadow": "warn", + "no-cond-assign": "warn", + "no-confusing-arrow": "error", + "no-console": "warn", + "no-constant-condition": "warn", + "no-continue": "warn", + "no-div-regex": "error", + "no-duplicate-imports": "error", + "no-else-return": "error", + "no-ex-assign": "off", + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-empty-function": "off", + "no-eq-null": "warn", + "no-eval": "error", + "no-extend-native": "error", + "no-extra-bind": "error", + "no-extra-label": "error", + "no-extra-parens": "warn", + "no-extra-semi": "warn", + "no-floating-decimal": "error", + "no-implicit-coercion": "warn", + "no-implicit-globals": "error", + "no-implied-eval": "error", + "no-inline-comments": "off", + "no-inner-declarations": "warn", + "no-invalid-this": "warn", + "no-iterator": "error", + "no-label-var": "error", + "no-labels": "error", + "no-lone-blocks": "error", + "no-lonely-if": "warn", + "no-loop-func": "error", + "no-magic-numbers": "off", + "no-mixed-operators": "error", + "no-mixed-requires": "error", + "no-multi-assign": "warn", + "no-multi-spaces": "error", + "no-multi-str": "error", + "no-multiple-empty-lines": "error", + "no-native-reassign": "error", + "no-negated-condition": "warn", + "no-negated-in-lhs": "error", + "no-nested-ternary": "error", + "no-new": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-require": "error", + "no-new-wrappers": "error", + "no-octal-escape": "error", + "no-param-reassign": "warn", + "no-path-concat": "error", + "no-process-env": "off", + "no-process-exit": "off", + "no-proto": "error", + "no-prototype-builtins": "error", + "no-restricted-globals": "error", + "no-restricted-imports": "error", + "no-restricted-modules": "error", + "no-restricted-properties": "error", + "no-restricted-syntax": "error", + "no-return-assign": "warn", + "no-return-await": "error", + "no-script-url": "error", + "no-self-compare": "error", + "no-sequences": "error", + "no-shadow": "warn", + "no-shadow-restricted-names": "error", + "no-spaced-func": "error", + "no-sync": "off", + "no-tabs": "error", + "no-template-curly-in-string": "error", + "no-ternary": "off", + "no-throw-literal": "error", + "no-trailing-spaces": "error", + "no-undef-init": "warn", + "no-undefined": "warn", + "no-underscore-dangle": "warn", + "no-unmodified-loop-condition": "error", + "no-unneeded-ternary": "error", + "no-unused-expressions": "error", + "no-unused-vars": "warn", + "no-use-before-define": "off", + "no-useless-call": "error", + "no-useless-computed-key": "error", + "no-useless-concat": "error", + "no-useless-constructor": "error", + "no-useless-escape": "warn", + "no-useless-rename": "error", + "no-useless-return": "error", + "no-var": "warn", + "no-void": "error", + "no-warning-comments": "warn", + "no-whitespace-before-property": "error", + "no-with": "error", + "object-curly-newline": "off", + "object-curly-spacing": [ + "error", + "always" + ], + "object-property-newline": [ + "error", + { + "allowMultiplePropertiesPerLine": true + } + ], + "object-shorthand": "warn", + "one-var": "off", + "one-var-declaration-per-line": "error", + "operator-assignment": "error", + "operator-linebreak": "error", + "padded-blocks": "off", + "prefer-const": "warn", + "prefer-destructuring": "warn", + "prefer-numeric-literals": "error", + "prefer-promise-reject-errors": "error", + "prefer-reflect": "warn", + "prefer-rest-params": "warn", + "prefer-spread": "warn", + "prefer-template": "off", + "quote-props": "off", + "quotes": "off", + "radix": "error", + "require-await": "error", + "require-jsdoc": "off", + "require-yield": "off", + "rest-spread-spacing": [ + "error", + "never" + ], + "semi": "off", + "semi-spacing": "error", + "sort-imports": "error", + "sort-keys": "off", + "sort-vars": "error", + "space-before-blocks": "error", + "space-before-function-paren": "error", + "space-in-parens": [ + "error", + "never" + ], + "space-infix-ops": "off", + "space-unary-ops": "error", + "spaced-comment": [ + "error", + "always" + ], + "strict": "error", + "symbol-description": "error", + "template-curly-spacing": [ + "error", + "never" + ], + "unicode-bom": [ + "error", + "never" + ], + "valid-jsdoc": "warn", + "vars-on-top": "off", + "wrap-iife": "error", + "wrap-regex": "warn", + "yield-star-spacing": "error", + "yoda": [ + "error", + "never" + ] + } +}; diff --git a/packages/mobile-nodeify/.yarn/install-state.gz b/packages/mobile-nodeify/.yarn/install-state.gz new file mode 100644 index 0000000000..048946277f Binary files /dev/null and b/packages/mobile-nodeify/.yarn/install-state.gz differ diff --git a/packages/mobile-nodeify/README.md b/packages/mobile-nodeify/README.md new file mode 100644 index 0000000000..e174b72918 --- /dev/null +++ b/packages/mobile-nodeify/README.md @@ -0,0 +1,95 @@ +# SnickerDoodle Nodeify + +description + +## Installation + +To deploy this project run + +```bash + npm -i sd-nodeify or yarn add sd-nodeify +``` + +```bash + ./node_modules/.bin/sd-nodeify --hack --install +``` + +```bash + cd ios && pod install +``` + +In your babel.config.js, add a module resolver + +```bash +module.exports = { + presets: ['module:metro-react-native-babel-preset'], + plugins: [ ++ [ ++ 'module-resolver', ++ { ++ alias: { ++ 'crypto': 'react-native-quick-crypto', ++ 'stream': 'stream-browserify', ++ 'buffer': '@craftzdog/react-native-buffer', ++ 'argon': 'react-native-argon2', ++ }, ++ }, ++ ], + ... + ], + '@babel/plugin-syntax-import-assertions', + 'babel-plugin-transform-typescript-metadata', + 'babel-plugin-parameter-decorator', + ['@babel/plugin-proposal-decorators', { legacy: true }], +}; +``` + +In your metro.config.js, add resolver to module_exports + +```bash +const extraNodeModules = { + stream: require.resolve('stream-browserify'), + crypto: require.resolve('react-native-quick-crypto'), + zlib: require.resolve('browserify-zlib'), + argon2: require.resolve('react-native-argon2'), + }; + // rest of your code + module.exports = { + ... + resolver: { + ... + extraNodeModules: require('node-libs-react-native'), + }, +} +``` + +Add required imports to your index.ts + +```bash ++ import './shim.js'; ++ require('node-libs-react-native/globals.js'); ++ import 'reflect-metadata'; ++ import setGlobalVars from 'indexeddbshim/dist/indexeddbshim-noninvasive'; ++ import SQLite from 'react-native-sqlite-2'; ++ import { MobileStorageUtils } from 'sd-nodeify'; + +To activate indexeddb in your project + + setGlobalVars(global, { + checkOrigin: false, + win: SQLite, + }); +``` + +In index.ts or whenever you want you can call SnickerdoodleCore + +```bash +import { SnickerdoodleCore } from '@snickerdoodlelabs/core'; +... +new SnickerdoodleCore( + coreConfig, // Config file for SnickerdoodleCore + new MobileStorageUtils(), + undefined, + undefined, +); +``` diff --git a/packages/mobile-nodeify/browser-browserify.json b/packages/mobile-nodeify/browser-browserify.json new file mode 100644 index 0000000000..03f4322472 --- /dev/null +++ b/packages/mobile-nodeify/browser-browserify.json @@ -0,0 +1,24 @@ +{ + "zlib": "browserify-zlib", + "console": "console-browserify", + "constants": "constants-browserify", + "crypto": "crypto-browserify", + "argon2": "react-native-argon2", + "dns": "dns.js", + "domain": "domain-browser", + "http": "stream-http", + "https": "https-browserify", + "os": "os-browserify", + "path": "path-browserify", + "querystring": "querystring-es3", + "fs": "react-native-level-fs", + "_stream_transform": "readable-stream/transform", + "_stream_readable": "readable-stream/readable", + "_stream_writable": "readable-stream/writable", + "_stream_duplex": "readable-stream/duplex", + "_stream_passthrough": "readable-stream/passthrough", + "stream": "stream-browserify", + "timers": "timers-browserify", + "tty": "tty-browserify", + "vm": "vm-browserify" +} diff --git a/packages/mobile-nodeify/browser.json b/packages/mobile-nodeify/browser.json new file mode 100644 index 0000000000..55eedb3dc7 --- /dev/null +++ b/packages/mobile-nodeify/browser.json @@ -0,0 +1,25 @@ +{ + "zlib": "browserify-zlib", + "console": "console-browserify", + "constants": "constants-browserify", + "crypto": "react-native-crypto", + "argon2": "react-native-argon2", + "dns": "dns.js", + "domain": "domain-browser", + "http": "@tradle/react-native-http", + "https": "https-browserify", + "os": "react-native-os", + "path": "path-browserify", + "querystring": "querystring-es3", + "fs": "react-native-level-fs", + "_stream_transform": "readable-stream/transform", + "_stream_readable": "readable-stream/readable", + "_stream_writable": "readable-stream/writable", + "_stream_duplex": "readable-stream/duplex", + "_stream_passthrough": "readable-stream/passthrough", + "stream": "stream-browserify", + "timers": "timers-browserify", + "tty": "tty-browserify", + "vm": "vm-browserify", + "tls": false +} diff --git a/packages/mobile-nodeify/cmd-setup.js b/packages/mobile-nodeify/cmd-setup.js new file mode 100755 index 0000000000..2b4c1993a2 --- /dev/null +++ b/packages/mobile-nodeify/cmd-setup.js @@ -0,0 +1,88 @@ +// To be considered later + +/* const fs = require("fs"); +const path = require("path"); + +const packageJsonPath = path.resolve("./package.json"); +const babelConfigPath = path.resolve("./babel.config.js"); +const metroConfigPath = path.resolve("./metro-config.js"); + +// Load the existing package.json +const packageJson = require(packageJsonPath); + +// Append or update the "@ethersproject/shims" dependency to the user's package.json +packageJson.dependencies = packageJson.dependencies || {}; +packageJson.dependencies["@ethersproject/shims"] = "^5.7.0"; +packageJson.dependencies["react-native-get-random-values"] = "^1.9.0"; + +// Write the updated package.json +fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf8"); + +// Read the existing babel.config.js file +const babelConfigContent = fs.readFileSync(babelConfigPath, "utf8"); + +// Check if the "@babel/plugin-syntax-import-assertions" plugin is already present in the babel.config.js content +if (!babelConfigContent.includes("@babel/plugin-syntax-import-assertions")) { + // If the plugin is not present, append it to the plugins list + fs.appendFileSync( + babelConfigPath, + `,\n '@babel/plugin-syntax-import-assertions'`, + "utf8" + ); +} + +// Read the existing metro-config.js file +let metroConfigContent = ""; +try { + metroConfigContent = fs.readFileSync(metroConfigPath, "utf8"); +} catch (error) { + // If the metro-config.js file doesn't exist, create a new one + metroConfigContent = `const path = require('path'); + +const extraNodeModules = { + stream: require.resolve('stream-browserify'), + crypto: require.resolve('react-native-crypto'), + zlib: require.resolve('browserify-zlib'), + argon2: require.resolve('react-native-argon2'), +}; + +const nodeModulesPaths = [path.resolve(path.join(__dirname, './node_modules'))]; + +module.exports = { + resolver: { + extraNodeModules: require('node-libs-react-native'), + }, + resolver: { + extraNodeModules, + nodeModulesPaths, + }, +}; +`; + fs.writeFileSync(metroConfigPath, metroConfigContent, "utf8"); +} + +// Check if the necessary configurations are already present in the metro-config.js content +const requiredModules = ["stream", "crypto", "zlib", "argon2"]; +const existingModules = requiredModules.filter( + (module) => !metroConfigContent.includes(`require.resolve('${module}'`) +); + +if (existingModules.length > 0) { + // If some of the modules are missing, append them to the extraNodeModules object + const missingModules = existingModules.map( + (module) => ` ${module}: require.resolve('${module}-browserify'),` + ); + + const startIndex = metroConfigContent.indexOf("const extraNodeModules = {"); + const endIndex = metroConfigContent.indexOf("};", startIndex) + 1; + metroConfigContent = + metroConfigContent.slice(0, endIndex) + + "\n" + + missingModules.join("\n") + + "\n" + + metroConfigContent.slice(endIndex); +} + +// Write the updated metro-config.js +fs.writeFileSync(metroConfigPath, metroConfigContent, "utf8"); + */ diff --git a/packages/mobile-nodeify/cmd.js b/packages/mobile-nodeify/cmd.js new file mode 100755 index 0000000000..ae3790c4c3 --- /dev/null +++ b/packages/mobile-nodeify/cmd.js @@ -0,0 +1,373 @@ +#!/usr/bin/env node + +var fs = require('fs') +var path = require('path') +var semver = require('semver') +var proc = require('child_process') +var pick = require('object.pick') +var extend = require('xtend/mutable') +var deepEqual = require('deep-equal') +var find = require('findit') +var minimist = require('minimist') +var parallel = require('run-parallel') +var yarnlock = require('@yarnpkg/lockfile') +var allShims = require('./shims') +var coreList = require('./coreList') +var browser = require('./browser') +var pkgPath = path.join(process.cwd(), 'package.json') +var pkg = require(pkgPath) +var hackFiles = require('./pkg-hacks') +var argv = minimist(process.argv.slice(2), { + alias: { + h: 'help', + i: 'install', + e: 'hack', + o: 'overwrite', + y: 'yarn' + } +}) + +var BASE_INSTALL_LINE = argv.yarn ? 'yarn add' : 'npm install --save' + +if (argv.help) { + runHelp() + process.exit(0) +} else { + run() +} + +function run () { + var toShim + if (argv.install) { + if (argv.install === true) { + toShim = coreList + } else { + toShim = argv.install.split(',') + .map(function (name) { + return name.trim() + }) + } + } else { + toShim = coreList + } + + if (toShim.indexOf('stream') !== -1) { + toShim.push( + '_stream_transform', + '_stream_readable', + '_stream_writable', + '_stream_duplex', + '_stream_passthrough', + 'readable-stream' + ) + } + + if (toShim.indexOf('crypto') !== -1) { + toShim.push('react-native-randombytes') + } + + if (argv.install) { + installShims({ + modules: toShim, + overwrite: argv.overwrite + }, function (err) { + if (err) throw err + + runHacks() + }) + } else { + runHacks() + } + + function runHacks () { + hackPackageJSONs(toShim, function (err) { + if (err) throw err + + if (argv.hack) { + if (argv.hack === true) hackFiles() + else hackFiles([].concat(argv.hack)) + } + }) + } +} + +function installShims ({ modules, overwrite }, done) { + if (!overwrite) { + modules = modules.filter(name => { + const shimPackageName = browser[name] || name + if (pkg.dependencies[shimPackageName]) { + log(`not overwriting "${shimPackageName}"`) + return false + } + + return true + }) + } + + var shimPkgNames = modules + .map(function (m) { + return browser[m] || m + }) + .filter(function (shim) { + return !/^_/.test(shim) && (shim[0] === '@' || shim.indexOf('/') === -1) + }) + + if (!shimPkgNames.length) { + return finish() + } + + // Load the exact package versions from the lockfile + var lockfile + if (argv.yarn) { + if (fs.existsSync('yarn.lock')) { + let result = yarnlock.parse(fs.readFileSync('yarn.lock', 'utf8')) + if (result.type == 'success') { + lockfile = result.object + } + } + } else { + var lockpath = path.join(process.cwd(), 'package-lock.json') + if (fs.existsSync(lockpath)) { + let result = require(lockpath) + if (result && result.dependencies) { + lockfile = result.dependencies + } + } + } + + parallel(shimPkgNames.map(function (name) { + var modPath = path.resolve('./node_modules/' + name) + return function (cb) { + fs.exists(modPath, function (exists) { + if (!exists) return cb() + + var install = true + if (lockfile) { + // Use the lockfile to resolve installed version of package + if (argv.yarn) { + if (`${name}@${allShims[name]}` in lockfile) { + install = false + } + } else { + var lockfileVer = (lockfile[name] || {}).version + var targetVer = allShims[name] + if (semver.valid(lockfileVer)) { + if (semver.satisfies(lockfileVer, targetVer)) { + install = false + } + } else if (lockfileVer) { + // To be considered up-to-date, we need an exact match, + // after doing some normalization of github url's + if (lockfileVer.startsWith('github:')) { + lockfileVer = lockfileVer.slice(7) + } + if (lockfileVer.indexOf(targetVer) == 0) { + install = false + } + } + } + } else { + // Fallback to using the version from the dependency's package.json + var pkgJson = require(modPath + '/package.json') + if (/^git\:\/\//.test(pkgJson._resolved)) { + var hash = allShims[name].split('#')[1] + if (hash && pkgJson.gitHead.indexOf(hash) === 0) { + install = false + } + } else { + var existingVerNpm5 = (/\-([^\-]+)\.tgz/.exec(pkgJson.version) || [null, null])[1] + var existingVer = existingVerNpm5 || pkgJson.version + if (semver.satisfies(existingVer, allShims[name])) { + install = false + } + } + } + + if (!install) { + log('not reinstalling ' + name) + shimPkgNames.splice(shimPkgNames.indexOf(name), 1) + } + + cb() + }) + } + }), function (err) { + if (err) throw err + + if (!shimPkgNames.length) { + return finish() + } + + var installLine = BASE_INSTALL_LINE + ' ' + shimPkgNames.forEach(function (name) { + let version = allShims[name] + if (!version) return + if (version.indexOf('/') === -1) { + if (argv.yarn) { + log('installing from yarn', name) + } else { + log('installing from npm', name) + } + installLine += name + '@' + version + } else { + // github url + log('installing from github', name) + installLine += version.match(/([^\/]+\/[^\/]+)$/)[1] + } + + pkg.dependencies[name] = version + installLine += ' ' + }) + + fs.writeFile(pkgPath, prettify(pkg), function (err) { + if (err) throw err + + if (installLine.trim() === BASE_INSTALL_LINE) { + return finish() + } + + log('installing:', installLine) + proc.execSync(installLine, { + cwd: process.cwd(), + env: process.env, + stdio: 'inherit' + }) + + finish() + }) + }) + + function finish () { + copyShim(done) + } +} + +function copyShim (cb) { + fs.exists('./shim.js', function (exists) { + if (exists) { + log('not overwriting shim.js. For the latest version, see rn-nodeify/shim.js') + return cb() + } + + fs.readFile(path.join(__dirname, 'shim.js'), { encoding: 'utf8' }, function (err, contents) { + if (err) return cb(err) + + fs.writeFile('./shim.js', contents, cb) + }) + }) +} + +function hackPackageJSONs (modules, done) { + fixPackageJSON(modules, './package.json', true) + + var finder = find('./node_modules') + + finder.on('file', function (file) { + if (path.basename(file) !== 'package.json') return + + fixPackageJSON(modules, file, true) + }) + + finder.once('end', done) +} + +function fixPackageJSON (modules, file, overwrite) { + if (file.split(path.sep).indexOf('react-native') >= 0) return + + var contents = fs.readFileSync(path.resolve(file), { encoding: 'utf8' }) + + // var browser = pick(baseBrowser, modules) + var pkgJson + try { + pkgJson = JSON.parse(contents) + } catch (err) { + console.warn('failed to parse', file) + return + } + + // if (shims[pkgJson.name]) { + // log('skipping', pkgJson.name) + // return + // } + + // if (pkgJson.name === 'readable-stream') debugger + + var orgBrowser = pkgJson['react-native'] || pkgJson.browser || pkgJson.browserify || {} + if (typeof orgBrowser === 'string') { + orgBrowser = {} + orgBrowser[pkgJson.main || 'index.js'] = pkgJson['react-native'] || pkgJson.browser || pkgJson.browserify + } + + var depBrowser = extend({}, orgBrowser) + for (var p in browser) { + if (modules.indexOf(p) === -1) continue + + if (!(p in orgBrowser)) { + depBrowser[p] = browser[p] + } else { + if (!overwrite && orgBrowser[p] !== browser[p]) { + log('not overwriting mapping', p, orgBrowser[p]) + } else { + depBrowser[p] = browser[p] + } + } + } + + modules.forEach(function (p) { + if (depBrowser[p] === false && browser[p] !== false) { + log('removing browser exclude', file, p) + delete depBrowser[p] + } + }) + + + const { main } = pkgJson + if (typeof main === 'string') { + const alt = main.startsWith('./') ? main.slice(2) : './' + main + if (depBrowser[alt]) { + depBrowser[main] = depBrowser[alt] + log(`normalized "main" browser mapping in ${pkgJson.name}, fixed here: https://github.com/facebook/metro-bundler/pull/3`) + delete depBrowser[alt] + } + } + + if (pkgJson.name === 'constants-browserify') { + // otherwise react-native packager chokes for some reason + delete depBrowser.constants + } + + if (!deepEqual(orgBrowser, depBrowser)) { + pkgJson.browser = pkgJson['react-native'] = depBrowser + delete pkgJson.browserify + fs.writeFileSync(file, prettify(pkgJson)) + } +} + +function runHelp () { + log(function () { + /* + Usage: + rn-nodeify --install dns,stream,http,https + rn-nodeify --install # installs all core shims + rn-nodeify --hack # run all package-specific hacks + rn-nodeify --hack rusha,fssync # run some package-specific hacks + Options: + -h --help show usage + -e, --hack run package-specific hacks (list or leave blank to run all) + -i, --install install shims (list or leave blank to install all) + -o, --overwrite updates installed packages if a newer version is available + -y, --yarn use yarn to install packages instead of npm (experimental) + + Please report bugs! https://github.com/mvayngrib/rn-nodeify/issues + */ + }.toString().split(/\n/).slice(2, -2).join('\n')) + process.exit(0) +} + +function log () { + console.log.apply(console, arguments) +} + +function prettify (json) { + return JSON.stringify(json, null, 2) + '\n' +} diff --git a/packages/mobile-nodeify/coreList.js b/packages/mobile-nodeify/coreList.js new file mode 100644 index 0000000000..e741507a90 --- /dev/null +++ b/packages/mobile-nodeify/coreList.js @@ -0,0 +1,41 @@ +module.exports = [ + "assert", + "zlib", + "buffer", + "inherits", + "console", + "constants", + "crypto", + "dns", + "domain", + "events", + "http", + "https", + "os", + "path", + "process", + "punycode", + "querystring", + "fs", + "dgram", + // "readable-stream", + "stream", + "string_decoder", + "timers", + "tty", + "url", + "util", + "net", + "vm", + // note: tls doesn't have a shim + "tls", + "rxjs", + "web3", + "react-native-get-random-values", + "react-native-argon2", + "node-libs-react-native", + "react-native-sqlite-2", + "indexeddbshim", + "fake-indexeddb", + "@ethersproject/shims", +]; diff --git a/packages/mobile-nodeify/index.js b/packages/mobile-nodeify/index.js new file mode 100644 index 0000000000..6163f6181f --- /dev/null +++ b/packages/mobile-nodeify/index.js @@ -0,0 +1,3 @@ +const MobileStorageUtils = require("./dist/MobileStorageUtils"); + +export { MobileStorageUtils }; diff --git a/packages/mobile-nodeify/package.json b/packages/mobile-nodeify/package.json new file mode 100644 index 0000000000..ae631eba51 --- /dev/null +++ b/packages/mobile-nodeify/package.json @@ -0,0 +1,39 @@ +{ + "name": "@snickerdoodlelabs/mobile-nodeify", + "repository": { + "type": "git", + "url": "https://github.com/dlgn2/sd-nodeify.git" + }, + "version": "1.0.15", + "preferGlobal": true, + "bin": { + "build": "tsc", + "prepublishOnly": "npm run build", + "sd-nodeify": "./cmd.js", + "sd-nodeify-setup": "./cmd-setup.js", + "test": "jest" + }, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "^1.0.0", + "deep-equal": "^1.0.0", + "findit": "^2.0.0", + "fs-extra": "^0.22.1", + "indexeddbshim": "^10.1.0", + "minimist": "^1.1.2", + "neverthrow": "^5.1.0", + "object.pick": "^1.1.1", + "react-native-quick-crypto": "^0.6.1", + "react-native-sqlite-2": "^3.6.2", + "run-parallel": "^1.1.2", + "semver": "^5.0.1", + "xtend": "^4.0.0" + }, + "scripts": { + "lint": "eslint --quiet --ignore-path .gitignore .", + "precommit": "npm run lint" + }, + "devDependencies": { + "husky": "^0.14.3" + } +} diff --git a/packages/mobile-nodeify/pkg-hacks.js b/packages/mobile-nodeify/pkg-hacks.js new file mode 100644 index 0000000000..6ac639adb6 --- /dev/null +++ b/packages/mobile-nodeify/pkg-hacks.js @@ -0,0 +1,556 @@ +#!/usr/bin/env node + +// shelljs.exec('force-dedupe-git-modules') +var proc = require('child_process') +var fs = require('fs-extra') +var find = require('findit') +var path = require('path') +// var thisPkg = require('./package.json') + +// function loadDeps() { +// var pkgs = [] +// loadPkg('./package.json') + +// function loadPkg(pkgPath) { +// var pkg = require(pkgPath) +// for (var dep in pkg.dependencies) { +// if (!allDeps[dep]) { +// allDeps[dep] = true +// pkgs.push.apply(pkgs, Object.keys(pkg.dependencies).map(function(name) { +// return path.join(pkgPath, 'node_modules/' + name) +// })) +// } +// } +// } +// } + +module.exports = function hackFiles (hacks) { + var finder = find('./node_modules') + hacks = hacks || hackers.map(h => h.name) + + finder.on('file', function (file) { + if (!/\.(js|json)$/.test(file) || + /\/tests?\//.test(file)) { + return + } + + file = file.replace(/\\/g, path.posix.sep); + + var matchingHackers = hackers.filter(function (hacker) { + return hacks.indexOf(hacker.name) !== -1 && hacker.regex.some(function (regex) { + return regex.test(file) + }) + }) + + if (!matchingHackers.length) return + + file = path.resolve(file) + fs.readFile(file, { encoding: 'utf8' }, onread) + + function onread (err, str) { + if (err) throw err + + var hacked = matchingHackers.reduce(function (hacked, hacker) { + return hacker.hack(file, hacked || str) || hacked + }, str) + + if (hacked && hacked !== str) { + console.log('hacking', file) + fs.writeFile(file, hacked) + } + } + }) +} + +// loadDeps(hackFiles) + +var hackers = [ + // don't need this as soon as react native + // stops ignoring webtorrent/package.json "browser": "./lib/fs-storage.js": false + { + name: 'bluebird', + regex: [ + /bluebird\/js\/main\/captured_trace\.js$/ + ], + hack: function (file, contents) { + var fixed = contents.replace( + /fireGlobalEvent \= \(function\(\) \{\s{1}/, + 'fireGlobalEvent = (function() {var self = global;' + ) + + return contents === fixed ? null : fixed + } + }, + { + name: 'stream-browserify', + regex: [ + /stream-browserify\/index\.js$/ + ], + hack: function (file, contents) { + var fixed = contents.replace( + 'module.exports = Stream;', + 'module.exports = global.StreamModule = Stream' + ) + + return contents === fixed ? null : fixed + } + }, + { + name: 'readable-stream', + regex: [ + /readable-stream\/lib\/_stream_(readable|writable)\.js$/, + /readable-stream\/readable\.js$/ + ], + hack: function (file, contents) { + var fixed = contents.replace( + "var Stream = require('stream');", + "var Stream = global.StreamModule || require('stream')" + ) + + return contents === fixed ? null : fixed + } + }, + { + name: 'has-cors', + regex: [ + /has-cors\/index\.js/, + /socket\.io\.js/, + /engine\.io\.js/ + ], + hack: function (file, contents) { + var fixed = contents.replace("'withCredentials' in new XMLHttpRequest()", 'true') + return contents === fixed ? null : fixed + } + }, + { + name: 'debug', + regex: [ + /debug\/browser\.js/ + ], + hack: function (file, contents) { + var fixed = contents.replace("('WebkitAppearance' in document.documentElement.style)", 'true') + return contents === fixed ? null : fixed + } + }, + { + name: 'rn-bundler', + regex: [ + /react\-(?:native\/)?packager\/src\/bundler\/bundle\.js/i, + /react\-(?:native\/)?packager\/src\/JSTransformer\/worker\/minify\.js/i, + ], + hack: function (file, contents) { + if (contents.indexOf('mangle:false') !== -1) return + + var fixed = contents.replace(/(\s+)(fromString: true,)/, '$1$2$1mangle:false,') + return contents === fixed ? null : fixed + } + }, + { + name: 'pseudomap', + regex: [ + /pseudomap\/map\.js/ + ], + hack: function (file, contents) { + var bad = /(module\.exports\s+\=\s+Map[^r]+return[^}]+\})/ + var match = contents.match(bad) + if (!match) return + + return contents.replace(match[0], 'module.exports=Map}else{') + '}' + } + }, + { + name: 'fssync', + regex: [ + /webtorrent\/lib\/fs-storage\.js/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var fixed = contents.replace(/fs\.existsSync\([^\)]*\)/g, 'false') + return contents === fixed ? null : fixed + } + }, + { + name: 'rusha', + regex: [ + /\/rusha\/rusha\.js/ + ], + hack: function (file, contents) { + var fixed = contents.replace(/typeof\ FileReaderSync \!\=\= \'undefined\'/, 'false') + return contents === fixed ? null : fixed + } + }, + { + name: 'bufferequal', + regex: [/rudp\/lib\/bufferEqual\.js/], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var hacked = "module.exports = require('buffer-equal')" + if (contents !== hacked) return hacked + } + }, + // { + // name: 'levelup', + // regex: [ + // /levelup\/lib\/util\.js$/ + // ], + // hack: function(file, contents) { + // var bad = 'require(\'../package.json\')' + // contents = contents.toString() + // if (contents.indexOf(bad) !== -1) { + // debugger + // var pkg = require(path.resolve(file, '../../package.json')) + // var fixed = contents.replace(bad, JSON.stringify(pkg)) + // return contents === fixed ? null : fixed + // } + // } + // }, + { + name: 'webworkerthreads', + regex: [ + /otr\/lib\/(dsa|otr)\.js/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var fixed = contents + fixed = fixed.replace("require('webworker-threads').Worker", "null") + return contents === fixed ? null : fixed + } + }, + { + name: 'levelup', + regex: [ + /levelup\/lib\/util\.js$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var fixed = contents + fixed = fixed.replace("require('../package.json').devDependencies.leveldown", "'1.0.0'") + fixed = fixed.replace("require('leveldown/package').version", "'1.0.0'") + fixed = fixed.replace("require('leveldown/package.json').version", "'1.0.0'") + fixed = fixed.replace("require('leveldown')", "null") + + // var bad = '\'leveldown' + // var fixed = contents.replace(/\'leveldown/g, '\'asyncstorage-down') + // bad = 'require(\'../package.json\')' + // if (fixed.indexOf(bad) !== -1) { + // var pkg = require(path.resolve(file, '../../package.json')) + // fixed = fixed.replace(bad, JSON.stringify(pkg)) + // } + + // bad = "require('asyncstorage-down/package')" + // if (fixed.indexOf(bad) !== -1) { + // console.log(path.dirname(file)) + // console.log(resolve.sync('asyncstorage-down'), { basedir: path.dirname(file) }) + // var pkg = require(path.resolve(file, '../../node_modules/asyncstorage-down/package.json')) + // fixed = fixed.replace(bad, JSON.stringify(pkg)) + // } + + return contents === fixed ? null : fixed + } + }, + { + name: 'non-browser', + regex: [ + /level-jobs\/package\.json$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var pkg + try { + pkg = JSON.parse(contents) + } catch (err) { + console.log('failed to parse:', file) + return + } + + if (pkg.browser) { + delete pkg.browser + return prettify(pkg) + } + } + }, + { + name: 'simple-get', + regex: [ + /simple\-get\/package\.json$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var pkg = JSON.parse(contents) + if (pkg.browser['unzip-response'] === false) { + delete pkg.browser['unzip-response'] + return prettify(pkg) + } + } + }, + { + name: 'browser_field', + regex: [ + /package\.json$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var pkg + try { + pkg = JSON.parse(contents) + } catch (err) { + console.log('failed to parse:', file) + return + } + + if (pkg.browser && typeof pkg.browser === 'object') { + var fixed + for (var left in pkg.browser) { + if (left[0] === '.' && !/\.[a-z]{0,4}$/i.test(left)) { + fixed = true + pkg.browser[left + '.js'] = pkg.browser[left] + delete pkg.browser[left] + } + } + + if (fixed) return prettify(pkg) + } + } + }, + { + name: 'webtorrentstuff', + regex: [ + /\/torrent\-discovery\/package.json$/, + /\/webtorrent\/package.json$/, + /\/load-ip-set\/package.json$/, + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var pkg = JSON.parse(contents) + var browser = pkg.browser + var save + var toDel = [ + 'bittorrent-dht', + 'bittorrent-dht/client', + 'bittorrent-tracker', + 'bittorrent-tracker/client', + 'bittorrent-swarm' + ] + + for (var p in browser) { + if (browser[p] === false) { + toDel.push(p) + } + } + + toDel.forEach(function (p) { + if (p in browser) { + delete browser[p] + save = true + } + }) + + if (save) return prettify(pkg) + } + }, + { + name: 'depgraph (rn 0.6)', + regex: [ + /react\-packager\/.*\/DependencyGraph\/index\.js/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var evil = 'var id = sansExtJs(name);' + if (contents.indexOf(evil) !== -1) { + return contents.replace(evil, 'var id = name;') + } + } + }, + { + name: 'ecurve', + regex: [ + /ecurve\/lib\/names\.js/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var evil = 'var curves = require(\'./curves\')' + if (contents.indexOf(evil) !== -1) { + return contents.replace(evil, 'var curves = require(\'./curves.json\')') + } + } + }, + { + name: 'assert', + regex: [ + /assert\/assert.js$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var evil = 'var util = require(\'util/\');' + if (contents.indexOf(evil) !== -1) { + return contents.replace(evil, 'var util = require(\'util\');') + } + } + }, + // { + // name: 'net', + // regex: [ + // /bittorrent-swarm\/package\.json$/, + // /portfinder\/package\.json$/ + // ], + // hack: function (file, contents) { + // var pkg + // try { + // pkg = JSON.parse(contents) + // } catch (err) { + // console.log('failed to parse:', file) + // return + // } + + // rewireMain(pkg) + // if (pkg.browser.net !== 'utp') { + // pkg.browser.net = 'utp' + // return prettify(pkg) + // } + // } + // }, + { + name: 'bytewise', + regex: [ + /bytewise\/bytewise\.js$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var fixed = contents + fixed = fixed.replace("require('typewise')", "null") + return contents === fixed ? null : fixed + } + }, + { + name: 'unzip-response', + regex: [ + /unzip\-response\/index\.js$/ + ], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var hack = ';res.headers = res.headers || {};' + if (contents.indexOf(hack) !== -1) return + + var orig = "if (['gzip', 'deflate'].indexOf(res.headers['content-encoding']) !== -1) {" + return contents.replace( + orig, + hack + orig + ) + } + }, + { + name: 'rn-packager', + regex: [ + /DependencyResolver\/Package\.js/ + ], + hack: function (file, contents) { + // var hack = body(function () { + /* + if (!browser[name]) return name + + // HACK! + name = browser[name] + if (name[0] === '.') { + return '.' + name + } + + return name + */ + // }) + + var fixed = contents + // fixed = fixed.replace('return browser[name] || name', hack) + // fixed = fixed.replace("this._cache.get(this.path, 'haste'", "this._cache.get(this.path, 'package-haste'") + fixed = fixed.replace("this._cache.get(this.path, 'name'", "this._cache.get(this.path, 'package-name'") + return fixed === contents ? null : fixed + } + }, + { + name: 'crypto-browserify', + regex: [ + /\/crypto-browserify\/rng\.js$/ + ], + hack: function (file, contents) { + // var hack = body(function () { + + // // react-native-hack + // var _crypto = { + // randomBytes: function (size) { + // console.warn('WARNING: using insecure random number') + // return Math.random() * size + // } + // } + + // }) + + var hack = body(function () { + /* + // react-native-hack + try { + var _crypto = ( + g.crypto || g.msCrypto || require('crypto') + ) + } catch (err) { + _crypto = {} + } + */ + }) + + if (contents.indexOf('react-native-hack') !== -1) return + + return contents.replace(/_crypto\s+=\s+\(\s+g\.crypto\s+\|\|\s+g.msCrypto\s+\|\|\s+require\('crypto'\)\s+\)/, hack) + } + }, + { + name: 'version', + regex: [/pbkdf2/], + hack: function (file, contents) { + if (isInReactNative(file)) return + + var fixed = contents + .replace(/global\.process\.version/g, '"' + process.version + '"') + .replace(/process\.version/g, '"' + process.version + '"') + + return contents === fixed ? null : fixed + } + }, +] + +function rewireMain (pkg) { + if (typeof pkg.browser === 'string') { + var main = pkg.browser || './index.js' + pkg.browser = {} + pkg.browser[pkg.main] = main + } else if (typeof pkg.browser === 'undefined') { + pkg.browser = {} + } +} + +function rethrow (err) { + if (err) throw err +} + +function body (fn) { + return fn.toString().split(/\n/).slice(2, -2).join('\n').trim() +} + +function prettify (json) { + return JSON.stringify(json, null, 2) + '\n' +} + +function isInReactNative (file) { + return /\/react\-native\//.test(file) +} diff --git a/packages/mobile-nodeify/shim.js b/packages/mobile-nodeify/shim.js new file mode 100644 index 0000000000..17bf4a15c1 --- /dev/null +++ b/packages/mobile-nodeify/shim.js @@ -0,0 +1,35 @@ +import "react-native-get-random-values"; +import "@ethersproject/shims"; + +if (typeof btoa === "undefined") { + global.btoa = function (str) { + return new Buffer(str, "binary").toString("base64"); + }; +} +if (typeof atob === "undefined") { + global.atob = function (b64Encoded) { + return new Buffer(b64Encoded, "base64").toString("binary"); + }; +} +if (typeof __dirname === "undefined") global.__dirname = "/"; +if (typeof __filename === "undefined") global.__filename = ""; +if (typeof process === "undefined") { + global.process = require("process"); +} else { + const bProcess = require("process"); + for (var p in bProcess) { + if (!(p in process)) { + process[p] = bProcess[p]; + } + } +} +process.browser = false; +if (typeof Buffer === "undefined") global.Buffer = require("buffer").Buffer; +// global.location = global.location || { port: 80 } +const isDev = typeof __DEV__ === "boolean" && __DEV__; +process.env["NODE_ENV"] = isDev ? "development" : "production"; +if (typeof localStorage !== "undefined") { + localStorage.debug = isDev ? "*" : ""; +} + +require("crypto"); diff --git a/packages/mobile-nodeify/shims-browserify.js b/packages/mobile-nodeify/shims-browserify.js new file mode 100644 index 0000000000..b749a3ae12 --- /dev/null +++ b/packages/mobile-nodeify/shims-browserify.js @@ -0,0 +1,39 @@ +module.exports = { + assert: "~1.5.0", + "browserify-zlib": "~0.2.0", + buffer: "^4.9.2", + inherits: "~2.0.1", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "~3.2.6", + "dns.js": "^1.0.1", + "domain-browser": "~1.2.0", + events: "~1.1.1", + "stream-http": "^1.2.0", + "https-browserify": "~0.0.1", + "os-browserify": "~0.1.1", + "path-browserify": "~0.0.0", + process: "~0.11.0", + punycode: "^1.3.2", + "querystring-es3": "~0.2.0", + "react-native-level-fs": "^3.0.0", + // "readable-stream": "~1.0.33-1", + "readable-stream": "^2.0.2", + "stream-browserify": "^2.0.0", + string_decoder: "~0.10.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "~0.0.0", + url: "~0.10.1", + util: "~0.10.1", + utp: "0.0.8", + "vm-browserify": "~0.0.1", + "@ethersproject/shims": "^5.7.0", + "fake-indexeddb": "^4.0.2", + indexeddbshim: "^10.1.0", + "react-native-sqlite-2": "^3.6.2", + "node-libs-react-native": "^1.2.1", + "react-native-argon2": "^2.0.1", + "react-native-get-random-values": "^1.9.0", + rxjs: "^7.5.7", + web3: "^1.9.0", +}; diff --git a/packages/mobile-nodeify/shims.js b/packages/mobile-nodeify/shims.js new file mode 100644 index 0000000000..e6c43c46a5 --- /dev/null +++ b/packages/mobile-nodeify/shims.js @@ -0,0 +1,39 @@ +module.exports = { + assert: "^1.1.1", + "browserify-zlib": "~0.2.0", + buffer: "^4.9.1", + inherits: "^2.0.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "react-native-crypto": "^2.1.0", + "react-native-randombytes": "^3.0.0", + "dns.js": "^1.0.1", + "domain-browser": "^1.1.1", + events: "^1.0.0", + "@tradle/react-native-http": "^2.0.0", + "https-browserify": "~0.0.0", + "react-native-os": "^1.0.1", + "path-browserify": "0.0.0", + process: "^0.11.0", + punycode: "^1.2.4", + "querystring-es3": "~0.2.0", + "react-native-level-fs": "^3.0.0", + "readable-stream": "1.0.33", + // "stream-browserify": "substack/stream-browserify#fa56e68", + "stream-browserify": "^1.0.0", + string_decoder: "~0.10.25", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.0", + url: "~0.10.1", + util: "~0.10.3", + "vm-browserify": "0.0.4", + "@ethersproject/shims": "^5.7.0", + "fake-indexeddb": "^4.0.2", + indexeddbshim: "^10.1.0", + "react-native-sqlite-2": "^3.6.2", + "node-libs-react-native": "^1.2.1", + "react-native-argon2": "^2.0.1", + "react-native-get-random-values": "^1.9.0", + rxjs: "^7.5.7", + web3: "^1.9.0", +}; diff --git a/packages/mobile-nodeify/test/index.js b/packages/mobile-nodeify/test/index.js new file mode 100644 index 0000000000..b6a9bcf6e7 --- /dev/null +++ b/packages/mobile-nodeify/test/index.js @@ -0,0 +1,5 @@ +var test = require('tape') + +test('dummy test', function (t) { + t.end() +}) \ No newline at end of file diff --git a/packages/mobile-nodeify/tsconfig.json b/packages/mobile-nodeify/tsconfig.json new file mode 100644 index 0000000000..dbb72ab7bd --- /dev/null +++ b/packages/mobile-nodeify/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "outDir": "./dist", + "rootDir": "./lib", + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["lib"] +} diff --git a/packages/mobile-nodeify/yarn.lock b/packages/mobile-nodeify/yarn.lock new file mode 100644 index 0000000000..ef9fb23168 --- /dev/null +++ b/packages/mobile-nodeify/yarn.lock @@ -0,0 +1,2377 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@craftzdog/react-native-buffer@npm:^6.0.5": + version: 6.0.5 + resolution: "@craftzdog/react-native-buffer@npm:6.0.5" + dependencies: + ieee754: ^1.2.1 + react-native-quick-base64: ^2.0.5 + checksum: 921b8bc7f84778e355e81e475792399276d611a346a7e51b6266a45cf4aa82194beb3a8106af796ed143d958c8476070c59e3720c0eec0a3c31e368fbb08b350 + languageName: node + linkType: hard + +"@gar/promisify@npm:^1.0.1": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + 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" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@mapbox/node-pre-gyp@npm:^1.0.0": + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" + dependencies: + detect-libc: ^2.0.0 + https-proxy-agent: ^5.0.0 + make-dir: ^3.1.0 + node-fetch: ^2.6.7 + nopt: ^5.0.0 + npmlog: ^5.0.1 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.11 + bin: + node-pre-gyp: bin/node-pre-gyp + checksum: b848f6abc531a11961d780db813cc510ca5a5b6bf3184d72134089c6875a91c44d571ba6c1879470020803f7803609e7b2e6e429651c026fe202facd11d444b8 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^1.0.0": + version: 1.1.1 + resolution: "@npmcli/fs@npm:1.1.1" + dependencies: + "@gar/promisify": ^1.0.1 + semver: ^7.3.5 + checksum: f5ad92f157ed222e4e31c352333d0901df02c7c04311e42a81d8eb555d4ec4276ea9c635011757de20cc476755af33e91622838de573b17e52e2e7703f0a9965 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@npmcli/move-file@npm:^1.0.1": + version: 1.1.2 + resolution: "@npmcli/move-file@npm:1.1.2" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@tootallnate/once@npm:1": + version: 1.1.2 + resolution: "@tootallnate/once@npm:1.1.2" + checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@types/node@npm:^17.0.31": + version: 17.0.45 + resolution: "@types/node@npm:17.0.45" + checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8 + languageName: node + linkType: hard + +"@yarnpkg/lockfile@npm:^1.0.0": + version: 1.1.0 + resolution: "@yarnpkg/lockfile@npm:1.1.0" + checksum: 05b881b4866a3546861fee756e6d3812776ea47fa6eb7098f983d6d0eefa02e12b66c3fff931574120f196286a7ad4879ce02743c8bb2be36c6a576c7852083a + languageName: node + linkType: hard + +"abbrev@npm:1, abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.1.3, agentkeepalive@npm:^4.2.1": + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" + dependencies: + debug: ^4.1.0 + depd: ^2.0.0 + humanize-ms: ^1.2.1 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^2.0.0": + version: 2.0.0 + resolution: "are-we-there-yet@npm:2.0.0" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"argsarray@npm:^0.0.1": + version: 0.0.1 + resolution: "argsarray@npm:0.0.1" + checksum: 0042accbc0a2d855ad5af56df49291e0e4cae7456f42d486f4cb05518c8e1939bf8aca7dece89d846349d615793fae2cea8ebb20a8207c0f22dafb88b1536819 + languageName: node + linkType: hard + +"asn1.js@npm:^5.2.0": + version: 5.4.1 + resolution: "asn1.js@npm:5.4.1" + dependencies: + bn.js: ^4.0.0 + inherits: ^2.0.1 + minimalistic-assert: ^1.0.0 + safer-buffer: ^2.1.0 + checksum: 3786a101ac6f304bd4e9a7df79549a7561950a13d4bcaec0c7790d44c80d147c1a94ba3d4e663673406064642a40b23fcd6c82a9952468e386c1a1376d747f9a + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-arraybuffer-es6@npm:^1.0.0": + version: 1.0.0 + resolution: "base64-arraybuffer-es6@npm:1.0.0" + checksum: 197998802e6e075b85bdc32f14fbac62e4e050b452e96343f1cc714ccc6886d4c93537fb333d74e8baaafb42b0c5d1e287f61e47e648fa488be09640668d24ca + languageName: node + linkType: hard + +"base64-js@npm:^1.5.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": + version: 4.12.0 + resolution: "bn.js@npm:4.12.0" + checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 + languageName: node + linkType: hard + +"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"brorand@npm:^1.0.1, brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be + languageName: node + linkType: hard + +"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + 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 + checksum: 4a17c3eb55a2aa61c934c286f34921933086bf6d67f02d4adb09fcc6f2fc93977b47d9d884c25619144fccd47b3b3a399e1ad8b3ff5a346be47270114bcf7104 + languageName: node + linkType: hard + +"browserify-cipher@npm:^1.0.0": + version: 1.0.1 + resolution: "browserify-cipher@npm:1.0.1" + dependencies: + browserify-aes: ^1.0.4 + browserify-des: ^1.0.0 + evp_bytestokey: ^1.0.0 + checksum: 2d8500acf1ee535e6bebe808f7a20e4c3a9e2ed1a6885fff1facbfd201ac013ef030422bec65ca9ece8ffe82b03ca580421463f9c45af6c8415fd629f4118c13 + languageName: node + linkType: hard + +"browserify-des@npm:^1.0.0": + version: 1.0.2 + resolution: "browserify-des@npm:1.0.2" + dependencies: + cipher-base: ^1.0.1 + des.js: ^1.0.0 + inherits: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: b15a3e358a1d78a3b62ddc06c845d02afde6fc826dab23f1b9c016e643e7b1fda41de628d2110b712f6a44fb10cbc1800bc6872a03ddd363fb50768e010395b7 + languageName: node + linkType: hard + +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1": + version: 4.1.0 + resolution: "browserify-rsa@npm:4.1.0" + dependencies: + bn.js: ^5.0.0 + randombytes: ^2.0.1 + checksum: 155f0c135873efc85620571a33d884aa8810e40176125ad424ec9d85016ff105a07f6231650914a760cca66f29af0494087947b7be34880dd4599a0cd3c38e54 + languageName: node + linkType: hard + +"browserify-sign@npm:^4.0.0": + version: 4.2.1 + resolution: "browserify-sign@npm:4.2.1" + dependencies: + bn.js: ^5.1.1 + browserify-rsa: ^4.0.1 + create-hash: ^1.2.0 + create-hmac: ^1.1.7 + elliptic: ^6.5.3 + inherits: ^2.0.4 + parse-asn1: ^5.1.5 + readable-stream: ^3.6.0 + safe-buffer: ^5.2.0 + checksum: 0221f190e3f5b2d40183fa51621be7e838d9caa329fe1ba773406b7637855f37b30f5d83e52ff8f244ed12ffe6278dd9983638609ed88c841ce547e603855707 + languageName: node + linkType: hard + +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10c520df29d62fa6e785e2800e586a20fc4f6dfad84bcdbd12e1e8a83856de1cb75c7ebd7abe6d036bbfab738a6cf18a3ae9c8e5a2e2eb3167ca7399ce65373a + languageName: node + linkType: hard + +"cacache@npm:^15.2.0": + version: 15.3.0 + resolution: "cacache@npm:15.3.0" + dependencies: + "@npmcli/fs": ^1.0.0 + "@npmcli/move-file": ^1.0.1 + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + glob: ^7.1.4 + infer-owner: ^1.0.4 + lru-cache: ^6.0.0 + minipass: ^3.1.1 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.2 + mkdirp: ^1.0.3 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^8.0.1 + tar: ^6.0.2 + unique-filename: ^1.1.1 + checksum: a07327c27a4152c04eb0a831c63c00390d90f94d51bb80624a66f4e14a6b6360bbf02a84421267bd4d00ca73ac9773287d8d7169e8d2eafe378d2ce140579db8 + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.3 + resolution: "cacache@npm:17.1.3" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 385756781e1e21af089160d89d7462b7ed9883c978e848c7075b90b73cb823680e66092d61513050164588387d2ca87dd6d910e28d64bc13a9ac82cd8580c796 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"ci-info@npm:^1.5.0": + version: 1.6.0 + resolution: "ci-info@npm:1.6.0" + checksum: dfc058f60c3889793befe77349c3cd1a5452d21bed5ff60cb34382bee7bbdccc5c4c2ff2b77eab8c411c54d84f93963dacf593b9d901b43b93b7ad2a422aa163 + languageName: node + linkType: hard + +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.4 + resolution: "cipher-base@npm:1.0.4" + dependencies: + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + checksum: 47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.2, color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"create-ecdh@npm:^4.0.0": + version: 4.0.4 + resolution: "create-ecdh@npm:4.0.4" + dependencies: + bn.js: ^4.1.0 + elliptic: ^6.5.3 + checksum: 0dd7fca9711d09e152375b79acf1e3f306d1a25ba87b8ff14c2fd8e68b83aafe0a7dd6c4e540c9ffbdd227a5fa1ad9b81eca1f233c38bb47770597ba247e614b + languageName: node + linkType: hard + +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: ^1.0.1 + inherits: ^2.0.1 + md5.js: ^1.3.4 + ripemd160: ^2.0.1 + sha.js: ^2.4.0 + checksum: 02a6ae3bb9cd4afee3fabd846c1d8426a0e6b495560a977ba46120c473cb283be6aa1cace76b5f927cf4e499c6146fb798253e48e83d522feba807d6b722eaa9 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + 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 + checksum: ba12bb2257b585a0396108c72830e85f882ab659c3320c83584b1037f8ab72415095167ced80dc4ce8e446a8ecc4b2acf36d87befe0707d73b26cf9dc77440ed + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"crypto-browserify@npm:^3.12.0": + version: 3.12.0 + resolution: "crypto-browserify@npm:3.12.0" + dependencies: + 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 + checksum: c1609af82605474262f3eaa07daa0b2140026bd264ab316d4bf1170272570dbe02f0c49e29407fe0d3634f96c507c27a19a6765fb856fed854a625f9d15618e2 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.3": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"deep-equal@npm:^1.0.0": + version: 1.1.1 + resolution: "deep-equal@npm:1.1.1" + dependencies: + is-arguments: ^1.0.4 + is-date-object: ^1.0.1 + is-regex: ^1.0.4 + object-is: ^1.0.1 + object-keys: ^1.1.1 + regexp.prototype.flags: ^1.2.0 + checksum: f92686f2c5bcdf714a75a5fa7a9e47cb374a8ec9307e717b8d1ce61f56a75aaebf5619c2a12b8087a705b5a2f60d0292c35f8b58cb1f72e3268a3a15cab9f78d + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"des.js@npm:^1.0.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: ^2.0.1 + minimalistic-assert: ^1.0.0 + checksum: 0e9c1584b70d31e20f20a613fc9ef60fbc6a147dfec9e448a168794a4b97ac04d8dc47ea008f1fa93b0f8aaf7c1ead632a5e59ce1913a6079d2d244c9f5ebe33 + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d + languageName: node + linkType: hard + +"diffie-hellman@npm:^5.0.0": + version: 5.0.3 + resolution: "diffie-hellman@npm:5.0.3" + dependencies: + bn.js: ^4.1.0 + miller-rabin: ^4.0.0 + randombytes: ^2.0.0 + checksum: 0e620f322170c41076e70181dd1c24e23b08b47dbb92a22a644f3b89b6d3834b0f8ee19e37916164e5eb1ee26d2aa836d6129f92723995267250a0b541811065 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"elliptic@npm:^6.5.3": + version: 6.5.4 + resolution: "elliptic@npm:6.5.4" + dependencies: + bn.js: ^4.11.9 + brorand: ^1.1.0 + hash.js: ^1.0.0 + hmac-drbg: ^1.0.1 + inherits: ^2.0.4 + minimalistic-assert: ^1.0.1 + minimalistic-crypto-utils: ^1.0.1 + checksum: d56d21fd04e97869f7ffcc92e18903b9f67f2d4637a23c860492fbbff5a3155fd9ca0184ce0c865dd6eb2487d234ce9551335c021c376cd2d3b7cb749c7d10f4 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.12, encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + +"eventtargeter@npm:0.8.0": + version: 0.8.0 + resolution: "eventtargeter@npm:0.8.0" + checksum: acd825abfb15c4d1242abaf05ddec0a8ed648e1d6ae212752c643e0459a04b43a13d99d244b4fda0af557f60b5d8dd087b0a06969fd8b9a1bbc20c0ac3dac6da + languageName: node + linkType: hard + +"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: ^1.3.4 + node-gyp: latest + safe-buffer: ^5.1.1 + checksum: ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"findit@npm:^2.0.0": + version: 2.0.0 + resolution: "findit@npm:2.0.0" + checksum: 1fa2890cf3f700efb5b28680fcedc64b93fd184e4e2c1e1eb97050be687c53ee165dfa0546902a34be2755a3b3b387d7a2d6f475da5879cc2236dd7787760906 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"fs-extra@npm:^0.22.1": + version: 0.22.1 + resolution: "fs-extra@npm:0.22.1" + dependencies: + graceful-fs: ^4.1.2 + jsonfile: ^2.1.0 + rimraf: ^2.2.8 + checksum: fc4bbddb8c050535bc56c8e07039ffa23264d90172dc11d851571ff93aa000fccbefe663556ad5f412f8924fb600ef73a7eeab435482b87c3e87c2568130cdf6 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.2 + resolution: "fs-minipass@npm:3.0.2" + dependencies: + minipass: ^5.0.0 + checksum: e9cc0e1f2d01c6f6f62f567aee59530aba65c6c7b2ae88c5027bc34c711ebcfcfaefd0caf254afa6adfe7d1fba16bc2537508a6235196bac7276747d078aef0a + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^3.0.0": + version: 3.0.2 + resolution: "gauge@npm:3.0.2" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.2 + console-control-strings: ^1.0.0 + has-unicode: ^2.0.1 + object-assign: ^4.1.1 + signal-exit: ^3.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.2 + checksum: 81296c00c7410cdd48f997800155fbead4f32e4f82109be0719c63edc8560e6579946cc8abd04205297640691ec26d21b578837fd13a4e96288ab4b40b1dc3e9 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + +"glob@npm:^10.2.2": + version: 10.3.3 + resolution: "glob@npm:10.3.3" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.0.3 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/cjs/src/bin.js + checksum: 29190d3291f422da0cb40b77a72fc8d2c51a36524e99b8bf412548b7676a6627489528b57250429612b6eec2e6fe7826d328451d3e694a9d15e575389308ec53 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + 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 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: ^2.0.4 + readable-stream: ^3.6.0 + safe-buffer: ^5.2.0 + checksum: 26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc + languageName: node + linkType: hard + +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: ^2.0.3 + minimalistic-assert: ^1.0.1 + checksum: e350096e659c62422b85fa508e4b3669017311aa4c49b74f19f8e1bc7f3a54a584fdfd45326d4964d6011f2b2d882e38bea775a96046f2a61b7779a979629d8f + languageName: node + linkType: hard + +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: ^1.0.3 + minimalistic-assert: ^1.0.0 + minimalistic-crypto-utils: ^1.0.1 + checksum: bd30b6a68d7f22d63f10e1888aee497d7c2c5c0bb469e66bbdac99f143904d1dfe95f8131f95b3e86c86dd239963c9d972fcbe147e7cffa00e55d18585c43fe0 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^4.0.1": + version: 4.0.1 + resolution: "http-proxy-agent@npm:4.0.1" + dependencies: + "@tootallnate/once": 1 + agent-base: 6 + debug: 4 + checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"husky@npm:^0.14.3": + version: 0.14.3 + resolution: "husky@npm:0.14.3" + dependencies: + is-ci: ^1.0.10 + normalize-path: ^1.0.0 + strip-indent: ^2.0.0 + checksum: 7adccdb8b98b9883a428bc48730cbacaa66863e7799b4ef44ba82bed63071ae2f782da2bb3987283c8f0fc9259d48eb4082f7d76135b366ee523fface65143a7 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"immediate@npm:^3.2.2": + version: 3.3.0 + resolution: "immediate@npm:3.3.0" + checksum: 634b4305101e2452eba6c07d485bf3e415995e533c94b9c3ffbc37026fa1be34def6e4f2276b0dc2162a3f91628564a4bfb26280278b89d3ee54624e854d2f5f + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"indexeddbshim@npm:^10.1.0": + version: 10.1.0 + resolution: "indexeddbshim@npm:10.1.0" + dependencies: + eventtargeter: 0.8.0 + sync-promise: "git+https://github.com/brettz9/sync-promise.git#full-sync-missing-promise-features" + typeson: 7.0.2 + typeson-registry: 3.0.0 + websql: "git+https://github.com/brettz9/node-websql.git#configurable-secure3" + checksum: cb53db3bfe5b47b246ea410721b75e0590907e7035906a22a4217fd06106e5841a9926dd3a86159186c751e14667b2b7e148da68959bb2dd03a7f8d55e55e6e1 + languageName: node + linkType: hard + +"infer-owner@npm:^1.0.4": + version: 1.0.4 + resolution: "infer-owner@npm:1.0.4" + checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-arguments@npm:^1.0.4": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + languageName: node + linkType: hard + +"is-ci@npm:^1.0.10": + version: 1.2.1 + resolution: "is-ci@npm:1.2.1" + dependencies: + ci-info: ^1.5.0 + bin: + is-ci: bin.js + checksum: eca06c5626e54ec01be6f9114a8f19b3f571602cfe66458e42ccc42e401e2ebbe1bd3b2fcaa93b5896b9c759e964f3c7f4d9b2d0f4fc4ef5dba78a7c4825e0be + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-regex@npm:^1.0.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"jackspeak@npm:^2.0.3": + version: 2.2.2 + resolution: "jackspeak@npm:2.2.2" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 7b1468dd910afc00642db87448f24b062346570b8b47531409aa9012bcb95fdf7ec2b1c48edbb8b57a938c08391f8cc01b5034fc335aa3a2e74dbcc0ee5c555a + languageName: node + linkType: hard + +"jsonfile@npm:^2.1.0": + version: 2.4.0 + resolution: "jsonfile@npm:2.4.0" + dependencies: + graceful-fs: ^4.1.6 + dependenciesMeta: + graceful-fs: + optional: true + checksum: f5064aabbc9e35530dc471d8b203ae1f40dbe949ddde4391c6f6a6d310619a15f0efdae5587df594d1d70c555193aaeee9d2ed4aec9ffd5767bd5e4e62d49c3d + languageName: node + linkType: hard + +"lodash.map@npm:^4.6.0": + version: 4.6.0 + resolution: "lodash.map@npm:4.6.0" + checksum: 7369a41d7d24d15ce3bbd02a7faa3a90f6266c38184e64932571b9b21b758bd10c04ffd117d1859be1a44156f29b94df5045eff172bf8a97fddf68bf1002d12f + languageName: node + linkType: hard + +"lodash.zipobject@npm:^4.1.3": + version: 4.1.3 + resolution: "lodash.zipobject@npm:4.1.3" + checksum: 1ab635b665c0488a905779705a6683e9024115176e9e947d75d2a6b1e8673230fdb11c417788fbaf26d71e1cac5ad8e59a558924612cbf7d6615780836048883 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.0 + resolution: "lru-cache@npm:10.0.0" + checksum: 18f101675fe283bc09cda0ef1e3cc83781aeb8373b439f086f758d1d91b28730950db785999cd060d3c825a8571c03073e8c14512b6655af2188d623031baf50 + languageName: node + linkType: hard + +"make-dir@npm:^3.1.0": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: ^6.0.0 + checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^9.1.0": + version: 9.1.0 + resolution: "make-fetch-happen@npm:9.1.0" + dependencies: + agentkeepalive: ^4.1.3 + cacache: ^15.2.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^4.0.1 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^6.0.0 + minipass: ^3.1.3 + minipass-collect: ^1.0.2 + minipass-fetch: ^1.3.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.2 + promise-retry: ^2.0.1 + socks-proxy-agent: ^6.0.0 + ssri: ^8.0.0 + checksum: 0eb371c85fdd0b1584fcfdf3dc3c62395761b3c14658be02620c310305a9a7ecf1617a5e6fb30c1d081c5c8aaf177fa133ee225024313afabb7aa6a10f1e3d04 + languageName: node + linkType: hard + +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: ^3.0.0 + inherits: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: 098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c + languageName: node + linkType: hard + +"miller-rabin@npm:^4.0.0": + version: 4.0.1 + resolution: "miller-rabin@npm:4.0.1" + dependencies: + bn.js: ^4.0.0 + brorand: ^1.0.1 + bin: + miller-rabin: bin/miller-rabin + checksum: 00cd1ab838ac49b03f236cc32a14d29d7d28637a53096bf5c6246a032a37749c9bd9ce7360cbf55b41b89b7d649824949ff12bc8eee29ac77c6b38eada619ece + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimist@npm:^1.1.2": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^1.3.2": + version: 1.4.1 + resolution: "minipass-fetch@npm:1.4.1" + dependencies: + encoding: ^0.1.12 + minipass: ^3.1.0 + minipass-sized: ^1.0.3 + minizlib: ^2.0.0 + dependenciesMeta: + encoding: + optional: true + checksum: ec93697bdb62129c4e6c0104138e681e30efef8c15d9429dd172f776f83898471bc76521b539ff913248cc2aa6d2b37b652c993504a51cc53282563640f29216 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.3 + resolution: "minipass-fetch@npm:3.0.3" + dependencies: + encoding: ^0.1.13 + minipass: ^5.0.0 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af5ab2552a16fcf505d35fd7ffb84b57f4a0eeb269e6e1d9a2a75824dda48b36e527083250b7cca4a4def21d9544e2ade441e4730e233c0bc2133f6abda31e18 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.2, minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0, minipass@npm:^3.1.0, minipass@npm:^3.1.1, minipass@npm:^3.1.3": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0": + version: 7.0.2 + resolution: "minipass@npm:7.0.2" + checksum: 46776de732eb7cef2c7404a15fb28c41f5c54a22be50d47b03c605bf21f5c18d61a173c0a20b49a97e7a65f78d887245066410642551e45fffe04e9ac9e325bc + languageName: node + linkType: hard + +"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"negotiator@npm:^0.6.2, negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"neverthrow@npm:^5.1.0": + version: 5.1.0 + resolution: "neverthrow@npm:5.1.0" + checksum: 542e21fb6560354a483037bec871b75ec155e8118df001e036f053332cee64191e4b18e3e249db813a63b313ddf0d3440f727fda5dd9292578c042d77a3bfa67 + languageName: node + linkType: hard + +"node-addon-api@npm:^4.2.0": + version: 4.3.0 + resolution: "node-addon-api@npm:4.3.0" + dependencies: + node-gyp: latest + checksum: 3de396e23cc209f539c704583e8e99c148850226f6e389a641b92e8967953713228109f919765abc1f4355e801e8f41842f96210b8d61c7dcc10a477002dcf00 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.7": + version: 2.6.12 + resolution: "node-fetch@npm:2.6.12" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 3bc1655203d47ee8e313c0d96664b9673a3d4dd8002740318e9d27d14ef306693a4b2ef8d6525775056fd912a19e23f3ac0d7111ad8925877b7567b29a625592 + languageName: node + linkType: hard + +"node-gyp@npm:8.x": + version: 8.4.1 + resolution: "node-gyp@npm:8.4.1" + dependencies: + env-paths: ^2.2.0 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^9.1.0 + nopt: ^5.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 341710b5da39d3660e6a886b37e210d33f8282047405c2e62c277bcc744c7552c5b8b972ebc3a7d5c2813794e60cc48c3ebd142c46d6e0321db4db6c92dd0355 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^11.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + languageName: node + linkType: hard + +"noop-fn@npm:^1.0.0": + version: 1.0.0 + resolution: "noop-fn@npm:1.0.0" + checksum: e271f0590c06283d6216e268507fdab066d52164d7281cef1b99a2f40442c85297341c0e37a8fcbc9da95ea6cead7a87a69937c71a80fb3630b909d08b4e8c19 + languageName: node + linkType: hard + +"nopt@npm:^5.0.0": + version: 5.0.0 + resolution: "nopt@npm:5.0.0" + dependencies: + abbrev: 1 + bin: + nopt: bin/nopt.js + checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-path@npm:^1.0.0": + version: 1.0.0 + resolution: "normalize-path@npm:1.0.0" + checksum: b8b66ac272c7bbf63a3e47a050a5570b137c3e5085e410e2a0fffe1ff663e24e53c51364666586bd38f931e357d3cb5760a30e3c2f902a03f84bd7bf06e7f727 + languageName: node + linkType: hard + +"npmlog@npm:^5.0.1": + version: 5.0.1 + resolution: "npmlog@npm:5.0.1" + dependencies: + are-we-there-yet: ^2.0.0 + console-control-strings: ^1.1.0 + gauge: ^3.0.0 + set-blocking: ^2.0.0 + checksum: 516b2663028761f062d13e8beb3f00069c5664925871a9b57989642ebe09f23ab02145bf3ab88da7866c4e112cafff72401f61a672c7c8a20edc585a7016ef5f + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-is@npm:^1.0.1": + version: 1.1.5 + resolution: "object-is@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.pick@npm:^1.1.1": + version: 1.3.0 + resolution: "object.pick@npm:1.3.0" + dependencies: + isobject: ^3.0.1 + checksum: 77fb6eed57c67adf75e9901187e37af39f052ef601cb4480386436561357eb9e459e820762f01fd02c5c1b42ece839ad393717a6d1850d848ee11fbabb3e580a + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5": + version: 5.1.6 + resolution: "parse-asn1@npm:5.1.6" + dependencies: + asn1.js: ^5.2.0 + browserify-aes: ^1.0.0 + evp_bytestokey: ^1.0.0 + pbkdf2: ^3.0.3 + safe-buffer: ^5.1.1 + checksum: 9243311d1f88089bc9f2158972aa38d1abd5452f7b7cabf84954ed766048fe574d434d82c6f5a39b988683e96fb84cd933071dda38927e03469dc8c8d14463c7 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"pbkdf2@npm:^3.0.3": + version: 3.1.2 + resolution: "pbkdf2@npm:3.1.2" + dependencies: + create-hash: ^1.1.2 + create-hmac: ^1.1.4 + ripemd160: ^2.0.1 + safe-buffer: ^5.0.1 + sha.js: ^2.4.8 + checksum: 2c950a100b1da72123449208e231afc188d980177d021d7121e96a2de7f2abbc96ead2b87d03d8fe5c318face097f203270d7e27908af9f471c165a4e8e69c92 + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"public-encrypt@npm:^4.0.0": + version: 4.0.3 + resolution: "public-encrypt@npm:4.0.3" + dependencies: + bn.js: ^4.1.0 + browserify-rsa: ^4.0.0 + create-hash: ^1.1.0 + parse-asn1: ^5.0.0 + randombytes: ^2.0.1 + safe-buffer: ^5.1.2 + checksum: 215d446e43cef021a20b67c1df455e5eea134af0b1f9b8a35f9e850abf32991b0c307327bc5b9bc07162c288d5cdb3d4a783ea6c6640979ed7b5017e3e0c9935 + languageName: node + linkType: hard + +"punycode@npm:^2.1.1": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: ^5.1.0 + checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 + languageName: node + linkType: hard + +"randomfill@npm:^1.0.3": + version: 1.0.4 + resolution: "randomfill@npm:1.0.4" + dependencies: + randombytes: ^2.0.5 + safe-buffer: ^5.1.0 + checksum: 33734bb578a868d29ee1b8555e21a36711db084065d94e019a6d03caa67debef8d6a1bfd06a2b597e32901ddc761ab483a85393f0d9a75838f1912461d4dbfc7 + languageName: node + linkType: hard + +"react-native-quick-base64@npm:^2.0.5": + version: 2.0.7 + resolution: "react-native-quick-base64@npm:2.0.7" + dependencies: + base64-js: ^1.5.1 + peerDependencies: + react: "*" + react-native: "*" + checksum: faf25857aaaac8219cf9dd594c186e4263ecfee6b96a983b5a99b5021bf5e436d023dd5716b28f985aefeef46d608fa1f6e6daaca95c40680cd4c43bfb05ce86 + languageName: node + linkType: hard + +"react-native-quick-crypto@npm:^0.6.1": + version: 0.6.1 + resolution: "react-native-quick-crypto@npm:0.6.1" + dependencies: + "@craftzdog/react-native-buffer": ^6.0.5 + "@types/node": ^17.0.31 + crypto-browserify: ^3.12.0 + events: ^3.3.0 + react-native-quick-base64: ^2.0.5 + stream-browserify: ^3.0.0 + string_decoder: ^1.3.0 + peerDependencies: + react: "*" + react-native: ">=0.71.0" + checksum: 47b227c74cef0c9630ce7e91fe2153bcf2492f3fae175352818ca2278779f28c2932611df44cb8a18cb290da6d73aa3a927bcea56c3a9a4a51db6a7f4f72ac4d + languageName: node + linkType: hard + +"react-native-sqlite-2@npm:^3.6.2": + version: 3.6.2 + resolution: "react-native-sqlite-2@npm:3.6.2" + dependencies: + lodash.map: ^4.6.0 + lodash.zipobject: ^4.1.3 + websql: ^2.0.3 + peerDependencies: + react-native: ">= 0.60.0" + checksum: 65efa7afe42eff3abbb4125bd2d74397a89436f7966eb038d4762a01636d82a5b9024188c24403e0699d3cb809c3a1165ff7702e35c5cdaa3e018805201562db + languageName: node + linkType: hard + +"readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.2.0": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"rimraf@npm:^2.2.8": + version: 2.7.1 + resolution: "rimraf@npm:2.7.1" + dependencies: + glob: ^7.1.3 + bin: + rimraf: ./bin.js + checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: ^3.0.0 + inherits: ^2.0.1 + checksum: 006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.2": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sd-nodeify@workspace:.": + version: 0.0.0-use.local + resolution: "sd-nodeify@workspace:." + dependencies: + "@yarnpkg/lockfile": ^1.0.0 + deep-equal: ^1.0.0 + findit: ^2.0.0 + fs-extra: ^0.22.1 + husky: ^0.14.3 + indexeddbshim: ^10.1.0 + minimist: ^1.1.2 + neverthrow: ^5.1.0 + object.pick: ^1.1.1 + react-native-quick-crypto: ^0.6.1 + react-native-sqlite-2: ^3.6.2 + run-parallel: ^1.1.2 + semver: ^5.0.1 + xtend: ^4.0.0 + bin: + build: tsc + prepublishOnly: npm run build + sd-nodeify: ./cmd.js + sd-nodeify-setup: ./cmd-setup.js + test: jest + languageName: unknown + linkType: soft + +"semver@npm:^5.0.1": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + languageName: node + linkType: hard + +"semver@npm:^6.0.0": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: ^2.0.1 + safe-buffer: ^5.0.1 + bin: + sha.js: ./bin.js + checksum: ebd3f59d4b799000699097dadb831c8e3da3eb579144fd7eb7a19484cbcbb7aca3c68ba2bb362242eb09e33217de3b4ea56e4678184c334323eca24a58e3ad07 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^6.0.0": + version: 6.2.1 + resolution: "socks-proxy-agent@npm:6.2.1" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 9ca089d489e5ee84af06741135c4b0d2022977dad27ac8d649478a114cdce87849e8d82b7c22b51501a4116e231241592946fc7fae0afc93b65030ee57084f58 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"sqlite3@npm:^5.0.2": + version: 5.1.6 + resolution: "sqlite3@npm:5.1.6" + dependencies: + "@mapbox/node-pre-gyp": ^1.0.0 + node-addon-api: ^4.2.0 + node-gyp: 8.x + tar: ^6.1.11 + peerDependencies: + node-gyp: 8.x + dependenciesMeta: + node-gyp: + optional: true + peerDependenciesMeta: + node-gyp: + optional: true + checksum: ea640628843e37a63dfb4bd2c8429dbd7aab845c1a8204574dca3aac61486ab65bc0abfd99b48f1cead1f783171c6111c0cc4115335d5b95bb0b4eb44db162d5 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.4 + resolution: "ssri@npm:10.0.4" + dependencies: + minipass: ^5.0.0 + checksum: fb14da9f8a72b04eab163eb13a9dda11d5962cd2317f85457c4e0b575e9a6e0e3a6a87b5bf122c75cb36565830cd5f263fb457571bf6f1587eb5f95d095d6165 + languageName: node + linkType: hard + +"ssri@npm:^8.0.0, ssri@npm:^8.0.1": + version: 8.0.1 + resolution: "ssri@npm:8.0.1" + dependencies: + minipass: ^3.1.1 + checksum: bc447f5af814fa9713aa201ec2522208ae0f4d8f3bda7a1f445a797c7b929a02720436ff7c478fb5edc4045adb02b1b88d2341b436a80798734e2494f1067b36 + languageName: node + linkType: hard + +"stream-browserify@npm:^3.0.0": + version: 3.0.0 + resolution: "stream-browserify@npm:3.0.0" + dependencies: + inherits: ~2.0.4 + readable-stream: ^3.5.0 + checksum: 4c47ef64d6f03815a9ca3874e2319805e8e8a85f3550776c47ce523b6f4c6cd57f40e46ec6a9ab8ad260fde61863c2718f250d3bedb3fe9052444eb9abfd9921 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-indent@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-indent@npm:2.0.0" + checksum: 7d9080d02ddace616ebbc17846e41d3880cb147e2a81e51142281322ded6b05b230a4fb12c2e5266f62735cf8f5fb9839e55d74799d11f26bcc8c71ca049a0ba + languageName: node + linkType: hard + +"sync-promise@git+https://github.com/brettz9/sync-promise.git#full-sync-missing-promise-features": + version: 1.0.1 + resolution: "sync-promise@https://github.com/brettz9/sync-promise.git#commit=25845a49a00aa2d2c985a5149b97c86a1fcdc75a" + checksum: f536c50c270ef2ec28511af3b90ba10b8e2b3b51b3e4079136d428150ccc9592f47d02e2cf41ba02135e4a81f59fb472d642794d807bacf8c55a20f85ff57c8a + languageName: node + linkType: hard + +"tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.1.15 + resolution: "tar@npm:6.1.15" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + languageName: node + linkType: hard + +"tiny-queue@npm:^0.2.1": + version: 0.2.1 + resolution: "tiny-queue@npm:0.2.1" + checksum: 9fb00beb47da966cc9296af5049077a656f6111ffb5a20b38a068659b30d8459f8f80b7bcf938e15547c321ecb7da8d001f38c2c847c0492633ae3b69550a4df + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + +"typeson-registry@npm:3.0.0": + version: 3.0.0 + resolution: "typeson-registry@npm:3.0.0" + dependencies: + base64-arraybuffer-es6: ^1.0.0 + typeson: ^7.0.1 + whatwg-url: ^11.0.0 + checksum: 10b30bac0154f6bc9607e953643dc7ba88f1b8a1d3162ad136e0696f5e1e1e8f087f9e583d571bcd71775b26dd2d294252570db6328bf44a5f6b1c980f1aa40d + languageName: node + linkType: hard + +"typeson@npm:7.0.2, typeson@npm:^7.0.1": + version: 7.0.2 + resolution: "typeson@npm:7.0.2" + checksum: 617d4a3400c226e610a653812c2e1b84ffcd252fa92408ccd5aef0bf9fa447a28c8ba395327e86a7eb14ff5475adcddf5c3f0ff8be3f1568a24dbd22d602b3e6 + languageName: node + linkType: hard + +"unique-filename@npm:^1.1.1": + version: 1.1.1 + resolution: "unique-filename@npm:1.1.1" + dependencies: + unique-slug: ^2.0.0 + checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^2.0.0": + version: 2.0.2 + resolution: "unique-slug@npm:2.0.2" + dependencies: + imurmurhash: ^0.1.4 + checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + +"websql@git+https://github.com/brettz9/node-websql.git#configurable-secure3": + version: 2.0.1 + resolution: "websql@https://github.com/brettz9/node-websql.git#commit=73f7e4051cda5e58de7669a54ab184d387b2f98d" + dependencies: + argsarray: ^0.0.1 + immediate: ^3.2.2 + noop-fn: ^1.0.0 + sqlite3: ^5.0.2 + tiny-queue: ^0.2.1 + dependenciesMeta: + sqlite3: + optional: true + checksum: 60d7fea6d974cf5df4361a0cdf9e7b6bca17cd59028fa2a7a72754f34e54242ef6e85aa09b97a8898566baa452c3700cf30f8d8cfbc230a2b9b7f514ce99a469 + languageName: node + linkType: hard + +"websql@npm:^2.0.3": + version: 2.0.3 + resolution: "websql@npm:2.0.3" + dependencies: + argsarray: ^0.0.1 + immediate: ^3.2.2 + noop-fn: ^1.0.0 + sqlite3: ^5.0.2 + tiny-queue: ^0.2.1 + dependenciesMeta: + sqlite3: + optional: true + checksum: 644951a549c115588e8cbb7c826b64856e9b75caa2462e20b46adc9fef5723c85a89812b4fca33f3af2f5e6604a622322eef1ef33c202942ed7ef418a62df42c + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"xtend@npm:^4.0.0": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard diff --git a/packages/mobile/ios/SDMobile2.xcworkspace/xcuserdata/enesdolgun.xcuserdatad/UserInterfaceState.xcuserstate b/packages/mobile/ios/SDMobile2.xcworkspace/xcuserdata/enesdolgun.xcuserdatad/UserInterfaceState.xcuserstate index 3adf654137..6a1baeb4b7 100644 Binary files a/packages/mobile/ios/SDMobile2.xcworkspace/xcuserdata/enesdolgun.xcuserdatad/UserInterfaceState.xcuserstate and b/packages/mobile/ios/SDMobile2.xcworkspace/xcuserdata/enesdolgun.xcuserdatad/UserInterfaceState.xcuserstate differ