@rvoh/dream 2.2.3 → 2.3.0-alpha.2

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 (298) hide show
  1. package/dist/cjs/src/Dream.js +5 -5
  2. package/dist/cjs/src/db/dataTypes.js +1 -0
  3. package/dist/cjs/src/db/index.js +2 -2
  4. package/dist/cjs/src/dream/QueryDriver/Base.js +2 -2
  5. package/dist/cjs/src/dream/QueryDriver/Kysely.js +2 -2
  6. package/dist/cjs/src/dream/QueryDriver/helpers/kysely/checkForNeedToBeRunMigrations.js +2 -2
  7. package/dist/cjs/src/dream/QueryDriver/helpers/kysely/migrationFolderPath.js +6 -1
  8. package/dist/cjs/src/dream/QueryDriver/helpers/kysely/runMigration.js +2 -2
  9. package/dist/cjs/src/dream/internal/saveDream.js +1 -1
  10. package/dist/cjs/src/dream/internal/softDeleteDream.js +1 -1
  11. package/dist/cjs/src/dream-app/helpers/globalModelKeyFromPath.js +5 -2
  12. package/dist/cjs/src/dream-app/helpers/globalSerializerKeyFromPath.js +5 -2
  13. package/dist/cjs/src/dream-app/helpers/normalizeFilePath.js +3 -0
  14. package/dist/cjs/src/dream-app/index.js +3 -3
  15. package/dist/cjs/src/helpers/areEqual.js +2 -2
  16. package/dist/cjs/src/helpers/cli/ASTBuilder.js +2 -2
  17. package/dist/cjs/src/helpers/cloneDeepSafe.js +2 -2
  18. package/dist/cjs/src/helpers/customPgParsers.js +2 -2
  19. package/dist/cjs/src/helpers/loadRepl.js +2 -2
  20. package/dist/cjs/src/helpers/path/PathHelpers.js +27 -0
  21. package/dist/cjs/src/helpers/path/convertToFileURL.js +7 -0
  22. package/dist/cjs/src/helpers/path/windowsSafePath.js +22 -0
  23. package/dist/cjs/src/helpers/sortBy.js +2 -2
  24. package/dist/cjs/src/helpers/sqlAttributes.js +2 -2
  25. package/dist/cjs/src/helpers/stringCasing.js +2 -2
  26. package/dist/cjs/src/package-exports/errors.js +2 -1
  27. package/dist/cjs/src/package-exports/index.js +2 -2
  28. package/dist/cjs/src/package-exports/system.js +1 -0
  29. package/dist/cjs/src/serializer/SerializerRenderer.js +2 -2
  30. package/dist/cjs/src/types/calendardate.js +1 -0
  31. package/dist/cjs/src/types/datetime.js +1 -0
  32. package/dist/cjs/src/utils/datetime/CalendarDate.js +489 -0
  33. package/dist/cjs/src/utils/datetime/DateTime.js +1140 -0
  34. package/dist/cjs/src/utils/datetime/helpers/isoTimeDecimalString.js +8 -0
  35. package/dist/cjs/src/utils/datetime/helpers/microsecondParts.js +16 -0
  36. package/dist/cjs/src/utils/datetime/helpers/replaceISOMicroseconds.js +10 -0
  37. package/dist/esm/src/Dream.js +5 -5
  38. package/dist/esm/src/db/dataTypes.js +1 -0
  39. package/dist/esm/src/db/index.js +2 -2
  40. package/dist/esm/src/dream/QueryDriver/Base.js +2 -2
  41. package/dist/esm/src/dream/QueryDriver/Kysely.js +2 -2
  42. package/dist/esm/src/dream/QueryDriver/helpers/kysely/checkForNeedToBeRunMigrations.js +2 -2
  43. package/dist/esm/src/dream/QueryDriver/helpers/kysely/migrationFolderPath.js +6 -1
  44. package/dist/esm/src/dream/QueryDriver/helpers/kysely/runMigration.js +2 -2
  45. package/dist/esm/src/dream/internal/saveDream.js +1 -1
  46. package/dist/esm/src/dream/internal/softDeleteDream.js +1 -1
  47. package/dist/esm/src/dream-app/helpers/globalModelKeyFromPath.js +5 -2
  48. package/dist/esm/src/dream-app/helpers/globalSerializerKeyFromPath.js +5 -2
  49. package/dist/esm/src/dream-app/helpers/normalizeFilePath.js +3 -0
  50. package/dist/esm/src/dream-app/index.js +3 -3
  51. package/dist/esm/src/helpers/areEqual.js +2 -2
  52. package/dist/esm/src/helpers/cli/ASTBuilder.js +2 -2
  53. package/dist/esm/src/helpers/cloneDeepSafe.js +2 -2
  54. package/dist/esm/src/helpers/customPgParsers.js +2 -2
  55. package/dist/esm/src/helpers/loadRepl.js +2 -2
  56. package/dist/esm/src/helpers/path/PathHelpers.js +27 -0
  57. package/dist/esm/src/helpers/path/convertToFileURL.js +7 -0
  58. package/dist/esm/src/helpers/path/windowsSafePath.js +22 -0
  59. package/dist/esm/src/helpers/sortBy.js +2 -2
  60. package/dist/esm/src/helpers/sqlAttributes.js +2 -2
  61. package/dist/esm/src/helpers/stringCasing.js +2 -2
  62. package/dist/esm/src/package-exports/errors.js +2 -1
  63. package/dist/esm/src/package-exports/index.js +2 -2
  64. package/dist/esm/src/package-exports/system.js +1 -0
  65. package/dist/esm/src/serializer/SerializerRenderer.js +2 -2
  66. package/dist/esm/src/types/calendardate.js +1 -0
  67. package/dist/esm/src/types/datetime.js +1 -0
  68. package/dist/esm/src/utils/datetime/CalendarDate.js +489 -0
  69. package/dist/esm/src/utils/datetime/DateTime.js +1140 -0
  70. package/dist/esm/src/utils/datetime/helpers/isoTimeDecimalString.js +8 -0
  71. package/dist/esm/src/utils/datetime/helpers/microsecondParts.js +16 -0
  72. package/dist/esm/src/utils/datetime/helpers/replaceISOMicroseconds.js +10 -0
  73. package/dist/types/src/Dream.d.ts +1 -1
  74. package/dist/types/src/db/dataTypes.d.ts +2 -2
  75. package/dist/types/src/dream-app/helpers/normalizeFilePath.d.ts +1 -0
  76. package/dist/types/src/helpers/customPgParsers.d.ts +3 -2
  77. package/dist/types/src/helpers/path/PathHelpers.d.ts +21 -0
  78. package/dist/types/src/helpers/path/convertToFileURL.d.ts +1 -0
  79. package/dist/types/src/helpers/path/windowsSafePath.d.ts +20 -0
  80. package/dist/types/src/helpers/range.d.ts +2 -2
  81. package/dist/types/src/helpers/sort.d.ts +2 -2
  82. package/dist/types/src/helpers/sortBy.d.ts +2 -2
  83. package/dist/types/src/package-exports/errors.d.ts +2 -1
  84. package/dist/types/src/package-exports/index.d.ts +2 -2
  85. package/dist/types/src/package-exports/system.d.ts +1 -0
  86. package/dist/types/src/package-exports/types.d.ts +2 -0
  87. package/dist/types/src/types/associations/shared.d.ts +2 -2
  88. package/dist/types/src/types/associations/shared.ts +2 -2
  89. package/dist/types/src/types/calendardate.d.ts +4 -0
  90. package/dist/types/src/types/calendardate.ts +8 -0
  91. package/dist/types/src/types/datetime.d.ts +102 -0
  92. package/dist/types/src/types/datetime.ts +141 -0
  93. package/dist/types/src/types/dream.d.ts +2 -2
  94. package/dist/types/src/types/dream.ts +2 -2
  95. package/dist/types/src/types/moduleDeclarations/luxon.d.ts +5 -6
  96. package/dist/types/src/utils/datetime/CalendarDate.d.ts +375 -0
  97. package/dist/types/src/utils/datetime/DateTime.d.ts +773 -0
  98. package/dist/types/src/utils/datetime/helpers/isoTimeDecimalString.d.ts +4 -0
  99. package/dist/types/src/utils/datetime/helpers/microsecondParts.d.ts +10 -0
  100. package/dist/types/src/utils/datetime/helpers/replaceISOMicroseconds.d.ts +3 -0
  101. package/docs/assets/highlight.css +7 -0
  102. package/docs/assets/navigation.js +1 -1
  103. package/docs/assets/search.js +1 -1
  104. package/docs/classes/db.DreamMigrationHelpers.html +9 -9
  105. package/docs/classes/db.KyselyQueryDriver.html +33 -33
  106. package/docs/classes/db.PostgresQueryDriver.html +34 -34
  107. package/docs/classes/db.QueryDriverBase.html +32 -32
  108. package/docs/classes/errors.CheckConstraintViolation.html +3 -3
  109. package/docs/classes/errors.ColumnOverflow.html +3 -3
  110. package/docs/classes/errors.CreateOrFindByFailedToCreateAndFind.html +3 -3
  111. package/docs/classes/errors.DataIncompatibleWithDatabaseField.html +3 -3
  112. package/docs/classes/errors.DataTypeColumnTypeMismatch.html +3 -3
  113. package/docs/classes/errors.GlobalNameNotSet.html +3 -3
  114. package/docs/classes/errors.InvalidCalendarDate.html +7 -2
  115. package/docs/classes/errors.InvalidDateTime.html +17 -0
  116. package/docs/classes/errors.MissingSerializersDefinition.html +3 -3
  117. package/docs/classes/errors.NonLoadedAssociation.html +3 -3
  118. package/docs/classes/errors.NotNullViolation.html +3 -3
  119. package/docs/classes/errors.RecordNotFound.html +3 -3
  120. package/docs/classes/errors.ValidationError.html +3 -3
  121. package/docs/classes/index.CalendarDate.html +195 -2
  122. package/docs/classes/index.DateTime.html +485 -0
  123. package/docs/classes/index.Decorators.html +19 -19
  124. package/docs/classes/index.Dream.html +121 -121
  125. package/docs/classes/index.DreamApp.html +5 -5
  126. package/docs/classes/index.DreamTransaction.html +2 -2
  127. package/docs/classes/index.Env.html +2 -2
  128. package/docs/classes/index.Query.html +59 -59
  129. package/docs/classes/system.CliFileWriter.html +2 -2
  130. package/docs/classes/system.DreamBin.html +2 -2
  131. package/docs/classes/system.DreamCLI.html +5 -5
  132. package/docs/classes/system.DreamImporter.html +2 -2
  133. package/docs/classes/system.DreamLogos.html +2 -2
  134. package/docs/classes/system.DreamSerializerBuilder.html +8 -8
  135. package/docs/classes/system.ObjectSerializerBuilder.html +8 -8
  136. package/docs/classes/system.PathHelpers.html +13 -0
  137. package/docs/classes/utils.Encrypt.html +2 -2
  138. package/docs/classes/utils.Range.html +2 -2
  139. package/docs/functions/db.closeAllDbConnections.html +1 -1
  140. package/docs/functions/db.dreamDbConnections.html +1 -1
  141. package/docs/functions/db.untypedDb.html +1 -1
  142. package/docs/functions/db.validateColumn.html +1 -1
  143. package/docs/functions/db.validateTable.html +1 -1
  144. package/docs/functions/errors.pgErrorType.html +1 -1
  145. package/docs/functions/index.DreamSerializer.html +1 -1
  146. package/docs/functions/index.ObjectSerializer.html +1 -1
  147. package/docs/functions/index.ReplicaSafe.html +1 -1
  148. package/docs/functions/index.STI.html +1 -1
  149. package/docs/functions/index.SoftDelete.html +1 -1
  150. package/docs/functions/utils.camelize.html +1 -1
  151. package/docs/functions/utils.capitalize.html +1 -1
  152. package/docs/functions/utils.cloneDeepSafe.html +1 -1
  153. package/docs/functions/utils.compact.html +2 -2
  154. package/docs/functions/utils.groupBy.html +1 -1
  155. package/docs/functions/utils.hyphenize.html +1 -1
  156. package/docs/functions/utils.intersection.html +1 -1
  157. package/docs/functions/utils.isEmpty.html +1 -1
  158. package/docs/functions/utils.normalizeUnicode.html +1 -1
  159. package/docs/functions/utils.pascalize.html +1 -1
  160. package/docs/functions/utils.percent.html +1 -1
  161. package/docs/functions/utils.range-1.html +1 -1
  162. package/docs/functions/utils.round.html +1 -1
  163. package/docs/functions/utils.sanitizeString.html +1 -1
  164. package/docs/functions/utils.snakeify.html +1 -1
  165. package/docs/functions/utils.sort.html +1 -1
  166. package/docs/functions/utils.sortBy.html +1 -1
  167. package/docs/functions/utils.sortObjectByKey.html +1 -1
  168. package/docs/functions/utils.sortObjectByValue.html +1 -1
  169. package/docs/functions/utils.uncapitalize.html +1 -1
  170. package/docs/functions/utils.uniq.html +1 -1
  171. package/docs/interfaces/openapi.OpenapiDescription.html +2 -2
  172. package/docs/interfaces/openapi.OpenapiSchemaProperties.html +1 -1
  173. package/docs/interfaces/openapi.OpenapiSchemaPropertiesShorthand.html +1 -1
  174. package/docs/interfaces/openapi.OpenapiTypeFieldObject.html +1 -1
  175. package/docs/interfaces/types.BelongsToStatement.html +2 -2
  176. package/docs/interfaces/types.DecoratorContext.html +2 -2
  177. package/docs/interfaces/types.DreamAppInitOptions.html +2 -2
  178. package/docs/interfaces/types.DreamAppOpts.html +2 -2
  179. package/docs/interfaces/types.DurationObject.html +12 -0
  180. package/docs/interfaces/types.EncryptOptions.html +2 -2
  181. package/docs/interfaces/types.InternalAnyTypedSerializerRendersMany.html +2 -2
  182. package/docs/interfaces/types.InternalAnyTypedSerializerRendersOne.html +2 -2
  183. package/docs/interfaces/types.SerializerRendererOpts.html +2 -2
  184. package/docs/modules/db.html +1 -1
  185. package/docs/modules/errors.html +2 -1
  186. package/docs/modules/index.html +3 -4
  187. package/docs/modules/openapi.html +1 -1
  188. package/docs/modules/system.html +2 -1
  189. package/docs/modules/types.html +6 -2
  190. package/docs/modules/utils.html +1 -1
  191. package/docs/types/openapi.CommonOpenapiSchemaObjectFields.html +1 -1
  192. package/docs/types/openapi.OpenapiAllTypes.html +1 -1
  193. package/docs/types/openapi.OpenapiFormats.html +1 -1
  194. package/docs/types/openapi.OpenapiNumberFormats.html +1 -1
  195. package/docs/types/openapi.OpenapiPrimitiveBaseTypes.html +1 -1
  196. package/docs/types/openapi.OpenapiPrimitiveTypes.html +1 -1
  197. package/docs/types/openapi.OpenapiSchemaArray.html +1 -1
  198. package/docs/types/openapi.OpenapiSchemaArrayShorthand.html +1 -1
  199. package/docs/types/openapi.OpenapiSchemaBase.html +1 -1
  200. package/docs/types/openapi.OpenapiSchemaBody.html +1 -1
  201. package/docs/types/openapi.OpenapiSchemaBodyShorthand.html +1 -1
  202. package/docs/types/openapi.OpenapiSchemaCommonFields.html +1 -1
  203. package/docs/types/openapi.OpenapiSchemaExpressionAllOf.html +1 -1
  204. package/docs/types/openapi.OpenapiSchemaExpressionAnyOf.html +1 -1
  205. package/docs/types/openapi.OpenapiSchemaExpressionOneOf.html +1 -1
  206. package/docs/types/openapi.OpenapiSchemaExpressionRef.html +1 -1
  207. package/docs/types/openapi.OpenapiSchemaExpressionRefSchemaShorthand.html +1 -1
  208. package/docs/types/openapi.OpenapiSchemaInteger.html +1 -1
  209. package/docs/types/openapi.OpenapiSchemaNull.html +1 -1
  210. package/docs/types/openapi.OpenapiSchemaNumber.html +1 -1
  211. package/docs/types/openapi.OpenapiSchemaObject.html +1 -1
  212. package/docs/types/openapi.OpenapiSchemaObjectAllOf.html +1 -1
  213. package/docs/types/openapi.OpenapiSchemaObjectAllOfShorthand.html +1 -1
  214. package/docs/types/openapi.OpenapiSchemaObjectAnyOf.html +1 -1
  215. package/docs/types/openapi.OpenapiSchemaObjectAnyOfShorthand.html +1 -1
  216. package/docs/types/openapi.OpenapiSchemaObjectBase.html +1 -1
  217. package/docs/types/openapi.OpenapiSchemaObjectBaseShorthand.html +1 -1
  218. package/docs/types/openapi.OpenapiSchemaObjectOneOf.html +1 -1
  219. package/docs/types/openapi.OpenapiSchemaObjectOneOfShorthand.html +1 -1
  220. package/docs/types/openapi.OpenapiSchemaObjectShorthand.html +1 -1
  221. package/docs/types/openapi.OpenapiSchemaPrimitiveGeneric.html +1 -1
  222. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAllOf.html +1 -1
  223. package/docs/types/openapi.OpenapiSchemaShorthandExpressionAnyOf.html +1 -1
  224. package/docs/types/openapi.OpenapiSchemaShorthandExpressionOneOf.html +1 -1
  225. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializableRef.html +1 -1
  226. package/docs/types/openapi.OpenapiSchemaShorthandExpressionSerializerRef.html +1 -1
  227. package/docs/types/openapi.OpenapiSchemaShorthandPrimitiveGeneric.html +1 -1
  228. package/docs/types/openapi.OpenapiSchemaString.html +1 -1
  229. package/docs/types/openapi.OpenapiShorthandAllTypes.html +1 -1
  230. package/docs/types/openapi.OpenapiShorthandPrimitiveBaseTypes.html +1 -1
  231. package/docs/types/openapi.OpenapiShorthandPrimitiveTypes.html +1 -1
  232. package/docs/types/openapi.OpenapiTypeField.html +1 -1
  233. package/docs/types/system.DreamAppAllowedPackageManagersEnum.html +1 -1
  234. package/docs/types/types.CalendarDateDurationUnit.html +1 -0
  235. package/docs/types/types.Camelized.html +1 -1
  236. package/docs/types/types.DbConnectionType.html +1 -1
  237. package/docs/types/types.DbTypes.html +1 -1
  238. package/docs/types/types.DreamAssociationMetadata.html +1 -1
  239. package/docs/types/types.DreamAttributes.html +1 -1
  240. package/docs/types/types.DreamClassAssociationAndStatement.html +1 -1
  241. package/docs/types/types.DreamClassColumn.html +1 -1
  242. package/docs/types/types.DreamColumn.html +1 -1
  243. package/docs/types/types.DreamColumnNames.html +1 -1
  244. package/docs/types/types.DreamLogLevel.html +1 -1
  245. package/docs/types/types.DreamLogger.html +1 -1
  246. package/docs/types/types.DreamModelSerializerType.html +1 -1
  247. package/docs/types/types.DreamOrViewModelClassSerializerKey.html +1 -1
  248. package/docs/types/types.DreamOrViewModelSerializerKey.html +1 -1
  249. package/docs/types/types.DreamParamSafeAttributes.html +1 -1
  250. package/docs/types/types.DreamParamSafeColumnNames.html +1 -1
  251. package/docs/types/types.DreamSerializable.html +1 -1
  252. package/docs/types/types.DreamSerializableArray.html +1 -1
  253. package/docs/types/types.DreamSerializerKey.html +1 -1
  254. package/docs/types/types.DreamSerializers.html +1 -1
  255. package/docs/types/types.DreamVirtualColumns.html +1 -1
  256. package/docs/types/types.DurationUnit.html +4 -0
  257. package/docs/types/types.EncryptAlgorithm.html +1 -1
  258. package/docs/types/types.HasManyStatement.html +1 -1
  259. package/docs/types/types.HasOneStatement.html +1 -1
  260. package/docs/types/types.Hyphenized.html +1 -1
  261. package/docs/types/types.Pascalized.html +1 -1
  262. package/docs/types/types.PrimaryKeyType.html +1 -1
  263. package/docs/types/types.RoundingPrecision.html +1 -1
  264. package/docs/types/types.SerializerCasing.html +1 -1
  265. package/docs/types/types.SimpleObjectSerializerType.html +1 -1
  266. package/docs/types/types.Snakeified.html +1 -1
  267. package/docs/types/types.StrictInterface.html +1 -1
  268. package/docs/types/types.UpdateableAssociationProperties.html +1 -1
  269. package/docs/types/types.UpdateableProperties.html +1 -1
  270. package/docs/types/types.ValidationType.html +1 -1
  271. package/docs/types/types.ViewModel.html +1 -1
  272. package/docs/types/types.ViewModelClass.html +1 -1
  273. package/docs/types/types.WeekdayName.html +2 -0
  274. package/docs/types/types.WhereStatementForDream.html +1 -1
  275. package/docs/types/types.WhereStatementForDreamClass.html +1 -1
  276. package/docs/variables/index.DreamConst.html +1 -1
  277. package/docs/variables/index.ops.html +1 -1
  278. package/docs/variables/openapi.openapiPrimitiveTypes-1.html +1 -1
  279. package/docs/variables/openapi.openapiShorthandPrimitiveTypes-1.html +1 -1
  280. package/docs/variables/system.DreamAppAllowedPackageManagersEnumValues.html +1 -1
  281. package/docs/variables/system.primaryKeyTypes.html +1 -1
  282. package/package.json +3 -2
  283. package/dist/cjs/src/helpers/CalendarDate.js +0 -151
  284. package/dist/cjs/src/helpers/DateTime.js +0 -4
  285. package/dist/esm/src/helpers/CalendarDate.js +0 -151
  286. package/dist/esm/src/helpers/DateTime.js +0 -4
  287. package/dist/types/src/helpers/CalendarDate.d.ts +0 -56
  288. package/dist/types/src/helpers/DateTime.d.ts +0 -6
  289. package/dist/types/src/types/luxon/_util.d.ts +0 -20
  290. package/dist/types/src/types/luxon/datetime.d.ts +0 -1759
  291. package/dist/types/src/types/luxon/duration.d.ts +0 -494
  292. package/dist/types/src/types/luxon/info.d.ts +0 -217
  293. package/dist/types/src/types/luxon/interval.d.ts +0 -357
  294. package/dist/types/src/types/luxon/misc.d.ts +0 -67
  295. package/dist/types/src/types/luxon/settings.d.ts +0 -91
  296. package/dist/types/src/types/luxon/zone.d.ts +0 -172
  297. package/docs/types/index.DateTime.html +0 -1
  298. package/docs/variables/index.DateTime-1.html +0 -1
