@rvoh/dream 2.3.0-alpha.8 → 2.3.0

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 (191) hide show
  1. package/dist/cjs/src/dream-app/index.js +9 -7
  2. package/dist/cjs/src/utils/datetime/DateTime.js +11 -13
  3. package/dist/esm/src/dream-app/index.js +9 -7
  4. package/dist/esm/src/utils/datetime/DateTime.js +11 -13
  5. package/dist/types/src/dream-app/index.d.ts +1 -1
  6. package/dist/types/src/utils/datetime/DateTime.d.ts +8 -7
  7. package/docs/classes/db.DreamMigrationHelpers.html +9 -9
  8. package/docs/classes/db.KyselyQueryDriver.html +32 -32
  9. package/docs/classes/db.PostgresQueryDriver.html +33 -33
  10. package/docs/classes/db.QueryDriverBase.html +31 -31
  11. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  12. package/docs/classes/errors.ColumnOverflow.html +3 -3
  13. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  14. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  15. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  16. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  17. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  18. package/docs/classes/errors.InvalidClockTime.html +2 -2
  19. package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
  20. package/docs/classes/errors.InvalidDateTime.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 +33 -33
  27. package/docs/classes/index.ClockTime.html +32 -32
  28. package/docs/classes/index.ClockTimeTz.html +35 -35
  29. package/docs/classes/index.DateTime.html +78 -77
  30. package/docs/classes/index.Decorators.html +19 -19
  31. package/docs/classes/index.Dream.html +116 -116
  32. package/docs/classes/index.DreamApp.html +5 -5
  33. package/docs/classes/index.DreamTransaction.html +2 -2
  34. package/docs/classes/index.Env.html +2 -2
  35. package/docs/classes/index.Query.html +56 -56
  36. package/docs/classes/system.CliFileWriter.html +2 -2
  37. package/docs/classes/system.DreamBin.html +2 -2
  38. package/docs/classes/system.DreamCLI.html +5 -5
  39. package/docs/classes/system.DreamImporter.html +2 -2
  40. package/docs/classes/system.DreamLogos.html +2 -2
  41. package/docs/classes/system.DreamSerializerBuilder.html +8 -8
  42. package/docs/classes/system.ObjectSerializerBuilder.html +8 -8
  43. package/docs/classes/system.PathHelpers.html +3 -3
  44. package/docs/classes/utils.Encrypt.html +2 -2
  45. package/docs/classes/utils.Range.html +2 -2
  46. package/docs/functions/db.closeAllDbConnections.html +1 -1
  47. package/docs/functions/db.dreamDbConnections.html +1 -1
  48. package/docs/functions/db.untypedDb.html +1 -1
  49. package/docs/functions/db.validateColumn.html +1 -1
  50. package/docs/functions/db.validateTable.html +1 -1
  51. package/docs/functions/errors.pgErrorType.html +1 -1
  52. package/docs/functions/index.DreamSerializer.html +1 -1
  53. package/docs/functions/index.ObjectSerializer.html +1 -1
  54. package/docs/functions/index.ReplicaSafe.html +1 -1
  55. package/docs/functions/index.STI.html +1 -1
  56. package/docs/functions/index.SoftDelete.html +1 -1
  57. package/docs/functions/utils.camelize.html +1 -1
  58. package/docs/functions/utils.capitalize.html +1 -1
  59. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  60. package/docs/functions/utils.compact.html +1 -1
  61. package/docs/functions/utils.groupBy.html +1 -1
  62. package/docs/functions/utils.hyphenize.html +1 -1
  63. package/docs/functions/utils.intersection.html +1 -1
  64. package/docs/functions/utils.isEmpty.html +1 -1
  65. package/docs/functions/utils.normalizeUnicode.html +1 -1
  66. package/docs/functions/utils.pascalize.html +1 -1
  67. package/docs/functions/utils.percent.html +1 -1
  68. package/docs/functions/utils.range-1.html +1 -1
  69. package/docs/functions/utils.round.html +1 -1
  70. package/docs/functions/utils.sanitizeString.html +1 -1
  71. package/docs/functions/utils.snakeify.html +1 -1
  72. package/docs/functions/utils.sort.html +1 -1
  73. package/docs/functions/utils.sortBy.html +1 -1
  74. package/docs/functions/utils.sortObjectByKey.html +1 -1
  75. package/docs/functions/utils.sortObjectByValue.html +1 -1
  76. package/docs/functions/utils.uncapitalize.html +1 -1
  77. package/docs/functions/utils.uniq.html +1 -1
  78. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  79. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  80. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  81. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  82. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  83. package/docs/interfaces/types.DecoratorContext.html +2 -2
  84. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  85. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  86. package/docs/interfaces/types.DurationObject.html +2 -2
  87. package/docs/interfaces/types.EncryptOptions.html +2 -2
  88. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  89. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  90. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  91. package/docs/modules/db.html +1 -1
  92. package/docs/modules/errors.html +1 -1
  93. package/docs/modules/index.html +1 -1
  94. package/docs/modules/openapi.html +1 -1
  95. package/docs/modules/system.html +1 -1
  96. package/docs/modules/types.html +1 -1
  97. package/docs/modules/utils.html +1 -1
  98. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  99. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  100. package/docs/types/openapi.OpenapiFormats.html +1 -1
  101. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  102. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  103. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  104. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  105. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  106. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  107. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  108. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  109. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  110. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -1
  111. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -1
  112. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -1
  113. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +1 -1
  114. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  115. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  116. package/docs/types/openapi.OpenapiSchemaNull.html +1 -1
  117. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  118. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  119. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  120. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  121. package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +1 -1
  122. package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  123. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  124. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  125. package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +1 -1
  126. package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +1 -1
  127. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  128. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  129. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  130. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  131. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  132. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  133. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  134. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  135. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  136. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  137. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  138. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  139. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  140. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  141. package/docs/types/types.CalendarDateDurationUnit.html +1 -1
  142. package/docs/types/types.CalendarDateObject.html +1 -1
  143. package/docs/types/types.Camelized.html +1 -1
  144. package/docs/types/types.ClockTimeObject.html +1 -1
  145. package/docs/types/types.DbConnectionType.html +1 -1
  146. package/docs/types/types.DbTypes.html +1 -1
  147. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  148. package/docs/types/types.DreamAttributes.html +1 -1
  149. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  150. package/docs/types/types.DreamClassColumn.html +1 -1
  151. package/docs/types/types.DreamColumn.html +1 -1
  152. package/docs/types/types.DreamColumnNames.html +1 -1
  153. package/docs/types/types.DreamLogLevel.html +1 -1
  154. package/docs/types/types.DreamLogger.html +1 -1
  155. package/docs/types/types.DreamModelSerializerType.html +1 -1
  156. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  157. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  158. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  159. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  160. package/docs/types/types.DreamSerializable.html +1 -1
  161. package/docs/types/types.DreamSerializableArray.html +1 -1
  162. package/docs/types/types.DreamSerializerKey.html +1 -1
  163. package/docs/types/types.DreamSerializers.html +1 -1
  164. package/docs/types/types.DreamVirtualColumns.html +1 -1
  165. package/docs/types/types.DurationUnit.html +1 -1
  166. package/docs/types/types.EncryptAlgorithm.html +1 -1
  167. package/docs/types/types.HasManyStatement.html +1 -1
  168. package/docs/types/types.HasOneStatement.html +1 -1
  169. package/docs/types/types.Hyphenized.html +1 -1
  170. package/docs/types/types.Pascalized.html +1 -1
  171. package/docs/types/types.PrimaryKeyType.html +1 -1
  172. package/docs/types/types.RoundingPrecision.html +1 -1
  173. package/docs/types/types.SerializerCasing.html +1 -1
  174. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  175. package/docs/types/types.Snakeified.html +1 -1
  176. package/docs/types/types.StrictInterface.html +1 -1
  177. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  178. package/docs/types/types.UpdateableProperties.html +1 -1
  179. package/docs/types/types.ValidationType.html +1 -1
  180. package/docs/types/types.ViewModel.html +1 -1
  181. package/docs/types/types.ViewModelClass.html +1 -1
  182. package/docs/types/types.WeekdayName.html +1 -1
  183. package/docs/types/types.WhereStatementForDream.html +1 -1
  184. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  185. package/docs/variables/index.DreamConst.html +1 -1
  186. package/docs/variables/index.ops.html +1 -1
  187. package/docs/variables/openapi.openapiPrimitiveTypes-1.html +1 -1
  188. package/docs/variables/openapi.openapiShorthandPrimitiveTypes-1.html +1 -1
  189. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  190. package/docs/variables/system.primaryKeyTypes.html +1 -1
  191. package/package.json +1 -1
