{"_id":"@aidenlx/knex","name":"@aidenlx/knex","dist-tags":{"latest":"2.3.0-mod.1"},"versions":{"2.3.0-mod.1":{"name":"@aidenlx/knex","version":"2.3.0-mod.1","description":"A batteries-included SQL query & schema builder for PostgresSQL, MySQL, CockroachDB, MSSQL and SQLite3","main":"knex","types":"types/index.d.ts","engines":{"node":">=12"},"scripts":{"build":"npm run build:gitignore && npm run build:ts","clean":"node scripts/clean.js","build:ts":"tsc","build:gitignore":"node scripts/update_gitignore_for_tsc_output.js run","format":"prettier --write \"{lib,bin,scripts,test}/**/*.js\"","debug:test":"mocha --inspect-brk --exit -t 0 test/all-tests-suite.js","debug:tape":"node --inspect-brk test/tape/index.js","coveralls":"nyc report --reporter=lcov","lint":"eslint \"lib/**/*.js\" \"test/**/*.js\"","lint:types":"tsd && dtslint types","lint:everything":"npm run lint:types && npm run lint","test:unit":"npm run test:unit-only && npm run test:cli","test:unit-only":"mocha --exit -t 10000 --config test/mocha-unit-config-test.js","test:db":"mocha --exit -t 10000 --config test/mocha-integration-config-test.js","test:db:coverage":"nyc mocha --exit --check-leaks -t 10000 --config test/mocha-integration-config-test.js && npm run test:tape","test:db:no-oracle":"cross-env DB=\"mssql mysql mysql2 postgres sqlite3\" mocha --exit -t 10000 --config test/mocha-integration-config-test.js && npm run test:tape","test":"mocha --exit -t 10000 --config test/mocha-all-config-test.js && npm run test:tape && npm run test:cli","test:coverage":"nyc mocha --exit --check-leaks -t 10000 --config test/mocha-all-config-test.js && npm run test:tape && npm run test:cli","test:everything":"npm run lint:everything && npm run test:coverage","test:mssql":"cross-env DB=mssql npm run test:db","test:mysql":"cross-env DB=mysql npm run test:db","test:mysql2":"cross-env DB=mysql2 npm run test:db","test:oracledb":"cross-env DB=oracledb npm run test:db","test:sqlite":"cross-env DB=sqlite3 npm run test:db","test:better-sqlite3":"cross-env DB=better-sqlite3 npm run test:db","test:postgres":"cross-env DB=postgres npm run test:db","test:cockroachdb":"cross-env DB=cockroachdb npm run test:db","test:pgnative":"cross-env DB=pgnative npm run test:db","test:tape":"node test/tape/index.js | tap-spec","test:cli":"cross-env KNEX_PATH=../knex.js KNEX=bin/cli.js jake -f test/jake/Jakefile","db:start":"docker-compose -f scripts/docker-compose.yml up --build -d mysql oracledb postgres mssql cockroachdb pgnative && docker-compose -f scripts/docker-compose.yml up waitmssql waitmysql waitpostgres waitoracledb","db:start:no-oracle":"docker-compose -f scripts/docker-compose.yml up --build -d mysql postgres mssql cockroachdb pgnative && docker-compose -f scripts/docker-compose.yml up waitmssql waitmysql waitpostgres","db:stop":"docker-compose -f scripts/docker-compose.yml down","db:start:postgres":"docker-compose -f scripts/docker-compose.yml up --build -d postgres && docker-compose -f scripts/docker-compose.yml up waitpostgres","db:stop:postgres":"docker-compose -f scripts/docker-compose.yml down","db:start:pgnative":"docker-compose -f scripts/docker-compose.yml up --build -d pgnative && docker-compose -f scripts/docker-compose.yml up waitpgnative","db:stop:pgnative":"docker-compose -f scripts/docker-compose.yml down","db:start:mysql":"docker-compose -f scripts/docker-compose.yml up --build -d mysql && docker-compose -f scripts/docker-compose.yml up waitmysql","db:stop:mysql":"docker-compose -f scripts/docker-compose.yml down","db:start:mssql":"docker-compose -f scripts/docker-compose.yml up --build -d mssql && docker-compose -f scripts/docker-compose.yml up waitmssql","db:stop:mssql":"docker-compose -f scripts/docker-compose.yml down","db:start:cockroachdb":"docker-compose -f scripts/docker-compose.yml up --build -d cockroachdb && docker-compose -f scripts/docker-compose.yml up waitcockroachdb","db:stop:cockroachdb":"docker-compose -f scripts/docker-compose.yml down","db:start:oracle":"docker-compose -f scripts/docker-compose.yml up --build -d oracledb && docker-compose -f scripts/docker-compose.yml up waitoracledb","db:stop:oracle":"docker-compose -f scripts/docker-compose.yml down","stress:init":"docker-compose -f scripts/stress-test/docker-compose.yml up --no-start && docker-compose -f scripts/stress-test/docker-compose.yml start","stress:test":"node scripts/stress-test/knex-stress-test.js | grep -A 5 -B 60 -- '- STATS '","stress:destroy":"docker-compose -f scripts/stress-test/docker-compose.yml stop","prepare":"husky install && npm run clean && npm run build","prepublishOnly":"npm run clean && npm run build"},"dependencies":{"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"},"peerDependenciesMeta":{"tedious":{"optional":true},"mysql":{"optional":true},"mysql2":{"optional":true},"pg":{"optional":true},"pg-native":{"optional":true},"sqlite3":{"optional":true},"@aidenlx/better-sqlite3":{"optional":true}},"lint-staged":{"*.{js,json}":["prettier --write"]},"devDependencies":{"@tsconfig/recommended":"^1.0.1","@types/node":"^18.7.14","@aidenlx/better-sqlite3":">=7.6.2-mod <7.6.2-mod0","chai":"^4.3.6","chai-as-promised":"^7.1.1","chai-subset-in-order":"^3.1.0","cli-testlab":"^2.2.0","coveralls":"^3.1.1","cross-env":"^7.0.3","dtslint":"4.2.1","eslint":"^8.13.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-mocha-no-only":"^1.1.1","husky":"^8.0.1","jake":"^10.8.5","JSONStream":"^1.3.5","lint-staged":"^13.0.0","mocha":"^10.0.0","mock-fs":"^5.1.4","mysql":"^2.18.1","mysql2":"^2.3.3","nyc":"^15.1.0","oracledb":"^5.4.0","pg":"^8.8.0","pg-query-stream":"^4.2.4","prettier":"2.6.2","rimraf":"^3.0.2","sinon":"^14.0.0","sinon-chai":"^3.7.0","source-map-support":"^0.5.21","sqlite3":"^5.0.11","tap-spec":"^5.0.0","tape":"^5.6.0","tedious":"^14.4.0","toxiproxy-node-client":"^2.0.6","ts-node":"^10.9.1","tsd":"^0.23.0","typescript":"4.8.3"},"buildDependencies":["rimraf"],"bin":{"knex":"bin/cli.js"},"repository":{"type":"git","url":"git://github.com/knex/knex.git"},"homepage":"https://knex.github.io/documentation/","keywords":["sql","query","postgresql","postgres","mysql","cockroachdb","sqlite3","oracle","mssql","builder","querybuilder","build","db","database"],"author":{"name":"Tim Griesser","url":"https://github.com/tgriesser"},"contributors":[{"name":"Mikael Lepisto"},{"name":"Igor Savin","url":"https://www.codeflashbacks.com"},{"name":"Olivier Cavadenti"},{"name":"Simon Liden"},{"name":"Paul Gaurab","url":"https://lorefnon.tech"},{"name":"Brian Lauber","url":"https://briandamaged.org"}],"browser":{"./lib/migrations/migrate/Migrator.js":"./lib/util/noop.js","./lib/bin/cli.js":"./lib/util/noop.js","./lib/migrations/seed/Seeder.js":"./lib/util/noop.js","tedious":false,"mysql":false,"mysql2":false,"pg":false,"pg-native":false,"pg-query-stream":false,"oracle":false,"sqlite3":false,"@aidenlx/better-sqlite3":false,"oracledb":false},"react-native":{"./lib/migrate":"./lib/util/noop.js","./lib/seed":"./lib/util/noop.js"},"license":"MIT","tonicExampleFilename":"scripts/runkit-example.js","nyc":{"check-coverage":true,"lines":84,"statements":82,"functions":83,"branches":69,"extension":[".js"],"exclude":["lib/dialects/oracle","lib/dialects/oracledb"]},"tsd":{"directory":"test-tsd","compilerOptions":{"esModuleInterop":false,"module":"commonjs","target":"ES2017"}},"gitHead":"9c35df939018740d5d78fb6a6fbc56cee2d0264c","bugs":{"url":"https://github.com/knex/knex/issues"},"_id":"@aidenlx/knex@2.3.0-mod.1","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-dsHRGsHjkt32j+fkvVR6MANYpBkklrZ6/07/lCQsZsp9fLqo9kBN+TKkBNqxjuGPB+0IZ2CQUs3mEyV8JX9lyA==","shasum":"7ef2c546c82371e8d648cd1d382678718a1e523e","tarball":"https://registry.npmjs.org/@aidenlx/knex/-/knex-2.3.0-mod.1.tgz","fileCount":128,"unpackedSize":630443,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBsLa82110uczLqkkDkMwlFmlZLihbDL+KZCriU6TF5gIhALLRnG2f80ibca7ToWWcdcUtZnCITCttTAVjtI/BowUk"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKbqIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjTRAAk5R3ZOyYUGVQjSCxYbovi7YGpfa7romG9dD6QNOom/j9Noul\r\nX9BQ6jdFdDPB5Ih/7pmoOEFMWlWfN6Bh2MES9lIidq7x6KLtMw6BTQQ5Wo88\r\noZc5h8KsX9N35TFfC6m+87RBmEREA8u61j4xDYcP7Wcp2kvoaWfNr378OwYd\r\nncb8SmMYyOYAt9LJ3D9tSNFtzqn38/8/GFXCh3HyUvkVOrjyXbiQOFeLrxJ8\r\nxMcYPTck9R7Y9WO+jDLOGZjvonZdYXy9XcBH10yygUK/AdGeILjiskafBl/S\r\nIyuoextX0eSoH6ebFHCnk18KmImV/5U3q8NRlLY7Luxzgr947nkss2jA+r1D\r\nNz/DeaERA4kk8nqseZ7iCNAzZrQC9SbZFqvPPT9RvFlUVwZX0nkixRITWTPn\r\n4AxG6qFxjaH0YurIAAjbQRLLE1V+CkZvE95nSoMsP126h5KcoCh07TC4p1gZ\r\nDbTZrJP1CH3YpZow0HO27RRiwrn4Gx8+SsSQGfihVh/EAZYcBamz8DFH1z3f\r\naX7G37TLwKIrRiLCcbTzth2VG7vdIJ35ct2wlHf3Hv5sx8bqnxkHrw+zy31R\r\nfyGj7ubsis6JNU7eV2CSzUAajm0vmMWb02MUywL3x1oZyig1msDolW1Tk6GJ\r\nj1EIbmEgNVfTIN2dHOAWJjEVQFC+w7cExJU=\r\n=44Gp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aidenlx","email":"aiden.lx@outlook.com"},"directories":{},"maintainers":[{"name":"aidenlx","email":"aiden.lx@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/knex_2.3.0-mod.1_1663679112497_0.27446384681063063"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-20T13:05:12.429Z","2.3.0-mod.1":"2022-09-20T13:05:12.772Z","modified":"2022-09-20T13:05:12.933Z"},"maintainers":[{"name":"aidenlx","email":"aiden.lx@outlook.com"}],"description":"A batteries-included SQL query & schema builder for PostgresSQL, MySQL, CockroachDB, MSSQL and SQLite3","homepage":"https://knex.github.io/documentation/","keywords":["sql","query","postgresql","postgres","mysql","cockroachdb","sqlite3","oracle","mssql","builder","querybuilder","build","db","database"],"repository":{"type":"git","url":"git://github.com/knex/knex.git"},"contributors":[{"name":"Mikael Lepisto"},{"name":"Igor Savin","url":"https://www.codeflashbacks.com"},{"name":"Olivier Cavadenti"},{"name":"Simon Liden"},{"name":"Paul Gaurab","url":"https://lorefnon.tech"},{"name":"Brian Lauber","url":"https://briandamaged.org"}],"author":{"name":"Tim Griesser","url":"https://github.com/tgriesser"},"bugs":{"url":"https://github.com/knex/knex/issues"},"license":"MIT","readme":"# [knex.js](https://knex.github.io/documentation/)\n\n[![npm version](http://img.shields.io/npm/v/knex.svg)](https://npmjs.org/package/knex)\n[![npm downloads](https://img.shields.io/npm/dm/knex.svg)](https://npmjs.org/package/knex)\n![](https://github.com/knex/knex/workflows/CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/knex/knex/badge.svg?branch=master)](https://coveralls.io/r/knex/knex?branch=master)\n[![Dependencies Status](https://img.shields.io/librariesio/github/knex/knex)](https://libraries.io/npm/knex)\n[![Gitter chat](https://badges.gitter.im/tgriesser/knex.svg)](https://gitter.im/tgriesser/knex)\n[![Language Grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/knex/knex.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/knex/knex/context:javascript)\n\n> **A SQL query builder that is _flexible_, _portable_, and _fun_ to use!**\n\nA batteries-included, multi-dialect (PostgreSQL, MySQL, CockroachDB, MSSQL, SQLite3, Oracle (including Oracle Wallet Authentication)) query builder for\nNode.js, featuring:\n\n- [transactions](https://knex.github.io/documentation/#Transactions)\n- [connection pooling](https://knex.github.io/documentation/#Installation-pooling)\n- [streaming queries](https://knex.github.io/documentation/#Interfaces-Streams)\n- both a [promise](https://knex.github.io/documentation/#Interfaces-Promises) and [callback](https://knex.github.io/documentation/#Interfaces-Callbacks) API\n- a [thorough test suite](https://github.com/knex/knex/actions)\n\nNode.js versions 12+ are supported.\n\n* Take a look at the [full documentation](https://knex.github.io/documentation) to get started!\n* Browse the [list of plugins and tools](https://github.com/knex/knex/blob/master/ECOSYSTEM.md) built for knex\n* Check out our [recipes wiki](https://github.com/knex/knex/wiki/Recipes) to search for solutions to some specific problems  \n* In case of upgrading from an older version, see [migration guide](https://github.com/knex/knex/blob/master/UPGRADING.md)\n\nYou can report bugs and discuss features on the [GitHub issues page](https://github.com/knex/knex/issues) or send tweets to [@kibertoad](http://twitter.com/kibertoad).\n\n\nFor support and questions, join our [Gitter channel](https://gitter.im/tgriesser/knex).\n\nFor knex-based Object Relational Mapper, see:\n\n- https://github.com/Vincit/objection.js\n- https://github.com/mikro-orm/mikro-orm\n- https://bookshelfjs.org\n\nTo see the SQL that Knex will generate for a given query, you can use [Knex Query Lab](https://michaelavila.com/knex-querylab/)\n\n## Examples\n\nWe have several examples [on the website](http://knexjs.org). Here is the first one to get you started:\n\n```js\nconst knex = require('knex')({\n  client: 'sqlite3',\n  connection: {\n    filename: './data.db',\n  },\n});\n\ntry {\n\n  // Create a table\n  await knex.schema\n    .createTable('users', table => {\n      table.increments('id');\n      table.string('user_name');\n    })\n    // ...and another\n    .createTable('accounts', table => {\n      table.increments('id');\n      table.string('account_name');\n      table\n        .integer('user_id')\n        .unsigned()\n        .references('users.id');\n    })\n\n  // Then query the table...\n  const insertedRows = await knex('users').insert({ user_name: 'Tim' })\n\n  // ...and using the insert id, insert into the other table.\n  await knex('accounts').insert({ account_name: 'knex', user_id: insertedRows[0] })\n\n  // Query both of the rows.\n  const selectedRows = await knex('users')\n    .join('accounts', 'users.id', 'accounts.user_id')\n    .select('users.user_name as user', 'accounts.account_name as account')\n\n  // map over the results\n  const enrichedRows = selectedRows.map(row => ({ ...row, active: true }))\n\n  // Finally, add a catch statement\n} catch(e) {\n  console.error(e);\n};\n```\n\n## TypeScript example\n```ts\nimport { Knex, knex } from 'knex'\n\ninterface User {\n  id: number;\n  age: number;\n  name: string;\n  active: boolean;\n  departmentId: number;\n}\n\nconst config: Knex.Config = {\n  client: 'sqlite3',\n  connection: {\n    filename: './data.db',\n  },\n};\n\nconst knexInstance = knex(config);\n\ntry {\n  const users = await knex<User>('users').select('id', 'age');\n} catch (err) {\n  // error handling\n}\n```\n\n## Usage as ESM module\n\nIf you are launching your Node application with `--experimental-modules`, `knex.mjs` should be picked up automatically and named ESM import should work out-of-the-box.\nOtherwise, if you want to use named imports, you'll have to import knex like this:\n```js\nimport { knex } from 'knex/knex.mjs'\n```\n\nYou can also just do the default import:\n```js\nimport knex from 'knex'\n```\n\nIf you are not using TypeScript and would like the IntelliSense of your IDE to work correctly, it is recommended to set the type explicitly:\n```js\n/**\n * @type {Knex}\n */\nconst database = knex({\n    client: 'mysql',\n    connection: {\n      host : '127.0.0.1',\n      user : 'your_database_user',\n      password : 'your_database_password',\n      database : 'myapp_test'\n    }\n  });\ndatabase.migrate.latest();\n```\n","readmeFilename":"README.md"}