@@ -1,151 +0,0 @@
1
- import { DateTime } from './DateTime.js';
2
- export default class CalendarDate {
3
- luxonDateTime;
4
- constructor(source, month = 1, day = 1) {
5
- if (source instanceof DateTime && source.isValid) {
6
- const isoDate = source.toISODate();
7
- this.luxonDateTime = DateTime.fromISO(isoDate, { zone: 'UTC' });
8
- }
9
- else if (typeof source === 'number') {
10
- try {
11
- this.luxonDateTime = DateTime.utc(source, month, day);
12
- }
13
- catch (error) {
14
- if (error instanceof Error)
15
- throw new InvalidCalendarDate(error);
16
- throw error;
17
- }
18
- }
19
- else {
20
- this.luxonDateTime = CalendarDate.today().toDateTime();
21
- }
22
- }
23
- static fromDateTime(dateTime) {
24
- return new CalendarDate(dateTime);
25
- }
26
- static fromJSDate(javascriptDate, { zone } = {}) {
27
- return new CalendarDate(DateTime.fromJSDate(javascriptDate, zone ? { zone } : undefined));
28
- }
29
- static fromISO(str, { zone } = {}) {
30
- let dateTime;
31
- try {
32
- dateTime = DateTime.fromISO(str, zone ? { zone } : { setZone: true });
33
- }
34
- catch (error) {
35
- if (error instanceof Error)
36
- throw new InvalidCalendarDate(error);
37
- throw error;
38
- }
39
- return new CalendarDate(dateTime);
40
- }
41
- static fromSQL(str) {
42
- let dateTime;
43
- try {
44
- dateTime = DateTime.fromSQL(str, { zone: 'UTC' });
45
- }
46
- catch (error) {
47
- if (error instanceof Error)
48
- throw new InvalidCalendarDate(error);
49
- throw error;
50
- }
51
- return new CalendarDate(dateTime);
52
- }
53
- static fromObject(obj, opts) {
54
- let dateTime;
55
- try {
56
- dateTime = DateTime.fromObject(obj, opts);
57
- }
58
- catch (error) {
59
- if (error instanceof Error)
60
- throw new InvalidCalendarDate(error);
61
- throw error;
62
- }
63
- return new CalendarDate(dateTime);
64
- }
65
- static today({ zone = 'UTC' } = {}) {
66
- return new CalendarDate(DateTime.now().setZone(zone));
67
- }
68
- static tomorrow(options = {}) {
69
- return CalendarDate.today(options).plus({ day: 1 });
70
- }
71
- static yesterday(options = {}) {
72
- return CalendarDate.today(options).minus({ day: 1 });
73
- }
74
- toISO() {
75
- return this.luxonDateTime.toISODate();
76
- }
77
- toSQL() {
78
- return this.luxonDateTime.toSQLDate();
79
- }
80
- toJSON() {
81
- return this.toISO();
82
- }
83
- valueOf() {
84
- return this.luxonDateTime.toMillis();
85
- }
86
- toISODate() {
87
- return this.toISO();
88
- }
89
- toLocaleString(formatOpts, opts) {
90
- return this.luxonDateTime.toLocaleString(formatOpts, opts);
91
- }
92
- toString() {
93
- return this.toISO();
94
- }
95
- toDateTime() {
96
- return this.luxonDateTime;
97
- }
98
- toJSDate() {
99
- return this.luxonDateTime.toJSDate();
100
- }
101
- get year() {
102
- return this.luxonDateTime.year;
103
- }
104
- get month() {
105
- return this.luxonDateTime.month;
106
- }
107
- get day() {
108
- return this.luxonDateTime.day;
109
- }
110
- startOf(period) {
111
- return new CalendarDate(this.luxonDateTime.startOf(period));
112
- }
113
- endOf(period) {
114
- return new CalendarDate(this.luxonDateTime.endOf(period));
115
- }
116
- plus(duration) {
117
- return new CalendarDate(this.luxonDateTime.plus(duration));
118
- }
119
- minus(duration) {
120
- return new CalendarDate(this.luxonDateTime.minus(duration));
121
- }
122
- static max(...calendarDates) {
123
- const dateTimes = calendarDates.map(calendarDate => calendarDate.toDateTime());
124
- return new CalendarDate(DateTime.max(...dateTimes));
125
- }
126
- static min(...calendarDates) {
127
- const dateTimes = calendarDates.map(calendarDate => calendarDate.toDateTime());
128
- return new CalendarDate(DateTime.min(...dateTimes));
129
- }
130
- hasSame(otherCalendarDate, period) {
131
- const otherDateTime = otherCalendarDate.toDateTime();
132
- if (otherDateTime === null)
133
- return false;
134
- return this.luxonDateTime.hasSame(otherDateTime, period);
135
- }
136
- diff(otherCalendarDate, duration) {
137
- const otherDateTime = otherCalendarDate.toDateTime();
138
- return this.luxonDateTime.diff(otherDateTime, duration)[duration];
139
- }
140
- diffNow(duration) {
141
- return Math.ceil(this.luxonDateTime.diffNow(duration)[duration]);
142
- }
143
- equals(otherCalendarDate) {
144
- return this.luxonDateTime.equals(otherCalendarDate.toDateTime());
145
- }
146
- }
147
- export class InvalidCalendarDate extends Error {
148
- constructor(error) {
149
- super((error.message ?? '').replace('DateTime', 'CalendarDate'));
150
- }
151
- }
@@ -1,4 +0,0 @@
1
- import * as luxon from 'luxon';
2
- export const DateTime = luxon.DateTime;
3
- export const Settings = luxon.Settings;
4
- Settings.throwOnInvalid = true;
@@ -1,151 +0,0 @@
1
- import { DateTime } from './DateTime.js';
2
- export default class CalendarDate {
3
- luxonDateTime;
4
- constructor(source, month = 1, day = 1) {
5
- if (source instanceof DateTime && source.isValid) {
6
- const isoDate = source.toISODate();
7
- this.luxonDateTime = DateTime.fromISO(isoDate, { zone: 'UTC' });
8
- }
9
- else if (typeof source === 'number') {
10
- try {
11
- this.luxonDateTime = DateTime.utc(source, month, day);
12
- }
13
- catch (error) {
14
- if (error instanceof Error)
15
- throw new InvalidCalendarDate(error);
16
- throw error;
17
- }
18
- }
19
- else {
20
- this.luxonDateTime = CalendarDate.today().toDateTime();
21
- }
22
- }
23
- static fromDateTime(dateTime) {
24
- return new CalendarDate(dateTime);
25
- }
26
- static fromJSDate(javascriptDate, { zone } = {}) {
27
- return new CalendarDate(DateTime.fromJSDate(javascriptDate, zone ? { zone } : undefined));
28
- }
29
- static fromISO(str, { zone } = {}) {
30
- let dateTime;
31
- try {
32
- dateTime = DateTime.fromISO(str, zone ? { zone } : { setZone: true });
33
- }
34
- catch (error) {
35
- if (error instanceof Error)
36
- throw new InvalidCalendarDate(error);
37
- throw error;
38
- }
39
- return new CalendarDate(dateTime);
40
- }
41
- static fromSQL(str) {
42
- let dateTime;
43
- try {
44
- dateTime = DateTime.fromSQL(str, { zone: 'UTC' });
45
- }
46
- catch (error) {
47
- if (error instanceof Error)
48
- throw new InvalidCalendarDate(error);
49
- throw error;
50
- }
51
- return new CalendarDate(dateTime);
52
- }
53
- static fromObject(obj, opts) {
54
- let dateTime;
55
- try {
56
- dateTime = DateTime.fromObject(obj, opts);
57
- }
58
- catch (error) {
59
- if (error instanceof Error)
60
- throw new InvalidCalendarDate(error);
61
- throw error;
62
- }
63
- return new CalendarDate(dateTime);
64
- }
65
- static today({ zone = 'UTC' } = {}) {
66
- return new CalendarDate(DateTime.now().setZone(zone));
67
- }
68
- static tomorrow(options = {}) {
69
- return CalendarDate.today(options).plus({ day: 1 });
70
- }
71
- static yesterday(options = {}) {
72
- return CalendarDate.today(options).minus({ day: 1 });
73
- }
74
- toISO() {
75
- return this.luxonDateTime.toISODate();
76
- }
77
- toSQL() {
78
- return this.luxonDateTime.toSQLDate();
79
- }
80
- toJSON() {
81
- return this.toISO();
82
- }
83
- valueOf() {
84
- return this.luxonDateTime.toMillis();
85
- }
86
- toISODate() {
87
- return this.toISO();
88
- }
89
- toLocaleString(formatOpts, opts) {
90
- return this.luxonDateTime.toLocaleString(formatOpts, opts);
91
- }
92
- toString() {
93
- return this.toISO();
94
- }
95
- toDateTime() {
96
- return this.luxonDateTime;
97
- }
98
- toJSDate() {
99
- return this.luxonDateTime.toJSDate();
100
- }
101
- get year() {
102
- return this.luxonDateTime.year;
103
- }
104
- get month() {
105
- return this.luxonDateTime.month;
106
- }
107
- get day() {
108
- return this.luxonDateTime.day;
109
- }
110
- startOf(period) {
111
- return new CalendarDate(this.luxonDateTime.startOf(period));
112
- }
113
- endOf(period) {
114
- return new CalendarDate(this.luxonDateTime.endOf(period));
115
- }
116
- plus(duration) {
117
- return new CalendarDate(this.luxonDateTime.plus(duration));
118
- }
119
- minus(duration) {
120
- return new CalendarDate(this.luxonDateTime.minus(duration));
121
- }
122
- static max(...calendarDates) {
123
- const dateTimes = calendarDates.map(calendarDate => calendarDate.toDateTime());
124
- return new CalendarDate(DateTime.max(...dateTimes));
125
- }
126
- static min(...calendarDates) {
127
- const dateTimes = calendarDates.map(calendarDate => calendarDate.toDateTime());
128
- return new CalendarDate(DateTime.min(...dateTimes));
129
- }
130
- hasSame(otherCalendarDate, period) {
131
- const otherDateTime = otherCalendarDate.toDateTime();
132
- if (otherDateTime === null)
133
- return false;
134
- return this.luxonDateTime.hasSame(otherDateTime, period);
135
- }
136
- diff(otherCalendarDate, duration) {
137
- const otherDateTime = otherCalendarDate.toDateTime();
138
- return this.luxonDateTime.diff(otherDateTime, duration)[duration];
139
- }
140
- diffNow(duration) {
141
- return Math.ceil(this.luxonDateTime.diffNow(duration)[duration]);
142
- }
143
- equals(otherCalendarDate) {
144
- return this.luxonDateTime.equals(otherCalendarDate.toDateTime());
145
- }
146
- }
147
- export class InvalidCalendarDate extends Error {
148
- constructor(error) {
149
- super((error.message ?? '').replace('DateTime', 'CalendarDate'));
150
- }
151
- }
@@ -1,4 +0,0 @@
1
- import * as luxon from 'luxon';
2
- export const DateTime = luxon.DateTime;
3
- export const Settings = luxon.Settings;
4
- Settings.throwOnInvalid = true;
@@ -1,56 +0,0 @@
1
- import { DateObjectUnits, DateTimeJSOptions, DateTimeUnit, LocaleOptions } from '../types/luxon/datetime.js';
2
- import { DurationLikeObject, DurationObjectUnits } from '../types/luxon/duration.js';
3
- import { DateTimeFormatOptions } from '../types/luxon/misc.js';
4
- import { Zone } from '../types/luxon/zone.js';
5
- import { DateTime } from './DateTime.js';
6
- type CalendarDateDurationLike = Pick<DurationLikeObject, 'year' | 'years' | 'quarter' | 'quarters' | 'month' | 'months' | 'week' | 'weeks' | 'day' | 'days'>;
7
- type CalendarDateDurationUnit = keyof Pick<DurationObjectUnits, 'years' | 'quarters' | 'months' | 'weeks' | 'days'>;
8
- type CalendarDateUnit = Extract<DateTimeUnit, 'year' | 'quarter' | 'month' | 'week' | 'day'>;
9
- export default class CalendarDate {
10
- private readonly luxonDateTime;
11
- constructor(source?: DateTime | number | null, month?: number, day?: number);
12
- static fromDateTime(dateTime: DateTime): CalendarDate;
13
- static fromJSDate(javascriptDate: Date, { zone }?: {
14
- zone?: string | Zone;
15
- }): CalendarDate;
16
- static fromISO(str: string, { zone }?: {
17
- zone?: string | Zone;
18
- }): CalendarDate;
19
- static fromSQL(str: string): CalendarDate;
20
- static fromObject(obj: DateObjectUnits, opts?: DateTimeJSOptions): CalendarDate;
21
- static today({ zone }?: {
22
- zone?: string | Zone;
23
- }): CalendarDate;
24
- static tomorrow(options?: {
25
- zone?: string | Zone;
26
- }): CalendarDate;
27
- static yesterday(options?: {
28
- zone?: string | Zone;
29
- }): CalendarDate;
30
- toISO(): string;
31
- toSQL(): string;
32
- toJSON(): string;
33
- valueOf(): number;
34
- toISODate(): string;
35
- toLocaleString(formatOpts?: DateTimeFormatOptions, opts?: LocaleOptions): string;
36
- toString(): string;
37
- toDateTime(): DateTime;
38
- toJSDate(): Date;
39
- get year(): number;
40
- get month(): number;
41
- get day(): number;
42
- startOf(period: CalendarDateUnit): CalendarDate;
43
- endOf(period: CalendarDateUnit): CalendarDate;
44
- plus(duration: CalendarDateDurationLike): CalendarDate;
45
- minus(duration: CalendarDateDurationLike): CalendarDate;
46
- static max(...calendarDates: Array<CalendarDate>): CalendarDate;
47
- static min(...calendarDates: Array<CalendarDate>): CalendarDate;
48
- hasSame(otherCalendarDate: CalendarDate, period: CalendarDateUnit): boolean;
49
- diff(otherCalendarDate: CalendarDate, duration: CalendarDateDurationUnit): number;
50
- diffNow(duration: CalendarDateDurationUnit): number;
51
- equals(otherCalendarDate: CalendarDate): boolean;
52
- }
53
- export declare class InvalidCalendarDate extends Error {
54
- constructor(error: Error);
55
- }
56
- export {};
@@ -1,6 +0,0 @@
1
- import { DateTime as LuxonDateTime } from '../types/luxon/datetime.js';
2
- import { Settings as LuxonSettings } from '../types/luxon/settings.js';
3
- export declare const DateTime: typeof LuxonDateTime;
4
- export type DateTime = LuxonDateTime;
5
- export declare const Settings: typeof LuxonSettings;
6
- export type Settings = LuxonSettings;
@@ -1,20 +0,0 @@
1
- import { TSSettings } from './settings.js'
2
-
3
- export type CanBeInvalid = TSSettings extends { throwOnInvalid: true } ? false : true
4
-
5
- export type DefaultValidity = CanBeInvalid extends true ? boolean : true
6
-
7
- export type IfValid<
8
- ValidType,
9
- InvalidType,
10
- ThisIsValid extends boolean | undefined,
11
- > = ThisIsValid extends true
12
- ? ValidType
13
- : ThisIsValid extends false
14
- ? InvalidType
15
- : CanBeInvalid extends true
16
- ? ValidType | InvalidType
17
- : ValidType
18
-
19
- export type Valid = true
20
- export type Invalid = false