@rvoh/dream 1.5.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/cjs/src/Dream.js +1 -10
  2. package/dist/cjs/src/helpers/areEqual.js +2 -1
  3. package/dist/cjs/src/helpers/cloneDeepSafe.js +2 -1
  4. package/dist/cjs/src/helpers/comparisonKey.js +2 -5
  5. package/dist/cjs/src/helpers/stringCasing.js +2 -1
  6. package/dist/cjs/src/index.js +4 -4
  7. package/dist/cjs/src/serializer/SerializerRenderer.js +2 -7
  8. package/dist/cjs/src/serializer/builders/DreamSerializerBuilder.js +0 -3
  9. package/dist/cjs/src/serializer/builders/ObjectSerializerBuilder.js +0 -3
  10. package/dist/cjs/src/serializer/helpers/isDreamSerializer.js +5 -2
  11. package/dist/cjs/src/serializer/helpers/serializerForAssociatedClass.js +2 -1
  12. package/dist/esm/src/Dream.js +1 -10
  13. package/dist/esm/src/helpers/areEqual.js +2 -1
  14. package/dist/esm/src/helpers/cloneDeepSafe.js +2 -1
  15. package/dist/esm/src/helpers/comparisonKey.js +2 -5
  16. package/dist/esm/src/helpers/stringCasing.js +2 -1
  17. package/dist/esm/src/index.js +1 -1
  18. package/dist/esm/src/serializer/SerializerRenderer.js +2 -7
  19. package/dist/esm/src/serializer/builders/DreamSerializerBuilder.js +0 -3
  20. package/dist/esm/src/serializer/builders/ObjectSerializerBuilder.js +0 -3
  21. package/dist/esm/src/serializer/helpers/isDreamSerializer.js +5 -2
  22. package/dist/esm/src/serializer/helpers/serializerForAssociatedClass.js +2 -1
  23. package/dist/types/src/Dream.d.ts +0 -7
  24. package/dist/types/src/index.d.ts +1 -1
  25. package/dist/types/src/serializer/builders/DreamSerializerBuilder.d.ts +0 -1
  26. package/dist/types/src/serializer/builders/ObjectSerializerBuilder.d.ts +0 -1
  27. package/dist/types/src/types/serializer.d.ts +0 -4
  28. package/dist/types/src/types/serializer.ts +0 -4
  29. package/docs/assets/navigation.js +1 -1
  30. package/docs/assets/search.js +1 -1
  31. package/docs/classes/Benchmark.html +2 -2
  32. package/docs/classes/CalendarDate.html +2 -2
  33. package/docs/classes/CheckConstraintViolation.html +3 -3
  34. package/docs/classes/CliFileWriter.html +2 -2
  35. package/docs/classes/CreateOrFindByFailedToCreateAndFind.html +3 -3
  36. package/docs/classes/DataTypeColumnTypeMismatch.html +3 -3
  37. package/docs/classes/Decorators.html +19 -19
  38. package/docs/classes/Dream.html +112 -116
  39. package/docs/classes/DreamApp.html +4 -4
  40. package/docs/classes/DreamBin.html +2 -2
  41. package/docs/classes/DreamCLI.html +4 -4
  42. package/docs/classes/DreamImporter.html +2 -2
  43. package/docs/classes/DreamLogos.html +2 -2
  44. package/docs/classes/DreamMigrationHelpers.html +8 -8
  45. package/docs/classes/DreamSerializerBuilder.html +8 -9
  46. package/docs/classes/DreamTransaction.html +2 -2
  47. package/docs/classes/Encrypt.html +2 -2
  48. package/docs/classes/Env.html +2 -2
  49. package/docs/classes/GlobalNameNotSet.html +3 -3
  50. package/docs/classes/KyselyQueryDriver.html +30 -30
  51. package/docs/classes/MissingSerializersDefinition.html +12 -0
  52. package/docs/classes/NonLoadedAssociation.html +3 -3
  53. package/docs/classes/NotNullViolation.html +3 -3
  54. package/docs/classes/ObjectSerializerBuilder.html +8 -9
  55. package/docs/classes/PostgresQueryDriver.html +31 -31
  56. package/docs/classes/Query.html +53 -53
  57. package/docs/classes/QueryDriverBase.html +29 -29
  58. package/docs/classes/Range.html +2 -2
  59. package/docs/classes/RecordNotFound.html +3 -3
  60. package/docs/classes/ValidationError.html +3 -3
  61. package/docs/functions/DreamSerializer.html +1 -1
  62. package/docs/functions/ObjectSerializer.html +1 -1
  63. package/docs/functions/ReplicaSafe.html +1 -1
  64. package/docs/functions/STI.html +1 -1
  65. package/docs/functions/SoftDelete.html +1 -1
  66. package/docs/functions/camelize.html +1 -1
  67. package/docs/functions/capitalize.html +1 -1
  68. package/docs/functions/cloneDeepSafe.html +1 -1
  69. package/docs/functions/closeAllDbConnections.html +1 -1
  70. package/docs/functions/compact.html +1 -1
  71. package/docs/functions/dreamDbConnections.html +1 -1
  72. package/docs/functions/dreamPath.html +1 -1
  73. package/docs/functions/expandStiClasses.html +1 -1
  74. package/docs/functions/generateDream.html +1 -1
  75. package/docs/functions/globalClassNameFromFullyQualifiedModelName.html +1 -1
  76. package/docs/functions/groupBy.html +1 -1
  77. package/docs/functions/hyphenize.html +1 -1
  78. package/docs/functions/inferSerializerFromDreamOrViewModel.html +1 -1
  79. package/docs/functions/inferSerializersFromDreamClassOrViewModelClass.html +1 -1
  80. package/docs/functions/intersection.html +1 -1
  81. package/docs/functions/isDreamSerializer.html +1 -1
  82. package/docs/functions/isEmpty.html +1 -1
  83. package/docs/functions/loadRepl.html +1 -1
  84. package/docs/functions/lookupClassByGlobalName.html +1 -1
  85. package/docs/functions/normalizeUnicode.html +1 -1
  86. package/docs/functions/pascalize.html +1 -1
  87. package/docs/functions/pgErrorType.html +1 -1
  88. package/docs/functions/range-1.html +1 -1
  89. package/docs/functions/relativeDreamPath.html +1 -1
  90. package/docs/functions/round.html +1 -1
  91. package/docs/functions/serializerNameFromFullyQualifiedModelName.html +1 -1
  92. package/docs/functions/sharedPathPrefix.html +1 -1
  93. package/docs/functions/snakeify.html +1 -1
  94. package/docs/functions/sort.html +1 -1
  95. package/docs/functions/sortBy.html +1 -1
  96. package/docs/functions/sortObjectByKey.html +1 -1
  97. package/docs/functions/sortObjectByValue.html +1 -1
  98. package/docs/functions/standardizeFullyQualifiedModelName.html +1 -1
  99. package/docs/functions/uncapitalize.html +1 -1
  100. package/docs/functions/uniq.html +1 -1
  101. package/docs/functions/untypedDb.html +1 -1
  102. package/docs/functions/validateColumn.html +1 -1
  103. package/docs/functions/validateTable.html +1 -1
  104. package/docs/interfaces/BelongsToStatement.html +2 -2
  105. package/docs/interfaces/DecoratorContext.html +2 -2
  106. package/docs/interfaces/DreamAppInitOptions.html +2 -2
  107. package/docs/interfaces/DreamAppOpts.html +2 -2
  108. package/docs/interfaces/EncryptOptions.html +2 -2
  109. package/docs/interfaces/InternalAnyTypedSerializerRendersMany.html +2 -2
  110. package/docs/interfaces/InternalAnyTypedSerializerRendersOne.html +2 -2
  111. package/docs/interfaces/OpenapiDescription.html +2 -2
  112. package/docs/interfaces/OpenapiSchemaProperties.html +1 -1
  113. package/docs/interfaces/OpenapiSchemaPropertiesShorthand.html +1 -1
  114. package/docs/interfaces/OpenapiTypeFieldObject.html +1 -1
  115. package/docs/interfaces/SerializerRendererOpts.html +2 -2
  116. package/docs/modules.html +1 -1
  117. package/docs/types/Camelized.html +1 -1
  118. package/docs/types/CommonOpenapiSchemaObjectFields.html +1 -1
  119. package/docs/types/DateTime.html +1 -1
  120. package/docs/types/DbConnectionType.html +1 -1
  121. package/docs/types/DbTypes.html +1 -1
  122. package/docs/types/DreamAppAllowedPackageManagersEnum.html +1 -1
  123. package/docs/types/DreamAssociationMetadata.html +1 -1
  124. package/docs/types/DreamAttributes.html +1 -1
  125. package/docs/types/DreamClassAssociationAndStatement.html +1 -1
  126. package/docs/types/DreamClassColumn.html +1 -1
  127. package/docs/types/DreamColumn.html +1 -1
  128. package/docs/types/DreamColumnNames.html +1 -1
  129. package/docs/types/DreamLogLevel.html +1 -1
  130. package/docs/types/DreamLogger.html +1 -1
  131. package/docs/types/DreamModelSerializerType.html +1 -1
  132. package/docs/types/DreamOrViewModelClassSerializerKey.html +1 -1
  133. package/docs/types/DreamOrViewModelSerializerKey.html +1 -1
  134. package/docs/types/DreamParamSafeAttributes.html +1 -1
  135. package/docs/types/DreamParamSafeColumnNames.html +1 -1
  136. package/docs/types/DreamSerializable.html +1 -1
  137. package/docs/types/DreamSerializableArray.html +1 -1
  138. package/docs/types/DreamSerializerKey.html +1 -1
  139. package/docs/types/DreamSerializers.html +1 -1
  140. package/docs/types/DreamVirtualColumns.html +1 -1
  141. package/docs/types/EncryptAlgorithm.html +1 -1
  142. package/docs/types/HasManyStatement.html +1 -1
  143. package/docs/types/HasOneStatement.html +1 -1
  144. package/docs/types/Hyphenized.html +1 -1
  145. package/docs/types/OpenapiAllTypes.html +1 -1
  146. package/docs/types/OpenapiFormats.html +1 -1
  147. package/docs/types/OpenapiNumberFormats.html +1 -1
  148. package/docs/types/OpenapiPrimitiveBaseTypes.html +1 -1
  149. package/docs/types/OpenapiPrimitiveTypes.html +1 -1
  150. package/docs/types/OpenapiSchemaArray.html +1 -1
  151. package/docs/types/OpenapiSchemaArrayShorthand.html +1 -1
  152. package/docs/types/OpenapiSchemaBase.html +1 -1
  153. package/docs/types/OpenapiSchemaBody.html +1 -1
  154. package/docs/types/OpenapiSchemaBodyShorthand.html +1 -1
  155. package/docs/types/OpenapiSchemaCommonFields.html +1 -1
  156. package/docs/types/OpenapiSchemaExpressionAllOf.html +1 -1
  157. package/docs/types/OpenapiSchemaExpressionAnyOf.html +1 -1
  158. package/docs/types/OpenapiSchemaExpressionOneOf.html +1 -1
  159. package/docs/types/OpenapiSchemaExpressionRef.html +1 -1
  160. package/docs/types/OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  161. package/docs/types/OpenapiSchemaInteger.html +1 -1
  162. package/docs/types/OpenapiSchemaNull.html +1 -1
  163. package/docs/types/OpenapiSchemaNumber.html +1 -1
  164. package/docs/types/OpenapiSchemaObject.html +1 -1
  165. package/docs/types/OpenapiSchemaObjectAllOf.html +1 -1
  166. package/docs/types/OpenapiSchemaObjectAllOfShorthand.html +1 -1
  167. package/docs/types/OpenapiSchemaObjectAnyOf.html +1 -1
  168. package/docs/types/OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  169. package/docs/types/OpenapiSchemaObjectBase.html +1 -1
  170. package/docs/types/OpenapiSchemaObjectBaseShorthand.html +1 -1
  171. package/docs/types/OpenapiSchemaObjectOneOf.html +1 -1
  172. package/docs/types/OpenapiSchemaObjectOneOfShorthand.html +1 -1
  173. package/docs/types/OpenapiSchemaObjectShorthand.html +1 -1
  174. package/docs/types/OpenapiSchemaPrimitiveGeneric.html +1 -1
  175. package/docs/types/OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  176. package/docs/types/OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  177. package/docs/types/OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  178. package/docs/types/OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  179. package/docs/types/OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  180. package/docs/types/OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  181. package/docs/types/OpenapiSchemaString.html +1 -1
  182. package/docs/types/OpenapiShorthandAllTypes.html +1 -1
  183. package/docs/types/OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  184. package/docs/types/OpenapiShorthandPrimitiveTypes.html +1 -1
  185. package/docs/types/OpenapiTypeField.html +1 -1
  186. package/docs/types/Pascalized.html +1 -1
  187. package/docs/types/RoundingPrecision.html +1 -1
  188. package/docs/types/SerializerCasing.html +1 -1
  189. package/docs/types/SimpleObjectSerializerType.html +1 -1
  190. package/docs/types/Snakeified.html +1 -1
  191. package/docs/types/UpdateableAssociationProperties.html +1 -1
  192. package/docs/types/UpdateableProperties.html +1 -1
  193. package/docs/types/ValidationType.html +1 -1
  194. package/docs/types/ViewModel.html +1 -1
  195. package/docs/types/ViewModelClass.html +1 -1
  196. package/docs/types/WhereStatementForDream.html +1 -1
  197. package/docs/types/WhereStatementForDreamClass.html +1 -1
  198. package/docs/variables/DateTime-1.html +1 -1
  199. package/docs/variables/DreamAppAllowedPackageManagersEnumValues.html +1 -1
  200. package/docs/variables/DreamConst.html +1 -1
  201. package/docs/variables/TRIGRAM_OPERATORS.html +1 -1
  202. package/docs/variables/openapiPrimitiveTypes-1.html +1 -1
  203. package/docs/variables/openapiShorthandPrimitiveTypes-1.html +1 -1
  204. package/docs/variables/ops.html +1 -1
  205. package/docs/variables/primaryKeyTypes.html +1 -1
  206. package/package.json +2 -2
  207. package/dist/cjs/src/helpers/sanitizeString.js +0 -49
  208. package/dist/esm/src/helpers/sanitizeString.js +0 -46
  209. package/dist/types/src/helpers/sanitizeString.d.ts +0 -2
  210. package/docs/functions/sanitizeString.html +0 -1
