@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,274 @@
1
+ "use strict";
2
+ // See https://github.com/postgres/postgres/blob/master/src/backend/utils/errcodes.txt
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PostgresErrorCode = void 0;
5
+ var PostgresErrorCode;
6
+ (function (PostgresErrorCode) {
7
+ PostgresErrorCode["SUCCESSFUL_COMPLETION"] = "00000";
8
+ PostgresErrorCode["WARNING"] = "01000";
9
+ PostgresErrorCode["WARNING_DYNAMIC_RESULT_SETS_RETURNED"] = "0100C";
10
+ PostgresErrorCode["WARNING_IMPLICIT_ZERO_BIT_PADDING"] = "01008";
11
+ PostgresErrorCode["WARNING_NULL_VALUE_ELIMINATED_IN_SET_FUNCTION"] = "01003";
12
+ PostgresErrorCode["WARNING_PRIVILEGE_NOT_GRANTED"] = "01007";
13
+ PostgresErrorCode["WARNING_PRIVILEGE_NOT_REVOKED"] = "01006";
14
+ PostgresErrorCode["WARNING_STRING_DATA_RIGHT_TRUNCATION"] = "01004";
15
+ PostgresErrorCode["WARNING_DEPRECATED_FEATURE"] = "01P01";
16
+ PostgresErrorCode["NO_DATA"] = "02000";
17
+ PostgresErrorCode["NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED"] = "02001";
18
+ PostgresErrorCode["SQL_STATEMENT_NOT_YET_COMPLETE"] = "03000";
19
+ PostgresErrorCode["CONNECTION_EXCEPTION"] = "08000";
20
+ PostgresErrorCode["CONNECTION_DOES_NOT_EXIST"] = "08003";
21
+ PostgresErrorCode["CONNECTION_FAILURE"] = "08006";
22
+ PostgresErrorCode["SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION"] = "08001";
23
+ PostgresErrorCode["SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION"] = "08004";
24
+ PostgresErrorCode["TRANSACTION_RESOLUTION_UNKNOWN"] = "08007";
25
+ PostgresErrorCode["PROTOCOL_VIOLATION"] = "08P01";
26
+ PostgresErrorCode["TRIGGERED_ACTION_EXCEPTION"] = "09000";
27
+ PostgresErrorCode["FEATURE_NOT_SUPPORTED"] = "0A000";
28
+ PostgresErrorCode["INVALID_TRANSACTION_INITIATION"] = "0B000";
29
+ PostgresErrorCode["LOCATOR_EXCEPTION"] = "0F000";
30
+ PostgresErrorCode["L_E_INVALID_SPECIFICATION"] = "0F001";
31
+ PostgresErrorCode["INVALID_GRANTOR"] = "0L000";
32
+ PostgresErrorCode["INVALID_GRANT_OPERATION"] = "0LP01";
33
+ PostgresErrorCode["INVALID_ROLE_SPECIFICATION"] = "0P000";
34
+ PostgresErrorCode["DIAGNOSTICS_EXCEPTION"] = "0Z000";
35
+ PostgresErrorCode["STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER"] = "0Z002";
36
+ PostgresErrorCode["CASE_NOT_FOUND"] = "20000";
37
+ PostgresErrorCode["CARDINALITY_VIOLATION"] = "21000";
38
+ PostgresErrorCode["DATA_EXCEPTION"] = "22000";
39
+ PostgresErrorCode["ARRAY_ELEMENT_ERROR"] = "2202E";
40
+ PostgresErrorCode["ARRAY_SUBSCRIPT_ERROR"] = "2202E";
41
+ PostgresErrorCode["CHARACTER_NOT_IN_REPERTOIRE"] = "22021";
42
+ PostgresErrorCode["DATETIME_FIELD_OVERFLOW"] = "22008";
43
+ PostgresErrorCode["DATETIME_VALUE_OUT_OF_RANGE"] = "22008";
44
+ PostgresErrorCode["DIVISION_BY_ZERO"] = "22012";
45
+ PostgresErrorCode["ERROR_IN_ASSIGNMENT"] = "22005";
46
+ PostgresErrorCode["ESCAPE_CHARACTER_CONFLICT"] = "2200B";
47
+ PostgresErrorCode["INDICATOR_OVERFLOW"] = "22022";
48
+ PostgresErrorCode["INTERVAL_FIELD_OVERFLOW"] = "22015";
49
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_LOG"] = "2201E";
50
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_NTILE"] = "22014";
51
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_NTH_VALUE"] = "22016";
52
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_POWER_FUNCTION"] = "2201F";
53
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION"] = "2201G";
54
+ PostgresErrorCode["INVALID_CHARACTER_VALUE_FOR_CAST"] = "22018";
55
+ PostgresErrorCode["INVALID_DATETIME_FORMAT"] = "22007";
56
+ PostgresErrorCode["INVALID_ESCAPE_CHARACTER"] = "22019";
57
+ PostgresErrorCode["INVALID_ESCAPE_OCTET"] = "2200D";
58
+ PostgresErrorCode["INVALID_ESCAPE_SEQUENCE"] = "22025";
59
+ PostgresErrorCode["NONSTANDARD_USE_OF_ESCAPE_CHARACTER"] = "22P06";
60
+ PostgresErrorCode["INVALID_INDICATOR_PARAMETER_VALUE"] = "22010";
61
+ PostgresErrorCode["INVALID_PARAMETER_VALUE"] = "22023";
62
+ PostgresErrorCode["INVALID_PRECEDING_OR_FOLLOWING_SIZE"] = "22013";
63
+ PostgresErrorCode["INVALID_REGULAR_EXPRESSION"] = "2201B";
64
+ PostgresErrorCode["INVALID_ROW_COUNT_IN_LIMIT_CLAUSE"] = "2201W";
65
+ PostgresErrorCode["INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE"] = "2201X";
66
+ PostgresErrorCode["INVALID_TABLESAMPLE_ARGUMENT"] = "2202H";
67
+ PostgresErrorCode["INVALID_TABLESAMPLE_REPEAT"] = "2202G";
68
+ PostgresErrorCode["INVALID_TIME_ZONE_DISPLACEMENT_VALUE"] = "22009";
69
+ PostgresErrorCode["INVALID_USE_OF_ESCAPE_CHARACTER"] = "2200C";
70
+ PostgresErrorCode["MOST_SPECIFIC_TYPE_MISMATCH"] = "2200G";
71
+ PostgresErrorCode["NULL_VALUE_NOT_ALLOWED"] = "22004";
72
+ PostgresErrorCode["NULL_VALUE_NO_INDICATOR_PARAMETER"] = "22002";
73
+ PostgresErrorCode["NUMERIC_VALUE_OUT_OF_RANGE"] = "22003";
74
+ PostgresErrorCode["SEQUENCE_GENERATOR_LIMIT_EXCEEDED"] = "2200H";
75
+ PostgresErrorCode["STRING_DATA_LENGTH_MISMATCH"] = "22026";
76
+ PostgresErrorCode["STRING_DATA_RIGHT_TRUNCATION"] = "22001";
77
+ PostgresErrorCode["SUBSTRING_ERROR"] = "22011";
78
+ PostgresErrorCode["TRIM_ERROR"] = "22027";
79
+ PostgresErrorCode["UNTERMINATED_C_STRING"] = "22024";
80
+ PostgresErrorCode["ZERO_LENGTH_CHARACTER_STRING"] = "2200F";
81
+ PostgresErrorCode["FLOATING_POINT_EXCEPTION"] = "22P01";
82
+ PostgresErrorCode["INVALID_TEXT_REPRESENTATION"] = "22P02";
83
+ PostgresErrorCode["INVALID_BINARY_REPRESENTATION"] = "22P03";
84
+ PostgresErrorCode["BAD_COPY_FILE_FORMAT"] = "22P04";
85
+ PostgresErrorCode["UNTRANSLATABLE_CHARACTER"] = "22P05";
86
+ PostgresErrorCode["NOT_AN_XML_DOCUMENT"] = "2200L";
87
+ PostgresErrorCode["INVALID_XML_DOCUMENT"] = "2200M";
88
+ PostgresErrorCode["INVALID_XML_CONTENT"] = "2200N";
89
+ PostgresErrorCode["INVALID_XML_COMMENT"] = "2200S";
90
+ PostgresErrorCode["INVALID_XML_PROCESSING_INSTRUCTION"] = "2200T";
91
+ PostgresErrorCode["DUPLICATE_JSON_OBJECT_KEY_VALUE"] = "22030";
92
+ PostgresErrorCode["INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION"] = "22031";
93
+ PostgresErrorCode["INVALID_JSON_TEXT"] = "22032";
94
+ PostgresErrorCode["INVALID_SQL_JSON_SUBSCRIPT"] = "22033";
95
+ PostgresErrorCode["MORE_THAN_ONE_SQL_JSON_ITEM"] = "22034";
96
+ PostgresErrorCode["NO_SQL_JSON_ITEM"] = "22035";
97
+ PostgresErrorCode["NON_NUMERIC_SQL_JSON_ITEM"] = "22036";
98
+ PostgresErrorCode["NON_UNIQUE_KEYS_IN_A_JSON_OBJECT"] = "22037";
99
+ PostgresErrorCode["SINGLETON_SQL_JSON_ITEM_REQUIRED"] = "22038";
100
+ PostgresErrorCode["SQL_JSON_ARRAY_NOT_FOUND"] = "22039";
101
+ PostgresErrorCode["SQL_JSON_MEMBER_NOT_FOUND"] = "2203A";
102
+ PostgresErrorCode["SQL_JSON_NUMBER_NOT_FOUND"] = "2203B";
103
+ PostgresErrorCode["SQL_JSON_OBJECT_NOT_FOUND"] = "2203C";
104
+ PostgresErrorCode["TOO_MANY_JSON_ARRAY_ELEMENTS"] = "2203D";
105
+ PostgresErrorCode["TOO_MANY_JSON_OBJECT_MEMBERS"] = "2203E";
106
+ PostgresErrorCode["SQL_JSON_SCALAR_REQUIRED"] = "2203F";
107
+ PostgresErrorCode["SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE"] = "2203G";
108
+ PostgresErrorCode["INTEGRITY_CONSTRAINT_VIOLATION"] = "23000";
109
+ PostgresErrorCode["RESTRICT_VIOLATION"] = "23001";
110
+ PostgresErrorCode["NOT_NULL_VIOLATION"] = "23502";
111
+ PostgresErrorCode["FOREIGN_KEY_VIOLATION"] = "23503";
112
+ PostgresErrorCode["UNIQUE_VIOLATION"] = "23505";
113
+ PostgresErrorCode["CHECK_VIOLATION"] = "23514";
114
+ PostgresErrorCode["EXCLUSION_VIOLATION"] = "23P01";
115
+ PostgresErrorCode["INVALID_CURSOR_STATE"] = "24000";
116
+ PostgresErrorCode["INVALID_TRANSACTION_STATE"] = "25000";
117
+ PostgresErrorCode["ACTIVE_SQL_TRANSACTION"] = "25001";
118
+ PostgresErrorCode["BRANCH_TRANSACTION_ALREADY_ACTIVE"] = "25002";
119
+ PostgresErrorCode["HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL"] = "25008";
120
+ PostgresErrorCode["INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION"] = "25003";
121
+ PostgresErrorCode["INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION"] = "25004";
122
+ PostgresErrorCode["NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION"] = "25005";
123
+ PostgresErrorCode["READ_ONLY_SQL_TRANSACTION"] = "25006";
124
+ PostgresErrorCode["SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED"] = "25007";
125
+ PostgresErrorCode["NO_ACTIVE_SQL_TRANSACTION"] = "25P01";
126
+ PostgresErrorCode["IN_FAILED_SQL_TRANSACTION"] = "25P02";
127
+ PostgresErrorCode["IDLE_IN_TRANSACTION_SESSION_TIMEOUT"] = "25P03";
128
+ PostgresErrorCode["INVALID_SQL_STATEMENT_NAME"] = "26000";
129
+ PostgresErrorCode["TRIGGERED_DATA_CHANGE_VIOLATION"] = "27000";
130
+ PostgresErrorCode["INVALID_AUTHORIZATION_SPECIFICATION"] = "28000";
131
+ PostgresErrorCode["INVALID_PASSWORD"] = "28P01";
132
+ PostgresErrorCode["DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST"] = "2B000";
133
+ PostgresErrorCode["DEPENDENT_OBJECTS_STILL_EXIST"] = "2BP01";
134
+ PostgresErrorCode["INVALID_TRANSACTION_TERMINATION"] = "2D000";
135
+ PostgresErrorCode["SQL_ROUTINE_EXCEPTION"] = "2F000";
136
+ PostgresErrorCode["S_R_E_FUNCTION_EXECUTED_NO_RETURN_STATEMENT"] = "2F005";
137
+ PostgresErrorCode["S_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED"] = "2F002";
138
+ PostgresErrorCode["S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED"] = "2F003";
139
+ PostgresErrorCode["S_R_E_READING_SQL_DATA_NOT_PERMITTED"] = "2F004";
140
+ PostgresErrorCode["INVALID_CURSOR_NAME"] = "34000";
141
+ PostgresErrorCode["EXTERNAL_ROUTINE_EXCEPTION"] = "38000";
142
+ PostgresErrorCode["E_R_E_CONTAINING_SQL_NOT_PERMITTED"] = "38001";
143
+ PostgresErrorCode["E_R_E_MODIFYING_SQL_DATA_NOT_PERMITTED"] = "38002";
144
+ PostgresErrorCode["E_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED"] = "38003";
145
+ PostgresErrorCode["E_R_E_READING_SQL_DATA_NOT_PERMITTED"] = "38004";
146
+ PostgresErrorCode["EXTERNAL_ROUTINE_INVOCATION_EXCEPTION"] = "39000";
147
+ PostgresErrorCode["E_R_I_E_INVALID_SQLSTATE_RETURNED"] = "39001";
148
+ PostgresErrorCode["E_R_I_E_NULL_VALUE_NOT_ALLOWED"] = "39004";
149
+ PostgresErrorCode["E_R_I_E_TRIGGER_PROTOCOL_VIOLATED"] = "39P01";
150
+ PostgresErrorCode["E_R_I_E_SRF_PROTOCOL_VIOLATED"] = "39P02";
151
+ PostgresErrorCode["E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED"] = "39P03";
152
+ PostgresErrorCode["SAVEPOINT_EXCEPTION"] = "3B000";
153
+ PostgresErrorCode["S_E_INVALID_SPECIFICATION"] = "3B001";
154
+ PostgresErrorCode["INVALID_CATALOG_NAME"] = "3D000";
155
+ PostgresErrorCode["INVALID_SCHEMA_NAME"] = "3F000";
156
+ PostgresErrorCode["TRANSACTION_ROLLBACK"] = "40000";
157
+ PostgresErrorCode["T_R_INTEGRITY_CONSTRAINT_VIOLATION"] = "40002";
158
+ PostgresErrorCode["T_R_SERIALIZATION_FAILURE"] = "40001";
159
+ PostgresErrorCode["T_R_STATEMENT_COMPLETION_UNKNOWN"] = "40003";
160
+ PostgresErrorCode["T_R_DEADLOCK_DETECTED"] = "40P01";
161
+ PostgresErrorCode["SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION"] = "42000";
162
+ PostgresErrorCode["SYNTAX_ERROR"] = "42601";
163
+ PostgresErrorCode["INSUFFICIENT_PRIVILEGE"] = "42501";
164
+ PostgresErrorCode["CANNOT_COERCE"] = "42846";
165
+ PostgresErrorCode["GROUPING_ERROR"] = "42803";
166
+ PostgresErrorCode["WINDOWING_ERROR"] = "42P20";
167
+ PostgresErrorCode["INVALID_RECURSION"] = "42P19";
168
+ PostgresErrorCode["INVALID_FOREIGN_KEY"] = "42830";
169
+ PostgresErrorCode["INVALID_NAME"] = "42602";
170
+ PostgresErrorCode["NAME_TOO_LONG"] = "42622";
171
+ PostgresErrorCode["RESERVED_NAME"] = "42939";
172
+ PostgresErrorCode["DATATYPE_MISMATCH"] = "42804";
173
+ PostgresErrorCode["INDETERMINATE_DATATYPE"] = "42P18";
174
+ PostgresErrorCode["COLLATION_MISMATCH"] = "42P21";
175
+ PostgresErrorCode["INDETERMINATE_COLLATION"] = "42P22";
176
+ PostgresErrorCode["WRONG_OBJECT_TYPE"] = "42809";
177
+ PostgresErrorCode["GENERATED_ALWAYS"] = "428C9";
178
+ PostgresErrorCode["UNDEFINED_COLUMN"] = "42703";
179
+ PostgresErrorCode["UNDEFINED_CURSOR"] = "34000";
180
+ PostgresErrorCode["UNDEFINED_DATABASE"] = "3D000";
181
+ PostgresErrorCode["UNDEFINED_FUNCTION"] = "42883";
182
+ PostgresErrorCode["UNDEFINED_PSTATEMENT"] = "26000";
183
+ PostgresErrorCode["UNDEFINED_SCHEMA"] = "3F000";
184
+ PostgresErrorCode["UNDEFINED_TABLE"] = "42P01";
185
+ PostgresErrorCode["UNDEFINED_PARAMETER"] = "42P02";
186
+ PostgresErrorCode["UNDEFINED_OBJECT"] = "42704";
187
+ PostgresErrorCode["DUPLICATE_COLUMN"] = "42701";
188
+ PostgresErrorCode["DUPLICATE_CURSOR"] = "42P03";
189
+ PostgresErrorCode["DUPLICATE_DATABASE"] = "42P04";
190
+ PostgresErrorCode["DUPLICATE_FUNCTION"] = "42723";
191
+ PostgresErrorCode["DUPLICATE_PSTATEMENT"] = "42P05";
192
+ PostgresErrorCode["DUPLICATE_SCHEMA"] = "42P06";
193
+ PostgresErrorCode["DUPLICATE_TABLE"] = "42P07";
194
+ PostgresErrorCode["DUPLICATE_ALIAS"] = "42712";
195
+ PostgresErrorCode["DUPLICATE_OBJECT"] = "42710";
196
+ PostgresErrorCode["AMBIGUOUS_COLUMN"] = "42702";
197
+ PostgresErrorCode["AMBIGUOUS_FUNCTION"] = "42725";
198
+ PostgresErrorCode["AMBIGUOUS_PARAMETER"] = "42P08";
199
+ PostgresErrorCode["AMBIGUOUS_ALIAS"] = "42P09";
200
+ PostgresErrorCode["INVALID_COLUMN_REFERENCE"] = "42P10";
201
+ PostgresErrorCode["INVALID_COLUMN_DEFINITION"] = "42611";
202
+ PostgresErrorCode["INVALID_CURSOR_DEFINITION"] = "42P11";
203
+ PostgresErrorCode["INVALID_DATABASE_DEFINITION"] = "42P12";
204
+ PostgresErrorCode["INVALID_FUNCTION_DEFINITION"] = "42P13";
205
+ PostgresErrorCode["INVALID_PSTATEMENT_DEFINITION"] = "42P14";
206
+ PostgresErrorCode["INVALID_SCHEMA_DEFINITION"] = "42P15";
207
+ PostgresErrorCode["INVALID_TABLE_DEFINITION"] = "42P16";
208
+ PostgresErrorCode["INVALID_OBJECT_DEFINITION"] = "42P17";
209
+ PostgresErrorCode["WITH_CHECK_OPTION_VIOLATION"] = "44000";
210
+ PostgresErrorCode["INSUFFICIENT_RESOURCES"] = "53000";
211
+ PostgresErrorCode["DISK_FULL"] = "53100";
212
+ PostgresErrorCode["OUT_OF_MEMORY"] = "53200";
213
+ PostgresErrorCode["TOO_MANY_CONNECTIONS"] = "53300";
214
+ PostgresErrorCode["CONFIGURATION_LIMIT_EXCEEDED"] = "53400";
215
+ PostgresErrorCode["PROGRAM_LIMIT_EXCEEDED"] = "54000";
216
+ PostgresErrorCode["STATEMENT_TOO_COMPLEX"] = "54001";
217
+ PostgresErrorCode["TOO_MANY_COLUMNS"] = "54011";
218
+ PostgresErrorCode["TOO_MANY_ARGUMENTS"] = "54023";
219
+ PostgresErrorCode["OBJECT_NOT_IN_PREREQUISITE_STATE"] = "55000";
220
+ PostgresErrorCode["OBJECT_IN_USE"] = "55006";
221
+ PostgresErrorCode["CANT_CHANGE_RUNTIME_PARAM"] = "55P02";
222
+ PostgresErrorCode["LOCK_NOT_AVAILABLE"] = "55P03";
223
+ PostgresErrorCode["UNSAFE_NEW_ENUM_VALUE_USAGE"] = "55P04";
224
+ PostgresErrorCode["OPERATOR_INTERVENTION"] = "57000";
225
+ PostgresErrorCode["QUERY_CANCELED"] = "57014";
226
+ PostgresErrorCode["ADMIN_SHUTDOWN"] = "57P01";
227
+ PostgresErrorCode["CRASH_SHUTDOWN"] = "57P02";
228
+ PostgresErrorCode["CANNOT_CONNECT_NOW"] = "57P03";
229
+ PostgresErrorCode["DATABASE_DROPPED"] = "57P04";
230
+ PostgresErrorCode["IDLE_SESSION_TIMEOUT"] = "57P05";
231
+ PostgresErrorCode["SYSTEM_ERROR"] = "58000";
232
+ PostgresErrorCode["IO_ERROR"] = "58030";
233
+ PostgresErrorCode["UNDEFINED_FILE"] = "58P01";
234
+ PostgresErrorCode["DUPLICATE_FILE"] = "58P02";
235
+ PostgresErrorCode["SNAPSHOT_TOO_OLD"] = "72000";
236
+ PostgresErrorCode["CONFIG_FILE_ERROR"] = "F0000";
237
+ PostgresErrorCode["LOCK_FILE_EXISTS"] = "F0001";
238
+ PostgresErrorCode["FDW_ERROR"] = "HV000";
239
+ PostgresErrorCode["FDW_COLUMN_NAME_NOT_FOUND"] = "HV005";
240
+ PostgresErrorCode["FDW_DYNAMIC_PARAMETER_VALUE_NEEDED"] = "HV002";
241
+ PostgresErrorCode["FDW_FUNCTION_SEQUENCE_ERROR"] = "HV010";
242
+ PostgresErrorCode["FDW_INCONSISTENT_DESCRIPTOR_INFORMATION"] = "HV021";
243
+ PostgresErrorCode["FDW_INVALID_ATTRIBUTE_VALUE"] = "HV024";
244
+ PostgresErrorCode["FDW_INVALID_COLUMN_NAME"] = "HV007";
245
+ PostgresErrorCode["FDW_INVALID_COLUMN_NUMBER"] = "HV008";
246
+ PostgresErrorCode["FDW_INVALID_DATA_TYPE"] = "HV004";
247
+ PostgresErrorCode["FDW_INVALID_DATA_TYPE_DESCRIPTORS"] = "HV006";
248
+ PostgresErrorCode["FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER"] = "HV091";
249
+ PostgresErrorCode["FDW_INVALID_HANDLE"] = "HV00B";
250
+ PostgresErrorCode["FDW_INVALID_OPTION_INDEX"] = "HV00C";
251
+ PostgresErrorCode["FDW_INVALID_OPTION_NAME"] = "HV00D";
252
+ PostgresErrorCode["FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH"] = "HV090";
253
+ PostgresErrorCode["FDW_INVALID_STRING_FORMAT"] = "HV00A";
254
+ PostgresErrorCode["FDW_INVALID_USE_OF_NULL_POINTER"] = "HV009";
255
+ PostgresErrorCode["FDW_TOO_MANY_HANDLES"] = "HV014";
256
+ PostgresErrorCode["FDW_OUT_OF_MEMORY"] = "HV001";
257
+ PostgresErrorCode["FDW_NO_SCHEMAS"] = "HV00P";
258
+ PostgresErrorCode["FDW_OPTION_NAME_NOT_FOUND"] = "HV00J";
259
+ PostgresErrorCode["FDW_REPLY_HANDLE"] = "HV00K";
260
+ PostgresErrorCode["FDW_SCHEMA_NOT_FOUND"] = "HV00Q";
261
+ PostgresErrorCode["FDW_TABLE_NOT_FOUND"] = "HV00R";
262
+ PostgresErrorCode["FDW_UNABLE_TO_CREATE_EXECUTION"] = "HV00L";
263
+ PostgresErrorCode["FDW_UNABLE_TO_CREATE_REPLY"] = "HV00M";
264
+ PostgresErrorCode["FDW_UNABLE_TO_ESTABLISH_CONNECTION"] = "HV00N";
265
+ PostgresErrorCode["PLPGSQL_ERROR"] = "P0000";
266
+ PostgresErrorCode["RAISE_EXCEPTION"] = "P0001";
267
+ PostgresErrorCode["NO_DATA_FOUND"] = "P0002";
268
+ PostgresErrorCode["TOO_MANY_ROWS"] = "P0003";
269
+ PostgresErrorCode["ASSERT_FAILURE"] = "P0004";
270
+ PostgresErrorCode["INTERNAL_ERROR"] = "XX000";
271
+ PostgresErrorCode["DATA_CORRUPTED"] = "XX001";
272
+ PostgresErrorCode["INDEX_CORRUPTED"] = "XX002";
273
+ })(PostgresErrorCode = exports.PostgresErrorCode || (exports.PostgresErrorCode = {}));
274
+ //# sourceMappingURL=PostgresErrorCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresErrorCodes.js","sourceRoot":"","sources":["../src/PostgresErrorCodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Repository } from './AbstractRepository';
2
+ export type Repositories = Record<string, Repository<any>>;
3
+ //# sourceMappingURL=Repositories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repositories.d.ts","sourceRoot":"","sources":["../src/Repositories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repositories.js","sourceRoot":"","sources":["../src/Repositories.ts"],"names":[],"mappings":""}
@@ -0,0 +1,162 @@
1
+ import { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
2
+ import { Transaction, DynamoDbManager } from '..';
3
+ interface Reader<T> {
4
+ queryItems(partialItem: Partial<T>, useSortKey?: boolean, index?: keyof TableIndexes): Promise<T[]>;
5
+ getItem(id: string | Partial<T>): Promise<T | undefined>;
6
+ }
7
+ interface Writer<T> {
8
+ createItem(item: Partial<T>): Promise<T>;
9
+ updateItem(partialItem: Partial<T>, newValue: Partial<T>): Promise<T | undefined>;
10
+ deleteItem(partialItem: Partial<T>): Promise<number>;
11
+ }
12
+ type Repository<T> = Reader<T> & Writer<T>;
13
+ type Repositories = Record<string, Repository<any>>;
14
+ export type TableKeys = {
15
+ pk: {
16
+ attributeName: string;
17
+ format: string;
18
+ };
19
+ sk: {
20
+ attributeName: string;
21
+ format: string;
22
+ };
23
+ };
24
+ export type TableIndexes = Record<string, TableKeys>;
25
+ export type KeysFormat = Record<keyof TableKeys | keyof TableIndexes, string>;
26
+ export type EntityDefinition = {
27
+ keys: TableKeys;
28
+ indexes: TableIndexes;
29
+ fieldsAsJsonString: string[];
30
+ };
31
+ export declare abstract class AbstractDynamoDbRepository<SHAPE extends object, DATA_CLASS extends SHAPE> implements Reader<SHAPE>, Writer<SHAPE> {
32
+ protected tableName: string;
33
+ protected dbManager: DynamoDbManager<Repositories>;
34
+ protected entityName: string;
35
+ protected entityDefinition: EntityDefinition;
36
+ protected classRef: {
37
+ new (data?: Record<string, unknown>): DATA_CLASS;
38
+ };
39
+ protected client: DynamoDBDocument;
40
+ protected keys: TableKeys;
41
+ protected indexes: TableIndexes;
42
+ protected keysFormat: KeysFormat;
43
+ protected fieldsAsJsonString: string[];
44
+ constructor(tableName: string, dbManager: DynamoDbManager<Repositories>, entityName: string, entityDefinition: EntityDefinition, classRef: {
45
+ new (data?: Record<string, unknown>): DATA_CLASS;
46
+ });
47
+ /**
48
+ * Get the single item matching the key fields value in the given
49
+ * partial item. Will throw MissingKeyValuesError if key field values
50
+ * are missing
51
+ *
52
+ * @param item
53
+ *
54
+ * @throws MissingKeyValuesError
55
+ */
56
+ getItem(item: Partial<SHAPE>): Promise<DATA_CLASS | undefined>;
57
+ /**
58
+ * Finds all the items matching the partition key or
59
+ * the gsi key (when gsi index name is specified)
60
+ *
61
+ * @param item
62
+ * @param useSortKey
63
+ * @param index
64
+ * @throws MissingKeyValuesError
65
+ */
66
+ queryItems(item: Partial<SHAPE>, useSortKey?: boolean, index?: keyof TableIndexes): Promise<DATA_CLASS[]>;
67
+ /**
68
+ * Update the existing item matching the key fields value
69
+ * in the passed in partialItem
70
+ * @param partialItem
71
+ * @param newValue
72
+ * @param transaction
73
+ *
74
+ * @returns Promise<SHAPE | undefined>
75
+ * @throws MissingKeyValuesError
76
+ */
77
+ updateItem(partialItem: Partial<SHAPE>, newValue: Exclude<Partial<SHAPE>, Record<string, never>>, transaction?: Transaction): Promise<DATA_CLASS | undefined>;
78
+ /**
79
+ * Adds new item to the table
80
+ *
81
+ * @param value
82
+ * @param transaction
83
+ *
84
+ * @returns Promise<SHAPE>
85
+ * @throws DuplicateItemError
86
+ * @throws MissingKeyValuesError
87
+ */
88
+ createItem(value: DATA_CLASS, transaction?: Transaction): Promise<DATA_CLASS>;
89
+ /**
90
+ * Deletes an item from the table
91
+ *
92
+ * @param partialItem
93
+ * @param transaction
94
+ * @returns number
95
+ * @throw MissingKeyValuesError
96
+ */
97
+ deleteItem(partialItem: Partial<SHAPE>, transaction?: Transaction): Promise<number>;
98
+ /**
99
+ * Return repo model object from the db value
100
+ * @param item
101
+ * @returns
102
+ */
103
+ protected hydrateItem(item: Record<string, unknown>): DATA_CLASS;
104
+ protected convertSelectedValuesToJsonString(item: Record<string, unknown>): void;
105
+ /**
106
+ * Evaluate the partition key value from the partial item
107
+ * @param item
108
+ * @returns string
109
+ * @throw MissingKeyValuesError
110
+ */
111
+ protected getPk(item: Partial<SHAPE>): string;
112
+ /**
113
+ * Evaluate the sort key value from the partial item
114
+ * @param item
115
+ * @returns string
116
+ *
117
+ * @throw MissingKeyValuesError
118
+ */
119
+ protected getSk(item: Partial<SHAPE>): string;
120
+ /**
121
+ * Evaluate the key value from the
122
+ *
123
+ * Example 1:
124
+ * Input:
125
+ * - item: {id: foo, name: 'some-name' }
126
+ * - attributeName: pk
127
+ * - this.keysFormat = { pk: 'item#{id}', 'sk': '#meta', ... }
128
+ * Output:
129
+ * - 'item#foo'
130
+ *
131
+ * Example 2:
132
+ * Input:
133
+ * - item: {id: foo, name: 'some-name', itemType: 'A' }
134
+ * - attributeName: sk
135
+ * - this.keysFormat = { pk: 'item#{id}', 'sk': 'type#{itemType}', ... }
136
+ * Output:
137
+ * - 'type#A'
138
+ *
139
+ * Example 3:
140
+ * Input:
141
+ * - item: {id: foo, name: 'some-name' }
142
+ * - attributeName: sk
143
+ * - this.keysFormat = { pk: 'item#{id}', 'sk': 'name-type#{itemType}{name}', ... }
144
+ * Output:
145
+ * - Error: "Key field "itemType" must be specified in the input item"
146
+ *
147
+ * @param item
148
+ * @param attributeName
149
+ *
150
+ * @returns string
151
+ * @throw MissingKeyValuesError
152
+ */
153
+ protected getKey(item: Partial<SHAPE>, attributeName: keyof KeysFormat): string;
154
+ /**
155
+ * Validate the data matches with "DATA_MODEL"
156
+ * @param value
157
+ * @return void
158
+ */
159
+ private assertValueMatchesModel;
160
+ }
161
+ export {};
162
+ //# sourceMappingURL=AbstractDynamoDbRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractDynamoDbRepository.d.ts","sourceRoot":"","sources":["../../src/dynamodb/AbstractDynamoDbRepository.ts"],"names":[],"mappings":"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"}