@rvoh/dream 2.37.0 → 2.38.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 (210) hide show
  1. package/dist/cjs/src/dream-app/index.js +5 -0
  2. package/dist/cjs/src/serializer/DreamSerializer.js +23 -0
  3. package/dist/cjs/src/serializer/ObjectSerializer.js +22 -0
  4. package/dist/cjs/src/serializer/SerializerRenderer.js +36 -54
  5. package/dist/cjs/src/serializer/builders/DreamSerializerBuilder.js +32 -10
  6. package/dist/cjs/src/serializer/builders/ObjectSerializerBuilder.js +32 -10
  7. package/dist/cjs/src/serializer/helpers/nullFlattenedSerializerKeys.js +257 -0
  8. package/dist/esm/src/dream-app/index.js +5 -0
  9. package/dist/esm/src/serializer/DreamSerializer.js +23 -0
  10. package/dist/esm/src/serializer/ObjectSerializer.js +22 -0
  11. package/dist/esm/src/serializer/SerializerRenderer.js +36 -54
  12. package/dist/esm/src/serializer/builders/DreamSerializerBuilder.js +32 -10
  13. package/dist/esm/src/serializer/builders/ObjectSerializerBuilder.js +32 -10
  14. package/dist/esm/src/serializer/helpers/nullFlattenedSerializerKeys.js +257 -0
  15. package/dist/types/src/dream-app/index.d.ts +5 -0
  16. package/dist/types/src/serializer/DreamSerializer.d.ts +23 -0
  17. package/dist/types/src/serializer/ObjectSerializer.d.ts +22 -0
  18. package/dist/types/src/serializer/SerializerRenderer.d.ts +1 -13
  19. package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +34 -12
  20. package/dist/types/src/serializer/builders/ObjectSerializerBuilder.d.ts +34 -12
  21. package/dist/types/src/serializer/helpers/nullFlattenedSerializerKeys.d.ts +75 -0
  22. package/docs/classes/db.DreamMigrationHelpers.html +11 -11
  23. package/docs/classes/db.KyselyQueryDriver.html +49 -49
  24. package/docs/classes/db.PostgresQueryDriver.html +49 -49
  25. package/docs/classes/db.QueryDriverBase.html +49 -49
  26. package/docs/classes/errors.CannotSaveMissingDream.html +2 -2
  27. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  28. package/docs/classes/errors.ColumnOverflow.html +3 -3
  29. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  30. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  31. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  32. package/docs/classes/errors.DecryptionError.html +2 -2
  33. package/docs/classes/errors.DecryptionParseError.html +2 -2
  34. package/docs/classes/errors.DecryptionRotationError.html +3 -3
  35. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  36. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  37. package/docs/classes/errors.InvalidClockTime.html +2 -2
  38. package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
  39. package/docs/classes/errors.InvalidDateTime.html +2 -2
  40. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  41. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  42. package/docs/classes/errors.NotNullViolation.html +3 -3
  43. package/docs/classes/errors.RecordNotFound.html +3 -3
  44. package/docs/classes/errors.SortableScopeDidNotStabilize.html +3 -3
  45. package/docs/classes/errors.SortableScopeLockWaitTimedOut.html +3 -3
  46. package/docs/classes/errors.ValidationError.html +3 -3
  47. package/docs/classes/index.CalendarDate.html +33 -33
  48. package/docs/classes/index.ClockTime.html +32 -32
  49. package/docs/classes/index.ClockTimeTz.html +35 -35
  50. package/docs/classes/index.DateTime.html +86 -86
  51. package/docs/classes/index.Decorators.html +19 -19
  52. package/docs/classes/index.Dream.html +125 -125
  53. package/docs/classes/index.DreamApp.html +11 -11
  54. package/docs/classes/index.DreamTransaction.html +3 -3
  55. package/docs/classes/index.Env.html +5 -5
  56. package/docs/classes/index.Query.html +65 -65
  57. package/docs/classes/system.CliFileWriter.html +4 -4
  58. package/docs/classes/system.DreamBin.html +3 -3
  59. package/docs/classes/system.DreamCLI.html +7 -7
  60. package/docs/classes/system.DreamImporter.html +2 -2
  61. package/docs/classes/system.DreamLogos.html +2 -2
  62. package/docs/classes/system.DreamSerializerBuilder.html +43 -21
  63. package/docs/classes/system.ObjectSerializerBuilder.html +42 -20
  64. package/docs/classes/system.PathHelpers.html +3 -3
  65. package/docs/classes/utils.Encrypt.html +4 -4
  66. package/docs/classes/utils.Range.html +2 -2
  67. package/docs/functions/db.closeAllDbConnections.html +1 -1
  68. package/docs/functions/db.dreamDbConnections.html +1 -1
  69. package/docs/functions/db.untypedDb.html +1 -1
  70. package/docs/functions/db.validateColumn.html +1 -1
  71. package/docs/functions/db.validateTable.html +1 -1
  72. package/docs/functions/errors.pgErrorType.html +1 -1
  73. package/docs/functions/index.DreamSerializer.html +18 -1
  74. package/docs/functions/index.ObjectSerializer.html +17 -1
  75. package/docs/functions/index.ReplicaSafe.html +1 -1
  76. package/docs/functions/index.STI.html +1 -1
  77. package/docs/functions/index.SoftDelete.html +1 -1
  78. package/docs/functions/utils.camelize.html +1 -1
  79. package/docs/functions/utils.capitalize.html +1 -1
  80. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  81. package/docs/functions/utils.compact.html +1 -1
  82. package/docs/functions/utils.groupBy.html +1 -1
  83. package/docs/functions/utils.hyphenize.html +1 -1
  84. package/docs/functions/utils.intersection.html +1 -1
  85. package/docs/functions/utils.isEmpty.html +1 -1
  86. package/docs/functions/utils.normalizeUnicode.html +1 -1
  87. package/docs/functions/utils.pascalize.html +1 -1
  88. package/docs/functions/utils.percent.html +1 -1
  89. package/docs/functions/utils.range.html +1 -1
  90. package/docs/functions/utils.round.html +1 -1
  91. package/docs/functions/utils.sanitizeString.html +1 -1
  92. package/docs/functions/utils.snakeify.html +1 -1
  93. package/docs/functions/utils.sort.html +1 -1
  94. package/docs/functions/utils.sortBy.html +1 -1
  95. package/docs/functions/utils.sortObjectByKey.html +1 -1
  96. package/docs/functions/utils.sortObjectByValue.html +1 -1
  97. package/docs/functions/utils.uncapitalize.html +1 -1
  98. package/docs/functions/utils.uniq.html +1 -1
  99. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  100. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  101. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  102. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  103. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  104. package/docs/interfaces/types.DecoratorContext.html +2 -2
  105. package/docs/interfaces/types.DecryptCallbacks.html +2 -2
  106. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  107. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  108. package/docs/interfaces/types.DreamDbConfig.html +6 -6
  109. package/docs/interfaces/types.DurationObject.html +2 -2
  110. package/docs/interfaces/types.EncryptOptions.html +2 -2
  111. package/docs/interfaces/types.EncryptionLegacyKeyUsedEvent.html +4 -4
  112. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  113. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  114. package/docs/interfaces/types.IntrospectedColumn.html +7 -7
  115. package/docs/interfaces/types.IntrospectedDatabase.html +2 -2
  116. package/docs/interfaces/types.IntrospectedEnum.html +2 -2
  117. package/docs/interfaces/types.IntrospectedTable.html +5 -5
  118. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  119. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  120. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  121. package/docs/types/openapi.OpenapiFormats.html +1 -1
  122. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  123. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  124. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  125. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  126. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  127. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  128. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  129. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  130. package/docs/types/openapi.OpenapiSchemaCombinatorFields.html +1 -1
  131. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  132. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -1
  133. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -1
  134. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -1
  135. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +2 -2
  136. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +2 -2
  137. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  138. package/docs/types/openapi.OpenapiSchemaNull.html +2 -2
  139. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  140. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  141. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  142. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  143. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  144. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  145. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  146. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  147. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  148. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  149. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  150. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +2 -2
  151. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +2 -2
  152. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  153. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  154. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  155. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  156. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  157. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  158. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  159. package/docs/types/types.CalendarDateDurationUnit.html +1 -1
  160. package/docs/types/types.CalendarDateObject.html +1 -1
  161. package/docs/types/types.Camelized.html +1 -1
  162. package/docs/types/types.ClockTimeObject.html +1 -1
  163. package/docs/types/types.DbConnectionType.html +1 -1
  164. package/docs/types/types.DbTypes.html +1 -1
  165. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  166. package/docs/types/types.DreamAttributes.html +1 -1
  167. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  168. package/docs/types/types.DreamClassColumn.html +1 -1
  169. package/docs/types/types.DreamColumn.html +1 -1
  170. package/docs/types/types.DreamColumnNames.html +1 -1
  171. package/docs/types/types.DreamLogLevel.html +1 -1
  172. package/docs/types/types.DreamLogger.html +2 -2
  173. package/docs/types/types.DreamModelSerializerType.html +1 -1
  174. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  175. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  176. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  177. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  178. package/docs/types/types.DreamSerializable.html +1 -1
  179. package/docs/types/types.DreamSerializableArray.html +1 -1
  180. package/docs/types/types.DreamSerializerKey.html +1 -1
  181. package/docs/types/types.DreamSerializers.html +1 -1
  182. package/docs/types/types.DreamVirtualColumns.html +1 -1
  183. package/docs/types/types.DurationUnit.html +1 -1
  184. package/docs/types/types.EncryptAlgorithm.html +1 -1
  185. package/docs/types/types.HasManyStatement.html +1 -1
  186. package/docs/types/types.HasOneStatement.html +1 -1
  187. package/docs/types/types.Hyphenized.html +1 -1
  188. package/docs/types/types.IntrospectedValueType.html +1 -1
  189. package/docs/types/types.Pascalized.html +1 -1
  190. package/docs/types/types.PrimaryKeyType.html +1 -1
  191. package/docs/types/types.RoundingPrecision.html +1 -1
  192. package/docs/types/types.SerializerCasing.html +1 -1
  193. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  194. package/docs/types/types.Snakeified.html +1 -1
  195. package/docs/types/types.StrictInterface.html +1 -1
  196. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  197. package/docs/types/types.UpdateableProperties.html +1 -1
  198. package/docs/types/types.ValidationType.html +1 -1
  199. package/docs/types/types.ViewModel.html +2 -2
  200. package/docs/types/types.ViewModelClass.html +1 -1
  201. package/docs/types/types.WeekdayName.html +1 -1
  202. package/docs/types/types.WhereStatementForDream.html +1 -1
  203. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  204. package/docs/variables/index.DreamConst.html +1 -1
  205. package/docs/variables/index.ops.html +1 -1
  206. package/docs/variables/openapi.openapiPrimitiveTypes.html +1 -1
  207. package/docs/variables/openapi.openapiShorthandPrimitiveTypes.html +1 -1
  208. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  209. package/docs/variables/system.primaryKeyTypes.html +1 -1
  210. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DreamSerializerBuilder | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@rvoh/dream</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/system.html">system</a></li><li><a href="" aria-current="page">DreamSerializerBuilder</a></li></ul><h1>Class DreamSerializerBuilder&lt;DataTypeForOpenapi, MaybeNullDataType, PassthroughDataType, DataType&gt;</h1></div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="datatypeforopenapi"><span class="tsd-kind-type-parameter">DataTypeForOpenapi</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a></span></li><li><span id="maybenulldatatype"><span class="tsd-kind-type-parameter">MaybeNullDataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span></span></li><li><span id="passthroughdatatype"><span class="tsd-kind-type-parameter">PassthroughDataType</span> = <span class="tsd-signature-type">any</span></span></li><li><span id="datatype"><span class="tsd-kind-type-parameter">DataType</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span> = <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L27">src/serializer/builders/DreamSerializerBuilder.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DreamSerializerBuilder | @rvoh/dream</title><meta name="description" content="Documentation for @rvoh/dream"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@rvoh/dream</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/system.html">system</a></li><li><a href="" aria-current="page">DreamSerializerBuilder</a></li></ul><h1>Class DreamSerializerBuilder&lt;DataTypeForOpenapi, MaybeNullDataType, PassthroughDataType, DataType&gt;</h1></div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="datatypeforopenapi"><span class="tsd-kind-type-parameter">DataTypeForOpenapi</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a></span></li><li><span id="maybenulldatatype"><span class="tsd-kind-type-parameter">MaybeNullDataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span></span></li><li><span id="passthroughdatatype"><span class="tsd-kind-type-parameter">PassthroughDataType</span> = <span class="tsd-signature-type">any</span></span></li><li><span id="datatype"><span class="tsd-kind-type-parameter">DataType</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span> = <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L27">src/serializer/builders/DreamSerializerBuilder.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
