@rvoh/dream 1.8.0 → 1.9.1

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 (187) hide show
  1. package/dist/cjs/src/helpers/cli/SchemaBuilder.js +4 -0
  2. package/dist/cjs/src/helpers/range.js +1 -1
  3. package/dist/esm/src/helpers/cli/SchemaBuilder.js +4 -0
  4. package/dist/esm/src/helpers/range.js +1 -1
  5. package/dist/types/src/helpers/cli/SchemaBuilder.d.ts +2 -1
  6. package/dist/types/src/helpers/range.d.ts +6 -4
  7. package/dist/types/src/types/associations/shared.d.ts +1 -1
  8. package/dist/types/src/types/associations/shared.ts +19 -12
  9. package/dist/types/src/types/dream.d.ts +4 -2
  10. package/dist/types/src/types/dream.ts +23 -7
  11. package/docs/classes/Benchmark.html +2 -2
  12. package/docs/classes/CalendarDate.html +2 -2
  13. package/docs/classes/CheckConstraintViolation.html +3 -3
  14. package/docs/classes/CliFileWriter.html +2 -2
  15. package/docs/classes/ColumnOverflow.html +3 -3
  16. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  17. package/docs/classes/DataIncompatibleWithDatabaseField.html +3 -3
  18. package/docs/classes/DataTypeColumnTypeMismatch.html +3 -3
  19. package/docs/classes/Decorators.html +19 -19
  20. package/docs/classes/Dream.html +118 -118
  21. package/docs/classes/DreamApp.html +4 -4
  22. package/docs/classes/DreamBin.html +2 -2
  23. package/docs/classes/DreamCLI.html +4 -4
  24. package/docs/classes/DreamImporter.html +2 -2
  25. package/docs/classes/DreamLogos.html +2 -2
  26. package/docs/classes/DreamMigrationHelpers.html +8 -8
  27. package/docs/classes/DreamSerializerBuilder.html +8 -8
  28. package/docs/classes/DreamTransaction.html +2 -2
  29. package/docs/classes/Encrypt.html +2 -2
  30. package/docs/classes/Env.html +2 -2
  31. package/docs/classes/GlobalNameNotSet.html +3 -3
  32. package/docs/classes/KyselyQueryDriver.html +30 -30
  33. package/docs/classes/MissingSerializersDefinition.html +3 -3
  34. package/docs/classes/NonLoadedAssociation.html +3 -3
  35. package/docs/classes/NotNullViolation.html +3 -3
  36. package/docs/classes/ObjectSerializerBuilder.html +8 -8
  37. package/docs/classes/PostgresQueryDriver.html +31 -31
  38. package/docs/classes/Query.html +55 -55
  39. package/docs/classes/QueryDriverBase.html +29 -29
  40. package/docs/classes/Range.html +2 -2
  41. package/docs/classes/RecordNotFound.html +3 -3
  42. package/docs/classes/ValidationError.html +3 -3
  43. package/docs/functions/DreamSerializer.html +1 -1
  44. package/docs/functions/ObjectSerializer.html +1 -1
  45. package/docs/functions/ReplicaSafe.html +1 -1
  46. package/docs/functions/STI.html +1 -1
  47. package/docs/functions/SoftDelete.html +1 -1
  48. package/docs/functions/camelize.html +1 -1
  49. package/docs/functions/capitalize.html +1 -1
  50. package/docs/functions/cloneDeepSafe.html +1 -1
  51. package/docs/functions/closeAllDbConnections.html +1 -1
  52. package/docs/functions/compact.html +1 -1
  53. package/docs/functions/dreamDbConnections.html +1 -1
  54. package/docs/functions/dreamPath.html +1 -1
  55. package/docs/functions/expandStiClasses.html +1 -1
  56. package/docs/functions/generateDream.html +1 -1
  57. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  58. package/docs/functions/groupBy.html +1 -1
  59. package/docs/functions/hyphenize.html +1 -1
  60. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  61. package/docs/functions/inferSerializersFromDreamClassOrViewModelClass.html +1 -1
  62. package/docs/functions/intersection.html +1 -1
  63. package/docs/functions/isDreamSerializer.html +1 -1
  64. package/docs/functions/isEmpty.html +1 -1
  65. package/docs/functions/loadRepl.html +1 -1
  66. package/docs/functions/lookupClassByGlobalName.html +1 -1
  67. package/docs/functions/normalizeUnicode.html +1 -1
  68. package/docs/functions/pascalize.html +1 -1
  69. package/docs/functions/pgErrorType.html +1 -1
  70. package/docs/functions/range-1.html +1 -1
  71. package/docs/functions/relativeDreamPath.html +1 -1
  72. package/docs/functions/round.html +1 -1
  73. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  74. package/docs/functions/sharedPathPrefix.html +1 -1
  75. package/docs/functions/snakeify.html +1 -1
  76. package/docs/functions/sort.html +1 -1
  77. package/docs/functions/sortBy.html +1 -1
  78. package/docs/functions/sortObjectByKey.html +1 -1
  79. package/docs/functions/sortObjectByValue.html +1 -1
  80. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  81. package/docs/functions/uncapitalize.html +1 -1
  82. package/docs/functions/uniq.html +1 -1
  83. package/docs/functions/untypedDb.html +1 -1
  84. package/docs/functions/validateColumn.html +1 -1
  85. package/docs/functions/validateTable.html +1 -1
  86. package/docs/interfaces/BelongsToStatement.html +2 -2
  87. package/docs/interfaces/DecoratorContext.html +2 -2
  88. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  89. package/docs/interfaces/DreamAppOpts.html +2 -2
  90. package/docs/interfaces/EncryptOptions.html +2 -2
  91. package/docs/interfaces/InternalAnyTypedSerializerRendersMany.html +2 -2
  92. package/docs/interfaces/InternalAnyTypedSerializerRendersOne.html +2 -2
  93. package/docs/interfaces/OpenapiDescription.html +2 -2
  94. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  95. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  96. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  97. package/docs/interfaces/SerializerRendererOpts.html +2 -2
  98. package/docs/types/Camelized.html +1 -1
  99. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  100. package/docs/types/DateTime.html +1 -1
  101. package/docs/types/DbConnectionType.html +1 -1
  102. package/docs/types/DbTypes.html +1 -1
  103. package/docs/types/DreamAppAllowedPackageManagersEnum.html +1 -1
  104. package/docs/types/DreamAssociationMetadata.html +1 -1
  105. package/docs/types/DreamAttributes.html +1 -1
  106. package/docs/types/DreamClassAssociationAndStatement.html +1 -1
  107. package/docs/types/DreamClassColumn.html +1 -1
  108. package/docs/types/DreamColumn.html +1 -1
  109. package/docs/types/DreamColumnNames.html +1 -1
  110. package/docs/types/DreamLogLevel.html +1 -1
  111. package/docs/types/DreamLogger.html +1 -1
  112. package/docs/types/DreamModelSerializerType.html +1 -1
  113. package/docs/types/DreamOrViewModelClassSerializerKey.html +1 -1
  114. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  115. package/docs/types/DreamParamSafeAttributes.html +1 -1
  116. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  117. package/docs/types/DreamSerializable.html +1 -1
  118. package/docs/types/DreamSerializableArray.html +1 -1
  119. package/docs/types/DreamSerializerKey.html +1 -1
  120. package/docs/types/DreamSerializers.html +1 -1
  121. package/docs/types/DreamVirtualColumns.html +1 -1
  122. package/docs/types/EncryptAlgorithm.html +1 -1
  123. package/docs/types/HasManyStatement.html +1 -1
  124. package/docs/types/HasOneStatement.html +1 -1
  125. package/docs/types/Hyphenized.html +1 -1
  126. package/docs/types/OpenapiAllTypes.html +1 -1
  127. package/docs/types/OpenapiFormats.html +1 -1
  128. package/docs/types/OpenapiNumberFormats.html +1 -1
  129. package/docs/types/OpenapiPrimitiveBaseTypes.html +1 -1
  130. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  131. package/docs/types/OpenapiSchemaArray.html +1 -1
  132. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  133. package/docs/types/OpenapiSchemaBase.html +1 -1
  134. package/docs/types/OpenapiSchemaBody.html +1 -1
  135. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  136. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  137. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  138. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  139. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  140. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  141. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  142. package/docs/types/OpenapiSchemaInteger.html +1 -1
  143. package/docs/types/OpenapiSchemaNull.html +1 -1
  144. package/docs/types/OpenapiSchemaNumber.html +1 -1
  145. package/docs/types/OpenapiSchemaObject.html +1 -1
  146. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  147. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  148. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  149. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  150. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  151. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  152. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  153. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  154. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  155. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  156. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  157. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  158. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  159. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  160. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  161. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  162. package/docs/types/OpenapiSchemaString.html +1 -1
  163. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  164. package/docs/types/OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  165. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  166. package/docs/types/OpenapiTypeField.html +1 -1
  167. package/docs/types/Pascalized.html +1 -1
  168. package/docs/types/RoundingPrecision.html +1 -1
  169. package/docs/types/SerializerCasing.html +1 -1
  170. package/docs/types/SimpleObjectSerializerType.html +1 -1
  171. package/docs/types/Snakeified.html +1 -1
  172. package/docs/types/UpdateableAssociationProperties.html +1 -1
  173. package/docs/types/UpdateableProperties.html +1 -1
  174. package/docs/types/ValidationType.html +1 -1
  175. package/docs/types/ViewModel.html +1 -1
  176. package/docs/types/ViewModelClass.html +1 -1
  177. package/docs/types/WhereStatementForDream.html +1 -1
  178. package/docs/types/WhereStatementForDreamClass.html +1 -1
  179. package/docs/variables/DateTime-1.html +1 -1
  180. package/docs/variables/DreamAppAllowedPackageManagersEnumValues.html +1 -1
  181. package/docs/variables/DreamConst.html +1 -1
  182. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  183. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  184. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  185. package/docs/variables/ops.html +1 -1
  186. package/docs/variables/primaryKeyTypes.html +1 -1
  187. package/package.json +1 -1
