@rvoh/dream 2.38.0 → 2.40.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 (221) hide show
  1. package/README.md +2 -34
  2. package/dist/cjs/src/dream-app/index.js +31 -1
  3. package/dist/cjs/src/helpers/areEqual.js +2 -2
  4. package/dist/cjs/src/helpers/path/absoluteDreamPath.js +5 -3
  5. package/dist/cjs/src/serializer/DreamSerializer.js +5 -5
  6. package/dist/cjs/src/serializer/ObjectSerializer.js +5 -5
  7. package/dist/cjs/src/serializer/SerializerRenderer.js +21 -28
  8. package/dist/cjs/src/serializer/builders/DreamSerializerBuilder.js +40 -33
  9. package/dist/cjs/src/serializer/builders/ObjectSerializerBuilder.js +38 -33
  10. package/dist/cjs/src/serializer/helpers/nullFlattenedSerializerKeys.js +44 -68
  11. package/dist/cjs/src/serializer/helpers/serializersForAssociatedClass.js +4 -3
  12. package/dist/esm/src/dream-app/index.js +31 -1
  13. package/dist/esm/src/helpers/areEqual.js +2 -2
  14. package/dist/esm/src/helpers/path/absoluteDreamPath.js +5 -3
  15. package/dist/esm/src/serializer/DreamSerializer.js +5 -5
  16. package/dist/esm/src/serializer/ObjectSerializer.js +5 -5
  17. package/dist/esm/src/serializer/SerializerRenderer.js +21 -28
  18. package/dist/esm/src/serializer/builders/DreamSerializerBuilder.js +40 -33
  19. package/dist/esm/src/serializer/builders/ObjectSerializerBuilder.js +38 -33
  20. package/dist/esm/src/serializer/helpers/nullFlattenedSerializerKeys.js +44 -68
  21. package/dist/esm/src/serializer/helpers/serializersForAssociatedClass.js +4 -3
  22. package/dist/types/src/dream-app/index.d.ts +26 -3
  23. package/dist/types/src/serializer/DreamSerializer.d.ts +5 -5
  24. package/dist/types/src/serializer/ObjectSerializer.d.ts +5 -5
  25. package/dist/types/src/serializer/SerializerRenderer.d.ts +1 -1
  26. package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +43 -35
  27. package/dist/types/src/serializer/builders/ObjectSerializerBuilder.d.ts +41 -35
  28. package/dist/types/src/serializer/helpers/nullFlattenedSerializerKeys.d.ts +43 -33
  29. package/dist/types/src/serializer/helpers/serializersForAssociatedClass.d.ts +4 -3
  30. package/docs/assets/search.js +1 -1
  31. package/docs/classes/db.DreamMigrationHelpers.html +11 -11
  32. package/docs/classes/db.KyselyQueryDriver.html +49 -49
  33. package/docs/classes/db.PostgresQueryDriver.html +49 -49
  34. package/docs/classes/db.QueryDriverBase.html +49 -49
  35. package/docs/classes/errors.CannotSaveMissingDream.html +2 -2
  36. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  37. package/docs/classes/errors.ColumnOverflow.html +3 -3
  38. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  39. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  40. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  41. package/docs/classes/errors.DecryptionError.html +2 -2
  42. package/docs/classes/errors.DecryptionParseError.html +2 -2
  43. package/docs/classes/errors.DecryptionRotationError.html +3 -3
  44. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  45. package/docs/classes/errors.InvalidCalendarDate.html +2 -2
  46. package/docs/classes/errors.InvalidClockTime.html +2 -2
  47. package/docs/classes/errors.InvalidClockTimeTz.html +2 -2
  48. package/docs/classes/errors.InvalidDateTime.html +2 -2
  49. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  50. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  51. package/docs/classes/errors.NotNullViolation.html +3 -3
  52. package/docs/classes/errors.RecordNotFound.html +3 -3
  53. package/docs/classes/errors.SortableScopeDidNotStabilize.html +3 -3
  54. package/docs/classes/errors.SortableScopeLockWaitTimedOut.html +3 -3
  55. package/docs/classes/errors.ValidationError.html +3 -3
  56. package/docs/classes/index.CalendarDate.html +33 -33
  57. package/docs/classes/index.ClockTime.html +32 -32
  58. package/docs/classes/index.ClockTimeTz.html +35 -35
  59. package/docs/classes/index.DateTime.html +86 -86
  60. package/docs/classes/index.Decorators.html +19 -19
  61. package/docs/classes/index.Dream.html +125 -125
  62. package/docs/classes/index.DreamApp.html +26 -11
  63. package/docs/classes/index.DreamTransaction.html +3 -3
  64. package/docs/classes/index.Env.html +5 -5
  65. package/docs/classes/index.Query.html +65 -65
  66. package/docs/classes/system.CliFileWriter.html +4 -4
  67. package/docs/classes/system.DreamBin.html +3 -3
  68. package/docs/classes/system.DreamCLI.html +7 -7
  69. package/docs/classes/system.DreamImporter.html +2 -2
  70. package/docs/classes/system.DreamLogos.html +2 -2
  71. package/docs/classes/system.DreamSerializerBuilder.html +51 -44
  72. package/docs/classes/system.ObjectSerializerBuilder.html +49 -43
  73. package/docs/classes/system.PathHelpers.html +3 -3
  74. package/docs/classes/utils.Encrypt.html +4 -4
  75. package/docs/classes/utils.Range.html +2 -2
  76. package/docs/functions/db.closeAllDbConnections.html +1 -1
  77. package/docs/functions/db.dreamDbConnections.html +1 -1
  78. package/docs/functions/db.untypedDb.html +1 -1
  79. package/docs/functions/db.validateColumn.html +1 -1
  80. package/docs/functions/db.validateTable.html +1 -1
  81. package/docs/functions/errors.pgErrorType.html +1 -1
  82. package/docs/functions/index.DreamSerializer.html +6 -6
  83. package/docs/functions/index.ObjectSerializer.html +6 -6
  84. package/docs/functions/index.ReplicaSafe.html +1 -1
  85. package/docs/functions/index.STI.html +1 -1
  86. package/docs/functions/index.SoftDelete.html +1 -1
  87. package/docs/functions/utils.camelize.html +1 -1
  88. package/docs/functions/utils.capitalize.html +1 -1
  89. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  90. package/docs/functions/utils.compact.html +1 -1
  91. package/docs/functions/utils.groupBy.html +1 -1
  92. package/docs/functions/utils.hyphenize.html +1 -1
  93. package/docs/functions/utils.intersection.html +1 -1
  94. package/docs/functions/utils.isEmpty.html +1 -1
  95. package/docs/functions/utils.normalizeUnicode.html +1 -1
  96. package/docs/functions/utils.pascalize.html +1 -1
  97. package/docs/functions/utils.percent.html +1 -1
  98. package/docs/functions/utils.range.html +1 -1
  99. package/docs/functions/utils.round.html +1 -1
  100. package/docs/functions/utils.sanitizeString.html +1 -1
  101. package/docs/functions/utils.snakeify.html +1 -1
  102. package/docs/functions/utils.sort.html +1 -1
  103. package/docs/functions/utils.sortBy.html +1 -1
  104. package/docs/functions/utils.sortObjectByKey.html +1 -1
  105. package/docs/functions/utils.sortObjectByValue.html +1 -1
  106. package/docs/functions/utils.uncapitalize.html +1 -1
  107. package/docs/functions/utils.uniq.html +1 -1
  108. package/docs/index.html +2 -9
  109. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  110. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  111. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  112. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  113. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  114. package/docs/interfaces/types.DecoratorContext.html +2 -2
  115. package/docs/interfaces/types.DecryptCallbacks.html +2 -2
  116. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  117. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  118. package/docs/interfaces/types.DreamDbConfig.html +6 -6
  119. package/docs/interfaces/types.DurationObject.html +2 -2
  120. package/docs/interfaces/types.EncryptOptions.html +2 -2
  121. package/docs/interfaces/types.EncryptionLegacyKeyUsedEvent.html +4 -4
  122. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  123. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  124. package/docs/interfaces/types.IntrospectedColumn.html +7 -7
  125. package/docs/interfaces/types.IntrospectedDatabase.html +2 -2
  126. package/docs/interfaces/types.IntrospectedEnum.html +2 -2
  127. package/docs/interfaces/types.IntrospectedTable.html +5 -5
  128. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  129. package/docs/media/CONTRIBUTING.md +128 -0
  130. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  131. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  132. package/docs/types/openapi.OpenapiFormats.html +1 -1
  133. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  134. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  135. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  136. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  137. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  138. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  139. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  140. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  141. package/docs/types/openapi.OpenapiSchemaCombinatorFields.html +1 -1
  142. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  143. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -1
  144. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -1
  145. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -1
  146. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +2 -2
  147. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +2 -2
  148. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  149. package/docs/types/openapi.OpenapiSchemaNull.html +2 -2
  150. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  151. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  152. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  153. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  154. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  155. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  156. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  157. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  158. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  159. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  160. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  161. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +2 -2
  162. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +2 -2
  163. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  164. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  165. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  166. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  167. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  168. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  169. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  170. package/docs/types/types.CalendarDateDurationUnit.html +1 -1
  171. package/docs/types/types.CalendarDateObject.html +1 -1
  172. package/docs/types/types.Camelized.html +1 -1
  173. package/docs/types/types.ClockTimeObject.html +1 -1
  174. package/docs/types/types.DbConnectionType.html +1 -1
  175. package/docs/types/types.DbTypes.html +1 -1
  176. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  177. package/docs/types/types.DreamAttributes.html +1 -1
  178. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  179. package/docs/types/types.DreamClassColumn.html +1 -1
  180. package/docs/types/types.DreamColumn.html +1 -1
  181. package/docs/types/types.DreamColumnNames.html +1 -1
  182. package/docs/types/types.DreamLogLevel.html +1 -1
  183. package/docs/types/types.DreamLogger.html +2 -2
  184. package/docs/types/types.DreamModelSerializerType.html +1 -1
  185. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  186. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  187. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  188. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  189. package/docs/types/types.DreamSerializable.html +1 -1
  190. package/docs/types/types.DreamSerializableArray.html +1 -1
  191. package/docs/types/types.DreamSerializerKey.html +1 -1
  192. package/docs/types/types.DreamSerializers.html +1 -1
  193. package/docs/types/types.DreamVirtualColumns.html +1 -1
  194. package/docs/types/types.DurationUnit.html +1 -1
  195. package/docs/types/types.EncryptAlgorithm.html +1 -1
  196. package/docs/types/types.HasManyStatement.html +1 -1
  197. package/docs/types/types.HasOneStatement.html +1 -1
  198. package/docs/types/types.Hyphenized.html +1 -1
  199. package/docs/types/types.IntrospectedValueType.html +1 -1
  200. package/docs/types/types.Pascalized.html +1 -1
  201. package/docs/types/types.PrimaryKeyType.html +1 -1
  202. package/docs/types/types.RoundingPrecision.html +1 -1
  203. package/docs/types/types.SerializerCasing.html +1 -1
  204. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  205. package/docs/types/types.Snakeified.html +1 -1
  206. package/docs/types/types.StrictInterface.html +1 -1
  207. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  208. package/docs/types/types.UpdateableProperties.html +1 -1
  209. package/docs/types/types.ValidationType.html +1 -1
  210. package/docs/types/types.ViewModel.html +2 -2
  211. package/docs/types/types.ViewModelClass.html +1 -1
  212. package/docs/types/types.WeekdayName.html +1 -1
  213. package/docs/types/types.WhereStatementForDream.html +1 -1
  214. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  215. package/docs/variables/index.DreamConst.html +1 -1
  216. package/docs/variables/index.ops.html +1 -1
  217. package/docs/variables/openapi.openapiPrimitiveTypes.html +1 -1
  218. package/docs/variables/openapi.openapiShorthandPrimitiveTypes.html +1 -1
  219. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  220. package/docs/variables/system.primaryKeyTypes.html +1 -1
  221. package/package.json +9 -5