2
  </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#typeforopenapi" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>$type<wbr/>For<wbr/>Openapi</span></a>
3
3
  <a href="#attributes" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>attributes</span></a>
4
4
  <a href="#data" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a>
@@ -9,7 +9,7 @@
9
9
  <a href="#render" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>render</span></a>
10
10
  <a href="#rendersmany" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>Many</span></a>
11
11
  <a href="#rendersone" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>One</span></a>
12
- </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"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Constructors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="constructordreamserializerbuilder"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">DreamSerializerBuilder</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderdatatypeforopenapi">DataTypeForOpenapi</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuildermaybenulldatatype">MaybeNullDataType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderpassthroughdatatype">PassthroughDataType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderdatatype">DataType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">$typeForOpenapi</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">passthroughData</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#constructordreamserializerbuilder" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="constructordreamserializerbuilderdatatypeforopenapi"><span class="tsd-kind-type-parameter">DataTypeForOpenapi</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a></span></li><li><span id="constructordreamserializerbuildermaybenulldatatype"><span class="tsd-kind-type-parameter">MaybeNullDataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span></span></li><li><span id="constructordreamserializerbuilderpassthroughdatatype"><span class="tsd-kind-type-parameter">PassthroughDataType</span> = <span class="tsd-signature-type">any</span></span></li><li><span id="constructordreamserializerbuilderdatatype"><span class="tsd-kind-type-parameter">DataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> = <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">$typeForOpenapi</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a></span></li><li><span><span class="tsd-kind-parameter">data</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a></span></li><li><span><span class="tsd-kind-parameter">passthroughData</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol"> = ...</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L41">src/serializer/builders/DreamSerializerBuilder.ts:41</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="typeforopenapi"><code class="tsd-tag">Protected</code><span>$type<wbr/>For<wbr/>Openapi</span><a href="#typeforopenapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">$typeForOpenapi</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L42">src/serializer/builders/DreamSerializerBuilder.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="attributes"><code class="tsd-tag">Protected</code><span>attributes</span><a href="#attributes" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">attributes</span><span class="tsd-signature-symbol">:</span> (<br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerDelegatedAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerCustomAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.InternalAnyTypedSerializerRendersOne.html" class="tsd-signature-type tsd-kind-interface">InternalAnyTypedSerializerRendersOne</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.InternalAnyTypedSerializerRendersMany.html" class="tsd-signature-type tsd-kind-interface">InternalAnyTypedSerializerRendersMany</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><br/>)<span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = []</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L33">src/serializer/builders/DreamSerializerBuilder.ts:33</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="data"><code class="tsd-tag">Protected</code><span>data</span><a href="#data" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L43">src/serializer/builders/DreamSerializerBuilder.ts:43</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="passthroughdata"><code class="tsd-tag">Protected</code><span>passthrough<wbr/>Data</span><a href="#passthroughdata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">passthroughData</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L44">src/serializer/builders/DreamSerializerBuilder.ts:44</a></li></ul></aside></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="attribute"><span>attribute</span><a href="#attribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-1"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;table&quot;</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;nonJsonColumnNames&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-signature-keyword">keyof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">&quot;type&quot;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">AutomaticSerializerAttributeOptionsForType</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
12
+ </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"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Constructors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="constructordreamserializerbuilder"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">DreamSerializerBuilder</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderdatatypeforopenapi">DataTypeForOpenapi</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuildermaybenulldatatype">MaybeNullDataType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderpassthroughdatatype">PassthroughDataType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#constructordreamserializerbuilderdatatype">DataType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">$typeForOpenapi</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">data</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">passthroughData</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#constructordreamserializerbuilder" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="constructordreamserializerbuilderdatatypeforopenapi"><span class="tsd-kind-type-parameter">DataTypeForOpenapi</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-keyword">typeof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a></span></li><li><span id="constructordreamserializerbuildermaybenulldatatype"><span class="tsd-kind-type-parameter">MaybeNullDataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span></span></li><li><span id="constructordreamserializerbuilderpassthroughdatatype"><span class="tsd-kind-type-parameter">PassthroughDataType</span> = <span class="tsd-signature-type">any</span></span></li><li><span id="constructordreamserializerbuilderdatatype"><span class="tsd-kind-type-parameter">DataType</span> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> = <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">$typeForOpenapi</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a></span></li><li><span><span class="tsd-kind-parameter">data</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a></span></li><li><span><span class="tsd-kind-parameter">passthroughData</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol"> = ...</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L41">src/serializer/builders/DreamSerializerBuilder.ts:41</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="typeforopenapi"><code class="tsd-tag">Protected</code><span>$type<wbr/>For<wbr/>Openapi</span><a href="#typeforopenapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">$typeForOpenapi</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L42">src/serializer/builders/DreamSerializerBuilder.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="attributes"><code class="tsd-tag">Protected</code><span>attributes</span><a href="#attributes" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">attributes</span><span class="tsd-signature-symbol">:</span> (<br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerDelegatedAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">InternalAnyTypedSerializerCustomAttribute</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.InternalAnyTypedSerializerRendersOne.html" class="tsd-signature-type tsd-kind-interface">InternalAnyTypedSerializerRendersOne</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.InternalAnyTypedSerializerRendersMany.html" class="tsd-signature-type tsd-kind-interface">InternalAnyTypedSerializerRendersMany</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><br/>)<span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = []</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L33">src/serializer/builders/DreamSerializerBuilder.ts:33</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="data"><code class="tsd-tag">Protected</code><span>data</span><a href="#data" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">data</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L43">src/serializer/builders/DreamSerializerBuilder.ts:43</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-is-protected"><h3 class="tsd-anchor-link" id="passthroughdata"><code class="tsd-tag">Protected</code><span>passthrough<wbr/>Data</span><a href="#passthroughdata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">passthroughData</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L44">src/serializer/builders/DreamSerializerBuilder.ts:44</a></li></ul></aside></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="attribute"><span>attribute</span><a href="#attribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-1"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;table&quot;</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;nonJsonColumnNames&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>        <span class="tsd-signature-keyword">keyof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">&quot;type&quot;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">AutomaticSerializerAttributeOptionsForType</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
13
13
  <p>For DreamSerializer, OpenAPI types are automatically inferred from database columns.