@@ -2072,15 +2072,6 @@ class Dream {
2072
2072
  get isDirty() {
2073
2073
  return !!Object.keys(this.dirtyAttributes()).length;
2074
2074
  }
2075
- /**
2076
- * Returns true. This is useful for identifying
2077
- * dream instances from other objects
2078
- *
2079
- * @returns true
2080
- */
2081
- get isDreamInstance() {
2082
- return true;
2083
- }
2084
2075
  /**
2085
2076
  * Runs validation checks against all validations
2086
2077
  * declared using the Validate and Validates decorators,
@@ -2947,7 +2938,7 @@ class Dream {
2947
2938
  * @returns A boolean
2948
2939
  */
2949
2940
  equals(other) {
2950
- if (!other?.isDreamInstance)
2941
+ if (!(other instanceof Dream))
2951
2942
  return false;
2952
2943
  return this.comparisonKey === other.comparisonKey;
2953
2944
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = areEqual;
4
+ const Dream_js_1 = require("../Dream.js");
4
5
  const CalendarDate_js_1 = require("./CalendarDate.js");
5
6
  const DateTime_js_1 = require("./DateTime.js");
6
7
  function areEqual(a, b) {
@@ -23,7 +24,7 @@ function areEqualOrUndefined(a, b) {
23
24
  return b instanceof CalendarDate_js_1.default && a.equals(b);
24
25
  if (Array.isArray(a))
25
26
  return Array.isArray(b) && a.length === b.length && !a.find((value, index) => !areEqual(value, b[index]));
26
- if (a?.isDreamInstance)
27
+ if (a instanceof Dream_js_1.default)
27
28
  return a.equals(b);
28
29
  return undefined;
29
30
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeUnsupportedByClone = void 0;
4
4
  exports.default = cloneDeepSafe;
5
+ const Dream_js_1 = require("../Dream.js");
5
6
  const ops_statement_js_1 = require("../ops/ops-statement.js");
6
7
  const CalendarDate_js_1 = require("./CalendarDate.js");
7
8
  const DateTime_js_1 = require("./DateTime.js");
@@ -35,7 +36,7 @@ function cloneDeepSafe(original, unsupportedTypeCloneFunction) {
35
36
  return original;
36
37
  if (original instanceof ops_statement_js_1.default)
37
38
  return original;
38
- if (original?.isDreamInstance)
39
+ if (original instanceof Dream_js_1.default)
39
40
  return original['clone']();
40
41
  if (original?.isDreamQuery)
41
42
  return original.clone();
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = comparisonKey;
4
+ const Dream_js_1 = require("../Dream.js");
4
5
  function comparisonKey(val, toKey = undefined) {
5
- return val?.isDreamInstance
6
- ? val.comparisonKey
7
- : toKey
8
- ? toKey(val)
9
- : val;
6
+ return val instanceof Dream_js_1.default ? val.comparisonKey : toKey ? toKey(val) : val;
10
7
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = stringCase;
4
+ const Dream_js_1 = require("../Dream.js");
4
5
  const CalendarDate_js_1 = require("./CalendarDate.js");
5
6
  const DateTime_js_1 = require("./DateTime.js");
6
7
  const isObject_js_1 = require("./isObject.js");
@@ -23,7 +24,7 @@ function recursiveStringCase(target, stringCaser) {
23
24
  return target;
24
25
  if (target instanceof CalendarDate_js_1.default)
25
26
  return target;
26
- if (target?.isDreamInstance)
27
+ if (target instanceof Dream_js_1.default)
27
28
  return target;
28
29
  return Object.keys(target).reduce((stringCasedObject, targetKey) => {
29
30
  stringCasedObject[stringCaser(targetKey)] = recursiveStringCase(target[targetKey], stringCaser);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.intersection = exports.hyphenize = exports.groupBy = exports.globalClassNameFromFullyQualifiedModelName = exports.Env = exports.DreamLogos = exports.DateTime = exports.compact = exports.cloneDeepSafe = exports.generateDream = exports.capitalize = exports.camelize = exports.CalendarDate = exports.Benchmark = exports.ValidationError = exports.RecordNotFound = exports.GlobalNameNotSet = exports.NotNullViolation = exports.DataTypeColumnTypeMismatch = exports.CheckConstraintViolation = exports.CreateOrFindByFailedToCreateAndFind = exports.NonLoadedAssociation = exports.Encrypt = exports.PostgresQueryDriver = exports.KyselyQueryDriver = exports.QueryDriverBase = exports.Query = exports.DreamTransaction = exports.openapiShorthandPrimitiveTypes = exports.openapiPrimitiveTypes = exports.DreamConst = exports.Dream = exports.DreamAppAllowedPackageManagersEnumValues = exports.DreamApp = exports.lookupClassByGlobalName = exports.DreamImporter = exports.Decorators = exports.STI = exports.SoftDelete = exports.ReplicaSafe = exports.validateTable = exports.validateColumn = exports.DreamMigrationHelpers = exports.untypedDb = exports.pgErrorType = exports.dreamDbConnections = exports.closeAllDbConnections = exports.DreamCLI = exports.CliFileWriter = exports.DreamBin = void 0;
4
- exports.ObjectSerializerBuilder = exports.DreamSerializerBuilder = exports.ObjectSerializer = exports.DreamSerializer = exports.serializerNameFromFullyQualifiedModelName = exports.isDreamSerializer = exports.inferSerializersFromDreamClassOrViewModelClass = exports.inferSerializerFromDreamOrViewModel = exports.ops = exports.uniq = exports.uncapitalize = exports.expandStiClasses = exports.standardizeFullyQualifiedModelName = exports.sortObjectByValue = exports.sortObjectByKey = exports.sortBy = exports.sort = exports.snakeify = exports.sanitizeString = exports.round = exports.range = exports.Range = exports.sharedPathPrefix = exports.relativeDreamPath = exports.dreamPath = exports.pascalize = exports.normalizeUnicode = exports.loadRepl = exports.isEmpty = void 0;
3
+ exports.hyphenize = exports.groupBy = exports.globalClassNameFromFullyQualifiedModelName = exports.Env = exports.DreamLogos = exports.DateTime = exports.compact = exports.cloneDeepSafe = exports.generateDream = exports.capitalize = exports.camelize = exports.CalendarDate = exports.Benchmark = exports.ValidationError = exports.MissingSerializersDefinition = exports.RecordNotFound = exports.GlobalNameNotSet = exports.NotNullViolation = exports.DataTypeColumnTypeMismatch = exports.CheckConstraintViolation = exports.CreateOrFindByFailedToCreateAndFind = exports.NonLoadedAssociation = exports.Encrypt = exports.PostgresQueryDriver = exports.KyselyQueryDriver = exports.QueryDriverBase = exports.Query = exports.DreamTransaction = exports.openapiShorthandPrimitiveTypes = exports.openapiPrimitiveTypes = exports.DreamConst = exports.Dream = exports.DreamAppAllowedPackageManagersEnumValues = exports.DreamApp = exports.lookupClassByGlobalName = exports.DreamImporter = exports.Decorators = exports.STI = exports.SoftDelete = exports.ReplicaSafe = exports.validateTable = exports.validateColumn = exports.DreamMigrationHelpers = exports.untypedDb = exports.pgErrorType = exports.dreamDbConnections = exports.closeAllDbConnections = exports.DreamCLI = exports.CliFileWriter = exports.DreamBin = void 0;
4
+ exports.ObjectSerializerBuilder = exports.DreamSerializerBuilder = exports.ObjectSerializer = exports.DreamSerializer = exports.serializerNameFromFullyQualifiedModelName = exports.isDreamSerializer = exports.inferSerializersFromDreamClassOrViewModelClass = exports.inferSerializerFromDreamOrViewModel = exports.ops = exports.uniq = exports.uncapitalize = exports.expandStiClasses = exports.standardizeFullyQualifiedModelName = exports.sortObjectByValue = exports.sortObjectByKey = exports.sortBy = exports.sort = exports.snakeify = exports.round = exports.range = exports.Range = exports.sharedPathPrefix = exports.relativeDreamPath = exports.dreamPath = exports.pascalize = exports.normalizeUnicode = exports.loadRepl = exports.isEmpty = exports.intersection = void 0;
5
5
  var index_js_1 = require("./bin/index.js");
6
6
  Object.defineProperty(exports, "DreamBin", { enumerable: true, get: function () { return index_js_1.default; } });
7
7
  var CliFileWriter_js_1 = require("./cli/CliFileWriter.js");
@@ -68,6 +68,8 @@ var GlobalNameNotSet_js_1 = require("./errors/dream-app/GlobalNameNotSet.js");
68
68
  Object.defineProperty(exports, "GlobalNameNotSet", { enumerable: true, get: function () { return GlobalNameNotSet_js_1.default; } });
69
69
  var RecordNotFound_js_1 = require("./errors/RecordNotFound.js");
70
70
  Object.defineProperty(exports, "RecordNotFound", { enumerable: true, get: function () { return RecordNotFound_js_1.default; } });
71
+ var MissingSerializersDefinition_js_1 = require("./errors/serializers/MissingSerializersDefinition.js");
72
+ Object.defineProperty(exports, "MissingSerializersDefinition", { enumerable: true, get: function () { return MissingSerializersDefinition_js_1.default; } });
71
73
  var ValidationError_js_1 = require("./errors/ValidationError.js");
72
74
  Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return ValidationError_js_1.default; } });
73
75
  var benchmark_js_1 = require("./helpers/benchmark.js");
@@ -117,8 +119,6 @@ Object.defineProperty(exports, "Range", { enumerable: true, get: function () { r
117
119
  Object.defineProperty(exports, "range", { enumerable: true, get: function () { return range_js_1.default; } });
118
120
  var round_js_1 = require("./helpers/round.js");
119
121
  Object.defineProperty(exports, "round", { enumerable: true, get: function () { return round_js_1.default; } });
120
- var sanitizeString_js_1 = require("./helpers/sanitizeString.js");
121
- Object.defineProperty(exports, "sanitizeString", { enumerable: true, get: function () { return sanitizeString_js_1.default; } });
122
122
  var snakeify_js_1 = require("./helpers/snakeify.js");
123
123
  Object.defineProperty(exports, "snakeify", { enumerable: true, get: function () { return snakeify_js_1.default; } });
124
124
  var sort_js_1 = require("./helpers/sort.js");
@@ -5,7 +5,6 @@ const CalendarDate_js_1 = require("../helpers/CalendarDate.js");
5
5
  const compact_js_1 = require("../helpers/compact.js");
6
6
  const DateTime_js_1 = require("../helpers/DateTime.js");
7
7
  const round_js_1 = require("../helpers/round.js");
8
- const sanitizeString_js_1 = require("../helpers/sanitizeString.js");
9
8
  const snakeify_js_1 = require("../helpers/snakeify.js");
10
9
  const DreamSerializerBuilder_js_1 = require("./builders/DreamSerializerBuilder.js");
11
10
  const ObjectSerializerBuilder_js_1 = require("./builders/ObjectSerializerBuilder.js");
@@ -43,9 +42,7 @@ class SerializerRenderer {
43
42
  case 'attribute': {
44
43
  const outputAttributeName = this.setCase(attribute.options?.as ?? attribute.name);
45
44
  const value = data[attribute.name] ?? attribute.options?.default;
46
- accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(attribute.options?.sanitize && typeof value === 'string'
47
- ? (0, sanitizeString_js_1.default)(value, attribute.options.sanitize)
48
- : value, attribute.options, this.passthroughData, this.renderOpts);
45
+ accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(value, attribute.options, this.passthroughData, this.renderOpts);
49
46
  return accumulator;
50
47
  }
51
48
  /////////////////////
@@ -58,9 +55,7 @@ class SerializerRenderer {
58
55
  const outputAttributeName = this.setCase(attribute.options?.as ?? attribute.name);
59
56
  const target = data[attribute.targetName];
60
57
  const value = target?.[attribute.name] ?? attribute.options?.default;
61
- accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(attribute.options?.sanitize && typeof value === 'string'
62
- ? (0, sanitizeString_js_1.default)(value, attribute.options.sanitize)
63
- : value, attribute.options, this.passthroughData, this.renderOpts);
58
+ accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(value, attribute.options, this.passthroughData, this.renderOpts);
64
59
  return accumulator;
65
60
  }
66
61
  //////////////////////////////
@@ -6,9 +6,6 @@ class DreamSerializerBuilder {
6
6
  data;
7
7
  passthroughData;
8
8
  attributes = [];
9
- get isSerializer() {
10
- return true;
11
- }
12
9
  constructor($typeForOpenapi, data, passthroughData = {}) {
13
10
  this.$typeForOpenapi = $typeForOpenapi;
14
11
  this.data = data;
@@ -5,9 +5,6 @@ class ObjectSerializerBuilder {
5
5
  data;
6
6
  passthroughData;
7
7
  attributes = [];
8
- get isSerializer() {
9
- return true;
10
- }
11
8
  constructor(data, passthroughData = {}) {
12
9
  this.data = data;
13
10
  this.passthroughData = passthroughData;
@@ -1,17 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = isDreamSerializer;
4
+ const Dream_js_1 = require("../../Dream.js");
5
+ const DreamSerializerBuilder_js_1 = require("../builders/DreamSerializerBuilder.js");
6
+ const ObjectSerializerBuilder_js_1 = require("../builders/ObjectSerializerBuilder.js");
4
7
  function isDreamSerializer(dreamOrSerializerClass) {
5
8
  if (!dreamOrSerializerClass)
6
9
  return false;
7
10
  const asDream = dreamOrSerializerClass;
8
- if (asDream.isDreamInstance)
11
+ if (asDream instanceof Dream_js_1.default)
9
12
  return false;
10
13
  if (typeof dreamOrSerializerClass !== 'function')
11
14
  return false;
12
15
  try {
13
16
  const serializer = dreamOrSerializerClass(undefined, undefined);
14
- return !!serializer?.isSerializer;
17
+ return serializer instanceof DreamSerializerBuilder_js_1.default || serializer instanceof ObjectSerializerBuilder_js_1.default;
15
18
  }
16
19
  catch {
17
20
  return false;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serializerForAssociatedClass = serializerForAssociatedClass;
4
+ const Dream_js_1 = require("../../Dream.js");
4
5
  const inferSerializerFromDreamOrViewModel_js_1 = require("./inferSerializerFromDreamOrViewModel.js");
5
6
  /**
6
7
  * Only used when flatten: true, and the associated model is null, in which case,
@@ -10,7 +11,7 @@ const inferSerializerFromDreamOrViewModel_js_1 = require("./inferSerializerFromD
10
11
  function serializerForAssociatedClass(object, associationName, options) {
11
12
  if (options.serializer)
12
13
  return options.serializer;
13
- if (!object.isDreamInstance)
14
+ if (!(object instanceof Dream_js_1.default))
14
15
  return null;
15
16
  const dream = object;
16
17
  const association = dream['getAssociationMetadata'](associationName);
@@ -2070,15 +2070,6 @@ export default class Dream {
2070
2070
  get isDirty() {
2071
2071
  return !!Object.keys(this.dirtyAttributes()).length;
2072
2072
  }
2073
- /**
2074
- * Returns true. This is useful for identifying
2075
- * dream instances from other objects
2076
- *
2077
- * @returns true
2078
- */
2079
- get isDreamInstance() {
2080
- return true;
2081
- }
2082
2073
  /**
2083
2074
  * Runs validation checks against all validations
2084
2075
  * declared using the Validate and Validates decorators,
@@ -2945,7 +2936,7 @@ export default class Dream {
2945
2936
  * @returns A boolean
2946
2937
  */
2947
2938
  equals(other) {
2948
- if (!other?.isDreamInstance)
2939
+ if (!(other instanceof Dream))
2949
2940
  return false;
2950
2941
  return this.comparisonKey === other.comparisonKey;
2951
2942
  }
@@ -1,3 +1,4 @@
1
+ import Dream from '../Dream.js';
1
2
  import CalendarDate from './CalendarDate.js';
2
3
  import { DateTime } from './DateTime.js';
3
4
  export default function areEqual(a, b) {
@@ -20,7 +21,7 @@ function areEqualOrUndefined(a, b) {
20
21
  return b instanceof CalendarDate && a.equals(b);
21
22
  if (Array.isArray(a))
22
23
  return Array.isArray(b) && a.length === b.length && !a.find((value, index) => !areEqual(value, b[index]));
23
- if (a?.isDreamInstance)
24
+ if (a instanceof Dream)
24
25
  return a.equals(b);
25
26
  return undefined;
26
27
  }
@@ -1,3 +1,4 @@
1
+ import Dream from '../Dream.js';
1
2
  import OpsStatement from '../ops/ops-statement.js';
2
3
  import CalendarDate from './CalendarDate.js';
3
4
  import { DateTime } from './DateTime.js';
@@ -31,7 +32,7 @@ export default function cloneDeepSafe(original, unsupportedTypeCloneFunction) {
31
32
  return original;
32
33
  if (original instanceof OpsStatement)
33
34
  return original;
34
- if (original?.isDreamInstance)
35
+ if (original instanceof Dream)
35
36
  return original['clone']();
36
37
  if (original?.isDreamQuery)
37
38
  return original.clone();
@@ -1,7 +1,4 @@
1
+ import Dream from '../Dream.js';
1
2
  export default function comparisonKey(val, toKey = undefined) {
2
- return val?.isDreamInstance
3
- ? val.comparisonKey
4
- : toKey
5
- ? toKey(val)
6
- : val;
3
+ return val instanceof Dream ? val.comparisonKey : toKey ? toKey(val) : val;
7
4
  }
@@ -1,3 +1,4 @@
1
+ import Dream from '../Dream.js';
1
2
  import CalendarDate from './CalendarDate.js';
2
3
  import { DateTime } from './DateTime.js';
3
4
  import isObject from './isObject.js';
@@ -20,7 +21,7 @@ function recursiveStringCase(target, stringCaser) {
20
21
  return target;
21
22
  if (target instanceof CalendarDate)
22
23
  return target;
23
- if (target?.isDreamInstance)
24
+ if (target instanceof Dream)
24
25
  return target;
25
26
  return Object.keys(target).reduce((stringCasedObject, targetKey) => {
26
27
  stringCasedObject[stringCaser(targetKey)] = recursiveStringCase(target[targetKey], stringCaser);
@@ -29,6 +29,7 @@ export { default as DataTypeColumnTypeMismatch } from './errors/db/DataTypeColum
29
29
  export { default as NotNullViolation } from './errors/db/NotNullViolation.js';
30
30
  export { default as GlobalNameNotSet } from './errors/dream-app/GlobalNameNotSet.js';
31
31
  export { default as RecordNotFound } from './errors/RecordNotFound.js';
32
+ export { default as MissingSerializersDefinition } from './errors/serializers/MissingSerializersDefinition.js';
32
33
  export { default as ValidationError } from './errors/ValidationError.js';
33
34
  export { default as Benchmark } from './helpers/benchmark.js';
34
35
  export { default as CalendarDate } from './helpers/CalendarDate.js';
@@ -53,7 +54,6 @@ export { default as relativeDreamPath } from './helpers/path/relativeDreamPath.j
53
54
  export { default as sharedPathPrefix } from './helpers/path/sharedPathPrefix.js';
54
55
  export { Range, default as range } from './helpers/range.js';
55
56
  export { default as round } from './helpers/round.js';
56
- export { default as sanitizeString } from './helpers/sanitizeString.js';
57
57
  export { default as snakeify } from './helpers/snakeify.js';
58
58
  export { default as sort } from './helpers/sort.js';
59
59
  export { default as sortBy } from './helpers/sortBy.js';
@@ -3,7 +3,6 @@ import CalendarDate from '../helpers/CalendarDate.js';
3
3
  import compact from '../helpers/compact.js';
4
4
  import { DateTime } from '../helpers/DateTime.js';
5
5
  import round from '../helpers/round.js';
6
- import sanitizeString from '../helpers/sanitizeString.js';
7
6
  import snakeify from '../helpers/snakeify.js';
8
7
  import DreamSerializerBuilder from './builders/DreamSerializerBuilder.js';
9
8
  import ObjectSerializerBuilder from './builders/ObjectSerializerBuilder.js';
@@ -41,9 +40,7 @@ export default class SerializerRenderer {
41
40
  case 'attribute': {
42
41
  const outputAttributeName = this.setCase(attribute.options?.as ?? attribute.name);
43
42
  const value = data[attribute.name] ?? attribute.options?.default;
44
- accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(attribute.options?.sanitize && typeof value === 'string'
45
- ? sanitizeString(value, attribute.options.sanitize)
46
- : value, attribute.options, this.passthroughData, this.renderOpts);
43
+ accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(value, attribute.options, this.passthroughData, this.renderOpts);
47
44
  return accumulator;
48
45
  }
49
46
  /////////////////////
@@ -56,9 +53,7 @@ export default class SerializerRenderer {
56
53
  const outputAttributeName = this.setCase(attribute.options?.as ?? attribute.name);
57
54
  const target = data[attribute.targetName];
58
55
  const value = target?.[attribute.name] ?? attribute.options?.default;
59
- accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(attribute.options?.sanitize && typeof value === 'string'
60
- ? sanitizeString(value, attribute.options.sanitize)
61
- : value, attribute.options, this.passthroughData, this.renderOpts);
56
+ accumulator[outputAttributeName] = applyRenderingOptionsToAttribute(value, attribute.options, this.passthroughData, this.renderOpts);
62
57
  return accumulator;
63
58
  }
64
59
  //////////////////////////////
@@ -4,9 +4,6 @@ export default class DreamSerializerBuilder {
4
4
  data;
5
5
  passthroughData;
6
6
  attributes = [];
7
- get isSerializer() {
8
- return true;
9
- }
10
7
  constructor($typeForOpenapi, data, passthroughData = {}) {
11
8
  this.$typeForOpenapi = $typeForOpenapi;
12
9
  this.data = data;
@@ -3,9 +3,6 @@ export default class ObjectSerializerBuilder {
3
3
  data;
4
4
  passthroughData;
5
5
  attributes = [];
6
- get isSerializer() {
7
- return true;
8
- }
9
6
  constructor(data, passthroughData = {}) {
10
7
  this.data = data;
11
8
  this.passthroughData = passthroughData;
@@ -1,14 +1,17 @@
1
+ import Dream from '../../Dream.js';
2
+ import DreamSerializerBuilder from '../builders/DreamSerializerBuilder.js';
3
+ import ObjectSerializerBuilder from '../builders/ObjectSerializerBuilder.js';
1
4
  export default function isDreamSerializer(dreamOrSerializerClass) {
2
5
  if (!dreamOrSerializerClass)
3
6
  return false;
4
7
  const asDream = dreamOrSerializerClass;
5
- if (asDream.isDreamInstance)
8
+ if (asDream instanceof Dream)
6
9
  return false;
7
10
  if (typeof dreamOrSerializerClass !== 'function')
8
11
  return false;
9
12
  try {
10
13
  const serializer = dreamOrSerializerClass(undefined, undefined);
11
- return !!serializer?.isSerializer;
14
+ return serializer instanceof DreamSerializerBuilder || serializer instanceof ObjectSerializerBuilder;
12
15
  }
13
16
  catch {
14
17
  return false;
@@ -1,3 +1,4 @@
1
+ import Dream from '../../Dream.js';
1
2
  import { inferSerializersFromDreamClassOrViewModelClass } from './inferSerializerFromDreamOrViewModel.js';
2
3
  /**
3
4
  * Only used when flatten: true, and the associated model is null, in which case,
@@ -7,7 +8,7 @@ import { inferSerializersFromDreamClassOrViewModelClass } from './inferSerialize
7
8
  export function serializerForAssociatedClass(object, associationName, options) {
8
9
  if (options.serializer)
9
10
  return options.serializer;
10
- if (!object.isDreamInstance)
11
+ if (!(object instanceof Dream))
11
12
  return null;
12
13
  const dream = object;
13
14
  const association = dream['getAssociationMetadata'](associationName);
@@ -1690,13 +1690,6 @@ export default class Dream {
1690
1690
  * @returns A boolean
1691
1691
  */
1692
1692
  get isDirty(): boolean;
1693
- /**
1694
- * Returns true. This is useful for identifying
1695
- * dream instances from other objects
1696
- *
1697
- * @returns true
1698
- */
1699
- get isDreamInstance(): boolean;
1700
1693
  /**
1701
1694
  * Runs validation checks against all validations
1702
1695
  * declared using the Validate and Validates decorators,
@@ -30,6 +30,7 @@ export { default as DataTypeColumnTypeMismatch } from './errors/db/DataTypeColum
30
30
  export { default as NotNullViolation } from './errors/db/NotNullViolation.js';
31
31
  export { default as GlobalNameNotSet } from './errors/dream-app/GlobalNameNotSet.js';
32
32
  export { default as RecordNotFound } from './errors/RecordNotFound.js';
33
+ export { default as MissingSerializersDefinition } from './errors/serializers/MissingSerializersDefinition.js';
33
34
  export { default as ValidationError } from './errors/ValidationError.js';
34
35
  export { default as Benchmark } from './helpers/benchmark.js';
35
36
  export { default as CalendarDate } from './helpers/CalendarDate.js';
@@ -54,7 +55,6 @@ export { default as relativeDreamPath } from './helpers/path/relativeDreamPath.j
54
55
  export { default as sharedPathPrefix } from './helpers/path/sharedPathPrefix.js';
55
56
  export { Range, default as range } from './helpers/range.js';
56
57
  export { default as round, type RoundingPrecision } from './helpers/round.js';
57
- export { default as sanitizeString } from './helpers/sanitizeString.js';
58
58
  export { default as snakeify } from './helpers/snakeify.js';
59
59
  export { default as sort } from './helpers/sort.js';
60
60
  export { default as sortBy } from './helpers/sortBy.js';
@@ -8,7 +8,6 @@ export default class DreamSerializerBuilder<DataTypeForOpenapi extends typeof Dr
8
8
  protected data: MaybeNullDataType;
9
9
  protected passthroughData: PassthroughDataType;
10
10
  protected attributes: (InternalAnyTypedSerializerAttribute | InternalAnyTypedSerializerDelegatedAttribute | InternalAnyTypedSerializerCustomAttribute | InternalAnyTypedSerializerRendersOne<DataType> | InternalAnyTypedSerializerRendersMany<DataType>)[];
11
- get isSerializer(): boolean;
12
11
  constructor($typeForOpenapi: DataTypeForOpenapi, data: MaybeNullDataType, passthroughData?: PassthroughDataType);
13
12
  /**
14
13
  * Includes an attribute from the data object in the serialized output.
@@ -6,7 +6,6 @@ export default class ObjectSerializerBuilder<MaybeNullDataType extends object |
6
6
  protected data: MaybeNullDataType;
7
7
  protected passthroughData: PassthroughDataType;
8
8
  protected attributes: (InternalAnyTypedSerializerAttribute | InternalAnyTypedSerializerDelegatedAttribute | InternalAnyTypedSerializerCustomAttribute | InternalAnyTypedSerializerRendersOne<DataType> | InternalAnyTypedSerializerRendersMany<DataType>)[];
9
- get isSerializer(): boolean;
10
9
  constructor(data: MaybeNullDataType, passthroughData?: PassthroughDataType);
11
10
  /**
12
11
  * Includes an attribute from the data object in the serialized output.
@@ -5,7 +5,6 @@ import ObjectSerializerBuilder from '../serializer/builders/ObjectSerializerBuil
5
5
  import { DreamAttributeDbTypes, DreamSerializable, DreamSerializableArray, ViewModelClass } from './dream.js';
6
6
  import { DecimalOpenapiTypesIncludingDbTypes, OpenapiDescription, OpenapiSchemaBodyShorthand, OpenapiShorthandPrimitiveTypes } from './openapi.js';
7
7
  export type SerializerCasing = 'camel' | 'snake';
8
- export type AttributeSerializationSanitizationStrategy = 'unicodeString' | 'htmlEntity' | ((val: any) => any);
9
8
  export type DreamsOrSerializersOrViewModels = DreamSerializable | DreamSerializableArray;
10
9
  export interface InternalAnyTypedSerializerAttribute {
11
10
  type: 'attribute';
@@ -49,7 +48,6 @@ export interface InternalAnyTypedSerializerRendersMany<DataType, AttributeName e
49
48
  export type AutomaticSerializerAttributeOptions<DreamInstance extends Dream, AttributeName extends keyof DreamInstance & string> = {
50
49
  as?: string;
51
50
  default?: any;
52
- sanitize?: AttributeSerializationSanitizationStrategy;
53
51
  openapi?: OpenapiDescription;
54
52
  precision?: DreamAttributeDbTypes<DreamInstance>[AttributeName] extends DecimalOpenapiTypesIncludingDbTypes ? RoundingPrecision : never;
55
53
  };
@@ -63,13 +61,11 @@ export type AutomaticSerializerAttributeOptionsForType = {
63
61
  export type SerializerAttributeOptionsForVirtualColumn = {
64
62
  as?: string;
65
63
  default?: any;
66
- sanitize?: AttributeSerializationSanitizationStrategy;
67
64
  openapi?: OpenapiDescription | OpenapiSchemaBodyShorthand | OpenapiShorthandPrimitiveTypes;
68
65
  };
69
66
  export type NonAutomaticSerializerAttributeOptions = {
70
67
  as?: string;
71
68
  default?: any;
72
- sanitize?: AttributeSerializationSanitizationStrategy;
73
69
  openapi: OpenapiSchemaBodyShorthand | OpenapiShorthandPrimitiveTypes;
74
70
  };
75
71
  export type NonAutomaticSerializerAttributeOptionsWithPossibleDecimalRenderOption = NonAutomaticSerializerAttributeOptions & {
@@ -11,7 +11,6 @@ import {
11
11
  } from './openapi.js'
12
12
 
13
13
  export type SerializerCasing = 'camel' | 'snake'
14
- export type AttributeSerializationSanitizationStrategy = 'unicodeString' | 'htmlEntity' | ((val: any) => any)
15
14
  export type DreamsOrSerializersOrViewModels = DreamSerializable | DreamSerializableArray
16
15
 
17
16
  export interface InternalAnyTypedSerializerAttribute<> {
@@ -69,7 +68,6 @@ export type AutomaticSerializerAttributeOptions<
69
68
  > = {
70
69
  as?: string
71
70
  default?: any
72
- sanitize?: AttributeSerializationSanitizationStrategy
73
71
  openapi?: OpenapiDescription
74
72
  precision?: DreamAttributeDbTypes<DreamInstance>[AttributeName] extends DecimalOpenapiTypesIncludingDbTypes
75
73
  ? RoundingPrecision
@@ -87,14 +85,12 @@ export type AutomaticSerializerAttributeOptionsForType = {
87
85
  export type SerializerAttributeOptionsForVirtualColumn = {
88
86
  as?: string
89
87
  default?: any
90
- sanitize?: AttributeSerializationSanitizationStrategy
91
88
  openapi?: OpenapiDescription | OpenapiSchemaBodyShorthand | OpenapiShorthandPrimitiveTypes
92
89
  }
93
90
 
94
91
  export type NonAutomaticSerializerAttributeOptions = {
95
92
  as?: string
96
93
  default?: any
97
- sanitize?: AttributeSerializationSanitizationStrategy
98
94
  openapi: OpenapiSchemaBodyShorthand | OpenapiShorthandPrimitiveTypes
99
95
  }
100
96
 
@@ -1 +1 @@
1
- window.navigationData = "data:application/octet-stream;base64,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"
1
+ window.navigationData = "data:application/octet-stream;base64,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"