From 7616988312ccda896009cf28256fa8c0d4b314ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Mar 2021 08:03:35 +0000 Subject: [PATCH] chore(deps): bump knex from 0.21.18 to 0.95.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [knex](https://github.com/knex/knex) from 0.21.18 to 0.95.1. - [Release notes](https://github.com/knex/knex/releases) - [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md) - [Commits](https://github.com/knex/knex/commits) Signed-off-by: dependabot[bot] Signed-off-by: Fredrik Adelöw --- .changeset/nasty-garlics-explain.md | 18 ++ .changeset/old-laws-begin.md | 8 + packages/backend-common/package.json | 2 +- .../src/database/SingleConnection.ts | 2 +- .../backend-common/src/database/connection.ts | 6 +- .../backend-common/src/database/postgres.ts | 10 +- .../backend-common/src/database/sqlite3.ts | 8 +- packages/backend-common/src/database/types.ts | 4 +- packages/backend/package.json | 2 +- .../migrations/20200619125845_init.js | 4 +- plugins/auth-backend/package.json | 2 +- .../src/identity/DatabaseKeyStore.ts | 4 +- .../migrations/20200511113813_init.js | 4 +- ...0200520140700_location_update_log_table.js | 4 +- ...7114117_location_update_log_latest_view.js | 6 +- .../migrations/20200702153613_entities.js | 4 +- ..._location_update_log_latest_deduplicate.js | 11 +- ...904_location_update_log_duplication_fix.js | 4 +- .../migrations/20200807120600_entitySearch.js | 4 +- .../20200809202832_add_bootstrap_location.js | 4 +- .../20200923104503_case_insensitivity.js | 2 +- .../20201005122705_add_entity_full_name.js | 4 +- .../20201006130744_entity_data_column.js | 14 +- ...6203131_entity_remove_redundant_columns.js | 14 +- .../20201007201501_index_entity_search.js | 4 +- .../20201019130742_add_relations_table.js | 4 +- .../20201123205611_relations_table_uniq.js | 4 +- .../migrations/20201210185851_fk_index.js | 4 +- .../20201230103504_update_log_varchar.js | 4 +- .../20210209121210_locations_fk_index.js | 4 +- plugins/catalog-backend/package.json | 2 +- .../src/database/CommonDatabase.ts | 24 +-- .../src/database/DatabaseManager.ts | 10 +- plugins/catalog-backend/src/database/types.ts | 2 +- .../src/service/CatalogBuilder.test.ts | 2 +- .../migrations/20210120143715_init.js | 4 +- plugins/scaffolder-backend/package.json | 2 +- .../src/scaffolder/tasks/DatabaseTaskStore.ts | 2 +- plugins/techdocs-backend/package.json | 2 +- .../techdocs-backend/src/service/router.ts | 2 +- yarn.lock | 197 ++++-------------- 41 files changed, 160 insertions(+), 258 deletions(-) create mode 100644 .changeset/nasty-garlics-explain.md create mode 100644 .changeset/old-laws-begin.md diff --git a/.changeset/nasty-garlics-explain.md b/.changeset/nasty-garlics-explain.md new file mode 100644 index 0000000000000..815bda91aee89 --- /dev/null +++ b/.changeset/nasty-garlics-explain.md @@ -0,0 +1,18 @@ +--- +'@backstage/backend-common': patch +--- + +Bump to the latest version of the Knex library. + +You will most likely want to bump your own `packages/backend/package.json` as well: + +```diff +- "knex": "^0.21.18", ++ "knex": "^0.95.1", +``` + +Note that the recent versions of the Knex library have some changes that may affect your internal plugins' database migration files. Importantly, they now support `ALTER TABLE` on SQLite, and no longer accidentally remove indices when making some modifications. It now also exports the `Knex` typescript type as a named export. + +```ts +import { Knex } from 'knex'; +``` diff --git a/.changeset/old-laws-begin.md b/.changeset/old-laws-begin.md new file mode 100644 index 0000000000000..42a31105e1e80 --- /dev/null +++ b/.changeset/old-laws-begin.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-auth-backend': patch +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-techdocs-backend': patch +--- + +Bump to the latest version of the Knex library. diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index a6dc9010d5c35..af6aa508c5760 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -47,7 +47,7 @@ "git-url-parse": "^11.4.4", "helmet": "^4.0.0", "isomorphic-git": "^1.8.0", - "knex": "^0.21.6", + "knex": "^0.95.1", "lodash": "^4.17.15", "logform": "^2.1.1", "minimatch": "^3.0.4", diff --git a/packages/backend-common/src/database/SingleConnection.ts b/packages/backend-common/src/database/SingleConnection.ts index 777ced54a05f2..1c5931a662351 100644 --- a/packages/backend-common/src/database/SingleConnection.ts +++ b/packages/backend-common/src/database/SingleConnection.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import Knex from 'knex'; +import { Knex } from 'knex'; import { Config } from '@backstage/config'; import { createDatabaseClient, ensureDatabaseExists } from './connection'; import { PluginDatabaseManager } from './types'; diff --git a/packages/backend-common/src/database/connection.ts b/packages/backend-common/src/database/connection.ts index 4cd8606fc0604..17ef2c461dea2 100644 --- a/packages/backend-common/src/database/connection.ts +++ b/packages/backend-common/src/database/connection.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import knex from 'knex'; +import knexFactory, { Knex } from 'knex'; import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; import { createPgDatabaseClient, ensurePgDatabaseExists } from './postgres'; @@ -30,7 +30,7 @@ type DatabaseClient = 'pg' | 'sqlite3' | string; */ export function createDatabaseClient( dbConfig: Config, - overrides?: Partial, + overrides?: Partial, ) { const client: DatabaseClient = dbConfig.getString('client'); @@ -40,7 +40,7 @@ export function createDatabaseClient( return createSqliteDatabaseClient(dbConfig); } - return knex(mergeDatabaseConfig(dbConfig.get(), overrides)); + return knexFactory(mergeDatabaseConfig(dbConfig.get(), overrides)); } /** diff --git a/packages/backend-common/src/database/postgres.ts b/packages/backend-common/src/database/postgres.ts index 04bd3615b64e7..e05eab86e5fcc 100644 --- a/packages/backend-common/src/database/postgres.ts +++ b/packages/backend-common/src/database/postgres.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import knex, { PgConnectionConfig } from 'knex'; +import knexFactory, { Knex } from 'knex'; import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; @@ -26,10 +26,10 @@ import { mergeDatabaseConfig } from './config'; */ export function createPgDatabaseClient( dbConfig: Config, - overrides?: knex.Config, + overrides?: Knex.Config, ) { const knexConfig = buildPgDatabaseConfig(dbConfig, overrides); - const database = knex(knexConfig); + const database = knexFactory(knexConfig); return database; } @@ -41,7 +41,7 @@ export function createPgDatabaseClient( */ export function buildPgDatabaseConfig( dbConfig: Config, - overrides?: knex.Config, + overrides?: Knex.Config, ) { return mergeDatabaseConfig( dbConfig.get(), @@ -62,7 +62,7 @@ export function buildPgDatabaseConfig( export function getPgConnectionConfig( dbConfig: Config, parseConnectionString?: boolean, -): PgConnectionConfig | string { +): Knex.PgConnectionConfig | string { const connection = dbConfig.get('connection') as any; const isConnectionString = typeof connection === 'string' || connection instanceof String; diff --git a/packages/backend-common/src/database/sqlite3.ts b/packages/backend-common/src/database/sqlite3.ts index 7bdc4380a1024..f5742c68a0a2c 100644 --- a/packages/backend-common/src/database/sqlite3.ts +++ b/packages/backend-common/src/database/sqlite3.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import knex from 'knex'; +import knexFactory, { Knex } from 'knex'; import { Config } from '@backstage/config'; import { mergeDatabaseConfig } from './config'; @@ -26,10 +26,10 @@ import { mergeDatabaseConfig } from './config'; */ export function createSqliteDatabaseClient( dbConfig: Config, - overrides?: knex.Config, + overrides?: Knex.Config, ) { const knexConfig = buildSqliteDatabaseConfig(dbConfig, overrides); - const database = knex(knexConfig); + const database = knexFactory(knexConfig); database.client.pool.on('createSuccess', (_eventId: any, resource: any) => { resource.run('PRAGMA foreign_keys = ON', () => {}); @@ -46,7 +46,7 @@ export function createSqliteDatabaseClient( */ export function buildSqliteDatabaseConfig( dbConfig: Config, - overrides?: knex.Config, + overrides?: Knex.Config, ) { return mergeDatabaseConfig( dbConfig.get(), diff --git a/packages/backend-common/src/database/types.ts b/packages/backend-common/src/database/types.ts index 7eaa05f17305b..bf3ceb27863d7 100644 --- a/packages/backend-common/src/database/types.ts +++ b/packages/backend-common/src/database/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import knex from 'knex'; +import { Knex } from 'knex'; /** * The PluginDatabaseManager manages access to databases that Plugins get. @@ -26,5 +26,5 @@ export interface PluginDatabaseManager { * The purpose of this method is to allow plugins to get isolated data * stores so that plugins are discouraged from database integration. */ - getClient(): Promise; + getClient(): Promise; } diff --git a/packages/backend/package.json b/packages/backend/package.json index 3df34aa4dcf2a..ed6978cf23992 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -48,7 +48,7 @@ "example-app": "^0.2.18", "express": "^4.17.1", "express-promise-router": "^3.0.3", - "knex": "^0.21.6", + "knex": "^0.95.1", "pg": "^8.3.0", "pg-connection-string": "^2.3.0", "sqlite3": "^5.0.0", diff --git a/plugins/auth-backend/migrations/20200619125845_init.js b/plugins/auth-backend/migrations/20200619125845_init.js index e31731b037451..4005edd4801ca 100644 --- a/plugins/auth-backend/migrations/20200619125845_init.js +++ b/plugins/auth-backend/migrations/20200619125845_init.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { return knex.schema.createTable('signing_keys', table => { @@ -39,7 +39,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { return knex.schema.dropTable('auth_keystore'); diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 5be148c984441..a5b52ecb7b145 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -48,7 +48,7 @@ "helmet": "^4.0.0", "jose": "^1.27.1", "jwt-decode": "^3.1.0", - "knex": "^0.21.6", + "knex": "^0.95.1", "luxon": "^1.25.0", "morgan": "^1.10.0", "node-cache": "^5.1.2", diff --git a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts index dd2941a3d57d4..362022839fa6c 100644 --- a/plugins/auth-backend/src/identity/DatabaseKeyStore.ts +++ b/plugins/auth-backend/src/identity/DatabaseKeyStore.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import Knex from 'knex'; import { resolvePackagePath } from '@backstage/backend-common'; -import { AnyJWK, KeyStore, StoredKey } from './types'; +import { Knex } from 'knex'; import { DateTime } from 'luxon'; +import { AnyJWK, KeyStore, StoredKey } from './types'; const migrationsDir = resolvePackagePath( '@backstage/plugin-auth-backend', diff --git a/plugins/catalog-backend/migrations/20200511113813_init.js b/plugins/catalog-backend/migrations/20200511113813_init.js index 0e4992b3298b7..7f3d75e35c29d 100644 --- a/plugins/catalog-backend/migrations/20200511113813_init.js +++ b/plugins/catalog-backend/migrations/20200511113813_init.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { return ( @@ -120,7 +120,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { return knex.schema diff --git a/plugins/catalog-backend/migrations/20200520140700_location_update_log_table.js b/plugins/catalog-backend/migrations/20200520140700_location_update_log_table.js index 163b38945ad78..d8093fc9b4b83 100644 --- a/plugins/catalog-backend/migrations/20200520140700_location_update_log_table.js +++ b/plugins/catalog-backend/migrations/20200520140700_location_update_log_table.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { return knex.schema.createTable('location_update_log', table => { @@ -36,7 +36,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { return knex.schema.dropTableIfExists('location_update_log'); diff --git a/plugins/catalog-backend/migrations/20200527114117_location_update_log_latest_view.js b/plugins/catalog-backend/migrations/20200527114117_location_update_log_latest_view.js index 083d0a38aa6dc..a0f0f33a655ad 100644 --- a/plugins/catalog-backend/migrations/20200527114117_location_update_log_latest_view.js +++ b/plugins/catalog-backend/migrations/20200527114117_location_update_log_latest_view.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { // Get list sorted by created_at timestamp in descending order @@ -25,7 +25,7 @@ exports.up = async function up(knex) { return knex.schema.raw(` CREATE VIEW location_update_log_latest AS SELECT t1.* FROM location_update_log t1 - JOIN + JOIN ( SELECT location_id, MAX(created_at) AS MAXDATE FROM location_update_log @@ -38,7 +38,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { return knex.schema.raw(`DROP VIEW location_update_log_latest;`); diff --git a/plugins/catalog-backend/migrations/20200702153613_entities.js b/plugins/catalog-backend/migrations/20200702153613_entities.js index 9acd7564dba28..0f1c204f9b769 100644 --- a/plugins/catalog-backend/migrations/20200702153613_entities.js +++ b/plugins/catalog-backend/migrations/20200702153613_entities.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { // SQLite does not support FK and PK @@ -126,7 +126,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { // SQLite does not support FK and PK diff --git a/plugins/catalog-backend/migrations/20200721115244_location_update_log_latest_deduplicate.js b/plugins/catalog-backend/migrations/20200721115244_location_update_log_latest_deduplicate.js index 9046f85da006a..87b41a80fcddc 100644 --- a/plugins/catalog-backend/migrations/20200721115244_location_update_log_latest_deduplicate.js +++ b/plugins/catalog-backend/migrations/20200721115244_location_update_log_latest_deduplicate.js @@ -13,11 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +// @ts-check + +/** + * @param {import('knex').Knex} knex + */ exports.up = function up(knex) { return knex.schema.raw(`DROP VIEW location_update_log_latest;`).raw(` CREATE VIEW location_update_log_latest AS SELECT t1.* FROM location_update_log t1 - JOIN + JOIN ( SELECT location_id, MAX(created_at) AS MAXDATE FROM location_update_log @@ -30,6 +36,9 @@ exports.up = function up(knex) { `); }; +/** + * @param {import('knex').Knex} knex + */ exports.down = function down(knex) { knex.schema.raw(`DROP VIEW location_update_log_latest;`); }; diff --git a/plugins/catalog-backend/migrations/20200805163904_location_update_log_duplication_fix.js b/plugins/catalog-backend/migrations/20200805163904_location_update_log_duplication_fix.js index 05c1658641cb0..de2b194cff0c4 100644 --- a/plugins/catalog-backend/migrations/20200805163904_location_update_log_duplication_fix.js +++ b/plugins/catalog-backend/migrations/20200805163904_location_update_log_duplication_fix.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = function up(knex) { return knex.schema @@ -52,7 +52,7 @@ exports.up = function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = function down(knex) { return knex.schema diff --git a/plugins/catalog-backend/migrations/20200807120600_entitySearch.js b/plugins/catalog-backend/migrations/20200807120600_entitySearch.js index b3a9673641cbe..45226e53b4332 100644 --- a/plugins/catalog-backend/migrations/20200807120600_entitySearch.js +++ b/plugins/catalog-backend/migrations/20200807120600_entitySearch.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { // Sqlite does not support alter column. @@ -29,7 +29,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { // Sqlite does not support alter column. diff --git a/plugins/catalog-backend/migrations/20200809202832_add_bootstrap_location.js b/plugins/catalog-backend/migrations/20200809202832_add_bootstrap_location.js index 379928493d50d..a90813fe857fd 100644 --- a/plugins/catalog-backend/migrations/20200809202832_add_bootstrap_location.js +++ b/plugins/catalog-backend/migrations/20200809202832_add_bootstrap_location.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { // Adds a single 'bootstrap' location that can be used to trigger work in processors. @@ -30,7 +30,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex('locations') diff --git a/plugins/catalog-backend/migrations/20200923104503_case_insensitivity.js b/plugins/catalog-backend/migrations/20200923104503_case_insensitivity.js index eeec950d7fe9c..ea5ba9e58d057 100644 --- a/plugins/catalog-backend/migrations/20200923104503_case_insensitivity.js +++ b/plugins/catalog-backend/migrations/20200923104503_case_insensitivity.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex('entities') diff --git a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js index 4c1ea76de4691..aae1861658c07 100644 --- a/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js +++ b/plugins/catalog-backend/migrations/20201005122705_add_entity_full_name.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.alterTable('entities', table => { @@ -45,7 +45,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex.schema.alterTable('entities', table => { diff --git a/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js b/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js index a326a08a8b9b1..a8964efbf6110 100644 --- a/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js +++ b/plugins/catalog-backend/migrations/20201006130744_entity_data_column.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.alterTable('entities', table => { @@ -46,20 +46,10 @@ exports.up = async function up(knex) { table.text('data').notNullable().alter(); }); } - - // NOTE(freben): For some reason, specifically sqlite3 in-mem just drops some - // subset of constraints sometimes, when a table column is dropped - even if - // the column had no relation at all to the constraint. We therefore recreate - // the constraint here as a stupid fix. - if (knex.client.config.client === 'sqlite3') { - await knex.schema.alterTable('entities', table => { - table.unique(['full_name'], 'entities_unique_full_name'); - }); - } }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex.schema.alterTable('entities', table => { diff --git a/plugins/catalog-backend/migrations/20201006203131_entity_remove_redundant_columns.js b/plugins/catalog-backend/migrations/20201006203131_entity_remove_redundant_columns.js index 7bacc67338e35..f40df5f73ee18 100644 --- a/plugins/catalog-backend/migrations/20201006203131_entity_remove_redundant_columns.js +++ b/plugins/catalog-backend/migrations/20201006203131_entity_remove_redundant_columns.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.alterTable('entities', table => { @@ -26,20 +26,10 @@ exports.up = async function up(knex) { table.dropColumn('name'); table.dropColumn('namespace'); }); - - // NOTE(freben): For some reason, specifically sqlite3 in-mem just drops some - // subset of constraints sometimes, when a table column is dropped - even if - // the column had no relation at all to the constraint. We therefore recreate - // the constraint here as a stupid fix. - if (knex.client.config.client === 'sqlite3') { - await knex.schema.alterTable('entities', table => { - table.unique(['full_name'], 'entities_unique_full_name'); - }); - } }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex.schema.alterTable('entities', table => { diff --git a/plugins/catalog-backend/migrations/20201007201501_index_entity_search.js b/plugins/catalog-backend/migrations/20201007201501_index_entity_search.js index b902073e641e6..77bf0529eb453 100644 --- a/plugins/catalog-backend/migrations/20201007201501_index_entity_search.js +++ b/plugins/catalog-backend/migrations/20201007201501_index_entity_search.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.alterTable('entities_search', table => { @@ -27,7 +27,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex.schema.alterTable('entities_search', table => { diff --git a/plugins/catalog-backend/migrations/20201019130742_add_relations_table.js b/plugins/catalog-backend/migrations/20201019130742_add_relations_table.js index 70150ff173dbc..85e729f814021 100644 --- a/plugins/catalog-backend/migrations/20201019130742_add_relations_table.js +++ b/plugins/catalog-backend/migrations/20201019130742_add_relations_table.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.createTable('entities_relations', table => { @@ -47,7 +47,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { await knex.schema.dropTable('entities_relations'); diff --git a/plugins/catalog-backend/migrations/20201123205611_relations_table_uniq.js b/plugins/catalog-backend/migrations/20201123205611_relations_table_uniq.js index a8cf62b4c4993..9e8198b5eb266 100644 --- a/plugins/catalog-backend/migrations/20201123205611_relations_table_uniq.js +++ b/plugins/catalog-backend/migrations/20201123205611_relations_table_uniq.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { if (knex.client.config.client === 'sqlite3') { @@ -55,7 +55,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { if (knex.client.config.client === 'sqlite3') { diff --git a/plugins/catalog-backend/migrations/20201210185851_fk_index.js b/plugins/catalog-backend/migrations/20201210185851_fk_index.js index acf90b0a272f3..abb26cd5fceef 100644 --- a/plugins/catalog-backend/migrations/20201210185851_fk_index.js +++ b/plugins/catalog-backend/migrations/20201210185851_fk_index.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { if (knex.client.config.client !== 'sqlite3') { @@ -31,7 +31,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { if (knex.client.config.client !== 'sqlite3') { diff --git a/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js b/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js index 71f9500cf2def..d924b0414a2aa 100644 --- a/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js +++ b/plugins/catalog-backend/migrations/20201230103504_update_log_varchar.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { if (knex.client.config.client !== 'sqlite3') { @@ -46,7 +46,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { if (knex.client.config.client !== 'sqlite3') { diff --git a/plugins/catalog-backend/migrations/20210209121210_locations_fk_index.js b/plugins/catalog-backend/migrations/20210209121210_locations_fk_index.js index 5591717c13d5d..ccfb1faffb1f5 100644 --- a/plugins/catalog-backend/migrations/20210209121210_locations_fk_index.js +++ b/plugins/catalog-backend/migrations/20210209121210_locations_fk_index.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { if (knex.client.config.client !== 'sqlite3') { @@ -31,7 +31,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { if (knex.client.config.client !== 'sqlite3') { diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 5ffc7896353d6..fff8d9eaff873 100644 --- a/plugins/catalog-backend/package.json +++ b/plugins/catalog-backend/package.json @@ -46,7 +46,7 @@ "fs-extra": "^9.0.0", "git-url-parse": "^11.4.4", "glob": "^7.1.6", - "knex": "^0.21.6", + "knex": "^0.95.1", "ldapjs": "^2.2.0", "lodash": "^4.17.15", "morgan": "^1.10.0", diff --git a/plugins/catalog-backend/src/database/CommonDatabase.ts b/plugins/catalog-backend/src/database/CommonDatabase.ts index 2edc0ca5b8f4a..cc83350019b6c 100644 --- a/plugins/catalog-backend/src/database/CommonDatabase.ts +++ b/plugins/catalog-backend/src/database/CommonDatabase.ts @@ -30,7 +30,7 @@ import { Location, parseEntityName, } from '@backstage/catalog-model'; -import Knex from 'knex'; +import { Knex } from 'knex'; import lodash from 'lodash'; import type { Logger } from 'winston'; import { buildEntitySearch } from './search'; @@ -99,7 +99,7 @@ export class CommonDatabase implements Database { txOpaque: Transaction, request: DbEntityRequest[], ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const result: DbEntityResponse[] = []; const entityRows: DbEntitiesRow[] = []; @@ -149,7 +149,7 @@ export class CommonDatabase implements Database { matchingEtag?: string, matchingGeneration?: number, ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const { uid } = request.entity.metadata; if (!uid) { @@ -213,7 +213,7 @@ export class CommonDatabase implements Database { txOpaque: Transaction, filter?: EntityFilter, ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; let entitiesQuery = tx('entities'); @@ -256,7 +256,7 @@ export class CommonDatabase implements Database { txOpaque: Transaction, name: EntityName, ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const rows = await tx('entities') .where({ @@ -275,7 +275,7 @@ export class CommonDatabase implements Database { txOpaque: Transaction, uid: string, ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const rows = await tx('entities') .where({ id: uid }) @@ -289,7 +289,7 @@ export class CommonDatabase implements Database { } async removeEntityByUid(txOpaque: Transaction, uid: string): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const result = await tx('entities').where({ id: uid }).del(); @@ -303,7 +303,7 @@ export class CommonDatabase implements Database { originatingEntityId: string, relations: EntityRelationSpec[], ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const relationRows = this.toRelationRows(originatingEntityId, relations); await tx('entities_relations') @@ -316,7 +316,7 @@ export class CommonDatabase implements Database { txOpaque: Transaction, location: Location, ): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const row: DbLocationsRow = { id: location.id, @@ -328,7 +328,7 @@ export class CommonDatabase implements Database { } async removeLocation(txOpaque: Transaction, id: string): Promise { - const tx = txOpaque as Knex.Transaction; + const tx = txOpaque as Knex.Transaction; const locations = await tx('locations') .where({ id }) @@ -467,7 +467,7 @@ export class CommonDatabase implements Database { } private async toEntityResponses( - tx: Knex.Transaction, + tx: Knex.Transaction, rows: DbEntitiesRow[], ): Promise { // TODO(Rugvip): This is here because it's simple for now, but we likely @@ -501,7 +501,7 @@ export class CommonDatabase implements Database { // Returns a mapping from e.g. component:default/foo to the relations whose // source_full_name matches that. private async getRelationsPerFullName( - tx: Knex.Transaction, + tx: Knex.Transaction, sourceFullNames: string[], ): Promise> { const batches = lodash.chunk(lodash.uniq(sourceFullNames), 500); diff --git a/plugins/catalog-backend/src/database/DatabaseManager.ts b/plugins/catalog-backend/src/database/DatabaseManager.ts index 465bf654f2787..106876af57d37 100644 --- a/plugins/catalog-backend/src/database/DatabaseManager.ts +++ b/plugins/catalog-backend/src/database/DatabaseManager.ts @@ -15,11 +15,11 @@ */ import { getVoidLogger, resolvePackagePath } from '@backstage/backend-common'; -import Knex from 'knex'; +import knexFactory, { Knex } from 'knex'; +import { v4 as uuidv4 } from 'uuid'; import { Logger } from 'winston'; import { CommonDatabase } from './CommonDatabase'; import { Database } from './types'; -import { v4 as uuidv4 } from 'uuid'; const migrationsDir = resolvePackagePath( '@backstage/plugin-catalog-backend', @@ -52,7 +52,7 @@ export class DatabaseManager { } public static async createInMemoryDatabaseConnection(): Promise { - const knex = Knex({ + const knex = knexFactory({ client: 'sqlite3', connection: ':memory:', useNullAsDefault: true, @@ -85,11 +85,11 @@ export class DatabaseManager { useNullAsDefault: true, }; - let knex = Knex(config); + let knex = knexFactory(config); if (typeof config.connection !== 'string') { const tempDbName = `d${uuidv4().replace(/-/g, '')}`; await knex.raw(`CREATE DATABASE ${tempDbName};`); - knex = Knex({ + knex = knexFactory({ ...config, connection: { ...config.connection, diff --git a/plugins/catalog-backend/src/database/types.ts b/plugins/catalog-backend/src/database/types.ts index 5a9f60853a4fc..ee2d4222c3624 100644 --- a/plugins/catalog-backend/src/database/types.ts +++ b/plugins/catalog-backend/src/database/types.ts @@ -115,7 +115,7 @@ export type EntityFilter = { * An abstraction for transactions of the underlying database technology. */ export type Transaction = { - rollback(): Promise; + rollback(): Promise; }; /** diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.test.ts b/plugins/catalog-backend/src/service/CatalogBuilder.test.ts index bc58338fce627..cdc01ba60efa2 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.test.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.test.ts @@ -17,7 +17,7 @@ import { getVoidLogger, UrlReader } from '@backstage/backend-common'; import { Entity } from '@backstage/catalog-model'; import { ConfigReader } from '@backstage/config'; -import Knex from 'knex'; +import { Knex } from 'knex'; import yaml from 'yaml'; import { DatabaseManager } from '../database'; import { CatalogProcessorParser } from '../ingestion'; diff --git a/plugins/scaffolder-backend/migrations/20210120143715_init.js b/plugins/scaffolder-backend/migrations/20210120143715_init.js index 5bde7a7c68026..433f8417d06cc 100644 --- a/plugins/scaffolder-backend/migrations/20210120143715_init.js +++ b/plugins/scaffolder-backend/migrations/20210120143715_init.js @@ -17,7 +17,7 @@ // @ts-check /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.up = async function up(knex) { await knex.schema.createTable('tasks', table => { @@ -72,7 +72,7 @@ exports.up = async function up(knex) { }; /** - * @param {import('knex')} knex + * @param {import('knex').Knex} knex */ exports.down = async function down(knex) { if (knex.client.config.client !== 'sqlite3') { diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index a3c48c6ef55f8..ff249c45681e3 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -55,7 +55,7 @@ "helmet": "^4.0.0", "isomorphic-git": "^1.8.0", "jsonschema": "^1.2.6", - "knex": "^0.21.6", + "knex": "^0.95.1", "luxon": "^1.26.0", "morgan": "^1.10.0", "uuid": "^8.2.0", diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts index d069008282920..f3d7766d862bc 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/DatabaseTaskStore.ts @@ -20,7 +20,7 @@ import { NotFoundError, resolvePackagePath, } from '@backstage/backend-common'; -import Knex from 'knex'; +import { Knex } from 'knex'; import { v4 as uuid } from 'uuid'; import { DbTaskEventRow, diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index f508f19787d43..bbf06cba0c6a3 100644 --- a/plugins/techdocs-backend/package.json +++ b/plugins/techdocs-backend/package.json @@ -41,7 +41,7 @@ "express": "^4.17.1", "express-promise-router": "^3.0.3", "fs-extra": "^9.0.1", - "knex": "^0.21.6", + "knex": "^0.95.1", "winston": "^3.2.1" }, "devDependencies": { diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts index b331d2170c4b7..834a3a78efc94 100644 --- a/plugins/techdocs-backend/src/service/router.ts +++ b/plugins/techdocs-backend/src/service/router.ts @@ -26,7 +26,7 @@ import fetch from 'cross-fetch'; import Docker from 'dockerode'; import express from 'express'; import Router from 'express-promise-router'; -import Knex from 'knex'; +import { Knex } from 'knex'; import { Logger } from 'winston'; import { DocsBuilder } from '../DocsBuilder'; import { getEntityNameFromUrlPath } from './helpers'; diff --git a/yarn.lock b/yarn.lock index 20099647e22e9..30a5b5c52e455 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8045,11 +8045,6 @@ array-differ@^3.0.0: resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== -array-each@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" - integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= - array-equal@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -8084,11 +8079,6 @@ array-includes@^3.0.3, array-includes@^3.1.1: es-abstract "^1.17.0" is-string "^1.0.5" -array-slice@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" - integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== - array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -10080,11 +10070,16 @@ commander@^5.0.0, commander@^5.1.0: resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^6.1.0, commander@^6.2.0: +commander@^6.1.0: version "6.2.1" resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + common-tags@1.8.0, common-tags@^1.8.0: version "1.8.0" resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -11533,11 +11528,6 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -12883,13 +12873,6 @@ expand-template@^2.0.3: resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^24.8.0: version "24.9.0" resolved "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" @@ -13408,32 +13391,6 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -13483,13 +13440,6 @@ for-own@^0.1.3: dependencies: for-in "^1.0.1" -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - foreach@^2.0.4: version "2.0.5" resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -14092,26 +14042,6 @@ global-modules@2.0.0: dependencies: global-prefix "^3.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - global-prefix@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" @@ -14765,13 +14695,6 @@ hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: dependencies: react-is "^16.7.0" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -15556,6 +15479,13 @@ is-core-module@^2.1.0: dependencies: has "^1.0.3" +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -17195,23 +17125,24 @@ klona@^2.0.3: resolved "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -knex@^0.21.6: - version "0.21.18" - resolved "https://registry.npmjs.org/knex/-/knex-0.21.18.tgz#ca16e95b8b5c0891a6b012fb3fb34185e067b0e2" - integrity sha512-hP4Qyy2LjQLsabQYc6YgDFHb+CJJBjQz1TMPTKyN85CF2NLIsZsF4FDe0NvQXeXMeak3E/kKr5iJog1JBm6ZCQ== +knex@^0.95.1: + version "0.95.1" + resolved "https://registry.npmjs.org/knex/-/knex-0.95.1.tgz#6a99dfebe992829b417144c68d1532ee2b47e90e" + integrity sha512-8vAmH4M6ks0qXHqaIacUOTtGAVc1PPFuF8W/W9bzuUHcQur4809mtufw1LY6n/tNRTLwMFBSXWkUnfFQFqFvNQ== dependencies: colorette "1.2.1" - commander "^6.2.0" + commander "^7.1.0" debug "4.3.1" + escalade "^3.1.1" esm "^3.2.25" getopts "2.2.5" interpret "^2.2.0" - liftoff "3.1.0" - lodash "^4.17.20" + lodash "^4.17.21" pg-connection-string "2.4.0" + rechoir "^0.7.0" + resolve-from "^5.0.0" tarn "^3.0.1" tildify "2.0.0" - v8flags "^3.2.0" kuler@1.0.x: version "1.0.1" @@ -17372,20 +17303,6 @@ liboneandone@^1.2.0: mocha "^2.5.3" request "^2.74.0" -liftoff@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" - integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -17982,13 +17899,6 @@ make-fetch-happen@^8.0.9: socks-proxy-agent "^5.0.0" ssri "^8.0.0" -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - makeerror@1.0.x: version "1.0.11" resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -18385,7 +18295,7 @@ micromark@~2.10.0: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -19550,16 +19460,6 @@ object.assign@^4.1.1: has-symbols "^1.0.1" object-keys "^1.1.1" -object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - object.entries@^1.1.0, object.entries@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" @@ -19587,15 +19487,7 @@ object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0 define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0, object.pick@^1.3.0: +object.pick@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= @@ -20126,7 +20018,7 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-filepath@^1.0.1, parse-filepath@^1.0.2: +parse-filepath@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= @@ -20170,11 +20062,6 @@ parse-package-name@^0.1.0: resolved "https://registry.npmjs.org/parse-package-name/-/parse-package-name-0.1.0.tgz#3f44dd838feb4c2be4bf318bae4477d7706bade4" integrity sha1-P0Tdg4/rTCvkvzGLrkR313BrreQ= -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" @@ -22449,6 +22336,13 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + dependencies: + resolve "^1.9.0" + recursive-readdir@2.2.2, recursive-readdir@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -22865,14 +22759,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -22893,7 +22779,7 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.16.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2: version "1.19.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== @@ -22901,6 +22787,14 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13. is-core-module "^2.1.0" path-parse "^1.0.6" +resolve@^1.9.0: + version "1.20.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -25949,13 +25843,6 @@ v8-to-istanbul@^7.0.0: convert-source-map "^1.6.0" source-map "^0.7.3" -v8flags@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - valid-url@1.0.9, valid-url@^1.0.9: version "1.0.9" resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" @@ -26391,7 +26278,7 @@ which-pm@2.0.0: load-yaml-file "^0.2.0" path-exists "^4.0.0" -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@1, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==