14
14
  For json/jsonb columns and virtual attributes (getters), the <code>openapi</code> option is required.</p>
15
15
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;table&quot;</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;schema&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">&quot;nonJsonColumnNames&quot;</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-keyword">keyof</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">&quot;type&quot;</span></span><div class="tsd-comment tsd-typography"><p>The attribute name from the data object</p>
@@ -32,7 +32,7 @@ serialize as <code>null</code> (not available for <code>type</code> columns)</li
32
32
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// With type inference (database column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With explicit OpenAPI type (virtual attribute or json column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;fullName&#39;</span><span class="hl-1">, { </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } })</span><br/><br/><span class="hl-7">// With default value</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;status&#39;</span><span class="hl-1">, { </span><span class="hl-4">default:</span><span class="hl-1"> </span><span class="hl-6">&#39;pending&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename output key</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">, { </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;userEmail&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Round decimal to 2 places</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;price&#39;</span><span class="hl-1">, { </span><span class="hl-4">precision:</span><span class="hl-1"> </span><span class="hl-8">2</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Mark as optional in OpenAPI (omitted from response when undefined)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;deletedAt&#39;</span><span class="hl-1">, { </span><span class="hl-4">required:</span><span class="hl-1"> </span><span class="hl-0">false</span><span class="hl-1"> })</span>
33
33
  </code><button type="button">Copy</button></pre>
