@rvoh/dream 2.2.1 → 2.2.3

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 (183) hide show
  1. package/dist/cjs/src/Dream.js +5 -10
  2. package/dist/cjs/src/db/helpers/syncDbTypesFiles.js +12 -1
  3. package/dist/cjs/src/dream-app/helpers/importers/importModels.js +1 -0
  4. package/dist/esm/src/Dream.js +5 -10
  5. package/dist/esm/src/db/helpers/syncDbTypesFiles.js +12 -1
  6. package/dist/esm/src/dream-app/helpers/importers/importModels.js +1 -0
  7. package/dist/types/src/Dream.d.ts +1 -1
  8. package/dist/types/src/dream-app/index.d.ts +20 -0
  9. package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +6 -7
  10. package/docs/classes/db.DreamMigrationHelpers.html +9 -9
  11. package/docs/classes/db.KyselyQueryDriver.html +32 -32
  12. package/docs/classes/db.PostgresQueryDriver.html +33 -33
  13. package/docs/classes/db.QueryDriverBase.html +31 -31
  14. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  15. package/docs/classes/errors.ColumnOverflow.html +3 -3
  16. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  17. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  18. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  19. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  20. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  21. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  22. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  23. package/docs/classes/errors.NotNullViolation.html +3 -3
  24. package/docs/classes/errors.RecordNotFound.html +3 -3
  25. package/docs/classes/errors.ValidationError.html +3 -3
  26. package/docs/classes/index.CalendarDate.html +2 -2
  27. package/docs/classes/index.Decorators.html +19 -19
  28. package/docs/classes/index.Dream.html +116 -116
  29. package/docs/classes/index.DreamApp.html +5 -5
  30. package/docs/classes/index.DreamTransaction.html +2 -2
  31. package/docs/classes/index.Env.html +2 -2
  32. package/docs/classes/index.Query.html +56 -56
  33. package/docs/classes/system.CliFileWriter.html +2 -2
  34. package/docs/classes/system.DreamBin.html +2 -2
  35. package/docs/classes/system.DreamCLI.html +5 -5
  36. package/docs/classes/system.DreamImporter.html +2 -2
  37. package/docs/classes/system.DreamLogos.html +2 -2
  38. package/docs/classes/system.DreamSerializerBuilder.html +12 -12
  39. package/docs/classes/system.ObjectSerializerBuilder.html +8 -8
  40. package/docs/classes/utils.Encrypt.html +2 -2
  41. package/docs/classes/utils.Range.html +2 -2
  42. package/docs/functions/db.closeAllDbConnections.html +1 -1
  43. package/docs/functions/db.dreamDbConnections.html +1 -1
  44. package/docs/functions/db.untypedDb.html +1 -1
  45. package/docs/functions/db.validateColumn.html +1 -1
  46. package/docs/functions/db.validateTable.html +1 -1
  47. package/docs/functions/errors.pgErrorType.html +1 -1
  48. package/docs/functions/index.DreamSerializer.html +1 -1
  49. package/docs/functions/index.ObjectSerializer.html +1 -1
  50. package/docs/functions/index.ReplicaSafe.html +1 -1
  51. package/docs/functions/index.STI.html +1 -1
  52. package/docs/functions/index.SoftDelete.html +1 -1
  53. package/docs/functions/utils.camelize.html +1 -1
  54. package/docs/functions/utils.capitalize.html +1 -1
  55. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  56. package/docs/functions/utils.compact.html +1 -1
  57. package/docs/functions/utils.groupBy.html +1 -1
  58. package/docs/functions/utils.hyphenize.html +1 -1
  59. package/docs/functions/utils.intersection.html +1 -1
  60. package/docs/functions/utils.isEmpty.html +1 -1
  61. package/docs/functions/utils.normalizeUnicode.html +1 -1
  62. package/docs/functions/utils.pascalize.html +1 -1
  63. package/docs/functions/utils.percent.html +1 -1
  64. package/docs/functions/utils.range-1.html +1 -1
  65. package/docs/functions/utils.round.html +1 -1
  66. package/docs/functions/utils.sanitizeString.html +1 -1
  67. package/docs/functions/utils.snakeify.html +1 -1
  68. package/docs/functions/utils.sort.html +1 -1
  69. package/docs/functions/utils.sortBy.html +1 -1
  70. package/docs/functions/utils.sortObjectByKey.html +1 -1
  71. package/docs/functions/utils.sortObjectByValue.html +1 -1
  72. package/docs/functions/utils.uncapitalize.html +1 -1
  73. package/docs/functions/utils.uniq.html +1 -1
  74. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  75. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  76. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  77. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  78. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  79. package/docs/interfaces/types.DecoratorContext.html +2 -2
  80. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  81. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  82. package/docs/interfaces/types.EncryptOptions.html +2 -2
  83. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  84. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  85. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  86. package/docs/modules/db.html +1 -1
  87. package/docs/modules/errors.html +1 -1
  88. package/docs/modules/index.html +1 -1
  89. package/docs/modules/openapi.html +1 -1
  90. package/docs/modules/system.html +1 -1
  91. package/docs/modules/types.html +1 -1
  92. package/docs/modules/utils.html +1 -1
  93. package/docs/types/index.DateTime.html +1 -1
  94. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  95. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  96. package/docs/types/openapi.OpenapiFormats.html +1 -1
  97. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  98. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  99. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  100. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  101. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  102. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  103. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  104. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  105. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  106. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -1
  107. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -1
  108. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -1
  109. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +1 -1
  110. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  111. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  112. package/docs/types/openapi.OpenapiSchemaNull.html +1 -1
  113. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  114. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  115. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  116. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  117. package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +1 -1
  118. package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  119. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  120. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  121. package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +1 -1
  122. package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +1 -1
  123. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  124. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  125. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  126. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  127. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  128. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  129. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  130. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  131. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  132. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  133. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  134. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  135. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  136. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  137. package/docs/types/types.Camelized.html +1 -1
  138. package/docs/types/types.DbConnectionType.html +1 -1
  139. package/docs/types/types.DbTypes.html +1 -1
  140. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  141. package/docs/types/types.DreamAttributes.html +1 -1
  142. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  143. package/docs/types/types.DreamClassColumn.html +1 -1
  144. package/docs/types/types.DreamColumn.html +1 -1
  145. package/docs/types/types.DreamColumnNames.html +1 -1
  146. package/docs/types/types.DreamLogLevel.html +1 -1
  147. package/docs/types/types.DreamLogger.html +1 -1
  148. package/docs/types/types.DreamModelSerializerType.html +1 -1
  149. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  150. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  151. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  152. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  153. package/docs/types/types.DreamSerializable.html +1 -1
  154. package/docs/types/types.DreamSerializableArray.html +1 -1
  155. package/docs/types/types.DreamSerializerKey.html +1 -1
  156. package/docs/types/types.DreamSerializers.html +1 -1
  157. package/docs/types/types.DreamVirtualColumns.html +1 -1
  158. package/docs/types/types.EncryptAlgorithm.html +1 -1
  159. package/docs/types/types.HasManyStatement.html +1 -1
  160. package/docs/types/types.HasOneStatement.html +1 -1
  161. package/docs/types/types.Hyphenized.html +1 -1
  162. package/docs/types/types.Pascalized.html +1 -1
  163. package/docs/types/types.PrimaryKeyType.html +1 -1
  164. package/docs/types/types.RoundingPrecision.html +1 -1
  165. package/docs/types/types.SerializerCasing.html +1 -1
  166. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  167. package/docs/types/types.Snakeified.html +1 -1
  168. package/docs/types/types.StrictInterface.html +1 -1
  169. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  170. package/docs/types/types.UpdateableProperties.html +1 -1
  171. package/docs/types/types.ValidationType.html +1 -1
  172. package/docs/types/types.ViewModel.html +1 -1
  173. package/docs/types/types.ViewModelClass.html +1 -1
  174. package/docs/types/types.WhereStatementForDream.html +1 -1
  175. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  176. package/docs/variables/index.DateTime-1.html +1 -1
  177. package/docs/variables/index.DreamConst.html +1 -1
  178. package/docs/variables/index.ops.html +1 -1
  179. package/docs/variables/openapi.openapiPrimitiveTypes-1.html +1 -1
  180. package/docs/variables/openapi.openapiShorthandPrimitiveTypes-1.html +1 -1
  181. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  182. package/docs/variables/system.primaryKeyTypes.html +1 -1
  183. package/package.json +7 -2