@@ -16,6 +16,7 @@ import expandStiClasses from '../helpers/sti/expandStiClasses.js';
16
16
  import inferSerializerFromDreamOrViewModel, { inferSerializersFromDreamClassOrViewModelClass, } from '../serializer/helpers/inferSerializerFromDreamOrViewModel.js';
17
17
  import isDreamSerializer from '../serializer/helpers/isDreamSerializer.js';
18
18
  import serializerNameFromFullyQualifiedModelName from '../serializer/helpers/serializerNameFromFullyQualifiedModelName.js';
19
+ import BaseClockTime from '../utils/datetime/BaseClockTime.js';
19
20
  import CalendarDate from '../utils/datetime/CalendarDate.js';
20
21
  import { DateTime, Settings } from '../utils/datetime/DateTime.js';
21
22
  import { cacheDreamApp, getCachedDreamAppOrFail } from './cache.js';
@@ -164,13 +165,13 @@ Try setting it to something valid, like:
164
165
  return getCachedDreamAppOrFail();
165
166
  }
166
167
  static log(...args) {
167
- this.getOrFail().logger.info(this.argsToString(args));
168
+ this.getOrFail().logger.info(this.loggerArgsToString(args));
168
169
  }
169
170
  static logWithLevel(level, ...args) {
170
- this.getOrFail().logger[level](this.argsToString(args));
171
+ this.getOrFail().logger[level](this.loggerArgsToString(args));
171
172
  }