34
34
 
35
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L92">src/serializer/builders/DreamSerializerBuilder.ts:92</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-2"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.DreamVirtualColumns.html" class="tsd-signature-type tsd-kind-type-alias">DreamVirtualColumns</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerAttributeOptionsForVirtualColumn</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
35
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L92">src/serializer/builders/DreamSerializerBuilder.ts:92</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-2"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.DreamVirtualColumns.html" class="tsd-signature-type tsd-kind-type-alias">DreamVirtualColumns</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerAttributeOptionsForVirtualColumn</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
36
36
  <p>For DreamSerializer, OpenAPI types are automatically inferred from database columns.
37
37
  For json/jsonb columns and virtual attributes (getters), the <code>openapi</code> option is required.</p>
38
38
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <a href="../types/types.DreamVirtualColumns.html" class="tsd-signature-type tsd-kind-type-alias">DreamVirtualColumns</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></span><div class="tsd-comment tsd-typography"><p>The attribute name from the data object</p>
@@ -55,7 +55,7 @@ serialize as <code>null</code> (not available for <code>type</code> columns)</li
55
55
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-1">Example<a href="#example-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// With type inference (database column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With explicit OpenAPI type (virtual attribute or json column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;fullName&#39;</span><span class="hl-1">, { </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } })</span><br/><br/><span class="hl-7">// With default value</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;status&#39;</span><span class="hl-1">, { </span><span class="hl-4">default:</span><span class="hl-1"> </span><span class="hl-6">&#39;pending&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename output key</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">, { </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;userEmail&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Round decimal to 2 places</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;price&#39;</span><span class="hl-1">, { </span><span class="hl-4">precision:</span><span class="hl-1"> </span><span class="hl-8">2</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Mark as optional in OpenAPI (omitted from response when undefined)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;deletedAt&#39;</span><span class="hl-1">, { </span><span class="hl-4">required:</span><span class="hl-1"> </span><span class="hl-0">false</span><span class="hl-1"> })</span>
56
56
  </code><button type="button">Copy</button></pre>
57
57
 
58
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L98">src/serializer/builders/DreamSerializerBuilder.ts:98</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-3"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOption</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
58
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L98">src/serializer/builders/DreamSerializerBuilder.ts:98</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-3"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOption</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
59
59
  <p>For DreamSerializer, OpenAPI types are automatically inferred from database columns.
60
60
  For json/jsonb columns and virtual attributes (getters), the <code>openapi</code> option is required.</p>
61
61
  </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="attributeattributename"><span class="tsd-kind-type-parameter">AttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename">AttributeName</a></span><div class="tsd-comment tsd-typography"><p>The attribute name from the data object</p>
@@ -78,7 +78,7 @@ serialize as <code>null</code> (not available for <code>type</code> columns)</li
78
78
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-2">Example<a href="#example-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// With type inference (database column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With explicit OpenAPI type (virtual attribute or json column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;fullName&#39;</span><span class="hl-1">, { </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } })</span><br/><br/><span class="hl-7">// With default value</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;status&#39;</span><span class="hl-1">, { </span><span class="hl-4">default:</span><span class="hl-1"> </span><span class="hl-6">&#39;pending&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename output key</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">, { </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;userEmail&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Round decimal to 2 places</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;price&#39;</span><span class="hl-1">, { </span><span class="hl-4">precision:</span><span class="hl-1"> </span><span class="hl-8">2</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Mark as optional in OpenAPI (omitted from response when undefined)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;deletedAt&#39;</span><span class="hl-1">, { </span><span class="hl-4">required:</span><span class="hl-1"> </span><span class="hl-0">false</span><span class="hl-1"> })</span>
79
79
  </code><button type="button">Copy</button></pre>
80
80
 
81
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L104">src/serializer/builders/DreamSerializerBuilder.ts:104</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-4"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename-1">AttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename-1">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">AutomaticSerializerAttributeOptions</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-4" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
81
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L104">src/serializer/builders/DreamSerializerBuilder.ts:104</a></li></ul></aside></div></li><li class=""><div class="tsd-signature tsd-anchor-link" id="attribute-4"><span class="tsd-kind-call-signature">attribute</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename-1">AttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename-1">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">AutomaticSerializerAttributeOptions</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#attribute-4" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from the data object in the serialized output.</p>
82
82
  <p>For DreamSerializer, OpenAPI types are automatically inferred from database columns.
83
83
  For json/jsonb columns and virtual attributes (getters), the <code>openapi</code> option is required.</p>
84
84
  </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="attributeattributename-1"><span class="tsd-kind-type-parameter">AttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">any</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#attributeattributename-1">AttributeName</a></span><div class="tsd-comment tsd-typography"><p>The attribute name from the data object</p>
@@ -101,7 +101,7 @@ serialize as <code>null</code> (not available for <code>type</code> columns)</li
101
101
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-3">Example<a href="#example-3" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// With type inference (database column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With explicit OpenAPI type (virtual attribute or json column)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;fullName&#39;</span><span class="hl-1">, { </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } })</span><br/><br/><span class="hl-7">// With default value</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;status&#39;</span><span class="hl-1">, { </span><span class="hl-4">default:</span><span class="hl-1"> </span><span class="hl-6">&#39;pending&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename output key</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;email&#39;</span><span class="hl-1">, { </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;userEmail&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Round decimal to 2 places</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;price&#39;</span><span class="hl-1">, { </span><span class="hl-4">precision:</span><span class="hl-1"> </span><span class="hl-8">2</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Mark as optional in OpenAPI (omitted from response when undefined)</span><br/><span class="hl-1">.</span><span class="hl-5">attribute</span><span class="hl-1">(</span><span class="hl-6">&#39;deletedAt&#39;</span><span class="hl-1">, { </span><span class="hl-4">required:</span><span class="hl-1"> </span><span class="hl-0">false</span><span class="hl-1"> })</span>
102
102
  </code><button type="button">Copy</button></pre>
