@rvoh/dream 2.5.0 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/cjs/src/Dream.js +0 -9
  2. package/dist/cjs/src/decorators/field/Encrypted.js +2 -1
  3. package/dist/cjs/src/helpers/db/columnAllowsNull.js +3 -0
  4. package/dist/cjs/src/helpers/db/normalizeDataForDb.js +2 -1
  5. package/dist/cjs/src/helpers/db/types/isDatabaseArrayColumn.js +2 -1
  6. package/dist/cjs/src/helpers/db/types/isDatetimeOrDatetimeArrayColumn.js +2 -1
  7. package/dist/cjs/src/helpers/db/types/isJsonColumn.js +2 -1
  8. package/dist/cjs/src/ops/index.js +2 -1
  9. package/dist/esm/src/Dream.js +0 -9
  10. package/dist/esm/src/decorators/field/Encrypted.js +2 -1
  11. package/dist/esm/src/helpers/db/columnAllowsNull.js +3 -0
  12. package/dist/esm/src/helpers/db/normalizeDataForDb.js +2 -1
  13. package/dist/esm/src/helpers/db/types/isDatabaseArrayColumn.js +2 -1
  14. package/dist/esm/src/helpers/db/types/isDatetimeOrDatetimeArrayColumn.js +2 -1
  15. package/dist/esm/src/helpers/db/types/isJsonColumn.js +2 -1
  16. package/dist/esm/src/ops/index.js +2 -1
  17. package/dist/types/src/Dream.d.ts +0 -6
  18. package/dist/types/src/helpers/db/columnAllowsNull.d.ts +2 -0
  19. package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +2 -2
  20. package/dist/types/src/types/dream.d.ts +34 -0
  21. package/dist/types/src/types/dream.ts +46 -0
  22. package/dist/types/src/types/serializer.d.ts +4 -4
  23. package/dist/types/src/types/serializer.ts +4 -14
  24. package/dist/types/src/types/variadic.d.ts +15 -6
  25. package/dist/types/src/types/variadic.ts +129 -31
  26. package/docs/classes/db.DreamMigrationHelpers.html +9 -9
  27. package/docs/classes/db.KyselyQueryDriver.html +32 -32
  28. package/docs/classes/db.PostgresQueryDriver.html +33 -33
  29. package/docs/classes/db.QueryDriverBase.html +31 -31
  30. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  31. package/docs/classes/errors.ColumnOverflow.html +3 -3
  32. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  33. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  34. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  35. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  36. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  37. package/docs/classes/errors.InvalidClockTime.html +2 -2
  38. package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
  39. package/docs/classes/errors.InvalidDateTime.html +2 -2
  40. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  41. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  42. package/docs/classes/errors.NotNullViolation.html +3 -3
  43. package/docs/classes/errors.RecordNotFound.html +3 -3
  44. package/docs/classes/errors.ValidationError.html +3 -3
  45. package/docs/classes/index.CalendarDate.html +33 -33
  46. package/docs/classes/index.ClockTime.html +32 -32
  47. package/docs/classes/index.ClockTimeTz.html +35 -35
  48. package/docs/classes/index.DateTime.html +86 -86
  49. package/docs/classes/index.Decorators.html +19 -19
  50. package/docs/classes/index.Dream.html +118 -118
  51. package/docs/classes/index.DreamApp.html +5 -5
  52. package/docs/classes/index.DreamTransaction.html +2 -2
  53. package/docs/classes/index.Env.html +2 -2
  54. package/docs/classes/index.Query.html +56 -56
  55. package/docs/classes/system.CliFileWriter.html +4 -4
  56. package/docs/classes/system.DreamBin.html +2 -2
  57. package/docs/classes/system.DreamCLI.html +6 -6
  58. package/docs/classes/system.DreamImporter.html +2 -2
  59. package/docs/classes/system.DreamLogos.html +2 -2
  60. package/docs/classes/system.DreamSerializerBuilder.html +13 -13
  61. package/docs/classes/system.ObjectSerializerBuilder.html +8 -8
  62. package/docs/classes/system.PathHelpers.html +3 -3
  63. package/docs/classes/utils.Encrypt.html +2 -2
  64. package/docs/classes/utils.Range.html +2 -2
  65. package/docs/functions/db.closeAllDbConnections.html +1 -1
  66. package/docs/functions/db.dreamDbConnections.html +1 -1
  67. package/docs/functions/db.untypedDb.html +1 -1
  68. package/docs/functions/db.validateColumn.html +1 -1
  69. package/docs/functions/db.validateTable.html +1 -1
  70. package/docs/functions/errors.pgErrorType.html +1 -1
  71. package/docs/functions/index.DreamSerializer.html +1 -1
  72. package/docs/functions/index.ObjectSerializer.html +1 -1
  73. package/docs/functions/index.ReplicaSafe.html +1 -1
  74. package/docs/functions/index.STI.html +1 -1
  75. package/docs/functions/index.SoftDelete.html +1 -1
  76. package/docs/functions/utils.camelize.html +1 -1
  77. package/docs/functions/utils.capitalize.html +1 -1
  78. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  79. package/docs/functions/utils.compact.html +1 -1
  80. package/docs/functions/utils.groupBy.html +1 -1
  81. package/docs/functions/utils.hyphenize.html +1 -1
  82. package/docs/functions/utils.intersection.html +1 -1
  83. package/docs/functions/utils.isEmpty.html +1 -1
  84. package/docs/functions/utils.normalizeUnicode.html +1 -1
  85. package/docs/functions/utils.pascalize.html +1 -1
  86. package/docs/functions/utils.percent.html +1 -1
  87. package/docs/functions/utils.range.html +1 -1
  88. package/docs/functions/utils.round.html +1 -1
  89. package/docs/functions/utils.sanitizeString.html +1 -1
  90. package/docs/functions/utils.snakeify.html +1 -1
  91. package/docs/functions/utils.sort.html +1 -1
  92. package/docs/functions/utils.sortBy.html +1 -1
  93. package/docs/functions/utils.sortObjectByKey.html +1 -1
  94. package/docs/functions/utils.sortObjectByValue.html +1 -1
  95. package/docs/functions/utils.uncapitalize.html +1 -1
  96. package/docs/functions/utils.uniq.html +1 -1
  97. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  98. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  99. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  100. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  101. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  102. package/docs/interfaces/types.DecoratorContext.html +2 -2
  103. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  104. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  105. package/docs/interfaces/types.DurationObject.html +2 -2
  106. package/docs/interfaces/types.EncryptOptions.html +2 -2
  107. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  108. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  109. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  110. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  111. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  112. package/docs/types/openapi.OpenapiFormats.html +1 -1
  113. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  114. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  115. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  116. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  117. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  118. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  119. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  120. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  121. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  122. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +2 -2
  123. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +2 -2
  124. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +2 -2
  125. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +2 -2
  126. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +2 -2
  127. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  128. package/docs/types/openapi.OpenapiSchemaNull.html +2 -2
  129. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  130. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  131. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  132. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  133. package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +1 -1
  134. package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  135. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  136. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  137. package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +1 -1
  138. package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +1 -1
  139. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  140. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  141. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +2 -2
  142. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +2 -2
  143. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +2 -2
  144. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +2 -2
  145. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +2 -2
  146. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  147. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  148. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  149. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  150. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  151. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  152. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  153. package/docs/types/types.CalendarDateDurationUnit.html +1 -1
  154. package/docs/types/types.CalendarDateObject.html +1 -1
  155. package/docs/types/types.Camelized.html +1 -1
  156. package/docs/types/types.ClockTimeObject.html +1 -1
  157. package/docs/types/types.DbConnectionType.html +1 -1
  158. package/docs/types/types.DbTypes.html +1 -1
  159. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  160. package/docs/types/types.DreamAttributes.html +1 -1
  161. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  162. package/docs/types/types.DreamClassColumn.html +1 -1
  163. package/docs/types/types.DreamColumn.html +1 -1
  164. package/docs/types/types.DreamColumnNames.html +1 -1
  165. package/docs/types/types.DreamLogLevel.html +1 -1
  166. package/docs/types/types.DreamLogger.html +2 -2
  167. package/docs/types/types.DreamModelSerializerType.html +1 -1
  168. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  169. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  170. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  171. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  172. package/docs/types/types.DreamSerializable.html +1 -1
  173. package/docs/types/types.DreamSerializableArray.html +1 -1
  174. package/docs/types/types.DreamSerializerKey.html +1 -1
  175. package/docs/types/types.DreamSerializers.html +1 -1
  176. package/docs/types/types.DreamVirtualColumns.html +1 -1
  177. package/docs/types/types.DurationUnit.html +1 -1
  178. package/docs/types/types.EncryptAlgorithm.html +1 -1
  179. package/docs/types/types.HasManyStatement.html +1 -1
  180. package/docs/types/types.HasOneStatement.html +1 -1
  181. package/docs/types/types.Hyphenized.html +1 -1
  182. package/docs/types/types.Pascalized.html +1 -1
  183. package/docs/types/types.PrimaryKeyType.html +1 -1
  184. package/docs/types/types.RoundingPrecision.html +1 -1
  185. package/docs/types/types.SerializerCasing.html +1 -1
  186. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  187. package/docs/types/types.Snakeified.html +1 -1
  188. package/docs/types/types.StrictInterface.html +1 -1
  189. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  190. package/docs/types/types.UpdateableProperties.html +1 -1
  191. package/docs/types/types.ValidationType.html +1 -1
  192. package/docs/types/types.ViewModel.html +2 -2
  193. package/docs/types/types.ViewModelClass.html +1 -1
  194. package/docs/types/types.WeekdayName.html +1 -1
  195. package/docs/types/types.WhereStatementForDream.html +1 -1
  196. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  197. package/docs/variables/index.DreamConst.html +1 -1
  198. package/docs/variables/index.ops.html +1 -1
  199. package/docs/variables/openapi.openapiPrimitiveTypes.html +1 -1
  200. package/docs/variables/openapi.openapiShorthandPrimitiveTypes.html +1 -1
  201. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  202. package/docs/variables/system.primaryKeyTypes.html +1 -1
  203. package/package.json +1 -1
