diff --git a/lib/dialects/sqlite.ts b/lib/dialects/sqlite.ts index 8210db9..3788892 100644 --- a/lib/dialects/sqlite.ts +++ b/lib/dialects/sqlite.ts @@ -136,7 +136,7 @@ export default class SQLite implements SchemaInspector { await this.knex .select('name') .from('sqlite_master') - .whereRaw(`sql LIKE "%AUTOINCREMENT%"`) + .whereRaw(`sql LIKE '%AUTOINCREMENT%'`) ).map(({ name }) => name); const columns: RawColumn[] = await this.knex.raw( diff --git a/lib/index.ts b/lib/index.ts index 61ac0de..53de8fd 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -16,6 +16,7 @@ export function SchemaInspector(knex: Knex) { constructor = require('./dialects/cockroachdb').default; break; case 'Client_SQLite3': + case 'Client_BetterSQLite3': constructor = require('./dialects/sqlite').default; break; case 'Client_Oracledb': diff --git a/package-lock.json b/package-lock.json index 45e3a7e..875f614 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "knex-schema-inspector", "version": "3.0.1", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -18,6 +18,7 @@ "@types/lodash.isnil": "^4.0.7", "@types/mocha": "^10.0.0", "@types/node": "^18.11.2", + "better-sqlite3": "^8.6.0", "chai": "^4.3.6", "husky": "^8.0.1", "knex": "^2.3.0", @@ -300,9 +301,8 @@ }, "node_modules/@js-joda/core": { "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.4.2.tgz", - "integrity": "sha512-QIDIZ9a0NfDStgD47VaTgwiPjlw1p4QPLwjOB/9+/DqIztoQopPNNAd+HdtQMHgE+ibP3dJacd8/TVL/A1RaaA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.9", @@ -389,9 +389,8 @@ }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/@types/lodash": { @@ -401,33 +400,29 @@ }, "node_modules/@types/lodash.flatten": { "version": "4.4.7", - "resolved": "https://registry.npmjs.org/@types/lodash.flatten/-/lodash.flatten-4.4.7.tgz", - "integrity": "sha512-6yyP/mHEKL2sa86V61F7TnEcUKlLML9+aWI7TCKvnS4SFt7RD4zTVwkdDgluOJqxVkwZ/2z7HvtRs/7j/Uru7g==", "dev": true, + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/lodash.isnil": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@types/lodash.isnil/-/lodash.isnil-4.0.7.tgz", - "integrity": "sha512-jMMa3G3nJCk+agAWJmrmpr4dYurU6F5SdhQuouhFxKE3mdmqI0lLAI6G72NBW+sxfLVnxZymjqj5nRwonqASZw==", "dev": true, + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/mocha": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.0.tgz", - "integrity": "sha512-rADY+HtTOA52l9VZWtgQfn4p+UDVM2eDVkMZT1I6syp0YKxW2F9v+0pbRZLsvskhQv/vMb6ZfCay81GHbz5SHg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node-fetch": { "version": "2.6.1", @@ -603,9 +598,8 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -655,6 +649,17 @@ ], "license": "MIT" }, + "node_modules/better-sqlite3": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.7.0.tgz", + "integrity": "sha512-99jZU4le+f3G6aIl6PmmV0cxUIWqKieHxsiF7G34CVFiE+/UabpYqkU0NJIkY/96mQKikHeBjtR27vFfs5JpEw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + } + }, "node_modules/bignumber.js": { "version": "9.0.0", "dev": true, @@ -671,6 +676,15 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "5.0.0", "dev": true, @@ -749,9 +763,8 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-writer": { "version": "2.0.0", @@ -1015,9 +1028,8 @@ }, "node_modules/colorette": { "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -1093,6 +1105,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-eql": { "version": "3.0.1", "dev": true, @@ -1104,6 +1131,15 @@ "node": ">=0.12" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "dev": true, @@ -1183,6 +1219,15 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/env-paths": { "version": "2.2.1", "dev": true, @@ -1316,6 +1361,21 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, "node_modules/fill-range": { "version": "7.0.1", "dev": true, @@ -1363,6 +1423,12 @@ "node": ">= 6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-minipass": { "version": "2.1.0", "dev": true, @@ -1508,6 +1574,12 @@ "dev": true, "license": "MIT" }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, "node_modules/glob": { "version": "7.2.0", "dev": true, @@ -1763,6 +1835,12 @@ "dev": true, "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, "node_modules/internal-slot": { "version": "1.0.3", "dev": true, @@ -2061,9 +2139,8 @@ }, "node_modules/js-md4": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", - "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -2078,15 +2155,13 @@ }, "node_modules/jsbi": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", - "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "minimist": "^1.2.0" @@ -2164,9 +2239,8 @@ }, "node_modules/knex": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/knex/-/knex-2.3.0.tgz", - "integrity": "sha512-WMizPaq9wRMkfnwKXKXgBZeZFOSHGdtoSz5SaLAVNs3WRDfawt9O89T4XyH52PETxjV8/kRk0Yf+8WBEP/zbYw==", "dev": true, + "license": "MIT", "dependencies": { "colorette": "2.0.19", "commander": "^9.1.0", @@ -2231,9 +2305,8 @@ }, "node_modules/lint-staged": { "version": "13.0.3", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", - "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^3.1.0", "colorette": "^2.0.17", @@ -2334,8 +2407,7 @@ }, "node_modules/lodash.flatten": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + "license": "MIT" }, "node_modules/lodash.includes": { "version": "4.3.0", @@ -2354,8 +2426,7 @@ }, "node_modules/lodash.isnil": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + "license": "MIT" }, "node_modules/lodash.isnumber": { "version": "3.0.3", @@ -2481,9 +2552,8 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-fetch-happen": { "version": "9.1.0", @@ -2559,6 +2629,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.0.4", "dev": true, @@ -2572,9 +2654,8 @@ }, "node_modules/minimist": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2669,9 +2750,8 @@ }, "node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -2679,11 +2759,16 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "node_modules/mocha": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -2798,6 +2883,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, "node_modules/native-duplexpair": { "version": "1.0.0", "dev": true, @@ -2812,6 +2903,18 @@ "node": ">= 0.6" } }, + "node_modules/node-abi": { + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-abort-controller": { "version": "3.0.1", "dev": true, @@ -3168,9 +3271,8 @@ }, "node_modules/pg": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", "dev": true, + "license": "MIT", "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -3207,9 +3309,8 @@ }, "node_modules/pg-pool": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz", - "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==", "dev": true, + "license": "MIT", "peerDependencies": { "pg": ">=8.0" } @@ -3299,11 +3400,36 @@ "node": ">=0.10.0" } }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prettier": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -3351,6 +3477,16 @@ "dev": true, "license": "MIT" }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.1.1", "dev": true, @@ -3367,6 +3503,30 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "dev": true, @@ -3592,6 +3752,51 @@ "dev": true, "license": "ISC" }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/slice-ansi": { "version": "5.0.0", "dev": true, @@ -3669,18 +3874,16 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -3714,10 +3917,9 @@ }, "node_modules/sqlite3": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.2.tgz", - "integrity": "sha512-D0Reg6pRWAFXFUnZKsszCI67tthFD8fGPewRddDCX6w4cYwz3MbvuwRICbL+YQjBAh9zbw+lJ/V9oC8nG5j6eg==", "dev": true, "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", "node-addon-api": "^4.2.0", @@ -3832,9 +4034,8 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=4" @@ -3900,6 +4101,89 @@ "node": ">= 10" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/tar-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "dev": true, @@ -3921,9 +4205,8 @@ }, "node_modules/tedious": { "version": "15.1.0", - "resolved": "https://registry.npmjs.org/tedious/-/tedious-15.1.0.tgz", - "integrity": "sha512-D96Z8SL4ALE/rS6rOAfzWd/x+RD9vWbnNT3w5KZ0e0Tdh5FX1bKEODS+1oemSQM2ok5SktLHqSJqYQRx4yu3WA==", "dev": true, + "license": "MIT", "dependencies": { "@azure/identity": "^2.0.4", "@azure/keyvault-keys": "^4.4.0", @@ -3987,9 +4270,8 @@ }, "node_modules/ts-mocha": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", "dev": true, + "license": "MIT", "dependencies": { "ts-node": "7.0.1" }, @@ -4008,9 +4290,8 @@ }, "node_modules/ts-node": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", @@ -4030,18 +4311,16 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tsconfig-paths": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/json5": "^0.0.29", @@ -4063,6 +4342,18 @@ "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/type-detect": { "version": "4.0.8", "dev": true, @@ -4084,9 +4375,8 @@ }, "node_modules/typescript": { "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4354,9 +4644,8 @@ }, "node_modules/yn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -4372,2790 +4661,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@azure/abort-controller": { - "version": "1.1.0", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - }, - "@azure/core-auth": { - "version": "1.3.2", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" - } - }, - "@azure/core-client": { - "version": "1.6.0", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.5.0", - "@azure/core-tracing": "^1.0.0", - "@azure/core-util": "^1.0.0", - "@azure/logger": "^1.0.0", - "tslib": "^2.2.0" - }, - "dependencies": { - "@azure/core-tracing": { - "version": "1.0.1", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - } - } - }, - "@azure/core-http": { - "version": "2.2.5", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/logger": "^1.0.0", - "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7", - "process": "^0.11.10", - "tough-cookie": "^4.0.0", - "tslib": "^2.2.0", - "tunnel": "^0.0.6", - "uuid": "^8.3.0", - "xml2js": "^0.4.19" - } - }, - "@azure/core-lro": { - "version": "2.2.4", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/logger": "^1.0.0", - "tslib": "^2.2.0" - } - }, - "@azure/core-paging": { - "version": "1.3.0", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - }, - "@azure/core-rest-pipeline": { - "version": "1.9.0", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.0.0", - "@azure/logger": "^1.0.0", - "form-data": "^4.0.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "tslib": "^2.2.0", - "uuid": "^8.3.0" - }, - "dependencies": { - "@azure/core-tracing": { - "version": "1.0.1", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - } - } - }, - "@azure/core-tracing": { - "version": "1.0.0-preview.13", - "dev": true, - "requires": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" - } - }, - "@azure/core-util": { - "version": "1.0.0", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - }, - "@azure/identity": { - "version": "2.0.4", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-client": "^1.4.0", - "@azure/core-rest-pipeline": "^1.1.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/core-util": "^1.0.0-beta.1", - "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^2.16.0", - "@azure/msal-common": "^4.5.1", - "@azure/msal-node": "^1.3.0", - "events": "^3.0.0", - "jws": "^4.0.0", - "open": "^8.0.0", - "stoppable": "^1.1.0", - "tslib": "^2.2.0", - "uuid": "^8.3.0" - } - }, - "@azure/keyvault-keys": { - "version": "4.4.0", - "dev": true, - "requires": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^2.0.0", - "@azure/core-lro": "^2.2.0", - "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/logger": "^1.0.0", - "tslib": "^2.2.0" - } - }, - "@azure/logger": { - "version": "1.0.3", - "dev": true, - "requires": { - "tslib": "^2.2.0" - } - }, - "@azure/msal-browser": { - "version": "2.25.0", - "dev": true, - "requires": { - "@azure/msal-common": "^6.4.0" - }, - "dependencies": { - "@azure/msal-common": { - "version": "6.4.0", - "dev": true - } - } - }, - "@azure/msal-common": { - "version": "4.5.1", - "dev": true, - "requires": { - "debug": "^4.1.1" - } - }, - "@azure/msal-node": { - "version": "1.9.1", - "dev": true, - "requires": { - "@azure/msal-common": "^6.4.0", - "jsonwebtoken": "^8.5.1", - "uuid": "^8.3.0" - }, - "dependencies": { - "@azure/msal-common": { - "version": "6.4.0", - "dev": true - } - } - }, - "@gar/promisify": { - "version": "1.1.3", - "dev": true, - "optional": true - }, - "@js-joda/core": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.4.2.tgz", - "integrity": "sha512-QIDIZ9a0NfDStgD47VaTgwiPjlw1p4QPLwjOB/9+/DqIztoQopPNNAd+HdtQMHgE+ibP3dJacd8/TVL/A1RaaA==", - "dev": true - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.9", - "dev": true, - "requires": { - "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" - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "dev": true, - "optional": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "dev": true, - "optional": true - } - } - }, - "@opentelemetry/api": { - "version": "1.1.0", - "dev": true - }, - "@tootallnate/once": { - "version": "1.1.2", - "dev": true - }, - "@types/chai": { - "version": "4.3.3", - "dev": true - }, - "@types/es-aggregate-error": { - "version": "1.0.2", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "optional": true - }, - "@types/lodash": { - "version": "4.14.168", - "dev": true - }, - "@types/lodash.flatten": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/@types/lodash.flatten/-/lodash.flatten-4.4.7.tgz", - "integrity": "sha512-6yyP/mHEKL2sa86V61F7TnEcUKlLML9+aWI7TCKvnS4SFt7RD4zTVwkdDgluOJqxVkwZ/2z7HvtRs/7j/Uru7g==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.isnil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@types/lodash.isnil/-/lodash.isnil-4.0.7.tgz", - "integrity": "sha512-jMMa3G3nJCk+agAWJmrmpr4dYurU6F5SdhQuouhFxKE3mdmqI0lLAI6G72NBW+sxfLVnxZymjqj5nRwonqASZw==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.0.tgz", - "integrity": "sha512-rADY+HtTOA52l9VZWtgQfn4p+UDVM2eDVkMZT1I6syp0YKxW2F9v+0pbRZLsvskhQv/vMb6ZfCay81GHbz5SHg==", - "dev": true - }, - "@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.6.1", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/tunnel": { - "version": "0.0.3", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "abbrev": { - "version": "1.1.1", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.2.1", - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "dev": true, - "optional": true - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-colors": { - "version": "4.1.1", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "2.0.0", - "dev": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "dev": true - }, - "bignumber.js": { - "version": "9.0.0", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "dev": true - }, - "bl": { - "version": "5.0.0", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "dev": true - }, - "buffer": { - "version": "6.0.3", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-writer": { - "version": "2.0.0", - "dev": true - }, - "cacache": { - "version": "15.3.0", - "dev": true, - "optional": true, - "requires": { - "@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" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "dev": true, - "optional": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "6.2.0", - "dev": true - }, - "chai": { - "version": "4.3.6", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-error": { - "version": "1.0.2", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "3.1.0", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "dev": true - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.3.0", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "4.0.0", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "dev": true - }, - "detect-libc": { - "version": "2.0.1", - "dev": true - }, - "diff": { - "version": "5.0.0", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "dev": true - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "env-paths": { - "version": "2.2.1", - "dev": true, - "optional": true - }, - "err-code": { - "version": "2.0.3", - "dev": true, - "optional": true - }, - "es-abstract": { - "version": "1.20.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-aggregate-error": { - "version": "1.0.8", - "dev": true, - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "function-bind": "^1.1.1", - "functions-have-names": "^1.2.3", - "get-intrinsic": "^1.1.1", - "globalthis": "^1.0.2", - "has-property-descriptors": "^1.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "esm": { - "version": "3.2.25", - "dev": true - }, - "events": { - "version": "3.3.0", - "dev": true - }, - "execa": { - "version": "6.1.0", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-minipass": { - "version": "2.1.0", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "dev": true, - "requires": { - "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" - } - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.2", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getopts": { - "version": "2.3.0", - "dev": true - }, - "glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globalthis": { - "version": "1.0.3", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.10", - "dev": true, - "optional": true - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "dev": true - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "dev": true, - "optional": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "3.0.1", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.0.0" - } - }, - "husky": { - "version": "8.0.1", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true, - "optional": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "2.2.0", - "dev": true - }, - "ip": { - "version": "1.1.5", - "dev": true, - "optional": true - }, - "is-bigint": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "dev": true - }, - "is-core-module": { - "version": "2.9.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "dev": true, - "optional": true - }, - "is-negative-zero": { - "version": "2.0.2", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-obj": { - "version": "2.1.0", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "3.0.0", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "js-md4": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", - "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbi": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", - "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "dev": true, - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "jwa": { - "version": "1.4.1", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "dev": true, - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "jwa": { - "version": "2.0.0", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "dev": true, - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "knex": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/knex/-/knex-2.3.0.tgz", - "integrity": "sha512-WMizPaq9wRMkfnwKXKXgBZeZFOSHGdtoSz5SaLAVNs3WRDfawt9O89T4XyH52PETxjV8/kRk0Yf+8WBEP/zbYw==", - "dev": true, - "requires": { - "colorette": "2.0.19", - "commander": "^9.1.0", - "debug": "4.3.4", - "escalade": "^3.1.1", - "esm": "^3.2.25", - "get-package-type": "^0.1.0", - "getopts": "2.3.0", - "interpret": "^2.2.0", - "lodash": "^4.17.21", - "pg-connection-string": "2.5.0", - "rechoir": "^0.8.0", - "resolve-from": "^5.0.0", - "tarn": "^3.0.2", - "tildify": "2.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "lilconfig": { - "version": "2.0.5", - "dev": true - }, - "lint-staged": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", - "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.17", - "commander": "^9.3.0", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.5", - "listr2": "^4.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.1" - } - }, - "listr2": { - "version": "4.0.5", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.5", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "cli-truncate": { - "version": "2.1.0", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "slice-ansi": { - "version": "3.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.includes": { - "version": "4.3.0", - "dev": true - }, - "lodash.isboolean": { - "version": "3.0.3", - "dev": true - }, - "lodash.isinteger": { - "version": "4.0.4", - "dev": true - }, - "lodash.isnil": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", - "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "log-update": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "loupe": { - "version": "2.3.4", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-fetch-happen": { - "version": "9.1.0", - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "4.0.0", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "minipass": { - "version": "3.1.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "dev": true, - "optional": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz", - "integrity": "sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "minimatch": { - "version": "5.0.1", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.3", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "mysql": { - "version": "2.18.1", - "dev": true, - "requires": { - "bignumber.js": "9.0.0", - "readable-stream": "2.3.7", - "safe-buffer": "5.1.2", - "sqlstring": "2.3.1" - } - }, - "nanoid": { - "version": "3.3.3", - "dev": true - }, - "native-duplexpair": { - "version": "1.0.0", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "dev": true, - "optional": true - }, - "node-abort-controller": { - "version": "3.0.1", - "dev": true - }, - "node-addon-api": { - "version": "4.3.0", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp": { - "version": "8.4.1", - "dev": true, - "optional": true, - "requires": { - "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" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.0", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "npmlog": { - "version": "6.0.2", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "dev": true, - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "wide-align": { - "version": "1.1.5", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - } - } - }, - "nopt": { - "version": "5.0.0", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "dev": true, - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "dev": true - } - } - }, - "npmlog": { - "version": "5.0.1", - "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "6.0.0", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "open": { - "version": "8.4.0", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "oracledb": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/oracledb/-/oracledb-5.5.0.tgz", - "integrity": "sha512-i5cPvMENpZP8nnqptB6l0pjiOyySj1IISkbM4Hr3yZEDdANo2eezarwZb9NQ8fTh5pRjmgpZdSyIbnn9N3AENw==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "packet-reader": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "dev": true - }, - "pg": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.8.0.tgz", - "integrity": "sha512-UXYN0ziKj+AeNNP7VDMwrehpACThH7LUl/p8TDFpEUuSejCUIwGSfxpHsPvtM6/WXFy6SU4E5RG4IJV/TZAGjw==", - "dev": true, - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.2", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "dev": true - }, - "pg-int8": { - "version": "1.0.1", - "dev": true - }, - "pg-pool": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.2.tgz", - "integrity": "sha512-His3Fh17Z4eg7oANLob6ZvH8xIVen3phEZh2QuyrIl4dQSDVEabNducv6ysROKpDNPSD+12tONZVWfSgMvDD9w==", - "dev": true, - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "dev": true - }, - "pg-types": { - "version": "2.2.0", - "dev": true, - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "dev": true, - "requires": { - "split2": "^3.1.1" - } - }, - "picomatch": { - "version": "2.3.1", - "dev": true - }, - "pidtree": { - "version": "0.6.0", - "dev": true - }, - "postgres-array": { - "version": "2.0.0", - "dev": true - }, - "postgres-bytea": { - "version": "1.0.0", - "dev": true - }, - "postgres-date": { - "version": "1.0.7", - "dev": true - }, - "postgres-interval": { - "version": "1.2.0", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true - }, - "process": { - "version": "0.11.10", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "dev": true, - "optional": true - }, - "promise-retry": { - "version": "2.0.1", - "dev": true, - "optional": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "psl": { - "version": "1.8.0", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.8.0", - "dev": true, - "requires": { - "resolve": "^1.20.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - } - } - }, - "retry": { - "version": "0.12.0", - "dev": true, - "optional": true - }, - "rfdc": { - "version": "1.3.0", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rxjs": { - "version": "7.5.5", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "dev": true - }, - "sax": { - "version": "1.2.4", - "dev": true - }, - "semver": { - "version": "7.3.7", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.1.0", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "dev": true - } - } - }, - "smart-buffer": { - "version": "4.2.0", - "dev": true, - "optional": true - }, - "socks": { - "version": "2.6.2", - "dev": true, - "optional": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.0", - "dev": true, - "optional": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "3.2.2", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "sprintf-js": { - "version": "1.1.2", - "dev": true - }, - "sqlite3": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.2.tgz", - "integrity": "sha512-D0Reg6pRWAFXFUnZKsszCI67tthFD8fGPewRddDCX6w4cYwz3MbvuwRICbL+YQjBAh9zbw+lJ/V9oC8nG5j6eg==", - "dev": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "node-gyp": "8.x", - "tar": "^6.1.11" - } - }, - "sqlstring": { - "version": "2.3.1", - "dev": true - }, - "ssri": { - "version": "8.0.1", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stoppable": { - "version": "1.1.0", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-argv": { - "version": "0.3.1", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "optional": true - }, - "strip-final-newline": { - "version": "3.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true - }, - "tar": { - "version": "6.1.11", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "dev": true - } - } - }, - "tarn": { - "version": "3.0.2", - "dev": true - }, - "tedious": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/tedious/-/tedious-15.1.0.tgz", - "integrity": "sha512-D96Z8SL4ALE/rS6rOAfzWd/x+RD9vWbnNT3w5KZ0e0Tdh5FX1bKEODS+1oemSQM2ok5SktLHqSJqYQRx4yu3WA==", - "dev": true, - "requires": { - "@azure/identity": "^2.0.4", - "@azure/keyvault-keys": "^4.4.0", - "@js-joda/core": "^5.2.0", - "@types/es-aggregate-error": "^1.0.2", - "bl": "^5.0.0", - "es-aggregate-error": "^1.0.8", - "iconv-lite": "^0.6.3", - "js-md4": "^0.3.2", - "jsbi": "^4.3.0", - "native-duplexpair": "^1.0.0", - "node-abort-controller": "^3.0.1", - "punycode": "^2.1.0", - "sprintf-js": "^1.1.2" - } - }, - "through": { - "version": "2.3.8", - "dev": true - }, - "tildify": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "4.0.0", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "0.0.3", - "dev": true - }, - "ts-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", - "dev": true, - "requires": { - "ts-node": "7.0.1", - "tsconfig-paths": "^3.5.0" - } - }, - "ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dev": true, - "requires": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - }, - "dependencies": { - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - } - } - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "optional": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "2.4.0", - "dev": true - }, - "tunnel": { - "version": "0.0.6", - "dev": true - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unique-filename": { - "version": "1.1.1", - "dev": true, - "optional": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "dev": true, - "optional": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "wide-align": { - "version": "1.1.3", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "workerpool": { - "version": "6.2.1", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "dev": true - }, - "y18n": { - "version": "5.0.5", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "dev": true - }, - "yaml": { - "version": "2.1.1", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } } } diff --git a/package.json b/package.json index 9be614e..2e6fda0 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@types/lodash.isnil": "^4.0.7", "@types/mocha": "^10.0.0", "@types/node": "^18.11.2", + "better-sqlite3": "^8.6.0", "chai": "^4.3.6", "husky": "^8.0.1", "knex": "^2.3.0", diff --git a/test/sqlite.spec.ts b/test/sqlite.spec.ts index c097092..13ee498 100644 --- a/test/sqlite.spec.ts +++ b/test/sqlite.spec.ts @@ -3,61 +3,79 @@ import { expect } from 'chai'; import schemaInspector from '../lib'; import { SchemaInspector } from '../lib/types/schema-inspector'; -describe('sqlite', () => { - let database: Knex; - let inspector: SchemaInspector; +for (const sqliteClientName of ['sqlite3', 'better-sqlite3']) { + describe(sqliteClientName, () => { + let database: Knex; + let inspector: SchemaInspector; - before(() => { - database = knex({ - client: 'sqlite3', - connection: { - filename: './test/db/sqlite.db', - }, + before(() => { + database = knex({ + client: sqliteClientName, + connection: { + filename: './test/db/sqlite.db', + }, + }); + inspector = schemaInspector(database); }); - inspector = schemaInspector(database); - }); - after(async () => { - await database.destroy(); - }); + after(async () => { + await database.destroy(); + }); - describe('.tables', () => { - it('returns tables', async () => { - expect(await inspector.tables()).to.deep.equal([ - 'page_visits', - 'users', - 'teams', - ]); + describe('.tables', () => { + it('returns tables', async () => { + expect(await inspector.tables()).to.deep.equal([ + 'page_visits', + 'users', + 'teams', + ]); + }); }); - }); - describe('.tableInfo', () => { - it('returns information for all tables', async () => { - expect(await inspector.tableInfo()).to.deep.equal([ - { - name: 'page_visits', - sql: - 'CREATE TABLE page_visits (\n' + - ' request_path varchar(100)\n' + - ', user_agent varchar(200)\n' + - ', created_at datetime\n' + - ')', - }, - { - name: 'users', - sql: - 'CREATE TABLE "users" (\n' + - '\t"id"\tINTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n' + - '\t"team_id"\tinteger NOT NULL,\n' + - '\t"email"\tvarchar(100),\n' + - '\t"password"\tvarchar(60),\n' + - `\t"status"\tvarchar(60) DEFAULT 'active',\n` + - '\tFOREIGN KEY("team_id") REFERENCES "teams"("id") ' + - 'ON UPDATE CASCADE ' + - 'ON DELETE CASCADE\n' + - ')', - }, - { + describe('.tableInfo', () => { + it('returns information for all tables', async () => { + expect(await inspector.tableInfo()).to.deep.equal([ + { + name: 'page_visits', + sql: + 'CREATE TABLE page_visits (\n' + + ' request_path varchar(100)\n' + + ', user_agent varchar(200)\n' + + ', created_at datetime\n' + + ')', + }, + { + name: 'users', + sql: + 'CREATE TABLE "users" (\n' + + '\t"id"\tINTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n' + + '\t"team_id"\tinteger NOT NULL,\n' + + '\t"email"\tvarchar(100),\n' + + '\t"password"\tvarchar(60),\n' + + `\t"status"\tvarchar(60) DEFAULT 'active',\n` + + '\tFOREIGN KEY("team_id") REFERENCES "teams"("id") ' + + 'ON UPDATE CASCADE ' + + 'ON DELETE CASCADE\n' + + ')', + }, + { + name: 'teams', + sql: + 'CREATE TABLE "teams" (\n' + + '\t"id"\tINTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n' + + '\t"uuid"\tvarchar(36) NOT NULL UNIQUE,\n' + + '\t"name"\tvarchar(100) DEFAULT NULL,\n' + + '\t"description"\ttext,\n' + + '\t"credits"\tinteger,\n' + + '\t"created_at"\tdatetime,\n' + + '\t"activated_at"\tdate\n' + + ')', + }, + ]); + }); + + it('returns information for specific table', async () => { + expect(await inspector.tableInfo('teams')).to.deep.equal({ name: 'teams', sql: 'CREATE TABLE "teams" (\n' + @@ -69,349 +87,438 @@ describe('sqlite', () => { '\t"created_at"\tdatetime,\n' + '\t"activated_at"\tdate\n' + ')', - }, - ]); + }); + }); }); - it('returns information for specific table', async () => { - expect(await inspector.tableInfo('teams')).to.deep.equal({ - name: 'teams', - sql: - 'CREATE TABLE "teams" (\n' + - '\t"id"\tINTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n' + - '\t"uuid"\tvarchar(36) NOT NULL UNIQUE,\n' + - '\t"name"\tvarchar(100) DEFAULT NULL,\n' + - '\t"description"\ttext,\n' + - '\t"credits"\tinteger,\n' + - '\t"created_at"\tdatetime,\n' + - '\t"activated_at"\tdate\n' + - ')', + describe('.hasTable', () => { + it('returns if table exists or not', async () => { + expect(await inspector.hasTable('teams')).to.equal(true); + expect(await inspector.hasTable('foobar')).to.equal(false); }); }); - }); - describe('.hasTable', () => { - it('returns if table exists or not', async () => { - expect(await inspector.hasTable('teams')).to.equal(true); - expect(await inspector.hasTable('foobar')).to.equal(false); - }); - }); + describe('.columns', () => { + it('returns information for all tables', async () => { + expect(await inspector.columns()).to.have.deep.members([ + { table: 'page_visits', column: 'request_path' }, + { table: 'page_visits', column: 'user_agent' }, + { table: 'page_visits', column: 'created_at' }, + { table: 'teams', column: 'id' }, + { table: 'teams', column: 'uuid' }, + { table: 'teams', column: 'name' }, + { table: 'teams', column: 'description' }, + { table: 'teams', column: 'credits' }, + { table: 'teams', column: 'created_at' }, + { table: 'teams', column: 'activated_at' }, + { table: 'users', column: 'id' }, + { table: 'users', column: 'team_id' }, + { table: 'users', column: 'email' }, + { table: 'users', column: 'password' }, + { table: 'users', column: 'status' }, + ]); + }); - describe('.columns', () => { - it('returns information for all tables', async () => { - expect(await inspector.columns()).to.have.deep.members([ - { table: 'page_visits', column: 'request_path' }, - { table: 'page_visits', column: 'user_agent' }, - { table: 'page_visits', column: 'created_at' }, - { table: 'teams', column: 'id' }, - { table: 'teams', column: 'uuid' }, - { table: 'teams', column: 'name' }, - { table: 'teams', column: 'description' }, - { table: 'teams', column: 'credits' }, - { table: 'teams', column: 'created_at' }, - { table: 'teams', column: 'activated_at' }, - { table: 'users', column: 'id' }, - { table: 'users', column: 'team_id' }, - { table: 'users', column: 'email' }, - { table: 'users', column: 'password' }, - { table: 'users', column: 'status' }, - ]); + it('returns information for specific table', async () => { + expect(await inspector.columns('teams')).to.have.deep.members([ + { column: 'id', table: 'teams' }, + { column: 'uuid', table: 'teams' }, + { column: 'name', table: 'teams' }, + { column: 'description', table: 'teams' }, + { column: 'credits', table: 'teams' }, + { column: 'created_at', table: 'teams' }, + { column: 'activated_at', table: 'teams' }, + ]); + }); }); - it('returns information for specific table', async () => { - expect(await inspector.columns('teams')).to.have.deep.members([ - { column: 'id', table: 'teams' }, - { column: 'uuid', table: 'teams' }, - { column: 'name', table: 'teams' }, - { column: 'description', table: 'teams' }, - { column: 'credits', table: 'teams' }, - { column: 'created_at', table: 'teams' }, - { column: 'activated_at', table: 'teams' }, - ]); - }); - }); + describe('.columnInfo', () => { + it('returns information for all columns in all tables', async () => { + expect(await inspector.columnInfo()).to.have.deep.members([ + { + name: 'request_path', + table: 'page_visits', + data_type: 'varchar', + default_value: null, + max_length: 100, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'user_agent', + table: 'page_visits', + data_type: 'varchar', + default_value: null, + max_length: 200, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'created_at', + table: 'page_visits', + data_type: 'datetime', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'id', + table: 'teams', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: false, + is_primary_key: true, + has_auto_increment: true, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'uuid', + table: 'teams', + data_type: 'varchar', + default_value: null, + max_length: 36, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: true, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'name', + table: 'teams', + data_type: 'varchar', + default_value: null, + max_length: 100, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'description', + table: 'teams', + data_type: 'text', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'credits', + table: 'teams', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'created_at', + table: 'teams', + data_type: 'datetime', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'activated_at', + table: 'teams', + data_type: 'date', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'id', + table: 'users', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: false, + is_primary_key: true, + has_auto_increment: true, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'team_id', + table: 'users', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: 'id', + foreign_key_table: 'teams', + }, + { + name: 'email', + table: 'users', + data_type: 'varchar', + default_value: null, + max_length: 100, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'password', + table: 'users', + data_type: 'varchar', + default_value: null, + max_length: 60, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'status', + table: 'users', + data_type: 'varchar', + default_value: 'active', + max_length: 60, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + ]); + }); - describe('.columnInfo', () => { - it('returns information for all columns in all tables', async () => { - expect(await inspector.columnInfo()).to.have.deep.members([ - { - name: 'request_path', - table: 'page_visits', - data_type: 'varchar', - default_value: null, - max_length: 100, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'user_agent', - table: 'page_visits', - data_type: 'varchar', - default_value: null, - max_length: 200, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'created_at', - table: 'page_visits', - data_type: 'datetime', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'id', - table: 'teams', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: false, - is_primary_key: true, - has_auto_increment: true, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'uuid', - table: 'teams', - data_type: 'varchar', - default_value: null, - max_length: 36, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: true, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'name', - table: 'teams', - data_type: 'varchar', - default_value: null, - max_length: 100, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'description', - table: 'teams', - data_type: 'text', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'credits', - table: 'teams', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'created_at', - table: 'teams', - data_type: 'datetime', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'activated_at', - table: 'teams', - data_type: 'date', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'id', - table: 'users', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: false, - is_primary_key: true, - has_auto_increment: true, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'team_id', - table: 'users', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: 'id', - foreign_key_table: 'teams', - }, - { - name: 'email', - table: 'users', - data_type: 'varchar', - default_value: null, - max_length: 100, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'password', - table: 'users', - data_type: 'varchar', - default_value: null, - max_length: 60, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'status', - table: 'users', - data_type: 'varchar', - default_value: 'active', - max_length: 60, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - ]); - }); + it('returns information for all columns in specific table', async () => { + expect(await inspector.columnInfo('teams')).to.have.deep.members([ + { + name: 'id', + table: 'teams', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: false, + is_primary_key: true, + has_auto_increment: true, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'uuid', + table: 'teams', + data_type: 'varchar', + default_value: null, + max_length: 36, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: false, + is_unique: true, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'name', + table: 'teams', + data_type: 'varchar', + default_value: null, + max_length: 100, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'description', + table: 'teams', + data_type: 'text', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'credits', + table: 'teams', + data_type: 'integer', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'created_at', + table: 'teams', + data_type: 'datetime', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + { + name: 'activated_at', + table: 'teams', + data_type: 'date', + default_value: null, + max_length: null, + numeric_precision: null, + numeric_scale: null, + is_generated: false, + generation_expression: null, + is_nullable: true, + is_unique: false, + is_primary_key: false, + has_auto_increment: false, + foreign_key_column: null, + foreign_key_table: null, + }, + ]); + }); - it('returns information for all columns in specific table', async () => { - expect(await inspector.columnInfo('teams')).to.have.deep.members([ - { - name: 'id', - table: 'teams', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: false, - is_primary_key: true, - has_auto_increment: true, - foreign_key_column: null, - foreign_key_table: null, - }, - { + it('returns information for a specific column in a specific table', async () => { + expect(await inspector.columnInfo('teams', 'uuid')).to.deep.equal({ name: 'uuid', table: 'teams', data_type: 'varchar', @@ -427,140 +534,35 @@ describe('sqlite', () => { has_auto_increment: false, foreign_key_column: null, foreign_key_table: null, - }, - { - name: 'name', - table: 'teams', - data_type: 'varchar', - default_value: null, - max_length: 100, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'description', - table: 'teams', - data_type: 'text', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'credits', - table: 'teams', - data_type: 'integer', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'created_at', - table: 'teams', - data_type: 'datetime', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - { - name: 'activated_at', - table: 'teams', - data_type: 'date', - default_value: null, - max_length: null, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: true, - is_unique: false, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, - }, - ]); - }); - - it('returns information for a specific column in a specific table', async () => { - expect(await inspector.columnInfo('teams', 'uuid')).to.deep.equal({ - name: 'uuid', - table: 'teams', - data_type: 'varchar', - default_value: null, - max_length: 36, - numeric_precision: null, - numeric_scale: null, - is_generated: false, - generation_expression: null, - is_nullable: false, - is_unique: true, - is_primary_key: false, - has_auto_increment: false, - foreign_key_column: null, - foreign_key_table: null, + }); }); }); - }); - describe('.primary', () => { - it('returns primary key for a table', async () => { - expect(await inspector.primary('teams')).to.equal('id'); - expect(await inspector.primary('page_visits')).to.equal(null); + describe('.primary', () => { + it('returns primary key for a table', async () => { + expect(await inspector.primary('teams')).to.equal('id'); + expect(await inspector.primary('page_visits')).to.equal(null); + }); }); - }); - describe('.foreignKeys', () => { - it('returns foreign keys for all tables', async () => { - expect(await inspector.foreignKeys()).to.deep.equal([ - { - table: 'users', - column: 'team_id', - foreign_key_table: 'teams', - foreign_key_column: 'id', - constraint_name: null, - on_delete: 'CASCADE', - on_update: 'CASCADE', - }, - ]); - }); + describe('.foreignKeys', () => { + it('returns foreign keys for all tables', async () => { + expect(await inspector.foreignKeys()).to.deep.equal([ + { + table: 'users', + column: 'team_id', + foreign_key_table: 'teams', + foreign_key_column: 'id', + constraint_name: null, + on_delete: 'CASCADE', + on_update: 'CASCADE', + }, + ]); + }); - it('filters based on table param', async () => { - expect(await inspector.foreignKeys('teams')).to.deep.equal([]); + it('filters based on table param', async () => { + expect(await inspector.foreignKeys('teams')).to.deep.equal([]); + }); }); }); -}); +}