103
103
 
104
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L117">src/serializer/builders/DreamSerializerBuilder.ts:117</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="customattribute"><span>custom<wbr/>Attribute</span><a href="#customattribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="customattribute-1"><span class="tsd-kind-call-signature">customAttribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">fn</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">CustomAttributeOptions</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#customattribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes a computed value in the serialized output.</p>
104
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L117">src/serializer/builders/DreamSerializerBuilder.ts:117</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="customattribute"><span>custom<wbr/>Attribute</span><a href="#customattribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="customattribute-1"><span class="tsd-kind-call-signature">customAttribute</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">fn</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">()</span> <span class="tsd-signature-symbol">=&gt;</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">CustomAttributeOptions</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#customattribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes a computed value in the serialized output.</p>
105
105
  <p>Executes a callback function to generate a custom attribute value.
106
106
  The <code>openapi</code> option is always required since the return type cannot be inferred.</p>
107
107
  <p>The callback's return value renders as is, so any fallback or rounding belongs in the
@@ -118,8 +118,21 @@ to the parent's schema as an <code>allOf</code> branch: either an object schema
118
118
  property bodies (<code>type: 'object'</code>, <code>properties</code>, and <code>required</code> listing the keys that
119
119
  are always present), or <code>{ $serializer: SomeSerializer }</code> when the callback returns
120
120
  what that serializer renders. A serializer ref with <code>many: true</code> does not type-check
121
- here, since a list has no properties to spread. A <code>null</code> or <code>undefined</code> return adds no
122
- keys. Attributes render in declaration order, so a key the returned object shares with
121
+ here, since a list has no properties to spread. A <code>null</code> return, a serializer built over
122
+ <code>null</code> or <code>undefined</code> data, or an <code>undefined</code> return without <code>required: false</code> renders as
123
+ <code>null</code> each key the <code>openapi</code> requires: a key an object shape lists in its <code>required</code>
124
+ array, a key a <code>$serializer</code> or <code>$serializable</code> ref's serializer declares without
125
+ <code>required: false</code>, and each such key of an <code>allOf</code>, <code>anyOf</code> or <code>oneOf</code> member. Its
126
+ optional keys stay absent, and an <code>undefined</code> return with <code>required: false</code> adds no keys.
127
+ A returned plain object also renders as <code>null</code> each key its shape requires that it
128
+ leaves out, and its optional keys it leaves out stay absent. When the <code>openapi</code> is an
129
+ <code>anyOf</code> or <code>oneOf</code>, or a <code>$serializable</code> ref to an STI base, a present value also renders
130
+ as <code>null</code> each key another variant requires that the rendered one does not declare, so a
131
+ client sees the same keys whichever variant is rendered.
132
+ Every key it adds follows the render's casing like the parent's own keys: a returned
133
+ plain object's top-level keys and the <code>openapi</code>'s <code>properties</code> keys are cased (so
134
+ <code>casing: 'snake'</code> renders <code>phoneNumber</code> as <code>phone_number</code>, present or <code>null</code>), while
135
+ nested values render as returned. Attributes render in declaration order, so a key the returned object shares with
123
136
  another attribute takes the value of whichever is declared later; under the <code>allOf</code>,
124
137
  that value must match both schemas</li>
125
138
  <li><code>required</code> - Set to <code>false</code> to mark the attribute as optional in the OpenAPI schema;
@@ -129,7 +142,7 @@ when omitted, attributes are required by default</li>
129
142
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-4">Example<a href="#example-4" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Simple computed value</span><br/><span class="hl-1">.</span><span class="hl-5">customAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;initials&#39;</span><span class="hl-1">, () </span><span class="hl-0">=&gt;</span><br/><span class="hl-1"> </span><span class="hl-6">`</span><span class="hl-0">${</span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">firstName</span><span class="hl-10">?.[</span><span class="hl-8">0</span><span class="hl-10">]</span><span class="hl-0">}${</span><span class="hl-4">user</span><span class="hl-10">.</span><span class="hl-4">lastName</span><span class="hl-10">?.[</span><span class="hl-8">0</span><span class="hl-10">]</span><span class="hl-0">}</span><span class="hl-6">`</span><span class="hl-1">.</span><span class="hl-5">toUpperCase</span><span class="hl-1">(),</span><br/><span class="hl-1"> { </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } }</span><br/><span class="hl-1">)</span><br/><br/><span class="hl-7">// Flattened object properties: `openapi` describes the whole returned object</span><br/><span class="hl-1">.</span><span class="hl-5">customAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;coordinates&#39;</span><span class="hl-1">, () </span><span class="hl-0">=&gt;</span><span class="hl-1"> ({ </span><span class="hl-4">lat:</span><span class="hl-1"> </span><span class="hl-8">40.7</span><span class="hl-1">, </span><span class="hl-4">lng:</span><span class="hl-1"> -</span><span class="hl-8">74.0</span><span class="hl-1"> }), {</span><br/><span class="hl-1"> </span><span class="hl-4">flatten:</span><span class="hl-1"> </span><span class="hl-0">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">openapi:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;object&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">required:</span><span class="hl-1"> [</span><span class="hl-6">&#39;lat&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;lng&#39;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-4">properties:</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">lat:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;number&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">lng:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;number&#39;</span><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">})</span>
130
143
  </code><button type="button">Copy</button></pre>
131
144
 
132
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L292">src/serializer/builders/DreamSerializerBuilder.ts:292</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="delegatedattribute"><span>delegated<wbr/>Attribute</span><a href="#delegatedattribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="delegatedattribute-1"><span class="tsd-kind-call-signature">delegatedAttribute</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">targetName</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DelegatedAttributeOptionsArgs</span><span class="tsd-signature-symbol">&lt;</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">,</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#delegatedattribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from a nested object in the serialized output.</p>
145
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L305">src/serializer/builders/DreamSerializerBuilder.ts:305</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="delegatedattribute"><span>delegated<wbr/>Attribute</span><a href="#delegatedattribute" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="delegatedattribute-1"><span class="tsd-kind-call-signature">delegatedAttribute</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeprovidedtargetname">ProvidedTargetName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">object</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">never</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">targetName</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetname">TargetName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DelegatedAttributeOptionsArgs</span><span class="tsd-signature-symbol">&lt;</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributeassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">,</span><br/>        <a class="tsd-signature-type tsd-kind-type-parameter" href="#delegatedattributetargetattributename">TargetAttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#delegatedattribute-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an attribute from a nested object in the serialized output.</p>
133
146
  <p>Accesses <code>targetName.name</code> on the data object. When the target object or the