@@ -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/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>
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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/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>
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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/f9b72aff85f4a958f7fe9b172933570e111b89de/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/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>
35
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/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/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>
58
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/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/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>
81
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/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/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>
104
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/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
@@ -113,28 +113,29 @@ callback.</p>
113
113
  <li><code>openapi</code> - (required) OpenAPI schema definition for the computed value</li>
114
114
  <li><code>flatten</code> - When <code>true</code>, spreads the returned object's properties directly into the
115
115
  parent serialized output instead of nesting them under <code>name</code>. The <code>openapi</code> option
116
- then describes the whole returned object, not each property, because Psychic adds it
117
- to the parent's schema as an <code>allOf</code> branch: either an object schema with full
118
- property bodies (<code>type: 'object'</code>, <code>properties</code>, and <code>required</code> listing the keys that
119
- are always present), or <code>{ $serializer: SomeSerializer }</code> when the callback returns
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> 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.
116
+ then describes the whole returned object, not each property: either an object schema
117
+ with full property bodies (<code>type: 'object'</code>, <code>properties</code>, and <code>required</code> listing the
118
+ keys that are always present), or <code>{ $serializer: SomeSerializer }</code> when the callback
119
+ returns what that serializer renders. A serializer ref with <code>many: true</code> does not
120
+ type-check here, since a list has no properties to spread. Whatever the callback
121
+ returns, each key any shape of the <code>openapi</code> requires renders, as <code>null</code> wherever the
122
+ value does not supply it (a returned plain object's key set to <code>undefined</code> does not
123
+ supply it): a key an object shape lists in its <code>required</code> array, a key a <code>$serializer</code> or
124
+ <code>$serializable</code> ref's serializer declares without <code>required: false</code> (for an STI base,
125
+ any child's serializer), and each such key of any <code>allOf</code>, <code>anyOf</code> or <code>oneOf</code> member. So
126
+ a <code>null</code> return, a serializer built over <code>null</code> or <code>undefined</code> data, or an <code>undefined</code>
127
+ return without <code>required: false</code> renders each of them as <code>null</code>, and a present value
128
+ renders its own keys over them, so a key another shape requires renders as <code>null</code> even
129
+ when the value's own shape leaves it optional; the payload always includes the same
130
+ keys whichever shape the value takes and whether it is null. An optional key no shape
131
+ requires stays absent unless the value supplies it, and an <code>undefined</code> return with
132
+ <code>required: false</code> adds no keys.
132
133
  Every key it adds follows the render's casing like the parent's own keys: a returned