@@ -145,6 +145,7 @@ ${tableName}: {
145
145
  return `${associationName}: {
146
146
  type: '${associationMetadata.type}',
147
147
  foreignKey: ${associationMetadata.foreignKey ? `'${associationMetadata.foreignKey}'` : 'null'},
148
+ foreignKeyTypeColumn: ${associationMetadata.foreignKeyTypeColumn ? `'${associationMetadata.foreignKeyTypeColumn}'` : 'null'},
148
149
  tables: ${stringifyArray(associationMetadata.tables)},
149
150
  optional: ${associationMetadata.optional},
150
151
  requiredOnClauses: ${requiredOnClauses.length === 0 ? 'null' : stringifyArray(requiredOnClauses)},
@@ -269,6 +270,9 @@ may need to update the table getter in the corresponding Dream.
269
270
  type: associationMetaData.type,
270
271
  polymorphic: associationMetaData.polymorphic,
271
272
  foreignKey,
273
+ foreignKeyTypeColumn: associationMetaData.polymorphic
274
+ ? associationMetaData?.foreignKeyTypeField?.() || null
275
+ : null,
272
276
  optional,
273
277
  where,
274
278
  };
@@ -14,7 +14,7 @@ class Range {
14
14
  this.end = end;
15
15
  this.excludeEnd = excludeEnd;
16
16
  if (!begin && !end)
17
- throw new Error('Must pass either begin or end to a date range');
17
+ throw new Error('Must pass either begin or end to a range');
18
18
  }
19
19
  }
20
20
  exports.Range = Range;
@@ -143,6 +143,7 @@ ${tableName}: {
143
143
  return `${associationName}: {
144
144
  type: '${associationMetadata.type}',
145
145
  foreignKey: ${associationMetadata.foreignKey ? `'${associationMetadata.foreignKey}'` : 'null'},
146
+ foreignKeyTypeColumn: ${associationMetadata.foreignKeyTypeColumn ? `'${associationMetadata.foreignKeyTypeColumn}'` : 'null'},
146
147
  tables: ${stringifyArray(associationMetadata.tables)},
147
148
  optional: ${associationMetadata.optional},
148
149
  requiredOnClauses: ${requiredOnClauses.length === 0 ? 'null' : stringifyArray(requiredOnClauses)},
@@ -267,6 +268,9 @@ may need to update the table getter in the corresponding Dream.
267
268
  type: associationMetaData.type,
268
269
  polymorphic: associationMetaData.polymorphic,
269
270
  foreignKey,
271
+ foreignKeyTypeColumn: associationMetaData.polymorphic
272
+ ? associationMetaData?.foreignKeyTypeField?.() || null
273
+ : null,
270
274
  optional,
271
275
  where,
272
276
  };
@@ -10,6 +10,6 @@ export class Range {
10
10
  this.end = end;
11
11
  this.excludeEnd = excludeEnd;
12
12
  if (!begin && !end)
13
- throw new Error('Must pass either begin or end to a date range');
13
+ throw new Error('Must pass either begin or end to a range');
14
14
  }
15
15
  }