134
147
  delegated attribute is null/undefined, the resolution order is:</p>
135
148
  <ol>
@@ -184,7 +197,7 @@ no <code>default</code>), and to mark the field as not required in the OpenAPI s
184
197
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-5">Example<a href="#example-5" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Delegate to a Dream association&#39;s column (type inferred)</span><br/><span class="hl-1">.</span><span class="hl-5">delegatedAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;currentLocalizedText&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;title&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With default value for null target or attribute</span><br/><span class="hl-1">.</span><span class="hl-5">delegatedAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;user&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;displayName&#39;</span><span class="hl-1">, { </span><span class="hl-4">default:</span><span class="hl-1"> </span><span class="hl-6">&#39;Unknown User&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename the output key</span><br/><span class="hl-1">.</span><span class="hl-5">delegatedAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;profile&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;avatarUrl&#39;</span><span class="hl-1">, { </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;avatar&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// A json/jsonb column has no shape to infer, so it declares one</span><br/><span class="hl-1">.</span><span class="hl-5">delegatedAttribute</span><span class="hl-1">(</span><span class="hl-6">&#39;user&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;preferences&#39;</span><span class="hl-1">, {</span><br/><span class="hl-1"> </span><span class="hl-4">openapi:</span><span class="hl-1"> { </span><span class="hl-4">type:</span><span class="hl-1"> </span><span class="hl-6">&#39;object&#39;</span><span class="hl-1">, </span><span class="hl-4">properties:</span><span class="hl-1"> { </span><span class="hl-4">theme:</span><span class="hl-1"> </span><span class="hl-6">&#39;string&#39;</span><span class="hl-1"> } }</span><br/><span class="hl-1">})</span>
185
198
  </code><button type="button">Copy</button></pre>
186
199
 
187
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L201">src/serializer/builders/DreamSerializerBuilder.ts:201</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="render"><span>render</span><a href="#render" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="render-1"><span class="tsd-kind-call-signature">render</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">passthrough</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">opts</span><span class="tsd-signature-symbol">?:</span> <a href="../interfaces/types.SerializerRendererOpts.html" class="tsd-signature-type tsd-kind-interface">SerializerRendererOpts</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><a href="#render-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Executes the serializer and returns the serialized output.</p>
200
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L201">src/serializer/builders/DreamSerializerBuilder.ts:201</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="render"><span>render</span><a href="#render" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="render-1"><span class="tsd-kind-call-signature">render</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">passthrough</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">opts</span><span class="tsd-signature-symbol">?:</span> <a href="../interfaces/types.SerializerRendererOpts.html" class="tsd-signature-type tsd-kind-interface">SerializerRendererOpts</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">null</span><a href="#render-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Executes the serializer and returns the serialized output.</p>
188
201
  <p>Processes all defined attributes, custom attributes, delegated attributes,
189
202
  and associations to produce the final serialized object.</p>
190
203
  </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">passthrough</span>: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = {}</span></span><div class="tsd-comment tsd-typography"><p>Additional data to pass through to nested serializers
@@ -194,7 +207,7 @@ and associations to produce the final serialized object.</p>
194
207
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-6">Example<a href="#example-6" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">result</span><span class="hl-1"> = </span><span class="hl-5">UserSerializer</span><span class="hl-1">(</span><span class="hl-4">user</span><span class="hl-1">).</span><span class="hl-5">render</span><span class="hl-1">()</span><br/><span class="hl-7">// Returns: { id: 1, email: &#39;user@example.com&#39;, ... }</span><br/><br/><span class="hl-7">// With passthrough data for nested serializers</span><br/><span class="hl-0">const</span><span class="hl-1"> </span><span class="hl-2">result</span><span class="hl-1"> = </span><span class="hl-5">UserSerializer</span><span class="hl-1">(</span><span class="hl-4">user</span><span class="hl-1">).</span><span class="hl-5">render</span><span class="hl-1">({ </span><span class="hl-4">currentUserId:</span><span class="hl-1"> </span><span class="hl-8">123</span><span class="hl-1"> })</span>
195
208
  </code><button type="button">Copy</button></pre>
196
209
 