@@ -2381,7 +2381,7 @@ export default class Dream {
2381
2381
  if (!additionalOpts._internalUseOnly)
2382
2382
  throw new ConstructorOnlyForInternalUse();
2383
2383
  this.isPersisted = additionalOpts?.isPersisted || false;
2384
- this.defineAttributeAccessors();
2384
+ ensureSTITypeFieldIsSet(this);
2385
2385
  if (opts) {
2386
2386
  const marshalledOpts = this._setAttributes(opts, additionalOpts);
2387
2387
  // if id is set, then we freeze attributes after setting them, so that
@@ -2483,17 +2483,13 @@ export default class Dream {
2483
2483
  * defines attribute setters and getters for every column
2484
2484
  * set within your types/dream.ts file
2485
2485
  */
2486
- defineAttributeAccessors() {
2487
- const dreamClass = this.constructor;
2486
+ static defineAttributeAccessors() {
2487
+ const dreamClass = this;
2488
2488
  const columns = dreamClass.columns();
2489
- const dreamPrototype = Object.getPrototypeOf(this);
2489
+ const dreamPrototype = dreamClass.prototype;
2490
2490
  columns.forEach(column => {
2491
- // this ensures that the currentAttributes object will contain keys
2492
- // for each of the properties
2493
- if (this.getAttribute(column) === undefined)
2494
- this.setAttribute(column, undefined);
2495
2491
  if (!Object.getOwnPropertyDescriptor(dreamPrototype, column)?.set) {
2496
- if (isJsonColumn(this.constructor, column)) {
2492
+ if (isJsonColumn(dreamClass, column)) {
2497
2493
  // handle JSON columns
2498
2494
  Object.defineProperty(dreamPrototype, column, {
2499
2495
  get() {
@@ -2560,7 +2556,6 @@ export default class Dream {
2560
2556
  }
2561
2557
  }
2562
2558
  });
2563
- ensureSTITypeFieldIsSet(this);
2564
2559
  }
2565
2560
  /**
2566
2561
  * @internal
@@ -15,7 +15,18 @@ export default async function syncDbTypesFiles(connectionName) {
15
15
  const dbSyncFilePath = path.join(dreamPath('types'), dbFilename);
16
16
  const absoluteDbSyncPath = path.join(dreamApp.projectRoot, dbSyncFilePath);
17
17
  await CliFileWriter.cache(absoluteDbSyncPath);
18
- await sspawn(`kysely-codegen --dialect=${driverClass.syncDialect} --url=${driverClass.syncDialect}://${dbConf.user}:${dbConf.password}@${dbConf.host}:${dbConf.port}/${dbConf.name} --out-file=${absoluteDbSyncPath}`, {
18
+ const lowLevelDbOpts = dreamApp.dbCredentialsFor(connectionName);
19
+ const dialect = `--dialect=${driverClass.syncDialect}`;
20
+ const url = `--url=${driverClass.syncDialect}://${dbConf.user}${dbConf.password ? `:${dbConf.password}` : ''}@${dbConf.host}:${dbConf.port}/${dbConf.name}`;
21
+ const outfile = `--out-file=${absoluteDbSyncPath}`;
22
+ const includePattern = lowLevelDbOpts?.tableIncludePattern
23
+ ? `--include-pattern="${lowLevelDbOpts.tableIncludePattern}"`
24
+ : '';
25
+ const excludePattern = lowLevelDbOpts?.tableExcludePattern
26
+ ? `--exclude-pattern="${lowLevelDbOpts.tableExcludePattern}"`
27
+ : '';
28
+ const kyselyCodegenCmd = `kysely-codegen ${dialect} ${url} ${includePattern} ${excludePattern} ${outfile}`;
29
+ await sspawn(kyselyCodegenCmd, {
19
30
  onStdout: message => {
20
31
  DreamCLI.logger.logContinueProgress(colorize(`[db]`, { color: 'cyan' }) + ' ' + message, {
21
32
  logPrefixColor: 'cyan',
@@ -22,6 +22,7 @@ export default async function importModels(modelsPath, modelImportCb) {
22
22
  // Don't create a global lookup for ApplicationModel
23
23
  // ApplicationModel does not have a table
24
24
  if (modelClass.table) {
25
+ modelClass['defineAttributeAccessors']();
25
26
  const modelKey = globalModelKeyFromPath(modelPath, modelsPath);
26
27
  modelClass['setGlobalName'](modelKey);
27
28
  _models[modelKey] = modelClass;
@@ -2381,7 +2381,7 @@ export default class Dream {
2381
2381
  if (!additionalOpts._internalUseOnly)
2382
2382
  throw new ConstructorOnlyForInternalUse();
2383
2383
  this.isPersisted = additionalOpts?.isPersisted || false;
2384
- this.defineAttributeAccessors();
2384
+ ensureSTITypeFieldIsSet(this);
2385
2385
  if (opts) {
2386
2386
  const marshalledOpts = this._setAttributes(opts, additionalOpts);
2387
2387
  // if id is set, then we freeze attributes after setting them, so that
@@ -2483,17 +2483,13 @@ export default class Dream {
2483
2483
  * defines attribute setters and getters for every column
2484
2484
  * set within your types/dream.ts file
2485
2485
  */
2486
- defineAttributeAccessors() {
2487
- const dreamClass = this.constructor;
2486
+ static defineAttributeAccessors() {
2487
+ const dreamClass = this;
2488
2488
  const columns = dreamClass.columns();
2489
- const dreamPrototype = Object.getPrototypeOf(this);
2489
+ const dreamPrototype = dreamClass.prototype;
2490
2490
  columns.forEach(column => {
2491
- // this ensures that the currentAttributes object will contain keys
2492
- // for each of the properties
2493
- if (this.getAttribute(column) === undefined)
2494
- this.setAttribute(column, undefined);
2495
2491
  if (!Object.getOwnPropertyDescriptor(dreamPrototype, column)?.set) {
2496
- if (isJsonColumn(this.constructor, column)) {
2492
+ if (isJsonColumn(dreamClass, column)) {
2497
2493
  // handle JSON columns
2498
2494
  Object.defineProperty(dreamPrototype, column, {
2499
2495
  get() {
@@ -2560,7 +2556,6 @@ export default class Dream {
2560
2556
  }
2561
2557
  }
2562
2558
  });
2563
- ensureSTITypeFieldIsSet(this);
2564
2559
  }
2565
2560
  /**
2566
2561
  * @internal
@@ -15,7 +15,18 @@ export default async function syncDbTypesFiles(connectionName) {
15
15
  const dbSyncFilePath = path.join(dreamPath('types'), dbFilename);
16
16
  const absoluteDbSyncPath = path.join(dreamApp.projectRoot, dbSyncFilePath);
17
17
  await CliFileWriter.cache(absoluteDbSyncPath);
18
- await sspawn(`kysely-codegen --dialect=${driverClass.syncDialect} --url=${driverClass.syncDialect}://${dbConf.user}:${dbConf.password}@${dbConf.host}:${dbConf.port}/${dbConf.name} --out-file=${absoluteDbSyncPath}`, {
18
+ const lowLevelDbOpts = dreamApp.dbCredentialsFor(connectionName);
19
+ const dialect = `--dialect=${driverClass.syncDialect}`;
20
+ const url = `--url=${driverClass.syncDialect}://${dbConf.user}${dbConf.password ? `:${dbConf.password}` : ''}@${dbConf.host}:${dbConf.port}/${dbConf.name}`;
21
+ const outfile = `--out-file=${absoluteDbSyncPath}`;
22
+ const includePattern = lowLevelDbOpts?.tableIncludePattern
23
+ ? `--include-pattern="${lowLevelDbOpts.tableIncludePattern}"`
24
+ : '';
25
+ const excludePattern = lowLevelDbOpts?.tableExcludePattern
26
+ ? `--exclude-pattern="${lowLevelDbOpts.tableExcludePattern}"`
27
+ : '';
28
+ const kyselyCodegenCmd = `kysely-codegen ${dialect} ${url} ${includePattern} ${excludePattern} ${outfile}`;
29
+ await sspawn(kyselyCodegenCmd, {
19
30
  onStdout: message => {
20
31
  DreamCLI.logger.logContinueProgress(colorize(`[db]`, { color: 'cyan' }) + ' ' + message, {
21
32
  logPrefixColor: 'cyan',
@@ -22,6 +22,7 @@ export default async function importModels(modelsPath, modelImportCb) {
22
22
  // Don't create a global lookup for ApplicationModel
23
23
  // ApplicationModel does not have a table
24
24
  if (modelClass.table) {
25
+ modelClass['defineAttributeAccessors']();
25
26
  const modelKey = globalModelKeyFromPath(modelPath, modelsPath);
26
27
  modelClass['setGlobalName'](modelKey);
27
28
  _models[modelKey] = modelClass;
@@ -1958,7 +1958,7 @@ export default class Dream {
1958
1958
  * defines attribute setters and getters for every column
1959
1959
  * set within your types/dream.ts file
1960
1960
  */
1961
- private defineAttributeAccessors;
1961
+ private static defineAttributeAccessors;
1962
1962
  /**
1963
1963
  * @internal
1964
1964
  *
@@ -179,6 +179,26 @@ export interface DreamDbCredentialOptions {
179
179
  primary: SingleDbCredential;
180
180
  replica?: SingleDbCredential | undefined;
181
181
  queryDriverClass?: typeof QueryDriverBase;
182
+ /**
183
+ * a string which informs the kysely-codegen tool,
184
+ * used to introspect tables under the hood, which tables to use.
185
+ * Can be an actual table name, or a glob pattern, i.e.
186
+ * "public.*"
187
+ * "public.+(user|post)"
188
+ *
189
+ * see https://github.com/RobinBlomberg/kysely-codegen for more info
190
+ */
191
+ tableIncludePattern?: string;
192
+ /**
193
+ * a string which informs the kysely-codegen tool,
194
+ * used to introspect tables under the hood, which tables to use.
195
+ * Can be an actual table name, or a glob pattern, i.e.
196
+ * "public.*"
197
+ * "public.+(user|post)"
198
+ *
199
+ * see https://github.com/RobinBlomberg/kysely-codegen for more info
200
+ */
201
+ tableExcludePattern?: string;
182
202
  }
183
203
  type UnicodeNormalizationForm = 'NFC' | 'NFD' | 'none';
184
204
  export interface SingleDbCredential {
@@ -131,7 +131,7 @@ export default class DreamSerializerBuilder<DataTypeForOpenapi extends typeof Dr
131
131
  rendersOne<ProvidedModelType = undefined, ProvidedAttributeName extends ProvidedModelType extends undefined ? undefined : Exclude<keyof ProvidedModelType, keyof Dream> = ProvidedModelType extends undefined ? undefined : Exclude<keyof ProvidedModelType, keyof Dream>, ActualDataType extends ProvidedModelType extends undefined ? DataType : ProvidedModelType = ProvidedModelType extends undefined ? DataType : ProvidedModelType, AttributeName extends ProvidedAttributeName extends undefined ? Exclude<keyof ActualDataType, keyof Dream> : ProvidedAttributeName & keyof ActualDataType = ProvidedAttributeName extends undefined ? Exclude<keyof ActualDataType, keyof Dream> : ProvidedAttributeName & keyof ActualDataType, AssociatedModelType = Exclude<ActualDataType[AttributeName], null>, SerializerOptions = AssociatedModelType extends Dream ? {
132
132
  serializerKey?: DreamOrViewModelSerializerKey<AssociatedModelType>;
133
133
  } | {
134
- serializer: SerializerType<AssociatedModelType>;
134
+ serializer?: SerializerType<AssociatedModelType>;
135
135
  } : AssociatedModelType extends ViewModel ? {
136
136
  viewModelClass: ViewModelClass;
137
137
  serializerKey?: DreamOrViewModelSerializerKey<AssociatedModelType>;
@@ -139,11 +139,11 @@ export default class DreamSerializerBuilder<DataTypeForOpenapi extends typeof Dr
139
139
  serializer: SerializerType<AssociatedModelType>;
140
140
  } : AssociatedModelType extends object ? {
141
141
  serializer: SerializerType<AssociatedModelType>;
142
- } : object>(name: AttributeName, options?: {
142
+ } : never, BaseOptions = {
143
143
  as?: string;
144
144
  flatten?: boolean;
145
145
  optional?: boolean;
146
- } & SerializerOptions): this;
146
+ }>(name: AttributeName, options?: BaseOptions & SerializerOptions): this;
147
147
  /**
148
148
  * Includes an array of associated objects in the serialized output.
149
149
  *
@@ -176,7 +176,7 @@ export default class DreamSerializerBuilder<DataTypeForOpenapi extends typeof Dr
176
176
  rendersMany<ProvidedModelType = undefined, ProvidedAttributeName extends ProvidedModelType extends undefined ? undefined : Exclude<keyof ProvidedModelType, keyof Dream> = ProvidedModelType extends undefined ? undefined : Exclude<keyof ProvidedModelType, keyof Dream>, ActualDataType extends ProvidedModelType extends undefined ? DataType : ProvidedModelType = ProvidedModelType extends undefined ? DataType : ProvidedModelType, AttributeName extends ProvidedAttributeName extends undefined ? Exclude<keyof ActualDataType, keyof Dream> : ProvidedAttributeName & keyof ActualDataType = ProvidedAttributeName extends undefined ? Exclude<keyof ActualDataType, keyof Dream> : ProvidedAttributeName & keyof ActualDataType, AssociatedModelType = ActualDataType[AttributeName] extends (Dream | ViewModel)[] ? ActualDataType[AttributeName] extends (infer U)[] ? U : object : object, SerializerOptions = AssociatedModelType extends Dream ? {
177
177
  serializerKey?: DreamOrViewModelSerializerKey<AssociatedModelType>;
178
178
  } | {
179
- serializer: SerializerType<AssociatedModelType>;
179
+ serializer?: SerializerType<AssociatedModelType>;
180
180
  } : AssociatedModelType extends ViewModel ? {
181
181
  viewModelClass: ViewModelClass;
182
182
  serializerKey?: DreamOrViewModelSerializerKey<AssociatedModelType>;
@@ -184,10 +184,9 @@ export default class DreamSerializerBuilder<DataTypeForOpenapi extends typeof Dr
184
184
  serializer: SerializerType<AssociatedModelType>;
185
185
  } : AssociatedModelType extends object ? {
186
186
  serializer: SerializerType<AssociatedModelType>;
187
- } : object>(name: AttributeName, options?: {
187
+ } : never, BaseOptions = {
188
188
  as?: string;
189
- z?: AttributeName;
190
- } & SerializerOptions): this;
189
+ }>(name: AttributeName, options?: BaseOptions & SerializerOptions): this;
191
190
  /**
192
191
  * Executes the serializer and returns the serialized output.
193
192
  *
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en"><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></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@rvoh/dream</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">@rvoh/dream</a></li><li><a href="../modules/db.html">db</a></li><li><a href="db.DreamMigrationHelpers.html">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/0e48e274f8f41073cfa485559009667990b2b015/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"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> 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="db.DreamMigrationHelpers.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en"><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></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@rvoh/dream</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../index.html">@rvoh/dream</a></li><li><a href="../modules/db.html">db</a></li><li><a href="db.DreamMigrationHelpers.html">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/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/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"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> 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="db.DreamMigrationHelpers.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><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="db.DreamMigrationHelpers.html#addDeferrableUniqueConstraint" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a>
3
3
  <a href="db.DreamMigrationHelpers.html#addEnumValue" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a>
4
4
  <a href="db.DreamMigrationHelpers.html#createExtension" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a>
@@ -16,11 +16,11 @@ indexes.</p>
16
16
  </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{ </span><br/><span>    </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><br/><span>    </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><br/><span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
17
17
  </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L41">src/db/migration-helpers/DreamMigrationHelpers.ts:41</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="addEnumValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="addEnumValue.addEnumValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">add<wbr/>Enum<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">__namedParameters</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="#addEnumValue.addEnumValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Add a value to an enum.</p>
19
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L41">src/db/migration-helpers/DreamMigrationHelpers.ts:41</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="addEnumValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="addEnumValue.addEnumValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">add<wbr/>Enum<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">__namedParameters</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="#addEnumValue.addEnumValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li 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><div class="tsd-comment tsd-typography"></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
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L71">src/db/migration-helpers/DreamMigrationHelpers.ts:71</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createExtension" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="createExtension.createExtension-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Extension</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">extensionName</span>, <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?</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="#createExtension.createExtension-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a database extension.</p>
23
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L71">src/db/migration-helpers/DreamMigrationHelpers.ts:71</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createExtension" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="createExtension.createExtension-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Extension</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">extensionName</span>, <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?</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="#createExtension.createExtension-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a database extension.</p>
24
24
  <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>
25
25
  </code><button>Copy</button></pre>
26
26
 
@@ -29,23 +29,23 @@ indexes.</p>
29
29
  </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{ </span><br/><span>    </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><br/><span>    </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><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = {}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
30
30
  </div><div class="tsd-comment tsd-typography"></div><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">if<wbr/>Not<wbr/>Exists</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>
31
31
  </div><div class="tsd-comment tsd-typography"></div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">public<wbr/>Schema</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>
32
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L93">src/db/migration-helpers/DreamMigrationHelpers.ts:93</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createGinIndex" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="createGinIndex.createGinIndex-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Gin<wbr/>Index</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">indexName</span>, <span class="tsd-kind-parameter">options</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="#createGinIndex.createGinIndex-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a gin index</p>
32
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L93">src/db/migration-helpers/DreamMigrationHelpers.ts:93</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createGinIndex" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="createGinIndex.createGinIndex-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Gin<wbr/>Index</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">indexName</span>, <span class="tsd-kind-parameter">options</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="#createGinIndex.createGinIndex-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create a gin index</p>
33
33
  </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>
34
34
  </div><div class="tsd-comment tsd-typography"></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>
35
35
  </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{ </span><br/><span>    </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><br/><span>    </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><br/><span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
36
36
  </div><div class="tsd-comment tsd-typography"></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>
37
37
  </div><div class="tsd-comment tsd-typography"></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>
38
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L115">src/db/migration-helpers/DreamMigrationHelpers.ts:115</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="dropConstraint" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="dropConstraint.dropConstraint-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">drop<wbr/>Constraint</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">constraintName</span>, <span class="tsd-kind-parameter">options</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="#dropConstraint.dropConstraint-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a constraint</p>
38
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L115">src/db/migration-helpers/DreamMigrationHelpers.ts:115</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="dropConstraint" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="dropConstraint.dropConstraint-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">drop<wbr/>Constraint</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">constraintName</span>, <span class="tsd-kind-parameter">options</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="#dropConstraint.dropConstraint-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a constraint</p>
39
39
  <p>Note that this always includes &quot;IF NOT EXISTS&quot;, so is safe to re-run multiple times.</p>
40
40
  </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>
41
41
  </div><div class="tsd-comment tsd-typography"></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>
42
42
  </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-symbol">{ </span><br/><span>    </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><br/><span class="tsd-signature-symbol">}</span></span><div class="tsd-comment tsd-typography"><p>Configuration options</p>
43
43
  </div><div class="tsd-comment tsd-typography"></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>
44
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L138">src/db/migration-helpers/DreamMigrationHelpers.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="dropEnumValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="dropEnumValue.dropEnumValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">drop<wbr/>Enum<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">__namedParameters</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="#dropEnumValue.dropEnumValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a value from an enum and replace it with a different enum already
44
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L138">src/db/migration-helpers/DreamMigrationHelpers.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="dropEnumValue" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="dropEnumValue.dropEnumValue-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">drop<wbr/>Enum<wbr/>Value</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">__namedParameters</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="#dropEnumValue.dropEnumValue-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Drop a value from an enum and replace it with a different enum already
45
45
  present in the enum type (or optionally remove it from array columns).</p>
46
46
  </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>
47
47
  </div><div class="tsd-comment tsd-typography"></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>
48
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L191">src/db/migration-helpers/DreamMigrationHelpers.ts:191</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="newTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="newTransaction.newTransaction-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">new<wbr/>Transaction</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#newTransaction.newTransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Forces a new transaction boundary in migration execution.</p>
48
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L191">src/db/migration-helpers/DreamMigrationHelpers.ts:191</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="newTransaction" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="newTransaction.newTransaction-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">new<wbr/>Transaction</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#newTransaction.newTransaction-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Forces a new transaction boundary in migration execution.</p>
49
49
  <p>When called in a migration file, this method ensures that any existing transaction
50
50
  is committed before this migration runs, and a new transaction is started before the
51
51
  migration in this file. This is essential for migrations that depend on previously
@@ -56,7 +56,7 @@ enum values to be committed to the database first.</p>
56
56
  <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>
57
57
  </code><button type="button">Copy</button></pre>
58
58
 
59
- </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L179">src/db/migration-helpers/DreamMigrationHelpers.ts:179</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="renameTable" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="renameTable.renameTable-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">rename<wbr/>Table</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">from</span>, <span class="tsd-kind-parameter">to</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.renameTable-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Rename a table and its associated primary key sequence.</p>
59
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L179">src/db/migration-helpers/DreamMigrationHelpers.ts:179</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="renameTable" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><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"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="renameTable.renameTable-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">rename<wbr/>Table</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">db</span>, <span class="tsd-kind-parameter">from</span>, <span class="tsd-kind-parameter">to</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.renameTable-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Rename a table and its associated primary key sequence.</p>
60
60
  <p>This method renames both the table and its primary key sequence to keep them
61
61
  in sync. When PostgreSQL creates a table with a serial or bigserial primary key,
62
62
  it automatically creates a sequence named <code>{tablename}_id_seq</code>. If you only rename
@@ -66,4 +66,4 @@ key column named 'id'.</p>
66
66
  </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>
67
67
  </div><div class="tsd-comment tsd-typography"></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>
68
68
  </div><div class="tsd-comment tsd-typography"></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>
69
- </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/0e48e274f8f41073cfa485559009667990b2b015/src/db/migration-helpers/DreamMigrationHelpers.ts#L19">src/db/migration-helpers/DreamMigrationHelpers.ts:19</a></li></ul></aside></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"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><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="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addDeferrableUniqueConstraint" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a><a href="#addEnumValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a><a href="#createExtension" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a><a href="#createGinIndex" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Gin<wbr/>Index</span></a><a href="#dropConstraint" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Constraint</span></a><a href="#dropEnumValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Enum<wbr/>Value</span></a><a href="#newTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>new<wbr/>Transaction</span></a><a href="#renameTable" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><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="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@rvoh/dream</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><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>
69
+ </div><div class="tsd-comment tsd-typography"></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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/dc2fab6f14b7d3f3508a786bbfdbcaca1b5c5368/src/db/migration-helpers/DreamMigrationHelpers.ts#L19">src/db/migration-helpers/DreamMigrationHelpers.ts:19</a></li></ul></aside></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"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>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="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><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="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addDeferrableUniqueConstraint" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Deferrable<wbr/>Unique<wbr/>Constraint</span></a><a href="#addEnumValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Enum<wbr/>Value</span></a><a href="#createExtension" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Extension</span></a><a href="#createGinIndex" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Gin<wbr/>Index</span></a><a href="#dropConstraint" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Constraint</span></a><a href="#dropEnumValue" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>drop<wbr/>Enum<wbr/>Value</span></a><a href="#newTransaction" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>new<wbr/>Transaction</span></a><a href="#renameTable" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><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="../index.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@rvoh/dream</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><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>