133
134
  plain object's top-level keys and the <code>openapi</code>'s <code>properties</code> keys are cased (so
134
135
  <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
136
- another attribute takes the value of whichever is declared later; under the <code>allOf</code>,
137
- that value must match both schemas</li>
136
+ nested values render as returned. Attributes render in declaration order, so a key the
137
+ returned object shares with another attribute takes the value of whichever is declared
138
+ later, and that value must match both the attribute's declaration and the <code>openapi</code>'s</li>
138
139
  <li><code>required</code> - Set to <code>false</code> to mark the attribute as optional in the OpenAPI schema;
139
140
  when omitted, attributes are required by default</li>
140
141
  </ul>
@@ -142,7 +143,7 @@ when omitted, attributes are required by default</li>
142
143
  <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>
143
144
  </code><button type="button">Copy</button></pre>
144
145
 
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>
146
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/src/serializer/builders/DreamSerializerBuilder.ts#L306">src/serializer/builders/DreamSerializerBuilder.ts:306</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>
146
147
  <p>Accesses <code>targetName.name</code> on the data object. When the target object or the
147
148
  delegated attribute is null/undefined, the resolution order is:</p>
148
149
  <ol>
@@ -197,7 +198,7 @@ no <code>default</code>), and to mark the field as not required in the OpenAPI s
197
198
  <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>