197
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L552">src/serializer/builders/DreamSerializerBuilder.ts:552</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rendersmany"><span>renders<wbr/>Many</span><a href="#rendersmany" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="rendersmany-1"><span class="tsd-kind-call-signature">rendersMany</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> (<br/>        <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">|</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>    )<span class="tsd-signature-symbol">[]</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyserializeroptions">SerializerOptions</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>                <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>                <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanybaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanybaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">&amp;</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyserializeroptions">SerializerOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#rendersmany-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an array of associated objects in the serialized output.</p>
210
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L574">src/serializer/builders/DreamSerializerBuilder.ts:574</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rendersmany"><span>renders<wbr/>Many</span><a href="#rendersmany" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="rendersmany-1"><span class="tsd-kind-call-signature">rendersMany</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> (<br/>        <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">|</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>    )<span class="tsd-signature-symbol">[]</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyserializeroptions">SerializerOptions</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>                <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>                <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanybaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanybaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">&amp;</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyserializeroptions">SerializerOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#rendersmany-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes an array of associated objects in the serialized output.</p>
198
211
  <p>When rendering a Dream association, the serializer and OpenAPI shape are automatically
199
212
  inferred from that associated Dream model's registered serializers.</p>
200
213
  </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="rendersmanyprovidedmodeltype"><span class="tsd-kind-type-parameter">ProvidedModelType</span> = <span class="tsd-signature-type">undefined</span></span></li><li><span id="rendersmanyprovidedattributename"><span class="tsd-kind-type-parameter">ProvidedAttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span></span></li><li><span id="rendersmanyactualdatatype"><span class="tsd-kind-type-parameter">ActualDataType</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedmodeltype">ProvidedModelType</a></span></li><li><span id="rendersmanyattributename"><span class="tsd-kind-type-parameter">AttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a></span></li><li><span id="rendersmanyassociatedmodeltype"><span class="tsd-kind-type-parameter">AssociatedModelType</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> (<a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a> <span class="tsd-signature-symbol">|</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a>)<span class="tsd-signature-symbol">[]</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">]</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span><span class="tsd-signature-symbol">[]</span> <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type tsd-kind-type-parameter">U</span> <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></span></li><li><span id="rendersmanyserializeroptions"><span class="tsd-kind-type-parameter">SerializerOptions</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>            <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span></span></li><li><span id="rendersmanybaseoptions"><span class="tsd-kind-type-parameter">BaseOptions</span> = <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersmanyattributename">AttributeName</a></span><div class="tsd-comment tsd-typography"><p>The association property name (should resolve to an array)</p>
@@ -219,7 +232,7 @@ associated model's registered serializers</li>
219
232
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-7">Example<a href="#example-7" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Auto-infer serializer from Dream association</span><br/><span class="hl-1">.</span><span class="hl-5">rendersMany</span><span class="hl-1">(</span><span class="hl-6">&#39;rooms&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With specific serializer key</span><br/><span class="hl-1">.</span><span class="hl-5">rendersMany</span><span class="hl-1">(</span><span class="hl-6">&#39;rooms&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializerKey:</span><span class="hl-1"> </span><span class="hl-6">&#39;summary&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Explicit serializer function (for non-Dream objects)</span><br/><span class="hl-1">.</span><span class="hl-5">rendersMany</span><span class="hl-1">(</span><span class="hl-6">&#39;bedTypes&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializer:</span><span class="hl-1"> </span><span class="hl-4">BedTypeSerializer</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Rename output key</span><br/><span class="hl-1">.</span><span class="hl-5">rendersMany</span><span class="hl-1">(</span><span class="hl-6">&#39;rooms&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializerKey:</span><span class="hl-1"> </span><span class="hl-6">&#39;forGuests&#39;</span><span class="hl-1">, </span><span class="hl-4">as:</span><span class="hl-1"> </span><span class="hl-6">&#39;guestRooms&#39;</span><span class="hl-1"> })</span>
220
233
  </code><button type="button">Copy</button></pre>
221
234
 
222
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L475">src/serializer/builders/DreamSerializerBuilder.ts:475</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rendersone"><span>renders<wbr/>One</span><a href="#rendersone" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="rendersone-1"><span class="tsd-kind-call-signature">rendersOne</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneserializeroptions">SerializerOptions</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>                <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>                <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersonebaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">flatten</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">optional</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersonebaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">&amp;</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneserializeroptions">SerializerOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#rendersone-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes a single associated object in the serialized output.</p>
235
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L497">src/serializer/builders/DreamSerializerBuilder.ts:497</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rendersone"><span>renders<wbr/>One</span><a href="#rendersone" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="rendersone-1"><span class="tsd-kind-call-signature">rendersOne</span><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a> <span class="tsd-signature-keyword">extends</span><br/>        <span class="tsd-signature-type">string</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneserializeroptions">SerializerOptions</a> <span class="tsd-signature-symbol">=</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>            <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>                <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>                <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-signature-symbol">}</span><br/>            <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersonebaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">flatten</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">optional</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">name</span><span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">options</span><span class="tsd-signature-symbol">?:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersonebaseoptions">BaseOptions</a> <span class="tsd-signature-symbol">&amp;</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneserializeroptions">SerializerOptions</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">DreamSerializerBuilder</a><span class="tsd-signature-symbol">&lt;</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#maybenulldatatype">MaybeNullDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#passthroughdatatype">PassthroughDataType</a><span class="tsd-signature-symbol">,</span><br/>    <a class="tsd-signature-type tsd-kind-type-parameter" href="#datatype">DataType</a><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">&gt;</span><a href="#rendersone-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Includes a single associated object in the serialized output.</p>
223
236
  <p>When rendering a Dream association, the serializer and OpenAPI shape are automatically
224
237
  inferred from that associated Dream model's registered serializers.</p>
225
238
  </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="rendersoneprovidedmodeltype"><span class="tsd-kind-type-parameter">ProvidedModelType</span> = <span class="tsd-signature-type">undefined</span></span></li><li><span id="rendersoneprovidedattributename"><span class="tsd-kind-type-parameter">ProvidedAttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">undefined</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span></span></li><li><span id="rendersoneactualdatatype"><span class="tsd-kind-type-parameter">ActualDataType</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">InstanceType</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#datatypeforopenapi">DataTypeForOpenapi</a><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedmodeltype">ProvidedModelType</a></span></li><li><span id="rendersoneattributename"><span class="tsd-kind-type-parameter">AttributeName</span> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">symbol</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-keyword">extends</span> <span class="tsd-signature-type">undefined</span><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">DreamPropertiesToExclude</span><span class="tsd-signature-symbol">&gt;</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneprovidedattributename">ProvidedAttributeName</a> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-keyword">keyof</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a></span></li><li><span id="rendersoneassociatedmodeltype"><span class="tsd-kind-type-parameter">AssociatedModelType</span> = <span class="tsd-signature-type">Exclude</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneactualdatatype">ActualDataType</a><span class="tsd-signature-symbol">[</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol">&gt;</span></span></li><li><span id="rendersoneserializeroptions"><span class="tsd-kind-type-parameter">SerializerOptions</span> = <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="index.Dream.html" class="tsd-signature-type tsd-kind-class">Dream</a><br/>    <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span> <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">:</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a> <span class="tsd-signature-keyword">extends</span> <a href="../types/types.ViewModel.html" class="tsd-signature-type tsd-kind-type-alias">ViewModel</a><br/>        <span class="tsd-signature-symbol">?</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span><br/>            <span class="tsd-kind-property">serializerKey</span><span class="tsd-signature-symbol">?:</span> <a href="../types/types.DreamOrViewModelSerializerKey.html" class="tsd-signature-type tsd-kind-type-alias">DreamOrViewModelSerializerKey</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneassociatedmodeltype">AssociatedModelType</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-kind-property">viewModelClass</span><span class="tsd-signature-symbol">:</span> <a href="../types/types.ViewModelClass.html" class="tsd-signature-type tsd-kind-type-alias">ViewModelClass</a><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">serializer</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">SerializerType</span> <span class="tsd-signature-symbol">}</span></span></li><li><span id="rendersonebaseoptions"><span class="tsd-kind-type-parameter">BaseOptions</span> = <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">as</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">flatten</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">optional</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span> <span class="tsd-signature-symbol">}</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">name</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="#rendersoneattributename">AttributeName</a></span><div class="tsd-comment tsd-typography"><p>The association property name</p>
