@squiz/db-lib 1.71.1 → 1.71.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/AbstractRepository.d.ts +57 -0
  3. package/lib/AbstractRepository.d.ts.map +1 -0
  4. package/lib/AbstractRepository.integration.spec.d.ts +2 -0
  5. package/lib/AbstractRepository.integration.spec.d.ts.map +1 -0
  6. package/lib/AbstractRepository.integration.spec.js +118 -0
  7. package/lib/AbstractRepository.integration.spec.js.map +1 -0
  8. package/lib/AbstractRepository.js +187 -0
  9. package/lib/AbstractRepository.js.map +1 -0
  10. package/lib/ConnectionManager.d.ts +26 -0
  11. package/lib/ConnectionManager.d.ts.map +1 -0
  12. package/lib/ConnectionManager.js +58 -0
  13. package/lib/ConnectionManager.js.map +1 -0
  14. package/lib/Migrator.d.ts +25 -0
  15. package/lib/Migrator.d.ts.map +1 -0
  16. package/lib/Migrator.js +160 -0
  17. package/lib/Migrator.js.map +1 -0
  18. package/lib/PostgresErrorCodes.d.ts +269 -0
  19. package/lib/PostgresErrorCodes.d.ts.map +1 -0
  20. package/lib/PostgresErrorCodes.js +274 -0
  21. package/lib/PostgresErrorCodes.js.map +1 -0
  22. package/lib/Repositories.d.ts +3 -0
  23. package/lib/Repositories.d.ts.map +1 -0
  24. package/lib/Repositories.js +3 -0
  25. package/lib/Repositories.js.map +1 -0
  26. package/lib/dynamodb/AbstractDynamoDbRepository.d.ts +162 -0
  27. package/lib/dynamodb/AbstractDynamoDbRepository.d.ts.map +1 -0
  28. package/lib/dynamodb/AbstractDynamoDbRepository.js +367 -0
  29. package/lib/dynamodb/AbstractDynamoDbRepository.js.map +1 -0
  30. package/lib/dynamodb/AbstractDynamoDbRepository.spec.d.ts +27 -0
  31. package/lib/dynamodb/AbstractDynamoDbRepository.spec.d.ts.map +1 -0
  32. package/lib/dynamodb/AbstractDynamoDbRepository.spec.js +698 -0
  33. package/lib/dynamodb/AbstractDynamoDbRepository.spec.js.map +1 -0
  34. package/lib/dynamodb/DynamoDbManager.d.ts +19 -0
  35. package/lib/dynamodb/DynamoDbManager.d.ts.map +1 -0
  36. package/lib/dynamodb/DynamoDbManager.js +66 -0
  37. package/lib/dynamodb/DynamoDbManager.js.map +1 -0
  38. package/lib/dynamodb/getDynamoDbOptions.d.ts +13 -0
  39. package/lib/dynamodb/getDynamoDbOptions.d.ts.map +1 -0
  40. package/lib/dynamodb/getDynamoDbOptions.js +15 -0
  41. package/lib/dynamodb/getDynamoDbOptions.js.map +1 -0
  42. package/lib/error/DuplicateItemError.d.ts +6 -0
  43. package/lib/error/DuplicateItemError.d.ts.map +1 -0
  44. package/lib/error/DuplicateItemError.js +12 -0
  45. package/lib/error/DuplicateItemError.js.map +1 -0
  46. package/lib/error/InvalidDataFormatError.d.ts +6 -0
  47. package/lib/error/InvalidDataFormatError.d.ts.map +1 -0
  48. package/lib/error/InvalidDataFormatError.js +12 -0
  49. package/lib/error/InvalidDataFormatError.js.map +1 -0
  50. package/lib/error/InvalidDbSchemaError.d.ts +6 -0
  51. package/lib/error/InvalidDbSchemaError.d.ts.map +1 -0
  52. package/lib/error/InvalidDbSchemaError.js +12 -0
  53. package/lib/error/InvalidDbSchemaError.js.map +1 -0
  54. package/lib/error/MissingKeyValuesError.d.ts +6 -0
  55. package/lib/error/MissingKeyValuesError.d.ts.map +1 -0
  56. package/lib/error/MissingKeyValuesError.js +12 -0
  57. package/lib/error/MissingKeyValuesError.js.map +1 -0
  58. package/lib/error/TransactionError.d.ts +6 -0
  59. package/lib/error/TransactionError.d.ts.map +1 -0
  60. package/lib/error/TransactionError.js +12 -0
  61. package/lib/error/TransactionError.js.map +1 -0
  62. package/lib/getConnectionInfo.d.ts +6 -0
  63. package/lib/getConnectionInfo.d.ts.map +1 -0
  64. package/lib/getConnectionInfo.js +30 -0
  65. package/lib/getConnectionInfo.js.map +1 -0
  66. package/lib/index.d.ts +15 -0
  67. package/lib/index.d.ts.map +1 -0
  68. package/lib/index.js +34 -0
  69. package/lib/index.js.map +1 -0
  70. package/package.json +5 -5
  71. package/src/AbstractRepository.ts +26 -20
  72. package/src/dynamodb/AbstractDynamoDbRepository.ts +1 -1
  73. package/src/dynamodb/getDynamoDbOptions.ts +1 -1
  74. package/tsconfig.json +5 -2
  75. package/tsconfig.tsbuildinfo +1 -1
  76. package/build.js +0 -31
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Migrator = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const dx_logger_lib_1 = require("@squiz/dx-logger-lib");
11
+ // Be carful about changing this value. This needs to be consistent across deployments
12
+ // this ID is used to signal other running instances that a migration is executing.
13
+ const MIGRATION_ADVISORY_LOCK = 4569465;
14
+ const logger = (0, dx_logger_lib_1.getLogger)({ name: 'db-migrator', meta: { pid: process.pid, hostname: os_1.default.hostname() } });
15
+ class Migrator {
16
+ constructor(migrationDir, migrationList, pool) {
17
+ this.migrationDir = migrationDir;
18
+ this.migrationList = migrationList;
19
+ this.pool = pool;
20
+ }
21
+ async ensureMigrationTableExists() {
22
+ return this.pool.query('create table if not exists "__migrations__" (id varchar(128) NOT NULL)');
23
+ }
24
+ async getAppliedMigrations() {
25
+ await this.ensureMigrationTableExists();
26
+ const result = await this.pool.query('select * from __migrations__');
27
+ return result.rows.map(function (row) {
28
+ return row.id;
29
+ });
30
+ }
31
+ async doSqlMigration(migration, sql) {
32
+ try {
33
+ const result = await this.pool.query(sql);
34
+ logger.info('Applying ' + migration);
35
+ if (result.rowCount !== undefined) {
36
+ logger.info('affected rows', result.rowCount);
37
+ }
38
+ }
39
+ catch (e) {
40
+ logger.info('error occurred running migration', migration, e);
41
+ throw e;
42
+ }
43
+ }
44
+ async getPending(migrationsList, appliedMigrations) {
45
+ const pending = [];
46
+ // get all migrations
47
+ for (let i = 0; i < migrationsList.length; i++) {
48
+ if (migrationsList[i] !== appliedMigrations[i]) {
49
+ pending.push(migrationsList[i]);
50
+ }
51
+ }
52
+ // validate order
53
+ for (let i = 0; i < pending.length; i++) {
54
+ if (appliedMigrations.includes(pending[i])) {
55
+ throw new Error(`${pending[i]} has already run. Are you sure your migrations are in the correct order.`);
56
+ }
57
+ }
58
+ // check the migration list is the right one (based on applied migrations on the db)
59
+ for (let i = 0; i < migrationsList.length; i++) {
60
+ if (migrationsList[i] !== appliedMigrations[i] && appliedMigrations[i] !== undefined) {
61
+ throw new Error(`Migration #${i + 1} ${migrationsList[i]} on the migration list does not match with the applied migration ${appliedMigrations[i]}. Are you sure your migrations are running in the correct DB? Migration list: [${migrationsList.join(', ')}], Applied migrations: [${appliedMigrations.join(', ')}]`);
62
+ }
63
+ }
64
+ return pending;
65
+ }
66
+ async getSql(migration) {
67
+ const sql = await promises_1.default.readFile(path_1.default.join(this.migrationDir, migration), { encoding: 'utf-8' });
68
+ return sql;
69
+ }
70
+ async tryToObtainLock() {
71
+ const result = await this.pool.query(`SELECT pg_try_advisory_lock(${MIGRATION_ADVISORY_LOCK}) as lockobtained`);
72
+ return result.rows[0].lockobtained;
73
+ }
74
+ async releaseLock() {
75
+ await this.pool.query(`SELECT pg_advisory_unlock(${MIGRATION_ADVISORY_LOCK}) lockreleased`);
76
+ }
77
+ async migrate() {
78
+ try {
79
+ const lockObtained = await this.tryToObtainLock();
80
+ if (lockObtained === false) {
81
+ logger.info('migration already running');
82
+ await sleep(500);
83
+ return await this.migrate();
84
+ }
85
+ await this.runMigrations();
86
+ logger.info('completed migration');
87
+ await this.releaseLock();
88
+ this.dispose();
89
+ }
90
+ catch (e) {
91
+ logger.info('migration failed releasing lock');
92
+ await this.releaseLock();
93
+ throw e;
94
+ }
95
+ }
96
+ async runMigrations() {
97
+ const appliedMigrations = await this.getAppliedMigrations();
98
+ const pending = await this.getPending(this.migrationList, appliedMigrations);
99
+ if (pending.length === 0) {
100
+ logger.info('No pending migrations');
101
+ return;
102
+ }
103
+ logger.info('Pending migrations:\n\t' + pending.join('\n\t'));
104
+ for (const migration of pending) {
105
+ await this.runMigration(migration);
106
+ }
107
+ }
108
+ async doScriptMigration(migration) {
109
+ const migrationScript = path_1.default.join(this.migrationDir, migration);
110
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
111
+ const migrationFunc = require(migrationScript);
112
+ // eslint-disable-next-line @typescript-eslint/ban-types
113
+ let callable;
114
+ if (migrationFunc instanceof Function) {
115
+ callable = migrationFunc;
116
+ }
117
+ else if (migrationFunc.default instanceof Function) {
118
+ callable = migrationFunc.default;
119
+ }
120
+ else {
121
+ throw new Error(`${migrationScript} isn't callable`);
122
+ }
123
+ await callable(this.pool, logger);
124
+ }
125
+ async runMigration(migration) {
126
+ try {
127
+ await this.pool.query('BEGIN');
128
+ await this.doMigrationWork(migration);
129
+ await this.pool.query('insert into __migrations__ (id) values ($1)', [migration]);
130
+ await this.pool.query('COMMIT');
131
+ }
132
+ catch (e) {
133
+ logger.error('migration failed', migration, e);
134
+ await this.pool.query('ROLLBACK');
135
+ throw e;
136
+ }
137
+ }
138
+ async doMigrationWork(migration) {
139
+ if (migration.endsWith('.sql')) {
140
+ const sql = await this.getSql(migration);
141
+ await this.doSqlMigration(migration, sql);
142
+ }
143
+ else if (migration.endsWith('.js')) {
144
+ await this.doScriptMigration(migration);
145
+ }
146
+ else {
147
+ throw new Error(`${migration} as an invalid migration extension`);
148
+ }
149
+ }
150
+ dispose() {
151
+ return this.pool.release();
152
+ }
153
+ }
154
+ exports.Migrator = Migrator;
155
+ async function sleep(timeMs) {
156
+ return new Promise((resolve) => {
157
+ setTimeout(resolve, timeMs);
158
+ });
159
+ }
160
+ //# sourceMappingURL=Migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrator.js","sourceRoot":"","sources":["../src/Migrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,269 @@
1
+ export declare enum PostgresErrorCode {
2
+ SUCCESSFUL_COMPLETION = "00000",
3
+ WARNING = "01000",
4
+ WARNING_DYNAMIC_RESULT_SETS_RETURNED = "0100C",
5
+ WARNING_IMPLICIT_ZERO_BIT_PADDING = "01008",
6
+ WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION = "01003",
7
+ WARNING_PRIVILEGE_NOT_GRANTED = "01007",
8
+ WARNING_PRIVILEGE_NOT_REVOKED = "01006",
9
+ WARNING_STRING_DATA_RIGHT_TRUNCATION = "01004",
10
+ WARNING_DEPRECATED_FEATURE = "01P01",
11
+ NO_DATA = "02000",
12
+ NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED = "02001",
13
+ SQL_STATEMENT_NOT_YET_COMPLETE = "03000",
14
+ CONNECTION_EXCEPTION = "08000",
15
+ CONNECTION_DOES_NOT_EXIST = "08003",
16
+ CONNECTION_FAILURE = "08006",
17
+ SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION = "08001",
18
+ SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION = "08004",
19
+ TRANSACTION_RESOLUTION_UNKNOWN = "08007",
20
+ PROTOCOL_VIOLATION = "08P01",
21
+ TRIGGERED_ACTION_EXCEPTION = "09000",
22
+ FEATURE_NOT_SUPPORTED = "0A000",
23
+ INVALID_TRANSACTION_INITIATION = "0B000",
24
+ LOCATOR_EXCEPTION = "0F000",
25
+ L_E_INVALID_SPECIFICATION = "0F001",
26
+ INVALID_GRANTOR = "0L000",
27
+ INVALID_GRANT_OPERATION = "0LP01",
28
+ INVALID_ROLE_SPECIFICATION = "0P000",
29
+ DIAGNOSTICS_EXCEPTION = "0Z000",
30
+ STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER = "0Z002",
31
+ CASE_NOT_FOUND = "20000",
32
+ CARDINALITY_VIOLATION = "21000",
33
+ DATA_EXCEPTION = "22000",
34
+ ARRAY_ELEMENT_ERROR = "2202E",
35
+ ARRAY_SUBSCRIPT_ERROR = "2202E",
36
+ CHARACTER_NOT_IN_REPERTOIRE = "22021",
37
+ DATETIME_FIELD_OVERFLOW = "22008",
38
+ DATETIME_VALUE_OUT_OF_RANGE = "22008",
39
+ DIVISION_BY_ZERO = "22012",
40
+ ERROR_IN_ASSIGNMENT = "22005",
41
+ ESCAPE_CHARACTER_CONFLICT = "2200B",
42
+ INDICATOR_OVERFLOW = "22022",
43
+ INTERVAL_FIELD_OVERFLOW = "22015",
44
+ INVALID_ARGUMENT_FOR_LOG = "2201E",
45
+ INVALID_ARGUMENT_FOR_NTILE = "22014",
46
+ INVALID_ARGUMENT_FOR_NTH_VALUE = "22016",
47
+ INVALID_ARGUMENT_FOR_POWER_FUNCTION = "2201F",
48
+ INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION = "2201G",
49
+ INVALID_CHARACTER_VALUE_FOR_CAST = "22018",
50
+ INVALID_DATETIME_FORMAT = "22007",
51
+ INVALID_ESCAPE_CHARACTER = "22019",
52
+ INVALID_ESCAPE_OCTET = "2200D",
53
+ INVALID_ESCAPE_SEQUENCE = "22025",
54
+ NONSTANDARD_USE_OF_ESCAPE_CHARACTER = "22P06",
55
+ INVALID_INDICATOR_PARAMETER_VALUE = "22010",
56
+ INVALID_PARAMETER_VALUE = "22023",
57
+ INVALID_PRECEDING_OR_FOLLOWING_SIZE = "22013",
58
+ INVALID_REGULAR_EXPRESSION = "2201B",
59
+ INVALID_ROW_COUNT_IN_LIMIT_CLAUSE = "2201W",
60
+ INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE = "2201X",
61
+ INVALID_TABLESAMPLE_ARGUMENT = "2202H",
62
+ INVALID_TABLESAMPLE_REPEAT = "2202G",
63
+ INVALID_TIME_ZONE_DISPLACEMENT_VALUE = "22009",
64
+ INVALID_USE_OF_ESCAPE_CHARACTER = "2200C",
65
+ MOST_SPECIFIC_TYPE_MISMATCH = "2200G",
66
+ NULL_VALUE_NOT_ALLOWED = "22004",
67
+ NULL_VALUE_NO_INDICATOR_PARAMETER = "22002",
68
+ NUMERIC_VALUE_OUT_OF_RANGE = "22003",
69
+ SEQUENCE_GENERATOR_LIMIT_EXCEEDED = "2200H",
70
+ STRING_DATA_LENGTH_MISMATCH = "22026",
71
+ STRING_DATA_RIGHT_TRUNCATION = "22001",
72
+ SUBSTRING_ERROR = "22011",
73
+ TRIM_ERROR = "22027",
74
+ UNTERMINATED_C_STRING = "22024",
75
+ ZERO_LENGTH_CHARACTER_STRING = "2200F",
76
+ FLOATING_POINT_EXCEPTION = "22P01",
77
+ INVALID_TEXT_REPRESENTATION = "22P02",
78
+ INVALID_BINARY_REPRESENTATION = "22P03",
79
+ BAD_COPY_FILE_FORMAT = "22P04",
80
+ UNTRANSLATABLE_CHARACTER = "22P05",
81
+ NOT_AN_XML_DOCUMENT = "2200L",
82
+ INVALID_XML_DOCUMENT = "2200M",
83
+ INVALID_XML_CONTENT = "2200N",
84
+ INVALID_XML_COMMENT = "2200S",
85
+ INVALID_XML_PROCESSING_INSTRUCTION = "2200T",
86
+ DUPLICATE_JSON_OBJECT_KEY_VALUE = "22030",
87
+ INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION = "22031",
88
+ INVALID_JSON_TEXT = "22032",
89
+ INVALID_SQL_JSON_SUBSCRIPT = "22033",
90
+ MORE_THAN_ONE_SQL_JSON_ITEM = "22034",
91
+ NO_SQL_JSON_ITEM = "22035",
92
+ NON_NUMERIC_SQL_JSON_ITEM = "22036",
93
+ NON_UNIQUE_KEYS_IN_A_JSON_OBJECT = "22037",
94
+ SINGLETON_SQL_JSON_ITEM_REQUIRED = "22038",
95
+ SQL_JSON_ARRAY_NOT_FOUND = "22039",
96
+ SQL_JSON_MEMBER_NOT_FOUND = "2203A",
97
+ SQL_JSON_NUMBER_NOT_FOUND = "2203B",
98
+ SQL_JSON_OBJECT_NOT_FOUND = "2203C",
99
+ TOO_MANY_JSON_ARRAY_ELEMENTS = "2203D",
100
+ TOO_MANY_JSON_OBJECT_MEMBERS = "2203E",
101
+ SQL_JSON_SCALAR_REQUIRED = "2203F",
102
+ SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE = "2203G",
103
+ INTEGRITY_CONSTRAINT_VIOLATION = "23000",
104
+ RESTRICT_VIOLATION = "23001",
105
+ NOT_NULL_VIOLATION = "23502",
106
+ FOREIGN_KEY_VIOLATION = "23503",
107
+ UNIQUE_VIOLATION = "23505",
108
+ CHECK_VIOLATION = "23514",
109
+ EXCLUSION_VIOLATION = "23P01",
110
+ INVALID_CURSOR_STATE = "24000",
111
+ INVALID_TRANSACTION_STATE = "25000",
112
+ ACTIVE_SQL_TRANSACTION = "25001",
113
+ BRANCH_TRANSACTION_ALREADY_ACTIVE = "25002",
114
+ HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = "25008",
115
+ INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION = "25003",
116
+ INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION = "25004",
117
+ NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION = "25005",
118
+ READ_ONLY_SQL_TRANSACTION = "25006",
119
+ SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED = "25007",
120
+ NO_ACTIVE_SQL_TRANSACTION = "25P01",
121
+ IN_FAILED_SQL_TRANSACTION = "25P02",
122
+ IDLE_IN_TRANSACTION_SESSION_TIMEOUT = "25P03",
123
+ INVALID_SQL_STATEMENT_NAME = "26000",
124
+ TRIGGERED_DATA_CHANGE_VIOLATION = "27000",
125
+ INVALID_AUTHORIZATION_SPECIFICATION = "28000",
126
+ INVALID_PASSWORD = "28P01",
127
+ DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST = "2B000",
128
+ DEPENDENT_OBJECTS_STILL_EXIST = "2BP01",
129
+ INVALID_TRANSACTION_TERMINATION = "2D000",
130
+ SQL_ROUTINE_EXCEPTION = "2F000",
131
+ S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT = "2F005",
132
+ S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = "2F002",
133
+ S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = "2F003",
134
+ S_R_E_READING_SQL_DATA_NOT_PERMITTED = "2F004",
135
+ INVALID_CURSOR_NAME = "34000",
136
+ EXTERNAL_ROUTINE_EXCEPTION = "38000",
137
+ E_R_E_CONTAINING_SQL_NOT_PERMITTED = "38001",
138
+ E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED = "38002",
139
+ E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED = "38003",
140
+ E_R_E_READING_SQL_DATA_NOT_PERMITTED = "38004",
141
+ EXTERNAL_ROUTINE_INVOCATION_EXCEPTION = "39000",
142
+ E_R_I_E_INVALID_SQLSTATE_RETURNED = "39001",
143
+ E_R_I_E_NULL_VALUE_NOT_ALLOWED = "39004",
144
+ E_R_I_E_TRIGGER_PROTOCOL_VIOLATED = "39P01",
145
+ E_R_I_E_SRF_PROTOCOL_VIOLATED = "39P02",
146
+ E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED = "39P03",
147
+ SAVEPOINT_EXCEPTION = "3B000",
148
+ S_E_INVALID_SPECIFICATION = "3B001",
149
+ INVALID_CATALOG_NAME = "3D000",
150
+ INVALID_SCHEMA_NAME = "3F000",
151
+ TRANSACTION_ROLLBACK = "40000",
152
+ T_R_INTEGRITY_CONSTRAINT_VIOLATION = "40002",
153
+ T_R_SERIALIZATION_FAILURE = "40001",
154
+ T_R_STATEMENT_COMPLETION_UNKNOWN = "40003",
155
+ T_R_DEADLOCK_DETECTED = "40P01",
156
+ SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION = "42000",
157
+ SYNTAX_ERROR = "42601",
158
+ INSUFFICIENT_PRIVILEGE = "42501",
159
+ CANNOT_COERCE = "42846",
160
+ GROUPING_ERROR = "42803",
161
+ WINDOWING_ERROR = "42P20",
162
+ INVALID_RECURSION = "42P19",
163
+ INVALID_FOREIGN_KEY = "42830",
164
+ INVALID_NAME = "42602",
165
+ NAME_TOO_LONG = "42622",
166
+ RESERVED_NAME = "42939",
167
+ DATATYPE_MISMATCH = "42804",
168
+ INDETERMINATE_DATATYPE = "42P18",
169
+ COLLATION_MISMATCH = "42P21",
170
+ INDETERMINATE_COLLATION = "42P22",
171
+ WRONG_OBJECT_TYPE = "42809",
172
+ GENERATED_ALWAYS = "428C9",
173
+ UNDEFINED_COLUMN = "42703",
174
+ UNDEFINED_CURSOR = "34000",
175
+ UNDEFINED_DATABASE = "3D000",
176
+ UNDEFINED_FUNCTION = "42883",
177
+ UNDEFINED_PSTATEMENT = "26000",
178
+ UNDEFINED_SCHEMA = "3F000",
179
+ UNDEFINED_TABLE = "42P01",
180
+ UNDEFINED_PARAMETER = "42P02",
181
+ UNDEFINED_OBJECT = "42704",
182
+ DUPLICATE_COLUMN = "42701",
183
+ DUPLICATE_CURSOR = "42P03",
184
+ DUPLICATE_DATABASE = "42P04",
185
+ DUPLICATE_FUNCTION = "42723",
186
+ DUPLICATE_PSTATEMENT = "42P05",
187
+ DUPLICATE_SCHEMA = "42P06",
188
+ DUPLICATE_TABLE = "42P07",
189
+ DUPLICATE_ALIAS = "42712",
190
+ DUPLICATE_OBJECT = "42710",
191
+ AMBIGUOUS_COLUMN = "42702",
192
+ AMBIGUOUS_FUNCTION = "42725",
193
+ AMBIGUOUS_PARAMETER = "42P08",
194
+ AMBIGUOUS_ALIAS = "42P09",
195
+ INVALID_COLUMN_REFERENCE = "42P10",
196
+ INVALID_COLUMN_DEFINITION = "42611",
197
+ INVALID_CURSOR_DEFINITION = "42P11",
198
+ INVALID_DATABASE_DEFINITION = "42P12",
199
+ INVALID_FUNCTION_DEFINITION = "42P13",
200
+ INVALID_PSTATEMENT_DEFINITION = "42P14",
201
+ INVALID_SCHEMA_DEFINITION = "42P15",
202
+ INVALID_TABLE_DEFINITION = "42P16",
203
+ INVALID_OBJECT_DEFINITION = "42P17",
204
+ WITH_CHECK_OPTION_VIOLATION = "44000",
205
+ INSUFFICIENT_RESOURCES = "53000",
206
+ DISK_FULL = "53100",
207
+ OUT_OF_MEMORY = "53200",
208
+ TOO_MANY_CONNECTIONS = "53300",
209
+ CONFIGURATION_LIMIT_EXCEEDED = "53400",
210
+ PROGRAM_LIMIT_EXCEEDED = "54000",
211
+ STATEMENT_TOO_COMPLEX = "54001",
212
+ TOO_MANY_COLUMNS = "54011",
213
+ TOO_MANY_ARGUMENTS = "54023",
214
+ OBJECT_NOT_IN_PREREQUISITE_STATE = "55000",
215
+ OBJECT_IN_USE = "55006",
216
+ CANT_CHANGE_RUNTIME_PARAM = "55P02",
217
+ LOCK_NOT_AVAILABLE = "55P03",
218
+ UNSAFE_NEW_ENUM_VALUE_USAGE = "55P04",
219
+ OPERATOR_INTERVENTION = "57000",
220
+ QUERY_CANCELED = "57014",
221
+ ADMIN_SHUTDOWN = "57P01",
222
+ CRASH_SHUTDOWN = "57P02",
223
+ CANNOT_CONNECT_NOW = "57P03",
224
+ DATABASE_DROPPED = "57P04",
225
+ IDLE_SESSION_TIMEOUT = "57P05",
226
+ SYSTEM_ERROR = "58000",
227
+ IO_ERROR = "58030",
228
+ UNDEFINED_FILE = "58P01",
229
+ DUPLICATE_FILE = "58P02",
230
+ SNAPSHOT_TOO_OLD = "72000",
231
+ CONFIG_FILE_ERROR = "F0000",
232
+ LOCK_FILE_EXISTS = "F0001",
233
+ FDW_ERROR = "HV000",
234
+ FDW_COLUMN_NAME_NOT_FOUND = "HV005",
235
+ FDW_DYNAMIC_PARAMETER_VALUE_NEEDED = "HV002",
236
+ FDW_FUNCTION_SEQUENCE_ERROR = "HV010",
237
+ FDW_INCONSISTENT_DESCRIPTOR_INFORMATION = "HV021",
238
+ FDW_INVALID_ATTRIBUTE_VALUE = "HV024",
239
+ FDW_INVALID_COLUMN_NAME = "HV007",
240
+ FDW_INVALID_COLUMN_NUMBER = "HV008",
241
+ FDW_INVALID_DATA_TYPE = "HV004",
242
+ FDW_INVALID_DATA_TYPE_DESCRIPTORS = "HV006",
243
+ FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER = "HV091",
244
+ FDW_INVALID_HANDLE = "HV00B",
245
+ FDW_INVALID_OPTION_INDEX = "HV00C",
246
+ FDW_INVALID_OPTION_NAME = "HV00D",
247
+ FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH = "HV090",
248
+ FDW_INVALID_STRING_FORMAT = "HV00A",
249
+ FDW_INVALID_USE_OF_NULL_POINTER = "HV009",
250
+ FDW_TOO_MANY_HANDLES = "HV014",
251
+ FDW_OUT_OF_MEMORY = "HV001",
252
+ FDW_NO_SCHEMAS = "HV00P",
253
+ FDW_OPTION_NAME_NOT_FOUND = "HV00J",
254
+ FDW_REPLY_HANDLE = "HV00K",
255
+ FDW_SCHEMA_NOT_FOUND = "HV00Q",
256
+ FDW_TABLE_NOT_FOUND = "HV00R",
257
+ FDW_UNABLE_TO_CREATE_EXECUTION = "HV00L",
258
+ FDW_UNABLE_TO_CREATE_REPLY = "HV00M",
259
+ FDW_UNABLE_TO_ESTABLISH_CONNECTION = "HV00N",
260
+ PLPGSQL_ERROR = "P0000",
261
+ RAISE_EXCEPTION = "P0001",
262
+ NO_DATA_FOUND = "P0002",
263
+ TOO_MANY_ROWS = "P0003",
264
+ ASSERT_FAILURE = "P0004",
265
+ INTERNAL_ERROR = "XX000",
266
+ DATA_CORRUPTED = "XX001",
267
+ INDEX_CORRUPTED = "XX002"
268
+ }
269
+ //# sourceMappingURL=PostgresErrorCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresErrorCodes.d.ts","sourceRoot":"","sources":["../src/PostgresErrorCodes.ts"],"names":[],"mappings":"AAEA,oBAAY,iBAAiB;IAC3B,qBAAqB,UAAU;IAC/B,OAAO,UAAU;IACjB,oCAAoC,UAAU;IAC9C,iCAAiC,UAAU;IAC3C,6CAA6C,UAAU;IACvD,6BAA6B,UAAU;IACvC,6BAA6B,UAAU;IACvC,oCAAoC,UAAU;IAC9C,0BAA0B,UAAU;IACpC,OAAO,UAAU;IACjB,0CAA0C,UAAU;IACpD,8BAA8B,UAAU;IACxC,oBAAoB,UAAU;IAC9B,yBAAyB,UAAU;IACnC,kBAAkB,UAAU;IAC5B,2CAA2C,UAAU;IACrD,iDAAiD,UAAU;IAC3D,8BAA8B,UAAU;IACxC,kBAAkB,UAAU;IAC5B,0BAA0B,UAAU;IACpC,qBAAqB,UAAU;IAC/B,8BAA8B,UAAU;IACxC,iBAAiB,UAAU;IAC3B,yBAAyB,UAAU;IACnC,eAAe,UAAU;IACzB,uBAAuB,UAAU;IACjC,0BAA0B,UAAU;IACpC,qBAAqB,UAAU;IAC/B,mDAAmD,UAAU;IAC7D,cAAc,UAAU;IACxB,qBAAqB,UAAU;IAC/B,cAAc,UAAU;IACxB,mBAAmB,UAAU;IAC7B,qBAAqB,UAAU;IAC/B,2BAA2B,UAAU;IACrC,uBAAuB,UAAU;IACjC,2BAA2B,UAAU;IACrC,gBAAgB,UAAU;IAC1B,mBAAmB,UAAU;IAC7B,yBAAyB,UAAU;IACnC,kBAAkB,UAAU;IAC5B,uBAAuB,UAAU;IACjC,wBAAwB,UAAU;IAClC,0BAA0B,UAAU;IACpC,8BAA8B,UAAU;IACxC,mCAAmC,UAAU;IAC7C,0CAA0C,UAAU;IACpD,gCAAgC,UAAU;IAC1C,uBAAuB,UAAU;IACjC,wBAAwB,UAAU;IAClC,oBAAoB,UAAU;IAC9B,uBAAuB,UAAU;IACjC,mCAAmC,UAAU;IAC7C,iCAAiC,UAAU;IAC3C,uBAAuB,UAAU;IACjC,mCAAmC,UAAU;IAC7C,0BAA0B,UAAU;IACpC,iCAAiC,UAAU;IAC3C,yCAAyC,UAAU;IACnD,4BAA4B,UAAU;IACtC,0BAA0B,UAAU;IACpC,oCAAoC,UAAU;IAC9C,+BAA+B,UAAU;IACzC,2BAA2B,UAAU;IACrC,sBAAsB,UAAU;IAChC,iCAAiC,UAAU;IAC3C,0BAA0B,UAAU;IACpC,iCAAiC,UAAU;IAC3C,2BAA2B,UAAU;IACrC,4BAA4B,UAAU;IACtC,eAAe,UAAU;IACzB,UAAU,UAAU;IACpB,qBAAqB,UAAU;IAC/B,4BAA4B,UAAU;IACtC,wBAAwB,UAAU;IAClC,2BAA2B,UAAU;IACrC,6BAA6B,UAAU;IACvC,oBAAoB,UAAU;IAC9B,wBAAwB,UAAU;IAClC,mBAAmB,UAAU;IAC7B,oBAAoB,UAAU;IAC9B,mBAAmB,UAAU;IAC7B,mBAAmB,UAAU;IAC7B,kCAAkC,UAAU;IAC5C,+BAA+B,UAAU;IACzC,+CAA+C,UAAU;IACzD,iBAAiB,UAAU;IAC3B,0BAA0B,UAAU;IACpC,2BAA2B,UAAU;IACrC,gBAAgB,UAAU;IAC1B,yBAAyB,UAAU;IACnC,gCAAgC,UAAU;IAC1C,gCAAgC,UAAU;IAC1C,wBAAwB,UAAU;IAClC,yBAAyB,UAAU;IACnC,yBAAyB,UAAU;IACnC,yBAAyB,UAAU;IACnC,4BAA4B,UAAU;IACtC,4BAA4B,UAAU;IACtC,wBAAwB,UAAU;IAClC,2CAA2C,UAAU;IACrD,8BAA8B,UAAU;IACxC,kBAAkB,UAAU;IAC5B,kBAAkB,UAAU;IAC5B,qBAAqB,UAAU;IAC/B,gBAAgB,UAAU;IAC1B,eAAe,UAAU;IACzB,mBAAmB,UAAU;IAC7B,oBAAoB,UAAU;IAC9B,yBAAyB,UAAU;IACnC,sBAAsB,UAAU;IAChC,iCAAiC,UAAU;IAC3C,yCAAyC,UAAU;IACnD,gDAAgD,UAAU;IAC1D,oDAAoD,UAAU;IAC9D,gDAAgD,UAAU;IAC1D,yBAAyB,UAAU;IACnC,8CAA8C,UAAU;IACxD,yBAAyB,UAAU;IACnC,yBAAyB,UAAU;IACnC,mCAAmC,UAAU;IAC7C,0BAA0B,UAAU;IACpC,+BAA+B,UAAU;IACzC,mCAAmC,UAAU;IAC7C,gBAAgB,UAAU;IAC1B,2CAA2C,UAAU;IACrD,6BAA6B,UAAU;IACvC,+BAA+B,UAAU;IACzC,qBAAqB,UAAU;IAC/B,2CAA2C,UAAU;IACrD,sCAAsC,UAAU;IAChD,wCAAwC,UAAU;IAClD,oCAAoC,UAAU;IAC9C,mBAAmB,UAAU;IAC7B,0BAA0B,UAAU;IACpC,kCAAkC,UAAU;IAC5C,sCAAsC,UAAU;IAChD,wCAAwC,UAAU;IAClD,oCAAoC,UAAU;IAC9C,qCAAqC,UAAU;IAC/C,iCAAiC,UAAU;IAC3C,8BAA8B,UAAU;IACxC,iCAAiC,UAAU;IAC3C,6BAA6B,UAAU;IACvC,uCAAuC,UAAU;IACjD,mBAAmB,UAAU;IAC7B,yBAAyB,UAAU;IACnC,oBAAoB,UAAU;IAC9B,mBAAmB,UAAU;IAC7B,oBAAoB,UAAU;IAC9B,kCAAkC,UAAU;IAC5C,yBAAyB,UAAU;IACnC,gCAAgC,UAAU;IAC1C,qBAAqB,UAAU;IAC/B,qCAAqC,UAAU;IAC/C,YAAY,UAAU;IACtB,sBAAsB,UAAU;IAChC,aAAa,UAAU;IACvB,cAAc,UAAU;IACxB,eAAe,UAAU;IACzB,iBAAiB,UAAU;IAC3B,mBAAmB,UAAU;IAC7B,YAAY,UAAU;IACtB,aAAa,UAAU;IACvB,aAAa,UAAU;IACvB,iBAAiB,UAAU;IAC3B,sBAAsB,UAAU;IAChC,kBAAkB,UAAU;IAC5B,uBAAuB,UAAU;IACjC,iBAAiB,UAAU;IAC3B,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;IAC1B,kBAAkB,UAAU;IAC5B,kBAAkB,UAAU;IAC5B,oBAAoB,UAAU;IAC9B,gBAAgB,UAAU;IAC1B,eAAe,UAAU;IACzB,mBAAmB,UAAU;IAC7B,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;IAC1B,kBAAkB,UAAU;IAC5B,kBAAkB,UAAU;IAC5B,oBAAoB,UAAU;IAC9B,gBAAgB,UAAU;IAC1B,eAAe,UAAU;IACzB,eAAe,UAAU;IACzB,gBAAgB,UAAU;IAC1B,gBAAgB,UAAU;IAC1B,kBAAkB,UAAU;IAC5B,mBAAmB,UAAU;IAC7B,eAAe,UAAU;IACzB,wBAAwB,UAAU;IAClC,yBAAyB,UAAU;IACnC,yBAAyB,UAAU;IACnC,2BAA2B,UAAU;IACrC,2BAA2B,UAAU;IACrC,6BAA6B,UAAU;IACvC,yBAAyB,UAAU;IACnC,wBAAwB,UAAU;IAClC,yBAAyB,UAAU;IACnC,2BAA2B,UAAU;IACrC,sBAAsB,UAAU;IAChC,SAAS,UAAU;IACnB,aAAa,UAAU;IACvB,oBAAoB,UAAU;IAC9B,4BAA4B,UAAU;IACtC,sBAAsB,UAAU;IAChC,qBAAqB,UAAU;IAC/B,gBAAgB,UAAU;IAC1B,kBAAkB,UAAU;IAC5B,gCAAgC,UAAU;IAC1C,aAAa,UAAU;IACvB,yBAAyB,UAAU;IACnC,kBAAkB,UAAU;IAC5B,2BAA2B,UAAU;IACrC,qBAAqB,UAAU;IAC/B,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,kBAAkB,UAAU;IAC5B,gBAAgB,UAAU;IAC1B,oBAAoB,UAAU;IAC9B,YAAY,UAAU;IACtB,QAAQ,UAAU;IAClB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,gBAAgB,UAAU;IAC1B,iBAAiB,UAAU;IAC3B,gBAAgB,UAAU;IAC1B,SAAS,UAAU;IACnB,yBAAyB,UAAU;IACnC,kCAAkC,UAAU;IAC5C,2BAA2B,UAAU;IACrC,uCAAuC,UAAU;IACjD,2BAA2B,UAAU;IACrC,uBAAuB,UAAU;IACjC,yBAAyB,UAAU;IACnC,qBAAqB,UAAU;IAC/B,iCAAiC,UAAU;IAC3C,uCAAuC,UAAU;IACjD,kBAAkB,UAAU;IAC5B,wBAAwB,UAAU;IAClC,uBAAuB,UAAU;IACjC,0CAA0C,UAAU;IACpD,yBAAyB,UAAU;IACnC,+BAA+B,UAAU;IACzC,oBAAoB,UAAU;IAC9B,iBAAiB,UAAU;IAC3B,cAAc,UAAU;IACxB,yBAAyB,UAAU;IACnC,gBAAgB,UAAU;IAC1B,oBAAoB,UAAU;IAC9B,mBAAmB,UAAU;IAC7B,8BAA8B,UAAU;IACxC,0BAA0B,UAAU;IACpC,kCAAkC,UAAU;IAC5C,aAAa,UAAU;IACvB,eAAe,UAAU;IACzB,aAAa,UAAU;IACvB,aAAa,UAAU;IACvB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,eAAe,UAAU;CAC1B"}