@@ -25,6 +25,7 @@ export interface SchemaBuilderAssociationData {
25
25
  polymorphic: boolean;
26
26
  optional: boolean | null;
27
27
  foreignKey: string | null;
28
+ foreignKeyTypeColumn: string | null;
28
29
  where: Record<string, string | typeof DreamConst.passthrough | typeof DreamConst.required> | null;
29
30
  }
30
31
  export interface SchemaBuilderColumnData {
@@ -32,8 +33,8 @@ export interface SchemaBuilderColumnData {
32
33
  allowNull: boolean;
33
34
  enumType: string | null;
34
35
  enumValues: string | null;
35
- isArray: boolean;
36
36
  foreignKey: string | null;
37
+ isArray: boolean;
37
38
  }
38
39
  export interface SchemaBuilderInformationSchemaRow {
39
40
  columnName: string;
@@ -1,7 +1,9 @@
1
- export default function range<T>(begin: T | null, end?: T | null, excludeEnd?: boolean): Range<T>;
2
- export declare class Range<T> {
1
+ import CalendarDate from './CalendarDate.js';
2
+ import { DateTime } from './DateTime.js';
3
+ export default function range<T, U extends T extends null ? any : T extends DateTime | CalendarDate ? DateTime | CalendarDate : T>(begin: T, end?: U | null, excludeEnd?: boolean): Range<T, U>;
4
+ export declare class Range<T, U extends T extends null ? any : T extends DateTime | CalendarDate ? DateTime | CalendarDate : T = T extends null ? any : T extends DateTime | CalendarDate ? DateTime | CalendarDate : T> {
3
5
  readonly begin: T | null;
4
- readonly end: T | null;
6
+ readonly end: U | null;
5
7
  readonly excludeEnd: boolean;
6
- constructor(begin: T | null, end?: T | null, excludeEnd?: boolean);
8
+ constructor(begin: T | null, end?: U | null, excludeEnd?: boolean);
7
9
  }
@@ -24,7 +24,7 @@ export type PassthroughOnClause<PassthroughColumns extends string[]> = Partial<R
24
24
  type DreamSelectable<DB, Schema, TableName extends AssociationTableNames<DB, Schema> & keyof DB> = Partial<{
25
25
  [ColumnName in keyof DB[TableName]]: NonKyselySupportedSupplementalWhereClauseValues<DB, Schema, TableName, ColumnName>;
26
26
  }>;
27
- type NonKyselySupportedSupplementalWhereClauseValues<DB, Schema, TableName, Column, ModelPropertyType = ModelColumnType<Schema, TableName, Column>, ColumnType = TableColumnType<Schema, TableName, Column>, EnumTypeArray extends string[] | null = TableColumnEnumTypeArray<Schema, TableName, Column>, PermanentOpsValTypes = null | readonly [], OpsValType = EnumTypeArray extends null ? ColumnType extends 'bigint' ? TypesAllowedForBigintAgainstTheDb | PermanentOpsValTypes : ModelPropertyType extends DateTime | CalendarDate | number | string ? ModelPropertyType | PermanentOpsValTypes : never : EnumTypeArray extends string[] ? EnumTypeArray[number] | PermanentOpsValTypes : never, PartialTypes = EnumTypeArray extends null ? ModelPropertyType extends DateTime ? Range<DateTime> | (() => Range<DateTime>) | Range<CalendarDate> | (() => Range<CalendarDate>) | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends CalendarDate ? Range<CalendarDate> | (() => Range<CalendarDate>) | Range<DateTime> | (() => Range<DateTime>) | OpsStatement<KyselyComparisonOperatorExpression, OpsValType> : ColumnType extends 'bigint' ? Range<TypesAllowedForBigintAgainstTheDb> | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends number ? Range<ModelPropertyType> | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends string ? Range<string> | OpsStatement<KyselyComparisonOperatorExpression, string, any> | OpsStatement<TrigramOperator, OpsValType, ExtraSimilarityArgs> : never : EnumTypeArray extends string[] ? EnumTypeArray | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : never> = PartialTypes extends never ? OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> | CurriedOpsStatement<any, any, any, OpsValType> | SelectQueryBuilder<DB, keyof DB, any> : PartialTypes | CurriedOpsStatement<any, any, any, OpsValType> | SelectQueryBuilder<DB, keyof DB, any>;
27
+ type NonKyselySupportedSupplementalWhereClauseValues<DB, Schema, TableName, Column, ModelPropertyType = ModelColumnType<Schema, TableName, Column>, ColumnType = TableColumnType<Schema, TableName, Column>, EnumTypeArray extends string[] | null = TableColumnEnumTypeArray<Schema, TableName, Column>, PermanentOpsValTypes = null | readonly [], OpsValType = EnumTypeArray extends null ? ColumnType extends 'bigint' ? TypesAllowedForBigintAgainstTheDb | PermanentOpsValTypes : ModelPropertyType extends DateTime | CalendarDate ? DateTime | CalendarDate : ModelPropertyType extends number | string ? ModelPropertyType | PermanentOpsValTypes : never : EnumTypeArray extends string[] ? EnumTypeArray[number] | PermanentOpsValTypes : never, PartialTypes = EnumTypeArray extends null ? ModelPropertyType extends DateTime ? Range<DateTime | CalendarDate> | Range<null, DateTime | CalendarDate> | (() => Range<DateTime | CalendarDate>) | (() => Range<null, DateTime | CalendarDate>) | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends CalendarDate ? Range<DateTime | CalendarDate> | Range<null, DateTime | CalendarDate> | (() => Range<DateTime | CalendarDate>) | (() => Range<null, DateTime | CalendarDate>) | OpsStatement<KyselyComparisonOperatorExpression, OpsValType> : ColumnType extends 'bigint' ? Range<TypesAllowedForBigintAgainstTheDb> | Range<null, TypesAllowedForBigintAgainstTheDb> | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends number ? Range<ModelPropertyType> | Range<null, ModelPropertyType> | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : ModelPropertyType extends string ? Range<string> | Range<null, string> | OpsStatement<KyselyComparisonOperatorExpression, string, any> | OpsStatement<TrigramOperator, OpsValType, ExtraSimilarityArgs> : never : EnumTypeArray extends string[] ? EnumTypeArray | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> : never> = PartialTypes extends never ? OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any> | CurriedOpsStatement<any, any, any, OpsValType> | SelectQueryBuilder<DB, keyof DB, any> : PartialTypes | CurriedOpsStatement<any, any, any, OpsValType> | SelectQueryBuilder<DB, keyof DB, any>;
28
28
  export type WhereStatementForDreamClass<DreamClass extends typeof Dream> = WhereStatement<InstanceType<DreamClass>['DB'], InstanceType<DreamClass>['schema'], InstanceType<DreamClass>['table']>;
29
29
  export type WhereStatementForDream<DreamInstance extends Dream> = WhereStatement<DreamInstance['DB'], DreamInstance['schema'], DreamInstance['table']>;
30
30
  type AssociationNameToDotReferencedColumns<DB, TableName extends keyof DB, AssociationName> = `${AssociationName & string}.${TableColumnNames<DB, TableName>}`;
@@ -91,9 +91,11 @@ type NonKyselySupportedSupplementalWhereClauseValues<
91
91
  OpsValType = EnumTypeArray extends null
92
92
  ? ColumnType extends 'bigint'
93
93
  ? TypesAllowedForBigintAgainstTheDb | PermanentOpsValTypes
94
- : ModelPropertyType extends DateTime | CalendarDate | number | string
95
- ? ModelPropertyType | PermanentOpsValTypes
96
- : never
94
+ : ModelPropertyType extends DateTime | CalendarDate
95
+ ? DateTime | CalendarDate
96
+ : ModelPropertyType extends number | string
97
+ ? ModelPropertyType | PermanentOpsValTypes
98
+ : never
97
99
  : EnumTypeArray extends string[]
98
100
  ? EnumTypeArray[number] | PermanentOpsValTypes
99
101
  : never,
@@ -101,27 +103,32 @@ type NonKyselySupportedSupplementalWhereClauseValues<
101
103
  PartialTypes = EnumTypeArray extends null
102
104
  ? ModelPropertyType extends DateTime
103
105
  ?
104
- | Range<DateTime>
105
- | (() => Range<DateTime>)
106
- | Range<CalendarDate>
107
- | (() => Range<CalendarDate>)
106
+ | Range<DateTime | CalendarDate>
107
+ | Range<null, DateTime | CalendarDate>
108
+ | (() => Range<DateTime | CalendarDate>)
109
+ | (() => Range<null, DateTime | CalendarDate>)
108
110
  | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any>
109
111
  : ModelPropertyType extends CalendarDate
110
112
  ?
111
- | Range<CalendarDate>
112
- | (() => Range<CalendarDate>)
113
- | Range<DateTime>
114
- | (() => Range<DateTime>)
113
+ | Range<DateTime | CalendarDate>
114
+ | Range<null, DateTime | CalendarDate>
115
+ | (() => Range<DateTime | CalendarDate>)
116
+ | (() => Range<null, DateTime | CalendarDate>)
115
117
  | OpsStatement<KyselyComparisonOperatorExpression, OpsValType>
116
118
  : ColumnType extends 'bigint'
117
119
  ?
118
120
  | Range<TypesAllowedForBigintAgainstTheDb>
121
+ | Range<null, TypesAllowedForBigintAgainstTheDb>
119
122
  | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any>
120
123
  : ModelPropertyType extends number
121
- ? Range<ModelPropertyType> | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any>
124
+ ?
125
+ | Range<ModelPropertyType>
126
+ | Range<null, ModelPropertyType>
127
+ | OpsStatement<KyselyComparisonOperatorExpression, OpsValType, any>
122
128
  : ModelPropertyType extends string
123
129
  ?
124
130
  | Range<string>
131
+ | Range<null, string>
125
132
  | OpsStatement<KyselyComparisonOperatorExpression, string, any>
126
133
  | OpsStatement<TrigramOperator, OpsValType, ExtraSimilarityArgs>
127
134
  : never
@@ -23,8 +23,10 @@ export interface SortableOptions<T extends Dream> {
23
23
  export type PrimaryKeyForFind<I extends Dream, PrimaryKeyType extends DreamPrimaryKeyType<I> = DreamPrimaryKeyType<I>> = PrimaryKeyType extends bigint ? bigint | number | string | null | undefined : PrimaryKeyType | string | null | undefined;
24
24
  export type DreamColumnNames<DreamInstance extends Dream, DB = DreamInstance['DB'], TableName extends keyof DB = DreamInstance['table'] & keyof DB, Table extends DB[keyof DB] = DB[TableName], AttributeName extends keyof Table & string = keyof Table & string> = AttributeName;
25
25
  export type NonJsonDreamColumnNames<DreamInstance extends Dream, Schema extends DreamInstance['schema'] = DreamInstance['schema'], TableName extends DreamInstance['table'] & keyof Schema = DreamInstance['table'] & keyof Schema, AttributeName extends Exclude<Schema[TableName]['nonJsonColumnNames'][number], keyof Dream> & string = Exclude<Schema[TableName]['nonJsonColumnNames'][number], keyof Dream> & string> = AttributeName;
26
- export type DreamParamSafeColumnNames<DreamInstance extends Dream, BelongsToForeignKeys = DreamBelongsToForeignKeys<DreamInstance>> = Exclude<keyof UpdateableProperties<DreamInstance>, BelongsToForeignKeys | (DreamInstance['primaryKey' & keyof DreamInstance] extends undefined ? 'id' : DreamInstance['primaryKey' & keyof DreamInstance]) | (DreamInstance['createdAtField' & keyof DreamInstance] extends undefined ? 'createdAt' : DreamInstance['createdAtField' & keyof DreamInstance]) | (DreamInstance['updatedAtField' & keyof DreamInstance] extends undefined ? 'updatedAt' : DreamInstance['updatedAtField' & keyof DreamInstance]) | (DreamInstance['deletedAtField' & keyof DreamInstance] extends undefined ? 'deletedAt' : DreamInstance['deletedAtField' & keyof DreamInstance]) | 'type'>;
27
- export type DreamBelongsToForeignKeys<DreamInstance extends Dream, Schema = DreamInstance['schema'], TableSchema = Schema[DreamInstance['table'] & keyof Schema], AssociationSchema = TableSchema['associations' & keyof TableSchema], BelongsToAssociationSchema = AssociationSchema[keyof DreamBelongsToAssociationMetadata<DreamInstance> & keyof AssociationSchema], BelongsToForeignKeys = Exclude<BelongsToAssociationSchema['foreignKey' & keyof BelongsToAssociationSchema], null>> = BelongsToForeignKeys;
26
+ export type DreamParamSafeColumnNames<DreamInstance extends Dream> = Exclude<keyof UpdateableProperties<DreamInstance>, DreamParamUnsafeColumnNames<DreamInstance>>;
27
+ export type DreamParamUnsafeColumnNames<DreamInstance extends Dream, BelongsToForeignKeys = DreamBelongsToForeignKeys<DreamInstance>, BelongsToForeignKeyTypes = DreamBelongsToForeignKeyTypes<DreamInstance>, AssociationNames = DreamAssociationNames<DreamInstance>> = BelongsToForeignKeys | BelongsToForeignKeyTypes | (DreamInstance['primaryKey' & keyof DreamInstance] extends undefined ? 'id' : DreamInstance['primaryKey' & keyof DreamInstance]) | (DreamInstance['createdAtField' & keyof DreamInstance] extends undefined ? 'createdAt' : DreamInstance['createdAtField' & keyof DreamInstance]) | (DreamInstance['updatedAtField' & keyof DreamInstance] extends undefined ? 'updatedAt' : DreamInstance['updatedAtField' & keyof DreamInstance]) | (DreamInstance['deletedAtField' & keyof DreamInstance] extends undefined ? 'deletedAt' : DreamInstance['deletedAtField' & keyof DreamInstance]) | AssociationNames | 'type';
28
+ export type DreamBelongsToForeignKeyTypes<DreamInstance extends Dream, AssociationSchema = DreamAssociationMetadata<DreamInstance>, BelongsToAssociationSchema = AssociationSchema[keyof DreamBelongsToAssociationMetadata<DreamInstance> & keyof AssociationSchema], BelongsToForeignKeys = Exclude<BelongsToAssociationSchema['foreignKeyTypeColumn' & keyof BelongsToAssociationSchema], null>> = BelongsToForeignKeys;
29
+ export type DreamBelongsToForeignKeys<DreamInstance extends Dream, AssociationSchema = DreamAssociationMetadata<DreamInstance>, BelongsToAssociationSchema = AssociationSchema[keyof DreamBelongsToAssociationMetadata<DreamInstance> & keyof AssociationSchema], BelongsToForeignKeys = Exclude<BelongsToAssociationSchema['foreignKey' & keyof BelongsToAssociationSchema], null>> = BelongsToForeignKeys;
28
30
  export type TableColumnNames<DB, TableName extends keyof DB, Table extends DB[keyof DB] = DB[TableName]> = keyof Table & string;
29
31
  export type DreamColumn<DreamInstance extends Dream, Column extends keyof Attrs, Attrs = DreamAttributes<DreamInstance>> = Attrs[Column & keyof Attrs];
30
32
  export type DreamClassColumn<DreamClass extends typeof Dream, Column extends keyof DreamAttributes<DreamInstance>, DreamInstance extends InstanceType<DreamClass> = InstanceType<DreamClass>> = DreamColumn<DreamInstance, Column>;
@@ -72,12 +72,19 @@ export type NonJsonDreamColumnNames<
72
72
  string = Exclude<Schema[TableName]['nonJsonColumnNames'][number], keyof Dream> & string,
73
73
  > = AttributeName
74
74
 
75
- export type DreamParamSafeColumnNames<
75
+ export type DreamParamSafeColumnNames<DreamInstance extends Dream> = Exclude<
76
+ keyof UpdateableProperties<DreamInstance>,
77
+ DreamParamUnsafeColumnNames<DreamInstance>
78
+ >
79
+
80
+ export type DreamParamUnsafeColumnNames<
76
81
  DreamInstance extends Dream,
77
82
  BelongsToForeignKeys = DreamBelongsToForeignKeys<DreamInstance>,
78
- > = Exclude<
79
- keyof UpdateableProperties<DreamInstance>,
83
+ BelongsToForeignKeyTypes = DreamBelongsToForeignKeyTypes<DreamInstance>,
84
+ AssociationNames = DreamAssociationNames<DreamInstance>,
85
+ > =
80
86
  | BelongsToForeignKeys
87
+ | BelongsToForeignKeyTypes
81
88
  | (DreamInstance['primaryKey' & keyof DreamInstance] extends undefined
82
89
  ? 'id'
83
90
  : DreamInstance['primaryKey' & keyof DreamInstance])
@@ -90,14 +97,23 @@ export type DreamParamSafeColumnNames<
90
97
  | (DreamInstance['deletedAtField' & keyof DreamInstance] extends undefined
91
98
  ? 'deletedAt'
92
99
  : DreamInstance['deletedAtField' & keyof DreamInstance])
100
+ | AssociationNames
93
101
  | 'type'
94
- >
102
+
103
+ export type DreamBelongsToForeignKeyTypes<
104
+ DreamInstance extends Dream,
105
+ AssociationSchema = DreamAssociationMetadata<DreamInstance>,
106
+ BelongsToAssociationSchema = AssociationSchema[keyof DreamBelongsToAssociationMetadata<DreamInstance> &
107
+ keyof AssociationSchema],
108
+ BelongsToForeignKeys = Exclude<
109
+ BelongsToAssociationSchema['foreignKeyTypeColumn' & keyof BelongsToAssociationSchema],
110
+ null
111
+ >,
112
+ > = BelongsToForeignKeys
95
113
 
96
114
  export type DreamBelongsToForeignKeys<
97
115
  DreamInstance extends Dream,
98
- Schema = DreamInstance['schema'],
99
- TableSchema = Schema[DreamInstance['table'] & keyof Schema],
100
- AssociationSchema = TableSchema['associations' & keyof TableSchema],
116
+ AssociationSchema = DreamAssociationMetadata<DreamInstance>,
101
117
  BelongsToAssociationSchema = AssociationSchema[keyof DreamBelongsToAssociationMetadata<DreamInstance> &
102
118
  keyof AssociationSchema],
103
119
  BelongsToForeignKeys = Exclude<
@@ -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>Benchmark | @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="../modules.html">@rvoh/dream</a></li><li><a href="Benchmark.html">Benchmark</a></li></ul><h1>Class Benchmark</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/746f0f9e670e52ed5cd82692c9523a0454455ff2/src/helpers/benchmark.ts#L6">src/helpers/benchmark.ts:6</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="Benchmark.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>Benchmark | @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="../modules.html">@rvoh/dream</a></li><li><a href="Benchmark.html">Benchmark</a></li></ul><h1>Class Benchmark</h1></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/878699f3f2f78b06db7f6ff21055a272d88baee0/src/helpers/benchmark.ts#L6">src/helpers/benchmark.ts:6</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="Benchmark.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="Benchmark.html#mark" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a>
3
3
  <a href="Benchmark.html#start" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a>
4
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" 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="constructor.new_Benchmark" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Benchmark</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a><a href="#constructor.new_Benchmark" 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"><h4 class="tsd-returns-title">Returns <a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a></h4></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="mark" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>mark</span><a href="#mark" 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="mark.mark-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">mark</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">level</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="#mark.mark-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-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">level</span>: <span class="tsd-signature-type">BenchmarkLogLevel</span><span class="tsd-signature-symbol"> = &#39;log&#39;</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/746f0f9e670e52ed5cd82692c9523a0454455ff2/src/helpers/benchmark.ts#L12">src/helpers/benchmark.ts:12</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="start" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>start</span><a href="#start" 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="start.start-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">start</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="#start.start-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"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/746f0f9e670e52ed5cd82692c9523a0454455ff2/src/helpers/benchmark.ts#L8">src/helpers/benchmark.ts:8</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="#mark" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a><a href="#start" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.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>
4
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" 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="constructor.new_Benchmark" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Benchmark</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a><a href="#constructor.new_Benchmark" 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"><h4 class="tsd-returns-title">Returns <a href="Benchmark.html" class="tsd-signature-type tsd-kind-class">Benchmark</a></h4></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="mark" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>mark</span><a href="#mark" 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="mark.mark-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">mark</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span>, <span class="tsd-kind-parameter">level</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="#mark.mark-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-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span></li><li><span><span class="tsd-kind-parameter">level</span>: <span class="tsd-signature-type">BenchmarkLogLevel</span><span class="tsd-signature-symbol"> = &#39;log&#39;</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/878699f3f2f78b06db7f6ff21055a272d88baee0/src/helpers/benchmark.ts#L12">src/helpers/benchmark.ts:12</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="start" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>start</span><a href="#start" 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="start.start-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">start</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="#start.start-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"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/878699f3f2f78b06db7f6ff21055a272d88baee0/src/helpers/benchmark.ts#L8">src/helpers/benchmark.ts:8</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="#mark" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>mark</span></a><a href="#start" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.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>