172
- static argsToString(args) {
173
- return args.map(argToString).join(' ');
173
+ static loggerArgsToString(args) {
174
+ return args.map(loggerArgToString).join(' ');
174
175
  }
175
176
  _specialHooks = {
176
177
  dbLog: [],
@@ -404,16 +405,17 @@ Try setting it to something valid, like:
404
405
  }
405
406
  }
406
407
  }
407
- function argToString(arg) {
408
+ function loggerArgToString(arg) {
408
409
  if (typeof arg === 'string')
409
410
  return arg;
410
411
  if (typeof arg === 'number')
411
412
  return arg;
412
413
  if (typeof arg === 'boolean')
413
414
  return arg;
414
- if (arg instanceof DateTime || arg instanceof CalendarDate)
415
+ if (arg instanceof DateTime || arg instanceof CalendarDate || arg instanceof BaseClockTime) {
415
416
  return arg.toISO();
416
- return util.inspect(arg, { depth: 3 });
417
+ }
418
+ return JSON.stringify(util.inspect(arg, { depth: 6 }));
417
419
  }
418
420
  export const DreamAppAllowedPackageManagersEnumValues = ['pnpm', 'yarn', 'npm'];
419
421
  // GeneratorImportStyles are used by CLI generators to determine how
@@ -13,8 +13,9 @@ export const BASE_DATE_OBJECT = {
13
13
  * DateTime wraps Luxon DateTime with microsecond precision (0-999).
14
14
  * The decimal part in ISO/SQL is 6 digits: first 3 = milliseconds, next 3 = microseconds.
15
15
  *
16
- * Full datetime output (toISO, toSQL) is normalized to UTC.
16
+ * Full datetime output with toSQL() is normalized to UTC.
17
17
  * Time-only output (toISOTime, toSQLTime) omits timezone offset by default.
18
+ * toISO() preserves the timezone of the DateTime instance.
18
19
  */
19
20
  export class DateTime {
20
21
  luxonDatetime;
@@ -568,7 +569,7 @@ export class DateTime {
568
569
  /**
569
570
  * Returns an ISO 8601 string with 6 fractional second digits (milliseconds + microseconds).
570
571
  *
571
- * Always converts to UTC before formatting (e.g., '2024-03-15T15:30:45.123456Z').
572
+ * Preserves the timezone of the DateTime instance.
572
573
  *
573
574
  * @param opts - Optional format options
574
575
  * @param opts.suppressMilliseconds - If true, omits fractional seconds when they are zero
@@ -578,12 +579,11 @@ export class DateTime {
578
579
  * @returns ISO string (e.g. "2024-03-15T10:30:45.123456-05:00" or "2024-03-15T10:30:45.123456Z")
579
580
  * @example
580
581
  * ```ts
581
- * DateTime.fromISO('2024-03-15T10:30:45.123456').toISO() // Converts to UTC
582
+ * DateTime.fromISO('2024-03-15T10:30:45.123456-05:00').toISO() // '2024-03-15T10:30:45.123456-05:00'
582
583
  * ```
583
584
  */
584
585
  toISO(opts) {
585
- const dt = this.toUTC();
586
- return replaceISOMicroseconds(dt, dt.luxonDatetime.toISO(opts), opts);
586
+ return replaceISOMicroseconds(this, this.luxonDatetime.toISO(opts), opts);
587
587
  }
588
588
  /**
589
589
  * Returns an ISO date string (date only, no time).
@@ -681,12 +681,12 @@ export class DateTime {
681
681
  /**
682
682
  * Returns an ISO 8601 string representation (for valueOf() operations).
683
683
  *
684
- * Converts to UTC before formatting.
684
+ * Preserves the timezone of the DateTime instance.
685
685
  *
686
686
  * @returns ISO datetime string with microsecond precision
687
687
  * @example
688
688
  * ```ts
689
- * DateTime.local(2017, 3, 12).valueOf() // Converts to UTC
689
+ * DateTime.local(2017, 3, 12).valueOf() // Preserves local timezone
690
690
  * DateTime.fromISO('2026-02-07T09:03:44.123456Z').valueOf() // '2026-02-07T09:03:44.123456Z'
691
691
  * ```
692
692
  */
@@ -701,7 +701,7 @@ export class DateTime {
701
701
  * Returns an ISO 8601 formatted string for JSON serialization.
702
702
  * This ensures DateTime objects are properly serialized to ISO format.
703
703
  *
704
- * Converts to UTC before formatting.
704
+ * Preserves the timezone of the DateTime instance.
705
705
  *
706
706
  * @returns ISO datetime string with microsecond precision
707
707
  * @example
@@ -717,7 +717,7 @@ export class DateTime {
717
717
  * Returns an ISO 8601 formatted string representation.
718
718
  * Alias for toISO().
719
719
  *
720
- * Converts to UTC before formatting.
720
+ * Preserves the timezone of the DateTime instance.
721
721
  *
722
722
  * @returns ISO datetime string with microsecond precision
723
723
  * @example
@@ -1015,8 +1015,7 @@ export class DateTime {
1015
1015
  */
1016
1016
  startOf(unit, opts) {
1017
1017
  const luxonDatetime = this.luxonDatetime.startOf(unit, opts);
1018
- const microseconds = unit === 'millisecond' ? this.microsecond : 0;
1019
- return new DateTime(luxonDatetime, microseconds);
1018
+ return new DateTime(luxonDatetime, 0);
1020
1019
  }
1021
1020
  /**
1022
1021
  * Returns a new DateTime at the end of the given unit.
@@ -1032,8 +1031,7 @@ export class DateTime {
1032
1031
  */
1033
1032
  endOf(unit, opts) {
1034
1033
  const luxonDatetime = this.luxonDatetime.endOf(unit, opts);
1035
- const microseconds = unit === 'millisecond' ? this.microsecond : 999;
1036
- return new DateTime(luxonDatetime, microseconds);
1034
+ return new DateTime(luxonDatetime, 999);
1037
1035
  }
1038
1036
  /**
1039
1037
  * Returns a new DateTime with the given locale/zone options. Microsecond is preserved.
@@ -16,6 +16,7 @@ import expandStiClasses from '../helpers/sti/expandStiClasses.js';
16
16
  import inferSerializerFromDreamOrViewModel, { inferSerializersFromDreamClassOrViewModelClass, } from '../serializer/helpers/inferSerializerFromDreamOrViewModel.js';
17
17
  import isDreamSerializer from '../serializer/helpers/isDreamSerializer.js';
18
18
  import serializerNameFromFullyQualifiedModelName from '../serializer/helpers/serializerNameFromFullyQualifiedModelName.js';
19
+ import BaseClockTime from '../utils/datetime/BaseClockTime.js';
19
20
  import CalendarDate from '../utils/datetime/CalendarDate.js';
20
21
  import { DateTime, Settings } from '../utils/datetime/DateTime.js';
21
22
  import { cacheDreamApp, getCachedDreamAppOrFail } from './cache.js';
@@ -164,13 +165,13 @@ Try setting it to something valid, like:
164
165
  return getCachedDreamAppOrFail();
165
166
  }
166
167
  static log(...args) {
167
- this.getOrFail().logger.info(this.argsToString(args));
168
+ this.getOrFail().logger.info(this.loggerArgsToString(args));
168
169
  }
169
170
  static logWithLevel(level, ...args) {
170
- this.getOrFail().logger[level](this.argsToString(args));
171
+ this.getOrFail().logger[level](this.loggerArgsToString(args));
171
172
  }
172
- static argsToString(args) {
173
- return args.map(argToString).join(' ');
173
+ static loggerArgsToString(args) {
174
+ return args.map(loggerArgToString).join(' ');
174
175
  }
175
176
  _specialHooks = {
176
177
  dbLog: [],
@@ -404,16 +405,17 @@ Try setting it to something valid, like:
404
405
  }
405
406
  }
406
407
  }
407
- function argToString(arg) {
408
+ function loggerArgToString(arg) {
408
409
  if (typeof arg === 'string')
409
410
  return arg;
410
411
  if (typeof arg === 'number')
411
412
  return arg;
412
413
  if (typeof arg === 'boolean')
413
414
  return arg;
414
- if (arg instanceof DateTime || arg instanceof CalendarDate)
415
+ if (arg instanceof DateTime || arg instanceof CalendarDate || arg instanceof BaseClockTime) {
415
416
  return arg.toISO();
416
- return util.inspect(arg, { depth: 3 });
417
+ }
418
+ return JSON.stringify(util.inspect(arg, { depth: 6 }));
417
419
  }
418
420
  export const DreamAppAllowedPackageManagersEnumValues = ['pnpm', 'yarn', 'npm'];
419
421
  // GeneratorImportStyles are used by CLI generators to determine how
@@ -13,8 +13,9 @@ export const BASE_DATE_OBJECT = {
13
13
  * DateTime wraps Luxon DateTime with microsecond precision (0-999).
14
14
  * The decimal part in ISO/SQL is 6 digits: first 3 = milliseconds, next 3 = microseconds.
15
15
  *
16
- * Full datetime output (toISO, toSQL) is normalized to UTC.
16
+ * Full datetime output with toSQL() is normalized to UTC.
17
17
  * Time-only output (toISOTime, toSQLTime) omits timezone offset by default.
18
+ * toISO() preserves the timezone of the DateTime instance.
18
19
  */
19
20
  export class DateTime {
20
21
  luxonDatetime;
@@ -568,7 +569,7 @@ export class DateTime {
568
569
  /**
569
570
  * Returns an ISO 8601 string with 6 fractional second digits (milliseconds + microseconds).
570
571
  *
571
- * Always converts to UTC before formatting (e.g., '2024-03-15T15:30:45.123456Z').
572
+ * Preserves the timezone of the DateTime instance.
572
573
  *
573
574
  * @param opts - Optional format options
574
575
  * @param opts.suppressMilliseconds - If true, omits fractional seconds when they are zero
@@ -578,12 +579,11 @@ export class DateTime {
578
579
  * @returns ISO string (e.g. "2024-03-15T10:30:45.123456-05:00" or "2024-03-15T10:30:45.123456Z")
579
580
  * @example
580
581
  * ```ts
581
- * DateTime.fromISO('2024-03-15T10:30:45.123456').toISO() // Converts to UTC
582
+ * DateTime.fromISO('2024-03-15T10:30:45.123456-05:00').toISO() // '2024-03-15T10:30:45.123456-05:00'
582
583
  * ```
583
584
  */
584
585
  toISO(opts) {
585
- const dt = this.toUTC();
586
- return replaceISOMicroseconds(dt, dt.luxonDatetime.toISO(opts), opts);
586
+ return replaceISOMicroseconds(this, this.luxonDatetime.toISO(opts), opts);
587
587
  }
588
588
  /**
589
589
  * Returns an ISO date string (date only, no time).
@@ -681,12 +681,12 @@ export class DateTime {
681
681
  /**
682
682
  * Returns an ISO 8601 string representation (for valueOf() operations).
683
683
  *
684
- * Converts to UTC before formatting.
684
+ * Preserves the timezone of the DateTime instance.
685
685
  *
686
686
  * @returns ISO datetime string with microsecond precision
687
687
  * @example
688
688
  * ```ts
689
- * DateTime.local(2017, 3, 12).valueOf() // Converts to UTC
689
+ * DateTime.local(2017, 3, 12).valueOf() // Preserves local timezone
690
690
  * DateTime.fromISO('2026-02-07T09:03:44.123456Z').valueOf() // '2026-02-07T09:03:44.123456Z'
691
691
  * ```
692
692
  */
@@ -701,7 +701,7 @@ export class DateTime {
701
701
  * Returns an ISO 8601 formatted string for JSON serialization.
702
702
  * This ensures DateTime objects are properly serialized to ISO format.
703
703
  *
704
- * Converts to UTC before formatting.
704
+ * Preserves the timezone of the DateTime instance.
705
705
  *
706
706
  * @returns ISO datetime string with microsecond precision
707
707
  * @example
@@ -717,7 +717,7 @@ export class DateTime {
717
717
  * Returns an ISO 8601 formatted string representation.
718
718
  * Alias for toISO().
719
719
  *
720
- * Converts to UTC before formatting.
720
+ * Preserves the timezone of the DateTime instance.
721
721
  *
722
722
  * @returns ISO datetime string with microsecond precision
723
723
  * @example
@@ -1015,8 +1015,7 @@ export class DateTime {
1015
1015
  */
1016
1016
  startOf(unit, opts) {
1017
1017
  const luxonDatetime = this.luxonDatetime.startOf(unit, opts);
1018
- const microseconds = unit === 'millisecond' ? this.microsecond : 0;
1019
- return new DateTime(luxonDatetime, microseconds);
1018
+ return new DateTime(luxonDatetime, 0);
1020
1019
  }
1021
1020
  /**
1022
1021
  * Returns a new DateTime at the end of the given unit.
@@ -1032,8 +1031,7 @@ export class DateTime {
1032
1031
  */
1033
1032
  endOf(unit, opts) {
1034
1033
  const luxonDatetime = this.luxonDatetime.endOf(unit, opts);
1035
- const microseconds = unit === 'millisecond' ? this.microsecond : 999;
1036
- return new DateTime(luxonDatetime, microseconds);
1034
+ return new DateTime(luxonDatetime, 999);
1037
1035
  }
1038
1036
  /**
1039
1037
  * Returns a new DateTime with the given locale/zone options. Microsecond is preserved.
@@ -100,7 +100,7 @@ export default class DreamApp {
100
100
  static getOrFail(): DreamApp;
101
101
  static log(...args: any[]): void;
102
102
  static logWithLevel(level: DreamLogLevel, ...args: any[]): void;
103
- private static argsToString;
103
+ private static loggerArgsToString;
104
104
  private _specialHooks;
105
105
  get specialHooks(): DreamAppSpecialHooks;
106
106
  private _dbCredentials;
@@ -10,8 +10,9 @@ export declare const BASE_DATE_OBJECT: {
10
10
  * DateTime wraps Luxon DateTime with microsecond precision (0-999).
11
11
  * The decimal part in ISO/SQL is 6 digits: first 3 = milliseconds, next 3 = microseconds.
12
12
  *
13
- * Full datetime output (toISO, toSQL) is normalized to UTC.
13
+ * Full datetime output with toSQL() is normalized to UTC.
14
14
  * Time-only output (toISOTime, toSQLTime) omits timezone offset by default.
15
+ * toISO() preserves the timezone of the DateTime instance.
15
16
  */
16
17
  export declare class DateTime {
17
18
  protected readonly luxonDatetime: LuxonDateTime;
@@ -456,7 +457,7 @@ export declare class DateTime {
456
457
  /**
457
458
  * Returns an ISO 8601 string with 6 fractional second digits (milliseconds + microseconds).
458
459
  *
459
- * Always converts to UTC before formatting (e.g., '2024-03-15T15:30:45.123456Z').
460
+ * Preserves the timezone of the DateTime instance.
460
461
  *
461
462
  * @param opts - Optional format options
462
463
  * @param opts.suppressMilliseconds - If true, omits fractional seconds when they are zero
@@ -466,7 +467,7 @@ export declare class DateTime {
466
467
  * @returns ISO string (e.g. "2024-03-15T10:30:45.123456-05:00" or "2024-03-15T10:30:45.123456Z")
467
468
  * @example
468
469
  * ```ts
469
- * DateTime.fromISO('2024-03-15T10:30:45.123456').toISO() // Converts to UTC
470
+ * DateTime.fromISO('2024-03-15T10:30:45.123456-05:00').toISO() // '2024-03-15T10:30:45.123456-05:00'
470
471
  * ```
471
472
  */
472
473
  toISO(opts?: ToISOTimeOptions): string;
@@ -547,12 +548,12 @@ export declare class DateTime {
547
548
  /**
548
549
  * Returns an ISO 8601 string representation (for valueOf() operations).
549
550
  *
550
- * Converts to UTC before formatting.
551
+ * Preserves the timezone of the DateTime instance.
551
552
  *
552
553
  * @returns ISO datetime string with microsecond precision
553
554
  * @example
554
555
  * ```ts
555
- * DateTime.local(2017, 3, 12).valueOf() // Converts to UTC
556
+ * DateTime.local(2017, 3, 12).valueOf() // Preserves local timezone
556
557
  * DateTime.fromISO('2026-02-07T09:03:44.123456Z').valueOf() // '2026-02-07T09:03:44.123456Z'
557
558
  * ```
558
559
  */
@@ -562,7 +563,7 @@ export declare class DateTime {
562
563
  * Returns an ISO 8601 formatted string for JSON serialization.
563
564
  * This ensures DateTime objects are properly serialized to ISO format.
564
565
  *
565
- * Converts to UTC before formatting.
566
+ * Preserves the timezone of the DateTime instance.
566
567
  *
567
568
  * @returns ISO datetime string with microsecond precision
568
569
  * @example
@@ -576,7 +577,7 @@ export declare class DateTime {
576
577
  * Returns an ISO 8601 formatted string representation.
577
578
  * Alias for toISO().
578
579
  *
579
- * Converts to UTC before formatting.
580
+ * Preserves the timezone of the DateTime instance.
580
581
  *
581
582
  * @returns ISO datetime string with microsecond precision
582
583
  * @example
@@ -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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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/4d37b1572658d717030614eb2867d9a635402c12/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/dac2c8d2a2fe39515548f72d70f626dfa3062b02/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>