@@ -2,8 +2,10 @@ import Dream from '../Dream.js'
2
2
  import { Camelized } from '../helpers/stringCasing.js'
3
3
  import { AssociationTableNames } from './db.js'
4
4
  import {
5
+ AssociationNamesForAssociation,
5
6
  AssociationNamesForTable,
6
7
  AssociationTableName,
8
+ AssociationTableNamesForAssociation,
7
9
  DreamAssociationNameToAssociatedModel,
8
10
  JoinAndStatements,
9
11
  MAX_VARIADIC_DEPTH,
@@ -16,7 +18,21 @@ type INVALID = 'invalid'
16
18
  type IS_ASSOCIATION_ALIAS = 'association_alias'
17
19
  type IS_ASSOCIATION_NAME = 'association_name'
18
20
  type IS_NOT_ASSOCIATION_NAME = 'not_association_name'
21
+ type IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME = 'cross_polymorphic_association_name'
19
22
  type RecursionTypes = 'load' | 'leftJoinLoad' | 'join'
23
+
24
+ /**
25
+ * Given a union of table names and an association name, returns the
26
+ * specific table(s) from the union that have that association defined.
27
+ * Used when traversing through a polymorphic association to a descendant
28
+ * that only exists on one of the polymorphic targets.
29
+ */
30
+ type TableContainingAssociationInUnion<Schema, TableNamesUnion, AssociationName> =
31
+ TableNamesUnion extends keyof Schema
32
+ ? AssociationName extends keyof Schema[TableNamesUnion]['associations' & keyof Schema[TableNamesUnion]]
33
+ ? TableNamesUnion
34
+ : never
35
+ : never
20
36
  ///////////////////////////////
21
37
  // VARIADIC LOAD
22
38
  ///////////////////////////////
@@ -137,6 +153,9 @@ type VariadicCheckThenRecurse<
137
153
  LastDream extends Dream = I,
138
154
  //
139
155
  SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
156
+ AllowedNamesForArrayArg = PreviousConcreteTableName extends keyof Schema
157
+ ? AssociationNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName>
158
+ : keyof SchemaAssociations & string,
140
159
  NthArgument extends VALID | INVALID = ConcreteArgs['length'] extends 0
141
160
  ? VALID
142
161
  : ConcreteArgs[0] extends keyof SchemaAssociations & string
@@ -151,7 +170,19 @@ type VariadicCheckThenRecurse<
151
170
  RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>
152
171
  >
153
172
  ? VALID
154
- : INVALID,
173
+ : ConcreteArgs[0] extends readonly AllowedNamesForArrayArg[]
174
+ ? VALID
175
+ : ConcreteArgs[0] extends JoinAndStatements<
176
+ LastDream,
177
+ DB,
178
+ Schema,
179
+ ConcreteTableName,
180
+ RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>
181
+ >
182
+ ? VALID
183
+ : ConcreteArgs[0] extends AllowedNamesForArrayArg
184
+ ? VALID
185
+ : INVALID,
155
186
  > = NthArgument extends INVALID
156
187
  ? `invalid where clause in argument ${Inc<Depth>}`
157
188
  : ConcreteArgs['length'] extends 0
@@ -191,8 +222,37 @@ type VariadicRecurse<
191
222
  LastDream extends Dream,
192
223
  //
193
224
  SchemaAssociations = Schema[ConcreteTableName]['associations' & keyof Schema[ConcreteTableName]],
225
+ // Union of all table names reachable via the previous polymorphic association.
226
+ // When PreviousConcreteTableName is not a schema key (e.g. at depth 0), fall back to ConcreteTableName.
227
+ PolymorphicTableNamesUnion = PreviousConcreteTableName extends keyof Schema
228
+ ? AssociationTableNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName>
229
+ : ConcreteTableName,
230
+ // The specific table from the polymorphic union that owns the current arg as an association.
231
+ // Used when the arg is not directly on ConcreteTableName (i.e. cross-polymorphic traversal).
232
+ CrossPolymorphicTableForCurrentArg = ConcreteArgs[0] extends string
233
+ ? TableContainingAssociationInUnion<Schema, PolymorphicTableNamesUnion, ConcreteArgs[0]>
234
+ : never,
235
+ // The effective table for looking up the current arg's association:
236
+ // - ConcreteTableName when the arg is directly on it (normal case)
237
+ // - CrossPolymorphicTableForCurrentArg when the arg is on a different table in the polymorphic union
238
+ // Note: we use [T] extends [never] (non-distributive) to guard against CrossPolymorphicTableForCurrentArg
239
+ // being `never`, because `never extends X` is vacuously true and would cause EffectiveConcreteTableName
240
+ // to become `never` if we used a plain conditional.
241
+ EffectiveConcreteTableName extends keyof Schema &
242
+ AssociationTableNames<DB, Schema> &
243
+ keyof DB = ConcreteArgs[0] extends keyof SchemaAssociations & string
244
+ ? ConcreteTableName
245
+ : [CrossPolymorphicTableForCurrentArg] extends [never]
246
+ ? ConcreteTableName
247
+ : CrossPolymorphicTableForCurrentArg extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB
248
+ ? CrossPolymorphicTableForCurrentArg
249
+ : ConcreteTableName,
250
+ // Schema associations on the effective table (may differ from SchemaAssociations when cross-polymorphic).
251
+ EffectiveSchemaAssociations = Schema[EffectiveConcreteTableName]['associations' &
252
+ keyof Schema[EffectiveConcreteTableName]],
194
253
  ConcreteNthArg extends
195
254
  | (keyof SchemaAssociations & string)
255
+ | (keyof EffectiveSchemaAssociations & string)
196
256
  | AliasedSchemaAssociation<Schema, ConcreteTableName>
197
257
  | null = ConcreteArgs[0] extends undefined
198
258
  ? null
@@ -202,31 +262,38 @@ type VariadicRecurse<
202
262
  ? ConcreteArgs[0] & keyof SchemaAssociations & string
203
263
  : ConcreteArgs[0] extends AliasedSchemaAssociation<Schema, ConcreteTableName>
204
264
  ? ConcreteArgs[0] & AliasedSchemaAssociation<Schema, ConcreteTableName>
205
- : null,
265
+ : ConcreteArgs[0] extends keyof EffectiveSchemaAssociations & string
266
+ ? ConcreteArgs[0] & keyof EffectiveSchemaAssociations & string
267
+ : null,
206
268
  NextUsedNamespaces = ConcreteArgs[0] extends undefined
207
269
  ? never
208
270
  : ConcreteArgs[0] extends null
209
271
  ? never
210
- : ConcreteArgs[0] extends keyof SchemaAssociations & string
211
- ? UsedNamespaces | ConcreteNthArg
212
- : UsedNamespaces,
272
+ : ConcreteNthArg extends null
273
+ ? UsedNamespaces
274
+ : UsedNamespaces | ConcreteNthArg,
213
275
  //
214
276
  CurrentArgumentType extends
215
277
  | IS_ASSOCIATION_NAME
216
278
  | IS_ASSOCIATION_ALIAS
279
+ | IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
217
280
  | IS_NOT_ASSOCIATION_NAME = ConcreteNthArg extends null
218
281
  ? IS_NOT_ASSOCIATION_NAME
219
282
  : ConcreteNthArg extends keyof SchemaAssociations & string
220
283
  ? IS_ASSOCIATION_NAME
221
284
  : ConcreteNthArg extends AliasedSchemaAssociation<Schema, ConcreteTableName>
222
285
  ? IS_ASSOCIATION_ALIAS
223
- : IS_NOT_ASSOCIATION_NAME,
286
+ : ConcreteNthArg extends keyof EffectiveSchemaAssociations & string
287
+ ? IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
288
+ : IS_NOT_ASSOCIATION_NAME,
224
289
  //
225
290
  NextPreviousConcreteTableName = CurrentArgumentType extends IS_ASSOCIATION_NAME
226
291
  ? ConcreteTableName
227
292
  : CurrentArgumentType extends IS_ASSOCIATION_ALIAS
228
293
  ? ConcreteTableName
229
- : PreviousConcreteTableName,
294
+ : CurrentArgumentType extends IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
295
+ ? EffectiveConcreteTableName
296
+ : PreviousConcreteTableName,
230
297
  //
231
298
  NextUnaliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
232
299
  ? ConcreteNthArg
@@ -234,7 +301,9 @@ type VariadicRecurse<
234
301
  ? ConcreteNthArg extends `${infer AssocName extends string} as ${string}`
235
302
  ? AssocName & keyof SchemaAssociations & string
236
303
  : never
237
- : never,
304
+ : CurrentArgumentType extends IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
305
+ ? ConcreteNthArg
306
+ : never,
238
307
  //
239
308
  NextAliasedAssociationName = CurrentArgumentType extends IS_ASSOCIATION_NAME
240
309
  ? ConcreteNthArg
@@ -242,31 +311,56 @@ type VariadicRecurse<
242
311
  ? ConcreteNthArg extends `${string} as ${infer AssocAlias extends string}`
243
312
  ? AssocAlias & string
244
313
  : ConcreteAssociationName
245
- : ConcreteAssociationName,
314
+ : CurrentArgumentType extends IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
315
+ ? ConcreteNthArg
316
+ : ConcreteAssociationName,
317
+ //
318
+ IsAssociationNameOrAlias extends boolean = CurrentArgumentType extends
319
+ | IS_ASSOCIATION_NAME
320
+ | IS_ASSOCIATION_ALIAS
321
+ | IS_CROSS_POLYMORPHIC_ASSOCIATION_NAME
322
+ ? true
323
+ : false,
246
324
  //
247
325
  NextTableName extends keyof Schema &
248
326
  AssociationTableNames<DB, Schema> &
249
- keyof DB = CurrentArgumentType extends IS_ASSOCIATION_NAME
250
- ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
251
- : CurrentArgumentType extends IS_ASSOCIATION_ALIAS
252
- ? AssociationTableName<Schema, ConcreteTableName, NextUnaliasedAssociationName>
253
- : ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB,
327
+ keyof DB = IsAssociationNameOrAlias extends true
328
+ ? AssociationTableName<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName>
329
+ : ConcreteTableName & AssociationTableNames<DB, Schema> & keyof DB,
330
+ //
331
+ AllowedAssociationNames = IsAssociationNameOrAlias extends true
332
+ ? AssociationNamesForAssociation<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName>
333
+ : PreviousConcreteTableName extends keyof Schema
334
+ ? AssociationNamesForAssociation<Schema, PreviousConcreteTableName, ConcreteAssociationName>
335
+ : AssociationNamesForTable<Schema, ConcreteTableName>, // fall back to association names for table for root only
336
+ //
337
+ AssociationTableOrConcreteTable extends keyof Schema &
338
+ AssociationTableNames<DB, Schema> &
339
+ keyof DB = IsAssociationNameOrAlias extends true
340
+ ? AssociationTableName<Schema, EffectiveConcreteTableName, NextUnaliasedAssociationName>
341
+ : ConcreteTableName,
342
+ //
343
+ CurrentRequiredOnClauseKeys = IsAssociationNameOrAlias extends true
344
+ ? RequiredOnClauseKeys<Schema, EffectiveConcreteTableName, NextAliasedAssociationName>
345
+ : RequiredOnClauseKeys<Schema, PreviousConcreteTableName, ConcreteAssociationName>,
254
346
  //
255
347
  AllowedNextArgValues = RecursionType extends 'load'
256
348
  ? AllowedNextArgValuesForLoad<
257
349
  DreamAssociationNameToAssociatedModel<LastDream, ConcreteArgs[0] & keyof LastDream>,
258
350
  DB,
259
351
  Schema,
260
- NextTableName,
261
- RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>
352
+ AllowedAssociationNames,
353
+ AssociationTableOrConcreteTable,
354
+ CurrentRequiredOnClauseKeys
262
355
  >
263
356
  : RecursionType extends 'leftJoinLoad'
264
357
  ? AllowedNextArgValuesForLeftJoinLoad<
265
358
  DreamAssociationNameToAssociatedModel<LastDream, ConcreteArgs[0] & keyof LastDream>,
266
359
  DB,
267
360
  Schema,
268
- NextTableName,
269
- RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>,
361
+ AllowedAssociationNames,
362
+ AssociationTableOrConcreteTable,
363
+ CurrentRequiredOnClauseKeys,
270
364
  NextUsedNamespaces
271
365
  >
272
366
  : RecursionType extends 'join'
@@ -274,8 +368,9 @@ type VariadicRecurse<
274
368
  DreamAssociationNameToAssociatedModel<LastDream, ConcreteArgs[0] & keyof LastDream>,
275
369
  DB,
276
370
  Schema,
277
- NextTableName,
278
- RequiredOnClauseKeys<Schema, ConcreteTableName, NextAliasedAssociationName>,
371
+ AllowedAssociationNames,
372
+ AssociationTableOrConcreteTable,
373
+ CurrentRequiredOnClauseKeys,
279
374
  NextUsedNamespaces
280
375
  >
281
376
  : never,
@@ -302,35 +397,38 @@ type AllowedNextArgValuesForLoad<
302
397
  I extends Dream,
303
398
  DB,
304
399
  Schema,
305
- TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
400
+ AllowedNames,
401
+ TableForJoin extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
306
402
  RequiredOnClauseKeysForThisAssociation,
307
403
  > =
308
- | AssociationNamesForTable<Schema, TableName>
309
- | AssociationNamesForTable<Schema, TableName>[]
310
- | JoinAndStatements<I, DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
404
+ | AllowedNames
405
+ | AllowedNames[]
406
+ | JoinAndStatements<I, DB, Schema, TableForJoin, RequiredOnClauseKeysForThisAssociation>
311
407
 
312
408
  type AllowedNextArgValuesForLeftJoinLoad<
313
409
  I extends Dream,
314
410
  DB,
315
411
  Schema,
316
- TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
412
+ AllowedNames,
413
+ TableForJoin extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
317
414
  RequiredOnClauseKeysForThisAssociation,
318
415
  UsedNamespaces,
319
416
  > =
320
- | Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
321
- | Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>[]
322
- | JoinAndStatements<I, DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
417
+ | Exclude<AllowedNames, UsedNamespaces>
418
+ | Exclude<AllowedNames, UsedNamespaces>[]
419
+ | JoinAndStatements<I, DB, Schema, TableForJoin, RequiredOnClauseKeysForThisAssociation>
323
420
 
324
421
  type AllowedNextArgValuesForJoin<
325
422
  I extends Dream,
326
423
  DB,
327
424
  Schema,
328
- TableName extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
425
+ AllowedNames,
426
+ TableForJoin extends keyof Schema & AssociationTableNames<DB, Schema> & keyof DB,
329
427
  RequiredOnClauseKeysForThisAssociation,
330
428
  UsedNamespaces,
331
429
  > =
332
- | Exclude<AssociationNamesForTable<Schema, TableName>, UsedNamespaces>
333
- | JoinAndStatements<I, DB, Schema, TableName, RequiredOnClauseKeysForThisAssociation>
430
+ | Exclude<AllowedNames, UsedNamespaces>
431
+ | JoinAndStatements<I, DB, Schema, TableForJoin, RequiredOnClauseKeysForThisAssociation>
334
432
 
335
433
  export interface JoinedAssociation {
336
434
  table: string
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DreamMigrationHelpers | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@rvoh/dream</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/db.html">db</a></li><li><a href="" aria-current="page">DreamMigrationHelpers</a></li></ul><h1>Class DreamMigrationHelpers</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L3">src/db/migration-helpers/DreamMigrationHelpers.ts:3</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DreamMigrationHelpers | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@rvoh/dream</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/db.html">db</a></li><li><a href="" aria-current="page">DreamMigrationHelpers</a></li></ul><h1>Class DreamMigrationHelpers</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L3">src/db/migration-helpers/DreamMigrationHelpers.ts:3</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#adddeferrableuniqueconstraint" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a>
3
3
  <a href="#addenumvalue" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a>
4
4
  <a href="#createextension" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a>
@@ -16,13 +16,13 @@ indexes.</p>
16
16
  </div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">columns</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
17
17
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">columns</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5><div class="tsd-comment tsd-typography"><p>The names of the columns to include in the constraint</p>
18
18
  </div></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The name of the table</p>
19
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L41">src/db/migration-helpers/DreamMigrationHelpers.ts:41</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="addenumvalue"><code class="tsd-tag">Static</code><span>add<wbr/>Enum<wbr/>Value</span><a href="#addenumvalue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="addenumvalue-1"><span class="tsd-kind-call-signature">addEnumValue</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">__namedParameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">AddValueToEnumOpts</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#addenumvalue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Add a value to an enum.</p>
19
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L41">src/db/migration-helpers/DreamMigrationHelpers.ts:41</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="addenumvalue"><code class="tsd-tag">Static</code><span>add<wbr/>Enum<wbr/>Value</span><a href="#addenumvalue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="addenumvalue-1"><span class="tsd-kind-call-signature">addEnumValue</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">__namedParameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">AddValueToEnumOpts</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#addenumvalue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Add a value to an enum.</p>
20
20
  <p>Note that this always includes &quot;IF NOT EXISTS&quot;, so is safe to re-run multiple times.</p>
21
21
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">db</span>: <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The Kysely database object passed into the migration up/down function</p>
22
22
  </div></li><li><span><span class="tsd-kind-parameter">__namedParameters</span>: <span class="tsd-signature-type">AddValueToEnumOpts</span></span><div class="tsd-comment tsd-typography"><p>The options for adding the enum value</p>
23
23
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span>enumName</span></h5><div class="tsd-comment tsd-typography"><p>The name of the enum to modify</p>
24
24
  </div></li><li class="tsd-parameter"><h5><span>value</span></h5><div class="tsd-comment tsd-typography"><p>The name of the value to add to the enum</p>
25
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L71">src/db/migration-helpers/DreamMigrationHelpers.ts:71</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="createextension"><code class="tsd-tag">Static</code><span>create<wbr/>Extension</span><a href="#createextension" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createextension-1"><span class="tsd-kind-call-signature">createExtension</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">extensionName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">ifNotExists</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">publicSchema</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#createextension-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a database extension.</p>
25
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L71">src/db/migration-helpers/DreamMigrationHelpers.ts:71</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="createextension"><code class="tsd-tag">Static</code><span>create<wbr/>Extension</span><a href="#createextension" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createextension-1"><span class="tsd-kind-call-signature">createExtension</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">extensionName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">ifNotExists</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">publicSchema</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#createextension-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a database extension.</p>
26
26
  <pre><code><span class="hl-1"> </span><span class="hl-7">// Add the case insensitive extension</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">DreamMigrationHelpers</span><span class="hl-1">.</span><span class="hl-5">createExtension</span><span class="hl-1">(</span><span class="hl-4">db</span><span class="hl-1">, </span><span class="hl-6">&#39;citext&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-1"> </span><span class="hl-7">// Add the pg trigram extension</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">DreamMigrationHelpers</span><span class="hl-1">.</span><span class="hl-5">createExtension</span><span class="hl-1">(</span><span class="hl-4">db</span><span class="hl-1">, </span><span class="hl-6">&#39;pg_trgm&#39;</span><span class="hl-1">)</span>
27
27
  </code><button>Copy</button></pre>
28
28
 
@@ -31,26 +31,26 @@ indexes.</p>
31
31
  </div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">ifNotExists</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">publicSchema</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = {}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
32
32
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">ifNotExists</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span></h5><div class="tsd-comment tsd-typography"><p>Only add the extension if it doesn't already exist</p>
33
33
  </div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">publicSchema</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span></h5><div class="tsd-comment tsd-typography"><p>Create using the public schema</p>
34
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L93">src/db/migration-helpers/DreamMigrationHelpers.ts:93</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="createginindex"><code class="tsd-tag">Static</code><span>create<wbr/>Gin<wbr/>Index</span><a href="#createginindex" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createginindex-1"><span class="tsd-kind-call-signature">createGinIndex</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">indexName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">column</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#createginindex-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a gin index</p>
34
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L93">src/db/migration-helpers/DreamMigrationHelpers.ts:93</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="createginindex"><code class="tsd-tag">Static</code><span>create<wbr/>Gin<wbr/>Index</span><a href="#createginindex" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createginindex-1"><span class="tsd-kind-call-signature">createGinIndex</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">indexName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">column</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#createginindex-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a gin index</p>
35
35
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">db</span>: <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The Kysely database object passed into the migration up/down function</p>
36
36
  </div></li><li><span><span class="tsd-kind-parameter">indexName</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The name of the constraint to create</p>
37
37
  </div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">column</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
38
38
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">column</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The name of the column to index</p>
39
39
  </div></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The name of the table</p>
40
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L115">src/db/migration-helpers/DreamMigrationHelpers.ts:115</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="dropconstraint"><code class="tsd-tag">Static</code><span>drop<wbr/>Constraint</span><a href="#dropconstraint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="dropconstraint-1"><span class="tsd-kind-call-signature">dropConstraint</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">constraintName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#dropconstraint-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a constraint</p>
40
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L115">src/db/migration-helpers/DreamMigrationHelpers.ts:115</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="dropconstraint"><code class="tsd-tag">Static</code><span>drop<wbr/>Constraint</span><a href="#dropconstraint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="dropconstraint-1"><span class="tsd-kind-call-signature">dropConstraint</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">constraintName</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#dropconstraint-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a constraint</p>
41
41
  <p>Note that this always includes &quot;IF NOT EXISTS&quot;, so is safe to re-run multiple times.</p>
42
42
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">db</span>: <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The Kysely database object passed into the migration up/down function</p>
43
43
  </div></li><li><span><span class="tsd-kind-parameter">constraintName</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The name of the constraint to create</p>
44
44
  </div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
45
45
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">table</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><p>The name of the table</p>
46
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L138">src/db/migration-helpers/DreamMigrationHelpers.ts:138</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="dropenumvalue"><code class="tsd-tag">Static</code><span>drop<wbr/>Enum<wbr/>Value</span><a href="#dropenumvalue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="dropenumvalue-1"><span class="tsd-kind-call-signature">dropEnumValue</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">__namedParameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DropValueFromEnumOpts</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#dropenumvalue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a value from an enum and replace it with a different enum already
46
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L138">src/db/migration-helpers/DreamMigrationHelpers.ts:138</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="dropenumvalue"><code class="tsd-tag">Static</code><span>drop<wbr/>Enum<wbr/>Value</span><a href="#dropenumvalue" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="dropenumvalue-1"><span class="tsd-kind-call-signature">dropEnumValue</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">__namedParameters</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DropValueFromEnumOpts</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#dropenumvalue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a value from an enum and replace it with a different enum already
47
47
  present in the enum type (or optionally remove it from array columns).</p>
48
48
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">db</span>: <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The Kysely database object passed into the migration up/down function</p>
49
49
  </div></li><li><span><span class="tsd-kind-parameter">__namedParameters</span>: <span class="tsd-signature-type">DropValueFromEnumOpts</span></span><div class="tsd-comment tsd-typography"><p>The options for dropping the enum value</p>
50
50
  </div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span>enumName</span></h5><div class="tsd-comment tsd-typography"><p>The name of the enum to modify</p>
51
51
  </div></li><li class="tsd-parameter"><h5><span>value</span></h5><div class="tsd-comment tsd-typography"><p>The name of the value to drop from the enum</p>
52
52
  </div></li><li class="tsd-parameter"><h5><span>replacements</span></h5><div class="tsd-comment tsd-typography"><p>Details about which table and column to change and which value to replace the dropped value with (or remove it if the column is an array)</p>
53
- </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L191">src/db/migration-helpers/DreamMigrationHelpers.ts:191</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="newtransaction"><code class="tsd-tag">Static</code><span>new<wbr/>Transaction</span><a href="#newtransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="newtransaction-1"><span class="tsd-kind-call-signature">newTransaction</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#newtransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Forces a new transaction boundary in migration execution.</p>
53
+ </div></li></ul></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L191">src/db/migration-helpers/DreamMigrationHelpers.ts:191</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="newtransaction"><code class="tsd-tag">Static</code><span>new<wbr/>Transaction</span><a href="#newtransaction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="newtransaction-1"><span class="tsd-kind-call-signature">newTransaction</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#newtransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Forces a new transaction boundary in migration execution.</p>
54
54
  <p>When called in a migration file, this method ensures that any existing transaction
55
55
  is committed before this migration runs, and a new transaction is started before the
56
56
  migration in this file. This is essential for migrations that depend on previously
@@ -61,7 +61,7 @@ enum values to be committed to the database first.</p>
61
61
  <pre><code class="ts"><span class="hl-7">// first migration file: Add enum value</span><br/><span class="hl-3">export</span><span class="hl-1"> </span><span class="hl-0">async</span><span class="hl-1"> </span><span class="hl-0">function</span><span class="hl-1"> </span><span class="hl-5">up</span><span class="hl-1">(</span><span class="hl-4">db</span><span class="hl-1">: </span><span class="hl-9">Kysely</span><span class="hl-1">&lt;</span><span class="hl-9">any</span><span class="hl-1">&gt;): </span><span class="hl-9">Promise</span><span class="hl-1">&lt;</span><span class="hl-9">void</span><span class="hl-1">&gt; {</span><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">DreamMigrationHelpers</span><span class="hl-1">.</span><span class="hl-5">addEnumValue</span><span class="hl-1">(</span><span class="hl-4">db</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">enumName:</span><span class="hl-1"> </span><span class="hl-6">&#39;user_status&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">value:</span><span class="hl-1"> </span><span class="hl-6">&#39;premium&#39;</span><br/><span class="hl-1"> })</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-7">// second migration file: Add check constraint that depends on the enum value</span><br/><span class="hl-3">export</span><span class="hl-1"> </span><span class="hl-0">async</span><span class="hl-1"> </span><span class="hl-0">function</span><span class="hl-1"> </span><span class="hl-5">up</span><span class="hl-1">(</span><span class="hl-4">db</span><span class="hl-1">: </span><span class="hl-9">Kysely</span><span class="hl-1">&lt;</span><span class="hl-9">any</span><span class="hl-1">&gt;): </span><span class="hl-9">Promise</span><span class="hl-1">&lt;</span><span class="hl-9">void</span><span class="hl-1">&gt; {</span><br/><span class="hl-1"> </span><span class="hl-4">DreamMigrationHelpers</span><span class="hl-1">.</span><span class="hl-5">newTransaction</span><span class="hl-1">() </span><span class="hl-7">// Ensure enum value is committed first</span><br/><br/><span class="hl-1"> </span><span class="hl-3">await</span><span class="hl-1"> </span><span class="hl-4">db</span><span class="hl-1">.</span><span class="hl-4">schema</span><br/><span class="hl-1"> .</span><span class="hl-5">alterTable</span><span class="hl-1">(</span><span class="hl-6">&#39;users&#39;</span><span class="hl-1">)</span><br/><span class="hl-1"> .</span><span class="hl-5">addCheckConstraint</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-6">&#39;check_premium_users&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">sql</span><span class="hl-6">`status = &#39;premium&#39; OR credits &lt; 100`</span><br/><span class="hl-1"> )</span><br/><span class="hl-1"> .</span><span class="hl-5">execute</span><span class="hl-1">()</span><br/><span class="hl-1">}</span>
62
62
  </code><button type="button">Copy</button></pre>
63
63
 
64
- </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L179">src/db/migration-helpers/DreamMigrationHelpers.ts:179</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="renametable"><code class="tsd-tag">Static</code><span>rename<wbr/>Table</span><a href="#renametable" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="renametable-1"><span class="tsd-kind-call-signature">renameTable</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">from</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">to</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#renametable-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Rename a table and its associated primary key sequence.</p>
64
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L179">src/db/migration-helpers/DreamMigrationHelpers.ts:179</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="renametable"><code class="tsd-tag">Static</code><span>rename<wbr/>Table</span><a href="#renametable" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="renametable-1"><span class="tsd-kind-call-signature">renameTable</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">from</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">to</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><a href="#renametable-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Rename a table and its associated primary key sequence.</p>
65
65
  <p>This method renames both the table and its primary key sequence to keep them
66
66
  in sync. When PostgreSQL creates a table with a serial or bigserial primary key,
67
67
  it automatically creates a sequence named <code>{tablename}_id_seq</code>. If you only rename
@@ -71,4 +71,4 @@ key column named 'id'.</p>
71
71
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">db</span>: <span class="tsd-signature-type">Kysely</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The Kysely database object passed into the migration up/down function</p>
72
72
  </div></li><li><span><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The current name of the table to rename</p>
73
73
  </div></li><li><span><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The new name for the table</p>
74
- </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/20d63fe34b3b5ed9b4b1952e7514c11cf44d78e5/src/db/migration-helpers/DreamMigrationHelpers.ts#L19">src/db/migration-helpers/DreamMigrationHelpers.ts:19</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#adddeferrableuniqueconstraint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a><a href="#addenumvalue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a><a href="#createextension"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a><a href="#createginindex"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Gin<wbr/>Index</span></a><a href="#dropconstraint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Constraint</span></a><a href="#dropenumvalue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Enum<wbr/>Value</span></a><a href="#newtransaction"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>new<wbr/>Transaction</span></a><a href="#renametable"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>rename<wbr/>Table</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@rvoh/dream</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
74
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/53db2f0763b4f10bfb20911f61846371bd7ab36d/src/db/migration-helpers/DreamMigrationHelpers.ts#L19">src/db/migration-helpers/DreamMigrationHelpers.ts:19</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#adddeferrableuniqueconstraint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a><a href="#addenumvalue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a><a href="#createextension"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a><a href="#createginindex"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Gin<wbr/>Index</span></a><a href="#dropconstraint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Constraint</span></a><a href="#dropenumvalue"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Enum<wbr/>Value</span></a><a href="#newtransaction"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>new<wbr/>Transaction</span></a><a href="#renametable"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>rename<wbr/>Table</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@rvoh/dream</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>