198
199
  </code><button type="button">Copy</button></pre>
199
200
 
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>
201
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/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>
201
202
  <p>Processes all defined attributes, custom attributes, delegated attributes,
202
203
  and associations to produce the final serialized object.</p>
203
204
  </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
@@ -207,7 +208,7 @@ and associations to produce the final serialized object.</p>
207
208
  <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>
208
209
  </code><button type="button">Copy</button></pre>
209
210
 
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>
211
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/src/serializer/builders/DreamSerializerBuilder.ts#L582">src/serializer/builders/DreamSerializerBuilder.ts:582</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>
211
212
  <p>When rendering a Dream association, the serializer and OpenAPI shape are automatically
212
213
  inferred from that associated Dream model's registered serializers.</p>
213
214
  </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>
@@ -232,7 +233,7 @@ associated model's registered serializers</li>
232
233
  <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>
233
234
  </code><button type="button">Copy</button></pre>
234
235
 
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>
236
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/src/serializer/builders/DreamSerializerBuilder.ts#L505">src/serializer/builders/DreamSerializerBuilder.ts:505</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>
236
237
  <p>When rendering a Dream association, the serializer and OpenAPI shape are automatically
237
238
  inferred from that associated Dream model's registered serializers.</p>
238
239
  </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>
@@ -244,23 +245,29 @@ the parent serialized output instead of nesting them under <code>name</code>. At
244
245
  declaration order, so when the parent and the association share a key (e.g., <code>id</code>),