@@ -231,14 +244,23 @@ the parent serialized output instead of nesting them under <code>name</code>. At
231
244
  declaration order, so when the parent and the association share a key (e.g., <code>id</code>),
232
245
  whichever is declared later wins: the association's value replaces an attribute declared
233
246
  before the <code>rendersOne</code>, and an attribute declared after it replaces the association's.
234
- When the association is <code>null</code>, every key its serializer declares renders as <code>null</code>
235
- (for a polymorphic <code>BelongsTo</code>, every key the serializer of any of its target classes
236
- declares, and for an association to an STI base, every key the serializer of any of its
237
- STI children declares), in the same order (so an <code>id</code> declared before the <code>rendersOne</code> becomes
238
- <code>null</code>); nothing in that serializer is rendered, so its custom attribute callbacks do
239
- not run, and a flattened <code>customAttribute</code> in it adds no keys. Psychic adds the association's OpenAPI
240
- schema to the parent's as an <code>allOf</code> branch, so a shared key's value must match both
241
- schemas, whichever declaration wins</li>
247
+ When the association is <code>null</code>, each key its serializer requires renders as <code>null</code>: an
248
+ attribute, delegatedAttribute or customAttribute declared without <code>required: false</code>, and
249
+ every non-flattened <code>rendersOne</code> and <code>rendersMany</code> (for a polymorphic <code>BelongsTo</code>, each
250
+ key the serializer of any of its target classes requires, and for an association to an
251
+ STI base, each key the serializer of any of its STI children requires), in the same order
252
+ (so an <code>id</code> declared before the <code>rendersOne</code> becomes <code>null</code>), while a key declared with
253
+ <code>required: false</code> stays absent. A flattened <code>customAttribute</code> in that serializer adds the
254
+ keys its <code>openapi</code> requires: a key an object shape lists in its <code>required</code> array, a key a
255
+ <code>$serializer</code> or <code>$serializable</code> ref's serializer declares without <code>required: false</code>, and
256
+ each such key of an <code>allOf</code>, <code>anyOf</code> or <code>oneOf</code> member; a ref with <code>many: true</code> adds none,
257
+ and a flattened <code>customAttribute</code> declared with <code>required: false</code> adds none. Nothing in
258
+ that serializer is rendered, so its custom attribute callbacks do not run. When the
259
+ association to an STI base or polymorphic <code>BelongsTo</code> is present, each key another STI
260
+ child's or target's serializer requires that the held one's serializer does not declare
261
+ also renders as <code>null</code>, so a client sees the same keys whichever is held. Psychic adds
262
+ the association's OpenAPI schema to the parent's as an <code>allOf</code> branch, so a shared key's
263
+ value must match both schemas, whichever declaration wins</li>
242
264
  <li><code>optional</code> - When <code>true</code>, allows the association to be null/missing without causing
243
265
  an <code>OpenapiResponseValidationFailure</code> during Psychic controller unit specs. By default,
244
266
  <code>rendersOne</code> expects the association to be present (mirroring the <code>optional</code> option on
@@ -261,4 +283,4 @@ associated model's registered serializers</li>
261
283
  <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-8">Example<a href="#example-8" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Auto-infer serializer from Dream association</span><br/><span class="hl-1">.</span><span class="hl-5">rendersOne</span><span class="hl-1">(</span><span class="hl-6">&#39;profile&#39;</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// With specific serializer key</span><br/><span class="hl-1">.</span><span class="hl-5">rendersOne</span><span class="hl-1">(</span><span class="hl-6">&#39;user&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializerKey:</span><span class="hl-1"> </span><span class="hl-6">&#39;summary&#39;</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Allow null association</span><br/><span class="hl-1">.</span><span class="hl-5">rendersOne</span><span class="hl-1">(</span><span class="hl-6">&#39;approver&#39;</span><span class="hl-1">, { </span><span class="hl-4">optional:</span><span class="hl-1"> </span><span class="hl-0">true</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Flatten into parent object</span><br/><span class="hl-1">.</span><span class="hl-5">rendersOne</span><span class="hl-1">(</span><span class="hl-6">&#39;candidate&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializerKey:</span><span class="hl-1"> </span><span class="hl-6">&#39;summary&#39;</span><span class="hl-1">, </span><span class="hl-4">flatten:</span><span class="hl-1"> </span><span class="hl-0">true</span><span class="hl-1"> })</span><br/><br/><span class="hl-7">// Explicit serializer function</span><br/><span class="hl-1">.</span><span class="hl-5">rendersOne</span><span class="hl-1">(</span><span class="hl-6">&#39;owner&#39;</span><span class="hl-1">, { </span><span class="hl-4">serializer:</span><span class="hl-1"> </span><span class="hl-4">CustomOwnerSerializer</span><span class="hl-1"> })</span>
262
284
  </code><button type="button">Copy</button></pre>
263
285
 
264
- </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/a4703e2053f5eb7f3b8d842eaed1bb228290ac7d/src/serializer/builders/DreamSerializerBuilder.ts#L360">src/serializer/builders/DreamSerializerBuilder.ts:360</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#typeforopenapi" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>$type<wbr/>For<wbr/>Openapi</span></a><a href="#attributes" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>attributes</span></a><a href="#data" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a><a href="#passthroughdata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>passthrough<wbr/>Data</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#attribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>attribute</span></a><a href="#customattribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>custom<wbr/>Attribute</span></a><a href="#delegatedattribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>delegated<wbr/>Attribute</span></a><a href="#render"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>render</span></a><a href="#rendersmany"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>Many</span></a><a href="#rendersone"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>One</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@rvoh/dream</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
286
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/efd0a5e5fc37d69e9cc31504500ed40b6f80416d/src/serializer/builders/DreamSerializerBuilder.ts#L382">src/serializer/builders/DreamSerializerBuilder.ts:382</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#typeforopenapi" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>$type<wbr/>For<wbr/>Openapi</span></a><a href="#attributes" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>attributes</span></a><a href="#data" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>data</span></a><a href="#passthroughdata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>passthrough<wbr/>Data</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#attribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>attribute</span></a><a href="#customattribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>custom<wbr/>Attribute</span></a><a href="#delegatedattribute"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>delegated<wbr/>Attribute</span></a><a href="#render"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>render</span></a><a href="#rendersmany"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>Many</span></a><a href="#rendersone"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>renders<wbr/>One</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@rvoh/dream</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>