245
246
  whichever is declared later wins: the association's value replaces an attribute declared
246
247
  before the <code>rendersOne</code>, and an attribute declared after it replaces the association's.
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
248
+ Each key its serializer requires always renders, as <code>null</code> wherever the association
249
+ does not supply it: an attribute, delegatedAttribute or customAttribute declared without
250
+ <code>required: false</code>, and every non-flattened <code>rendersOne</code> and <code>rendersMany</code> (for a
251
+ polymorphic <code>BelongsTo</code>, each key the serializer of any of its target classes requires,
252
+ and for an association to an STI base, each key the serializer of any of its STI children
253
+ requires), in the same order (so an <code>id</code> declared before the <code>rendersOne</code> becomes <code>null</code>
254
+ when the association is <code>null</code>). A flattened <code>customAttribute</code> in that serializer adds the
254
255
  keys its <code>openapi</code> requires: a key an object shape lists in its <code>required</code> array, a key a
255
256
  <code>$serializer</code> or <code>$serializable</code> ref's serializer declares without <code>required: false</code>, and
256
257
  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>
258
+ and a flattened <code>customAttribute</code> declared with <code>required: false</code> adds none. When the
259
+ association is <code>null</code>, each of these keys renders as <code>null</code> and nothing in its serializer
260
+ is rendered, so its custom attribute callbacks do not run. When it is present, the held
261
+ object's serializer renders its own keys over them, so a key another STI child's or
262
+ target's serializer requires renders as <code>null</code> where the held one's serializer does not
263
+ render it, including a key that serializer declares with <code>required: false</code>; the payload
264
+ always includes the same keys whichever is held and, for an association or a property
265
+ given a <code>serializer</code> or <code>viewModelClass</code> option, whether it is <code>null</code> (a <code>null</code> property
266
+ that is not an association and has neither option renders none of these keys, since no
267
+ serializer is known for it). A key declared with <code>required: false</code> that no serializer
268
+ requires stays absent unless it renders. The association's OpenAPI schema describes the
269
+ parent's payload too, so a shared key's value must match both the parent's declaration
270
+ and the association's, whichever declaration wins</li>
264
271
  <li><code>optional</code> - When <code>true</code>, allows the association to be null/missing without causing
265
272
  an <code>OpenapiResponseValidationFailure</code> during Psychic controller unit specs. By default,
266
273
  <code>rendersOne</code> expects the association to be present (mirroring the <code>optional</code> option on
@@ -283,4 +290,4 @@ associated model's registered serializers</li>
283
290
  <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>
284
291
  </code><button type="button">Copy</button></pre>
285
292
 
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>
293
+ </div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/rvohealth/dream/blob/f9b72aff85f4a958f7fe9b172933570e111b89de/src/serializer/builders/DreamSerializerBuilder.ts#L389">src/serializer/builders/DreamSerializerBuilder.ts:389</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>