@bgord/tools 1.4.7 → 1.4.9
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.
- package/dist/age-years.vo.d.ts +12 -0
- package/dist/age-years.vo.d.ts.map +1 -0
- package/dist/age-years.vo.js +7 -0
- package/dist/age-years.vo.js.map +1 -0
- package/dist/age.vo.d.ts +29 -0
- package/dist/age.vo.d.ts.map +1 -0
- package/dist/age.vo.js +52 -0
- package/dist/age.vo.js.map +1 -0
- package/dist/api-key.vo.d.ts +8 -0
- package/dist/api-key.vo.d.ts.map +1 -0
- package/dist/api-key.vo.js +8 -0
- package/dist/api-key.vo.js.map +1 -0
- package/dist/basename.vo.d.ts +13 -0
- package/dist/basename.vo.d.ts.map +1 -0
- package/dist/basename.vo.js +23 -0
- package/dist/basename.vo.js.map +1 -0
- package/dist/batch.d.ts +3 -0
- package/dist/batch.d.ts.map +1 -0
- package/dist/batch.js +4 -0
- package/dist/batch.js.map +1 -0
- package/dist/date-calculator.service.d.ts +11 -0
- package/dist/date-calculator.service.d.ts.map +1 -0
- package/dist/date-calculator.service.js +13 -0
- package/dist/date-calculator.service.js.map +1 -0
- package/dist/date-formatter.service.d.ts +10 -0
- package/dist/date-formatter.service.d.ts.map +1 -0
- package/dist/date-formatter.service.js +16 -0
- package/dist/date-formatter.service.js.map +1 -0
- package/dist/date-range.vo.d.ts +22 -0
- package/dist/date-range.vo.d.ts.map +1 -0
- package/dist/date-range.vo.js +36 -0
- package/dist/date-range.vo.js.map +1 -0
- package/dist/day-iso-id.vo.d.ts +10 -0
- package/dist/day-iso-id.vo.d.ts.map +1 -0
- package/dist/day-iso-id.vo.js +13 -0
- package/dist/day-iso-id.vo.js.map +1 -0
- package/dist/day.vo.d.ts +17 -0
- package/dist/day.vo.d.ts.map +1 -0
- package/dist/day.vo.js +44 -0
- package/dist/day.vo.js.map +1 -0
- package/dist/directory-path-absolute.vo.d.ts +13 -0
- package/dist/directory-path-absolute.vo.d.ts.map +1 -0
- package/dist/directory-path-absolute.vo.js +21 -0
- package/dist/directory-path-absolute.vo.js.map +1 -0
- package/dist/directory-path-relative.vo.d.ts +13 -0
- package/dist/directory-path-relative.vo.d.ts.map +1 -0
- package/dist/directory-path-relative.vo.js +18 -0
- package/dist/directory-path-relative.vo.js.map +1 -0
- package/dist/distance-value.vo.d.ts +8 -0
- package/dist/distance-value.vo.d.ts.map +1 -0
- package/dist/distance-value.vo.js +6 -0
- package/dist/distance-value.vo.js.map +1 -0
- package/dist/distance.vo.d.ts +24 -0
- package/dist/distance.vo.d.ts.map +1 -0
- package/dist/distance.vo.js +54 -0
- package/dist/distance.vo.js.map +1 -0
- package/dist/division-factor.vo.d.ts +8 -0
- package/dist/division-factor.vo.d.ts.map +1 -0
- package/dist/division-factor.vo.js +6 -0
- package/dist/division-factor.vo.js.map +1 -0
- package/dist/dll.service.d.ts +30 -0
- package/dist/dll.service.d.ts.map +1 -0
- package/dist/dll.service.js +149 -0
- package/dist/dll.service.js.map +1 -0
- package/dist/duration-ms.vo.d.ts +7 -0
- package/dist/duration-ms.vo.d.ts.map +1 -0
- package/dist/duration-ms.vo.js +6 -0
- package/dist/duration-ms.vo.js.map +1 -0
- package/dist/duration.service.d.ts +38 -0
- package/dist/duration.service.d.ts.map +1 -0
- package/dist/duration.service.js +88 -0
- package/dist/duration.service.js.map +1 -0
- package/dist/email-mask.service.d.ts +5 -0
- package/dist/email-mask.service.d.ts.map +1 -0
- package/dist/email-mask.service.js +13 -0
- package/dist/email-mask.service.js.map +1 -0
- package/dist/email.vo.d.ts +7 -0
- package/dist/email.vo.d.ts.map +1 -0
- package/dist/email.vo.js +5 -0
- package/dist/email.vo.js.map +1 -0
- package/dist/etags.vo.d.ts +24 -0
- package/dist/etags.vo.d.ts.map +1 -0
- package/dist/etags.vo.js +38 -0
- package/dist/etags.vo.js.map +1 -0
- package/dist/extension.vo.d.ts +10 -0
- package/dist/extension.vo.d.ts.map +1 -0
- package/dist/extension.vo.js +16 -0
- package/dist/extension.vo.js.map +1 -0
- package/dist/feature-flag-value.vo.d.ts +11 -0
- package/dist/feature-flag-value.vo.d.ts.map +1 -0
- package/dist/feature-flag-value.vo.js +9 -0
- package/dist/feature-flag-value.vo.js.map +1 -0
- package/dist/feature-flag.vo.d.ts +6 -0
- package/dist/feature-flag.vo.d.ts.map +1 -0
- package/dist/feature-flag.vo.js +10 -0
- package/dist/feature-flag.vo.js.map +1 -0
- package/dist/file-path-absolute-schema.vo.d.ts +18 -0
- package/dist/file-path-absolute-schema.vo.d.ts.map +1 -0
- package/dist/file-path-absolute-schema.vo.js +21 -0
- package/dist/file-path-absolute-schema.vo.js.map +1 -0
- package/dist/file-path-relative-schema.vo.d.ts +18 -0
- package/dist/file-path-relative-schema.vo.d.ts.map +1 -0
- package/dist/file-path-relative-schema.vo.js +21 -0
- package/dist/file-path-relative-schema.vo.js.map +1 -0
- package/dist/file-path.vo.d.ts +32 -0
- package/dist/file-path.vo.d.ts.map +1 -0
- package/dist/file-path.vo.js +82 -0
- package/dist/file-path.vo.js.map +1 -0
- package/dist/filename-affix.vo.d.ts +14 -0
- package/dist/filename-affix.vo.d.ts.map +1 -0
- package/dist/filename-affix.vo.js +18 -0
- package/dist/filename-affix.vo.js.map +1 -0
- package/dist/filename-from-string.vo.d.ts +11 -0
- package/dist/filename-from-string.vo.d.ts.map +1 -0
- package/dist/filename-from-string.vo.js +18 -0
- package/dist/filename-from-string.vo.js.map +1 -0
- package/dist/filename.vo.d.ts +25 -0
- package/dist/filename.vo.d.ts.map +1 -0
- package/dist/filename.vo.js +70 -0
- package/dist/filename.vo.js.map +1 -0
- package/dist/height-milimiters.vo.d.ts +8 -0
- package/dist/height-milimiters.vo.d.ts.map +1 -0
- package/dist/height-milimiters.vo.js +9 -0
- package/dist/height-milimiters.vo.js.map +1 -0
- package/dist/height.vo.d.ts +22 -0
- package/dist/height.vo.d.ts.map +1 -0
- package/dist/height.vo.js +52 -0
- package/dist/height.vo.js.map +1 -0
- package/dist/hour-value.vo.d.ts +8 -0
- package/dist/hour-value.vo.d.ts.map +1 -0
- package/dist/hour-value.vo.js +6 -0
- package/dist/hour-value.vo.js.map +1 -0
- package/dist/hour.vo.d.ts +21 -0
- package/dist/hour.vo.d.ts.map +1 -0
- package/dist/hour.vo.js +49 -0
- package/dist/hour.vo.js.map +1 -0
- package/dist/iban-mask.service.d.ts +5 -0
- package/dist/iban-mask.service.d.ts.map +1 -0
- package/dist/iban-mask.service.js +13 -0
- package/dist/iban-mask.service.js.map +1 -0
- package/dist/iban-schema.vo.d.ts +8 -0
- package/dist/iban-schema.vo.d.ts.map +1 -0
- package/dist/iban-schema.vo.js +8 -0
- package/dist/iban-schema.vo.js.map +1 -0
- package/dist/iban.vo.d.ts +10 -0
- package/dist/iban.vo.d.ts.map +1 -0
- package/dist/iban.vo.js +24 -0
- package/dist/iban.vo.js.map +1 -0
- package/dist/image.vo.d.ts +14 -0
- package/dist/image.vo.d.ts.map +1 -0
- package/dist/image.vo.js +11 -0
- package/dist/image.vo.js.map +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +111 -0
- package/dist/index.js.map +1 -0
- package/dist/int.vo.d.ts +9 -0
- package/dist/int.vo.d.ts.map +1 -0
- package/dist/int.vo.js +16 -0
- package/dist/int.vo.js.map +1 -0
- package/dist/integer-non-negative.vo.d.ts +8 -0
- package/dist/integer-non-negative.vo.d.ts.map +1 -0
- package/dist/integer-non-negative.vo.js +9 -0
- package/dist/integer-non-negative.vo.js.map +1 -0
- package/dist/integer-positive.vo.d.ts +8 -0
- package/dist/integer-positive.vo.d.ts.map +1 -0
- package/dist/integer-positive.vo.js +6 -0
- package/dist/integer-positive.vo.js.map +1 -0
- package/dist/integer.vo.d.ts +7 -0
- package/dist/integer.vo.d.ts.map +1 -0
- package/dist/integer.vo.js +5 -0
- package/dist/integer.vo.js.map +1 -0
- package/dist/language.vo.d.ts +8 -0
- package/dist/language.vo.d.ts.map +1 -0
- package/dist/language.vo.js +6 -0
- package/dist/language.vo.js.map +1 -0
- package/dist/linear-regression.service.d.ts +28 -0
- package/dist/linear-regression.service.d.ts.map +1 -0
- package/dist/linear-regression.service.js +59 -0
- package/dist/linear-regression.service.js.map +1 -0
- package/dist/mean.service.d.ts +9 -0
- package/dist/mean.service.d.ts.map +1 -0
- package/dist/mean.service.js +14 -0
- package/dist/mean.service.js.map +1 -0
- package/dist/mime-registry-entry.vo.d.ts +8 -0
- package/dist/mime-registry-entry.vo.d.ts.map +1 -0
- package/dist/mime-registry-entry.vo.js +9 -0
- package/dist/mime-registry-entry.vo.js.map +1 -0
- package/dist/mime-registry.service.d.ts +17 -0
- package/dist/mime-registry.service.d.ts.map +1 -0
- package/dist/mime-registry.service.js +32 -0
- package/dist/mime-registry.service.js.map +1 -0
- package/dist/mime-value.vo.d.ts +8 -0
- package/dist/mime-value.vo.d.ts.map +1 -0
- package/dist/mime-value.vo.js +8 -0
- package/dist/mime-value.vo.js.map +1 -0
- package/dist/mime.vo.d.ts +13 -0
- package/dist/mime.vo.d.ts.map +1 -0
- package/dist/mime.vo.js +27 -0
- package/dist/mime.vo.js.map +1 -0
- package/dist/mimes.d.ts +14 -0
- package/dist/mimes.d.ts.map +1 -0
- package/dist/mimes.js +20 -0
- package/dist/mimes.js.map +1 -0
- package/dist/min-max-scaler.service.d.ts +47 -0
- package/dist/min-max-scaler.service.d.ts.map +1 -0
- package/dist/min-max-scaler.service.js +62 -0
- package/dist/min-max-scaler.service.js.map +1 -0
- package/dist/minute-value.vo.d.ts +8 -0
- package/dist/minute-value.vo.d.ts.map +1 -0
- package/dist/minute-value.vo.js +6 -0
- package/dist/minute-value.vo.js.map +1 -0
- package/dist/minute.vo.d.ts +21 -0
- package/dist/minute.vo.d.ts.map +1 -0
- package/dist/minute.vo.js +49 -0
- package/dist/minute.vo.js.map +1 -0
- package/dist/money-amount.vo.d.ts +8 -0
- package/dist/money-amount.vo.d.ts.map +1 -0
- package/dist/money-amount.vo.js +6 -0
- package/dist/money-amount.vo.js.map +1 -0
- package/dist/money.vo.d.ts +27 -0
- package/dist/money.vo.d.ts.map +1 -0
- package/dist/money.vo.js +57 -0
- package/dist/money.vo.js.map +1 -0
- package/dist/month-iso-id.vo.d.ts +9 -0
- package/dist/month-iso-id.vo.d.ts.map +1 -0
- package/dist/month-iso-id.vo.js +15 -0
- package/dist/month-iso-id.vo.js.map +1 -0
- package/dist/month.vo.d.ts +17 -0
- package/dist/month.vo.d.ts.map +1 -0
- package/dist/month.vo.js +41 -0
- package/dist/month.vo.js.map +1 -0
- package/dist/multiplication-factor.vo.d.ts +8 -0
- package/dist/multiplication-factor.vo.d.ts.map +1 -0
- package/dist/multiplication-factor.vo.js +9 -0
- package/dist/multiplication-factor.vo.js.map +1 -0
- package/dist/noop.service.d.ts +3 -0
- package/dist/noop.service.d.ts.map +1 -0
- package/dist/noop.service.js +3 -0
- package/dist/noop.service.js.map +1 -0
- package/dist/object-key.vo.d.ts +12 -0
- package/dist/object-key.vo.d.ts.map +1 -0
- package/dist/object-key.vo.js +20 -0
- package/dist/object-key.vo.js.map +1 -0
- package/dist/outlier-detector.service.d.ts +10 -0
- package/dist/outlier-detector.service.d.ts.map +1 -0
- package/dist/outlier-detector.service.js +17 -0
- package/dist/outlier-detector.service.js.map +1 -0
- package/dist/package-version-schema.vo.d.ts +9 -0
- package/dist/package-version-schema.vo.d.ts.map +1 -0
- package/dist/package-version-schema.vo.js +11 -0
- package/dist/package-version-schema.vo.js.map +1 -0
- package/dist/package-version.vo.d.ts +23 -0
- package/dist/package-version.vo.d.ts.map +1 -0
- package/dist/package-version.vo.js +59 -0
- package/dist/package-version.vo.js.map +1 -0
- package/dist/pagination-page.vo.d.ts +7 -0
- package/dist/pagination-page.vo.d.ts.map +1 -0
- package/dist/pagination-page.vo.js +4 -0
- package/dist/pagination-page.vo.js.map +1 -0
- package/dist/pagination-skip.vo.d.ts +8 -0
- package/dist/pagination-skip.vo.d.ts.map +1 -0
- package/dist/pagination-skip.vo.js +4 -0
- package/dist/pagination-skip.vo.js.map +1 -0
- package/dist/pagination-take.vo.d.ts +8 -0
- package/dist/pagination-take.vo.d.ts.map +1 -0
- package/dist/pagination-take.vo.js +4 -0
- package/dist/pagination-take.vo.js.map +1 -0
- package/dist/pagination.service.d.ts +54 -0
- package/dist/pagination.service.d.ts.map +1 -0
- package/dist/pagination.service.js +45 -0
- package/dist/pagination.service.js.map +1 -0
- package/dist/percentage.service.d.ts +8 -0
- package/dist/percentage.service.d.ts.map +1 -0
- package/dist/percentage.service.js +10 -0
- package/dist/percentage.service.js.map +1 -0
- package/dist/population-standard-deviation.service.d.ts +8 -0
- package/dist/population-standard-deviation.service.d.ts.map +1 -0
- package/dist/population-standard-deviation.service.js +18 -0
- package/dist/population-standard-deviation.service.js.map +1 -0
- package/dist/quarter-iso-id.vo.d.ts +9 -0
- package/dist/quarter-iso-id.vo.d.ts.map +1 -0
- package/dist/quarter-iso-id.vo.js +8 -0
- package/dist/quarter-iso-id.vo.js.map +1 -0
- package/dist/quarter.vo.d.ts +13 -0
- package/dist/quarter.vo.d.ts.map +1 -0
- package/dist/quarter.vo.js +31 -0
- package/dist/quarter.vo.js.map +1 -0
- package/dist/random.service.d.ts +14 -0
- package/dist/random.service.d.ts.map +1 -0
- package/dist/random.service.js +14 -0
- package/dist/random.service.js.map +1 -0
- package/dist/rate-limiter.service.d.ts +18 -0
- package/dist/rate-limiter.service.d.ts.map +1 -0
- package/dist/rate-limiter.service.js +20 -0
- package/dist/rate-limiter.service.js.map +1 -0
- package/dist/relative-date.vo.d.ts +14 -0
- package/dist/relative-date.vo.d.ts.map +1 -0
- package/dist/relative-date.vo.js +15 -0
- package/dist/relative-date.vo.js.map +1 -0
- package/dist/reordering-item-position-value.vo.d.ts +7 -0
- package/dist/reordering-item-position-value.vo.d.ts.map +1 -0
- package/dist/reordering-item-position-value.vo.js +4 -0
- package/dist/reordering-item-position-value.vo.js.map +1 -0
- package/dist/reordering.service.d.ts +64 -0
- package/dist/reordering.service.d.ts.map +1 -0
- package/dist/reordering.service.js +136 -0
- package/dist/reordering.service.js.map +1 -0
- package/dist/repeat.d.ts +2 -0
- package/dist/repeat.d.ts.map +1 -0
- package/dist/repeat.js +4 -0
- package/dist/repeat.js.map +1 -0
- package/dist/revision-value.vo.d.ts +8 -0
- package/dist/revision-value.vo.d.ts.map +1 -0
- package/dist/revision-value.vo.js +4 -0
- package/dist/revision-value.vo.js.map +1 -0
- package/dist/revision.vo.d.ts +19 -0
- package/dist/revision.vo.d.ts.map +1 -0
- package/dist/revision.vo.js +37 -0
- package/dist/revision.vo.js.map +1 -0
- package/dist/rounding-decimal.strategy.d.ts +13 -0
- package/dist/rounding-decimal.strategy.d.ts.map +1 -0
- package/dist/rounding-decimal.strategy.js +15 -0
- package/dist/rounding-decimal.strategy.js.map +1 -0
- package/dist/rounding-down.strategy.d.ts +5 -0
- package/dist/rounding-down.strategy.d.ts.map +1 -0
- package/dist/rounding-down.strategy.js +6 -0
- package/dist/rounding-down.strategy.js.map +1 -0
- package/dist/rounding-to-nearest.strategy.d.ts +5 -0
- package/dist/rounding-to-nearest.strategy.d.ts.map +1 -0
- package/dist/rounding-to-nearest.strategy.js +6 -0
- package/dist/rounding-to-nearest.strategy.js.map +1 -0
- package/dist/rounding-up.strategy.d.ts +5 -0
- package/dist/rounding-up.strategy.d.ts.map +1 -0
- package/dist/rounding-up.strategy.js +6 -0
- package/dist/rounding-up.strategy.js.map +1 -0
- package/dist/rounding.strategy.d.ts +4 -0
- package/dist/rounding.strategy.d.ts.map +1 -0
- package/dist/rounding.strategy.js +2 -0
- package/dist/rounding.strategy.js.map +1 -0
- package/dist/size-bytes.vo.d.ts +7 -0
- package/dist/size-bytes.vo.d.ts.map +1 -0
- package/dist/size-bytes.vo.js +6 -0
- package/dist/size-bytes.vo.js.map +1 -0
- package/dist/size.vo.d.ts +42 -0
- package/dist/size.vo.d.ts.map +1 -0
- package/dist/size.vo.js +92 -0
- package/dist/size.vo.js.map +1 -0
- package/dist/slug.service.d.ts +5 -0
- package/dist/slug.service.d.ts.map +1 -0
- package/dist/slug.service.js +16 -0
- package/dist/slug.service.js.map +1 -0
- package/dist/sms-body.vo.d.ts +9 -0
- package/dist/sms-body.vo.d.ts.map +1 -0
- package/dist/sms-body.vo.js +10 -0
- package/dist/sms-body.vo.js.map +1 -0
- package/dist/sms-message.vo.d.ts +14 -0
- package/dist/sms-message.vo.d.ts.map +1 -0
- package/dist/sms-message.vo.js +14 -0
- package/dist/sms-message.vo.js.map +1 -0
- package/dist/sum.service.d.ts +5 -0
- package/dist/sum.service.d.ts.map +1 -0
- package/dist/sum.service.js +17 -0
- package/dist/sum.service.js.map +1 -0
- package/dist/telephone-number.vo.d.ts +8 -0
- package/dist/telephone-number.vo.d.ts.map +1 -0
- package/dist/telephone-number.vo.js +11 -0
- package/dist/telephone-number.vo.js.map +1 -0
- package/dist/thousands-separator.service.d.ts +5 -0
- package/dist/thousands-separator.service.d.ts.map +1 -0
- package/dist/thousands-separator.service.js +10 -0
- package/dist/thousands-separator.service.js.map +1 -0
- package/dist/time-zone-offset-value.vo.d.ts +9 -0
- package/dist/time-zone-offset-value.vo.d.ts.map +1 -0
- package/dist/time-zone-offset-value.vo.js +14 -0
- package/dist/time-zone-offset-value.vo.js.map +1 -0
- package/dist/timestamp-value.vo.d.ts +7 -0
- package/dist/timestamp-value.vo.d.ts.map +1 -0
- package/dist/timestamp-value.vo.js +6 -0
- package/dist/timestamp-value.vo.js.map +1 -0
- package/dist/timestamp.vo.d.ts +22 -0
- package/dist/timestamp.vo.d.ts.map +1 -0
- package/dist/timestamp.vo.js +55 -0
- package/dist/timestamp.vo.js.map +1 -0
- package/dist/timezone.vo.d.ts +10 -0
- package/dist/timezone.vo.d.ts.map +1 -0
- package/dist/timezone.vo.js +21 -0
- package/dist/timezone.vo.js.map +1 -0
- package/dist/ts-utils.d.ts +4 -0
- package/dist/ts-utils.d.ts.map +1 -0
- package/dist/ts-utils.js +2 -0
- package/dist/ts-utils.js.map +1 -0
- package/dist/url-with-slash.vo.d.ts +7 -0
- package/dist/url-with-slash.vo.d.ts.map +1 -0
- package/dist/url-with-slash.vo.js +6 -0
- package/dist/url-with-slash.vo.js.map +1 -0
- package/dist/url-without-slash.vo.d.ts +7 -0
- package/dist/url-without-slash.vo.d.ts.map +1 -0
- package/dist/url-without-slash.vo.js +6 -0
- package/dist/url-without-slash.vo.js.map +1 -0
- package/dist/visually-unambiguous-characters-generator.service.d.ts +5 -0
- package/dist/visually-unambiguous-characters-generator.service.d.ts.map +1 -0
- package/dist/visually-unambiguous-characters-generator.service.js +33 -0
- package/dist/visually-unambiguous-characters-generator.service.js.map +1 -0
- package/dist/week-iso-id.vo.d.ts +9 -0
- package/dist/week-iso-id.vo.d.ts.map +1 -0
- package/dist/week-iso-id.vo.js +20 -0
- package/dist/week-iso-id.vo.js.map +1 -0
- package/dist/week.vo.d.ts +17 -0
- package/dist/week.vo.d.ts.map +1 -0
- package/dist/week.vo.js +46 -0
- package/dist/week.vo.js.map +1 -0
- package/dist/weekday-iso-id.vo.d.ts +8 -0
- package/dist/weekday-iso-id.vo.d.ts.map +1 -0
- package/dist/weekday-iso-id.vo.js +6 -0
- package/dist/weekday-iso-id.vo.js.map +1 -0
- package/dist/weekday.vo.d.ts +29 -0
- package/dist/weekday.vo.d.ts.map +1 -0
- package/dist/weekday.vo.js +61 -0
- package/dist/weekday.vo.js.map +1 -0
- package/dist/weight-grams.vo.d.ts +8 -0
- package/dist/weight-grams.vo.d.ts.map +1 -0
- package/dist/weight-grams.vo.js +6 -0
- package/dist/weight-grams.vo.js.map +1 -0
- package/dist/weight.vo.d.ts +26 -0
- package/dist/weight.vo.d.ts.map +1 -0
- package/dist/weight.vo.js +66 -0
- package/dist/weight.vo.js.map +1 -0
- package/dist/year-iso-id.vo.d.ts +8 -0
- package/dist/year-iso-id.vo.d.ts.map +1 -0
- package/dist/year-iso-id.vo.js +8 -0
- package/dist/year-iso-id.vo.js.map +1 -0
- package/dist/year.vo.d.ts +19 -0
- package/dist/year.vo.d.ts.map +1 -0
- package/dist/year.vo.js +51 -0
- package/dist/year.vo.js.map +1 -0
- package/dist/z-score.service.d.ts +12 -0
- package/dist/z-score.service.d.ts.map +1 -0
- package/dist/z-score.service.js +20 -0
- package/dist/z-score.service.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { Duration } from "./duration.service";
|
|
3
|
+
import { TimestampValue } from "./timestamp-value.vo";
|
|
4
|
+
export class Timestamp {
|
|
5
|
+
value;
|
|
6
|
+
constructor(value) {
|
|
7
|
+
this.value = value;
|
|
8
|
+
}
|
|
9
|
+
static fromValue(value) {
|
|
10
|
+
return new Timestamp(value);
|
|
11
|
+
}
|
|
12
|
+
static fromNumber(value) {
|
|
13
|
+
return new Timestamp(v.parse(TimestampValue, value));
|
|
14
|
+
}
|
|
15
|
+
static fromDate(value) {
|
|
16
|
+
return Timestamp.fromNumber(value.getTime());
|
|
17
|
+
}
|
|
18
|
+
static fromDateLike(value) {
|
|
19
|
+
return Timestamp.fromNumber(new Date(value).getTime());
|
|
20
|
+
}
|
|
21
|
+
add(duration) {
|
|
22
|
+
return Timestamp.fromNumber(this.value + duration.ms);
|
|
23
|
+
}
|
|
24
|
+
subtract(duration) {
|
|
25
|
+
return Timestamp.fromNumber(this.value - duration.ms);
|
|
26
|
+
}
|
|
27
|
+
difference(another) {
|
|
28
|
+
return Duration.Ms(this.value - another.value);
|
|
29
|
+
}
|
|
30
|
+
isBefore(another) {
|
|
31
|
+
return this.value < another.value;
|
|
32
|
+
}
|
|
33
|
+
isBeforeOrEqual(another) {
|
|
34
|
+
return this.value <= another.value;
|
|
35
|
+
}
|
|
36
|
+
isAfter(another) {
|
|
37
|
+
return this.value > another.value;
|
|
38
|
+
}
|
|
39
|
+
isAfterOrEqual(another) {
|
|
40
|
+
return this.value >= another.value;
|
|
41
|
+
}
|
|
42
|
+
equals(another) {
|
|
43
|
+
return this.value === another.value;
|
|
44
|
+
}
|
|
45
|
+
get ms() {
|
|
46
|
+
return this.value;
|
|
47
|
+
}
|
|
48
|
+
toJSON() {
|
|
49
|
+
return this.value;
|
|
50
|
+
}
|
|
51
|
+
toString() {
|
|
52
|
+
return this.value.toString();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=timestamp.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.vo.js","sourceRoot":"","sources":["../src/timestamp.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAA2B,MAAM,sBAAsB,CAAC;AAE/E,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;IAAG,CAAC;IAE1D,MAAM,CAAC,SAAS,CAAC,KAAyB;QACxC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAa;QAC7B,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAW;QACzB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAa;QAC/B,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,QAAkB;QACpB,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,QAAkB;QACzB,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,OAAkB;QACzB,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,eAAe,CAAC,OAAkB;QAChC,OAAO,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,OAAkB;QACxB,OAAO,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,OAAkB;QAC/B,OAAO,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,OAAkB;QACvB,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;IACtC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const TimezoneError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
Empty: string;
|
|
5
|
+
TooLong: string;
|
|
6
|
+
Invalid: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const Timezone: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.MinLengthAction<string, 1, string>, v.MaxLengthAction<string, 128, string>, v.CheckAction<string, string>, v.BrandAction<string, "Timezone">]>;
|
|
9
|
+
export type TimezoneType = v.InferOutput<typeof Timezone>;
|
|
10
|
+
//# sourceMappingURL=timezone.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.vo.d.ts","sourceRoot":"","sources":["../src/timezone.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ,qMAgBpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const TimezoneError = {
|
|
3
|
+
Type: "timezone.type",
|
|
4
|
+
Empty: "timezone.empty",
|
|
5
|
+
TooLong: "timezone.too.long",
|
|
6
|
+
Invalid: "timezone.invalid",
|
|
7
|
+
};
|
|
8
|
+
export const Timezone = v.pipe(v.string(TimezoneError.Type), v.minLength(1, TimezoneError.Empty), v.maxLength(128, TimezoneError.TooLong), v.check((value) => {
|
|
9
|
+
// Stryker disable all
|
|
10
|
+
try {
|
|
11
|
+
new Intl.DateTimeFormat("en-US", { timeZone: value }).format(Date.now());
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
// Stryker restore all
|
|
18
|
+
}, TimezoneError.Invalid),
|
|
19
|
+
// Stryker disable next-line StringLiteral
|
|
20
|
+
v.brand("Timezone"));
|
|
21
|
+
//# sourceMappingURL=timezone.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.vo.js","sourceRoot":"","sources":["../src/timezone.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,gBAAgB;IACvB,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAC5B,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,EACvC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChB,sBAAsB;IACtB,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,sBAAsB;AACxB,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC;AACzB,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-utils.d.ts","sourceRoot":"","sources":["../src/ts-utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpE,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
package/dist/ts-utils.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-utils.js","sourceRoot":"","sources":["../src/ts-utils.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const UrlWithSlashError: {
|
|
3
|
+
Invalid: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const UrlWithSlash: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.EndsWithAction<string, "/", string>, v.BrandAction<string, "UrlWithSlash">]>;
|
|
6
|
+
export type UrlWithSlashType = v.InferOutput<typeof UrlWithSlash>;
|
|
7
|
+
//# sourceMappingURL=url-with-slash.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-with-slash.vo.d.ts","sourceRoot":"","sources":["../src/url-with-slash.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,iBAAiB;;CAAwC,CAAC;AAEvE,eAAO,MAAM,YAAY,gKAMxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const UrlWithSlashError = { Invalid: "url.with.slash.invalid" };
|
|
3
|
+
export const UrlWithSlash = v.pipe(v.string(UrlWithSlashError.Invalid), v.url(UrlWithSlashError.Invalid), v.endsWith("/", UrlWithSlashError.Invalid),
|
|
4
|
+
// Stryker disable next-line StringLiteral
|
|
5
|
+
v.brand("UrlWithSlash"));
|
|
6
|
+
//# sourceMappingURL=url-with-slash.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-with-slash.vo.js","sourceRoot":"","sources":["../src/url-with-slash.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAChC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EACnC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAChC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC1C,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CACxB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const UrlWithoutSlashError: {
|
|
3
|
+
Invalid: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const UrlWithoutSlash: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.UrlAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "UrlWithoutSlash">]>;
|
|
6
|
+
export type UrlWithoutSlashType = v.InferOutput<typeof UrlWithoutSlash>;
|
|
7
|
+
//# sourceMappingURL=url-without-slash.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-without-slash.vo.d.ts","sourceRoot":"","sources":["../src/url-without-slash.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,oBAAoB;;CAA2C,CAAC;AAE7E,eAAO,MAAM,eAAe,2JAM3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const UrlWithoutSlashError = { Invalid: "url.without.slash.invalid" };
|
|
3
|
+
export const UrlWithoutSlash = v.pipe(v.string(UrlWithoutSlashError.Invalid), v.url(UrlWithoutSlashError.Invalid), v.check((value) => !value.endsWith("/"), UrlWithoutSlashError.Invalid),
|
|
4
|
+
// Stryker disable next-line StringLiteral
|
|
5
|
+
v.brand("UrlWithoutSlash"));
|
|
6
|
+
//# sourceMappingURL=url-without-slash.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-without-slash.vo.js","sourceRoot":"","sources":["../src/url-without-slash.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EACtC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,EACnC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC;AACtE,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visually-unambiguous-characters-generator.service.d.ts","sourceRoot":"","sources":["../src/visually-unambiguous-characters-generator.service.ts"],"names":[],"mappings":"AAEA,qBAAa,sCAAsC;IACjD,MAAM,CAAC,KAAK,WAuBV;IAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAI,GAAG,MAAM;CAUpC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Random } from "./random.service";
|
|
2
|
+
export class VisuallyUnambiguousCharactersGenerator {
|
|
3
|
+
static chars = [
|
|
4
|
+
"a",
|
|
5
|
+
"b",
|
|
6
|
+
"c",
|
|
7
|
+
"d",
|
|
8
|
+
"e",
|
|
9
|
+
"f",
|
|
10
|
+
"h",
|
|
11
|
+
"i",
|
|
12
|
+
"j",
|
|
13
|
+
"k",
|
|
14
|
+
"m",
|
|
15
|
+
"n",
|
|
16
|
+
"o",
|
|
17
|
+
"p",
|
|
18
|
+
"r",
|
|
19
|
+
"s",
|
|
20
|
+
"t",
|
|
21
|
+
"w",
|
|
22
|
+
"x",
|
|
23
|
+
"y",
|
|
24
|
+
"3",
|
|
25
|
+
"4",
|
|
26
|
+
];
|
|
27
|
+
static generate(length = 1) {
|
|
28
|
+
return Array.from({ length })
|
|
29
|
+
.map(() => VisuallyUnambiguousCharactersGenerator.chars[Random.generate({ min: 0, max: VisuallyUnambiguousCharactersGenerator.chars.length - 1 })])
|
|
30
|
+
.join("");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=visually-unambiguous-characters-generator.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visually-unambiguous-characters-generator.service.js","sourceRoot":"","sources":["../src/visually-unambiguous-characters-generator.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,OAAO,sCAAsC;IACjD,MAAM,CAAC,KAAK,GAAG;QACb,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACJ,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;aAC1B,GAAG,CACF,GAAG,EAAE,CACH,sCAAsC,CAAC,KAAK,CAC1C,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,sCAAsC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAC1F,CACJ;aACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const WeekIsoIdError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
BadChars: string;
|
|
5
|
+
Invalid: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const WeekIsoId: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.RegexAction<string, string>, v.CheckAction<string, string>, v.BrandAction<string, "WeekIsoId">]>;
|
|
8
|
+
export type WeekIsoIdType = v.InferOutput<typeof WeekIsoId>;
|
|
9
|
+
//# sourceMappingURL=week-iso-id.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"week-iso-id.vo.d.ts","sourceRoot":"","sources":["../src/week-iso-id.vo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,cAAc;;;;CAI1B,CAAC;AAKF,eAAO,MAAM,SAAS,uJAYrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getISOWeeksInYear } from "date-fns";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
export const WeekIsoIdError = {
|
|
4
|
+
Type: "week.iso.id.type",
|
|
5
|
+
BadChars: "week.iso.id.bad.chars",
|
|
6
|
+
Invalid: "week.iso.id.invalid",
|
|
7
|
+
};
|
|
8
|
+
// Four digits, hypen, W, followed by two digits
|
|
9
|
+
const WEEK_ISO_ID_CHARS_WHITELIST = /^[0-9]{4}-W[0-9]{2}$/;
|
|
10
|
+
export const WeekIsoId = v.pipe(v.string(WeekIsoIdError.Type), v.regex(WEEK_ISO_ID_CHARS_WHITELIST, WeekIsoIdError.BadChars), v.check((value) => {
|
|
11
|
+
const [year, week] = value.split("-W").map(Number);
|
|
12
|
+
// ISO-8601 rule: Jan 4 is always in week 01 of the ISO week-year.
|
|
13
|
+
const weeksInYear = getISOWeeksInYear(Date.UTC(year, 0, 4));
|
|
14
|
+
if (week < 1)
|
|
15
|
+
return false;
|
|
16
|
+
return week <= weeksInYear;
|
|
17
|
+
}, WeekIsoIdError.Invalid),
|
|
18
|
+
// Stryker disable next-line StringLiteral
|
|
19
|
+
v.brand("WeekIsoId"));
|
|
20
|
+
//# sourceMappingURL=week-iso-id.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"week-iso-id.vo.js","sourceRoot":"","sources":["../src/week-iso-id.vo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,qBAAqB;CAC/B,CAAC;AAEF,gDAAgD;AAChD,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAC7B,CAAC,CAAC,KAAK,CAAC,2BAA2B,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAqB,CAAC;IACvE,kEAAkE;IAClE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,OAAO,IAAI,IAAI,WAAW,CAAC;AAC7B,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC;AAC1B,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CACrB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DateRange } from "./date-range.vo";
|
|
2
|
+
import type { IntegerType } from "./integer.vo";
|
|
3
|
+
import { Timestamp } from "./timestamp.vo";
|
|
4
|
+
import type { TimestampValueType } from "./timestamp-value.vo";
|
|
5
|
+
import { type WeekIsoIdType } from "./week-iso-id.vo";
|
|
6
|
+
export declare class Week extends DateRange {
|
|
7
|
+
static fromTimestamp(timestamp: Timestamp): Week;
|
|
8
|
+
static fromTimestampValue(timestamp: TimestampValueType): Week;
|
|
9
|
+
static fromNow(now: Timestamp): Week;
|
|
10
|
+
static fromIsoId(isoId: WeekIsoIdType): Week;
|
|
11
|
+
toIsoId(): WeekIsoIdType;
|
|
12
|
+
previous(): Week;
|
|
13
|
+
next(): Week;
|
|
14
|
+
shift(count: IntegerType): Week;
|
|
15
|
+
toString(): string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=week.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"week.vo.d.ts","sourceRoot":"","sources":["../src/week.vo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjE,qBAAa,IAAK,SAAQ,SAAS;IACjC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOhD,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAI9D,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAIpC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAU5C,OAAO,IAAI,aAAa;IAOxB,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;IAIZ,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B,QAAQ,IAAI,MAAM;CAGnB"}
|
package/dist/week.vo.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { addWeeks, endOfISOWeek, getISOWeek, getISOWeekYear, startOfISOWeek } from "date-fns";
|
|
2
|
+
import * as v from "valibot";
|
|
3
|
+
import { DateRange } from "./date-range.vo";
|
|
4
|
+
import { Duration } from "./duration.service";
|
|
5
|
+
import { Int } from "./int.vo";
|
|
6
|
+
import { Timestamp } from "./timestamp.vo";
|
|
7
|
+
import { WeekIsoId } from "./week-iso-id.vo";
|
|
8
|
+
export class Week extends DateRange {
|
|
9
|
+
static fromTimestamp(timestamp) {
|
|
10
|
+
const start = Timestamp.fromNumber(startOfISOWeek(timestamp.ms).getTime());
|
|
11
|
+
const end = Timestamp.fromNumber(endOfISOWeek(timestamp.ms).getTime());
|
|
12
|
+
return new Week(start, end);
|
|
13
|
+
}
|
|
14
|
+
static fromTimestampValue(timestamp) {
|
|
15
|
+
return Week.fromTimestamp(Timestamp.fromValue(timestamp));
|
|
16
|
+
}
|
|
17
|
+
static fromNow(now) {
|
|
18
|
+
return Week.fromTimestamp(now);
|
|
19
|
+
}
|
|
20
|
+
static fromIsoId(isoId) {
|
|
21
|
+
const [year, week] = v.parse(WeekIsoId, isoId).split("-W").map(Number);
|
|
22
|
+
// ISO-8601 rule: Jan 4 is always in week 01 of the ISO week-year.
|
|
23
|
+
const januaryFourth = Timestamp.fromNumber(Date.UTC(year, 0, 4));
|
|
24
|
+
const firstWeekStart = Timestamp.fromNumber(startOfISOWeek(januaryFourth.ms).getTime());
|
|
25
|
+
return Week.fromTimestamp(firstWeekStart.add(Duration.Weeks(week - 1)));
|
|
26
|
+
}
|
|
27
|
+
toIsoId() {
|
|
28
|
+
const year = getISOWeekYear(this.getStart().ms);
|
|
29
|
+
const week = getISOWeek(this.getStart().ms);
|
|
30
|
+
return v.parse(WeekIsoId, `${year}-W${String(week).padStart(2, "0")}`);
|
|
31
|
+
}
|
|
32
|
+
previous() {
|
|
33
|
+
return this.shift(Int.of(-1));
|
|
34
|
+
}
|
|
35
|
+
next() {
|
|
36
|
+
return this.shift(Int.of(1));
|
|
37
|
+
}
|
|
38
|
+
shift(count) {
|
|
39
|
+
const shifted = addWeeks(this.getStart().ms, count).getTime();
|
|
40
|
+
return Week.fromTimestamp(Timestamp.fromNumber(shifted));
|
|
41
|
+
}
|
|
42
|
+
toString() {
|
|
43
|
+
return this.toIsoId();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=week.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"week.vo.js","sourceRoot":"","sources":["../src/week.vo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const WeekdayIsoIdError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
Invalid: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const WeekdayIsoId: v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.IntegerAction<number, string>, v.MinValueAction<number, 1, string>, v.MaxValueAction<number, 7, string>, v.BrandAction<number, "WeekdayIsoId">]>;
|
|
7
|
+
export type WeekdayIsoIdType = v.InferOutput<typeof WeekdayIsoId>;
|
|
8
|
+
//# sourceMappingURL=weekday-iso-id.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weekday-iso-id.vo.d.ts","sourceRoot":"","sources":["../src/weekday-iso-id.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,iBAAiB;;;CAAqE,CAAC;AAEpG,eAAO,MAAM,YAAY,uMAOxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const WeekdayIsoIdError = { Type: "weekday.iso.id.type", Invalid: "weekday.iso.id.invalid" };
|
|
3
|
+
export const WeekdayIsoId = v.pipe(v.number(WeekdayIsoIdError.Type), v.integer(WeekdayIsoIdError.Type), v.minValue(1, WeekdayIsoIdError.Invalid), v.maxValue(7, WeekdayIsoIdError.Invalid),
|
|
4
|
+
// Stryker disable next-line StringLiteral
|
|
5
|
+
v.brand("WeekdayIsoId"));
|
|
6
|
+
//# sourceMappingURL=weekday-iso-id.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weekday-iso-id.vo.js","sourceRoot":"","sources":["../src/weekday-iso-id.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAChC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAChC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,EACjC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACxC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC;AACxC,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CACxB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Timestamp } from "./timestamp.vo";
|
|
2
|
+
import type { TimestampValueType } from "./timestamp-value.vo";
|
|
3
|
+
import { type WeekdayIsoIdType } from "./weekday-iso-id.vo";
|
|
4
|
+
export declare class Weekday {
|
|
5
|
+
private readonly value;
|
|
6
|
+
static readonly MONDAY: Weekday;
|
|
7
|
+
static readonly TUESDAY: Weekday;
|
|
8
|
+
static readonly WEDNESDAY: Weekday;
|
|
9
|
+
static readonly THURSDAY: Weekday;
|
|
10
|
+
static readonly FRIDAY: Weekday;
|
|
11
|
+
static readonly SATURDAY: Weekday;
|
|
12
|
+
static readonly SUNDAY: Weekday;
|
|
13
|
+
private constructor();
|
|
14
|
+
static fromTimestamp(timestamp: Timestamp): Weekday;
|
|
15
|
+
static fromTimestampValue(timestamp: TimestampValueType): Weekday;
|
|
16
|
+
static fromIsoId(iso: WeekdayIsoIdType): Weekday;
|
|
17
|
+
get(): WeekdayIsoIdType;
|
|
18
|
+
equals(another: Weekday): boolean;
|
|
19
|
+
isMonday(): boolean;
|
|
20
|
+
isTuesday(): boolean;
|
|
21
|
+
isWednesday(): boolean;
|
|
22
|
+
isThursday(): boolean;
|
|
23
|
+
isFriday(): boolean;
|
|
24
|
+
isSaturday(): boolean;
|
|
25
|
+
isSunday(): boolean;
|
|
26
|
+
toJSON(): number;
|
|
27
|
+
toString(): string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=weekday.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weekday.vo.d.ts","sourceRoot":"","sources":["../src/weekday.vo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,qBAAa,OAAO;IASE,OAAO,CAAC,QAAQ,CAAC,KAAK;IAR1C,MAAM,CAAC,QAAQ,CAAC,MAAM,UAA+C;IACrE,MAAM,CAAC,QAAQ,CAAC,OAAO,UAA+C;IACtE,MAAM,CAAC,QAAQ,CAAC,SAAS,UAA+C;IACxE,MAAM,CAAC,QAAQ,CAAC,QAAQ,UAA+C;IACvE,MAAM,CAAC,QAAQ,CAAC,MAAM,UAA+C;IACrE,MAAM,CAAC,QAAQ,CAAC,QAAQ,UAA+C;IACvE,MAAM,CAAC,QAAQ,CAAC,MAAM,UAA+C;IAErE,OAAO;IAEP,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAOnD,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO;IAIjE,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;IAIhD,GAAG,IAAI,gBAAgB;IAIvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIjC,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,OAAO;IAInB,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,OAAO;IAInB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;CAGnB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { Timestamp } from "./timestamp.vo";
|
|
3
|
+
import { WeekdayIsoId } from "./weekday-iso-id.vo";
|
|
4
|
+
export class Weekday {
|
|
5
|
+
value;
|
|
6
|
+
static MONDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 1));
|
|
7
|
+
static TUESDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 2));
|
|
8
|
+
static WEDNESDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 3));
|
|
9
|
+
static THURSDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 4));
|
|
10
|
+
static FRIDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 5));
|
|
11
|
+
static SATURDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 6));
|
|
12
|
+
static SUNDAY = Weekday.fromIsoId(v.parse(WeekdayIsoId, 7));
|
|
13
|
+
constructor(value) {
|
|
14
|
+
this.value = value;
|
|
15
|
+
}
|
|
16
|
+
static fromTimestamp(timestamp) {
|
|
17
|
+
// UTC returns numbers from 0-6, starting from Sunday
|
|
18
|
+
const utc = new Date(timestamp.ms).getUTCDay();
|
|
19
|
+
return new Weekday(v.parse(WeekdayIsoId, utc === 0 ? 7 : utc));
|
|
20
|
+
}
|
|
21
|
+
static fromTimestampValue(timestamp) {
|
|
22
|
+
return Weekday.fromTimestamp(Timestamp.fromValue(timestamp));
|
|
23
|
+
}
|
|
24
|
+
static fromIsoId(iso) {
|
|
25
|
+
return new Weekday(iso);
|
|
26
|
+
}
|
|
27
|
+
get() {
|
|
28
|
+
return this.value;
|
|
29
|
+
}
|
|
30
|
+
equals(another) {
|
|
31
|
+
return this.value === another.value;
|
|
32
|
+
}
|
|
33
|
+
isMonday() {
|
|
34
|
+
return this.equals(Weekday.MONDAY);
|
|
35
|
+
}
|
|
36
|
+
isTuesday() {
|
|
37
|
+
return this.equals(Weekday.TUESDAY);
|
|
38
|
+
}
|
|
39
|
+
isWednesday() {
|
|
40
|
+
return this.equals(Weekday.WEDNESDAY);
|
|
41
|
+
}
|
|
42
|
+
isThursday() {
|
|
43
|
+
return this.equals(Weekday.THURSDAY);
|
|
44
|
+
}
|
|
45
|
+
isFriday() {
|
|
46
|
+
return this.equals(Weekday.FRIDAY);
|
|
47
|
+
}
|
|
48
|
+
isSaturday() {
|
|
49
|
+
return this.equals(Weekday.SATURDAY);
|
|
50
|
+
}
|
|
51
|
+
isSunday() {
|
|
52
|
+
return this.equals(Weekday.SUNDAY);
|
|
53
|
+
}
|
|
54
|
+
toJSON() {
|
|
55
|
+
return this.value;
|
|
56
|
+
}
|
|
57
|
+
toString() {
|
|
58
|
+
return this.value.toString();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=weekday.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weekday.vo.js","sourceRoot":"","sources":["../src/weekday.vo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const WeightGramsError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
Invalid: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const WeightGrams: v.SchemaWithPipe<readonly [v.NumberSchema<string>, v.IntegerAction<number, string>, v.MinValueAction<number, 0, string>, v.BrandAction<number, "WeightGrams">]>;
|
|
7
|
+
export type WeightGramsType = v.InferOutput<typeof WeightGrams>;
|
|
8
|
+
//# sourceMappingURL=weight-grams.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weight-grams.vo.d.ts","sourceRoot":"","sources":["../src/weight-grams.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,gBAAgB;;;CAAiE,CAAC;AAE/F,eAAO,MAAM,WAAW,iKAMvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const WeightGramsError = { Type: "weight.grams.type", Invalid: "weight.grams.invalid" };
|
|
3
|
+
export const WeightGrams = v.pipe(v.number(WeightGramsError.Type), v.integer(WeightGramsError.Type), v.minValue(0, WeightGramsError.Invalid),
|
|
4
|
+
// Stryker disable next-line StringLiteral
|
|
5
|
+
v.brand("WeightGrams"));
|
|
6
|
+
//# sourceMappingURL=weight-grams.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weight-grams.vo.js","sourceRoot":"","sources":["../src/weight-grams.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAE/F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC/B,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAChC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC;AACvC,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CACvB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { DivisionFactorType } from "./division-factor.vo";
|
|
2
|
+
import type { MultiplicationFactorType } from "./multiplication-factor.vo";
|
|
3
|
+
import type { RoundingStrategy } from "./rounding.strategy";
|
|
4
|
+
export declare class Weight {
|
|
5
|
+
private readonly grams;
|
|
6
|
+
private readonly rounding;
|
|
7
|
+
private static readonly GRAMS_PER_KILOGRAM;
|
|
8
|
+
private constructor();
|
|
9
|
+
static fromKilograms(kilograms: number, rounding?: RoundingStrategy): Weight;
|
|
10
|
+
static fromGrams(grams: number, rounding?: RoundingStrategy): Weight;
|
|
11
|
+
static zero(): Weight;
|
|
12
|
+
get(): number;
|
|
13
|
+
toKilograms(): number;
|
|
14
|
+
format(): string;
|
|
15
|
+
add(other: Weight): Weight;
|
|
16
|
+
subtract(other: Weight): Weight;
|
|
17
|
+
multiply(factor: MultiplicationFactorType): Weight;
|
|
18
|
+
divide(divisor: DivisionFactorType): Weight;
|
|
19
|
+
equals(other: Weight): boolean;
|
|
20
|
+
greaterThan(other: Weight): boolean;
|
|
21
|
+
lessThan(other: Weight): boolean;
|
|
22
|
+
isZero(): boolean;
|
|
23
|
+
toString(): string;
|
|
24
|
+
toJSON(): number;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=weight.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weight.vo.d.ts","sourceRoot":"","sources":["../src/weight.vo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,qBAAa,MAAM;IAIf,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAEnD,OAAO;IAKP,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,gBAAkD,GAC3D,MAAM;IAMT,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,gBAAkD,GAAG,MAAM;IAIrG,MAAM,CAAC,IAAI,IAAI,MAAM;IAIrB,GAAG,IAAI,MAAM;IAIb,WAAW,IAAI,MAAM;IAMrB,MAAM,IAAI,MAAM;IAIhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM/B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM;IAMlD,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAM3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAInC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhC,MAAM,IAAI,OAAO;IAIjB,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;CAGjB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
import { RoundingToNearestStrategy } from "./rounding-to-nearest.strategy";
|
|
3
|
+
import { WeightGrams } from "./weight-grams.vo";
|
|
4
|
+
export class Weight {
|
|
5
|
+
grams;
|
|
6
|
+
rounding;
|
|
7
|
+
static GRAMS_PER_KILOGRAM = 1_000;
|
|
8
|
+
constructor(grams, rounding = new RoundingToNearestStrategy()) {
|
|
9
|
+
this.grams = grams;
|
|
10
|
+
this.rounding = rounding;
|
|
11
|
+
}
|
|
12
|
+
static fromKilograms(kilograms, rounding = new RoundingToNearestStrategy()) {
|
|
13
|
+
const grams = rounding.round(kilograms * Weight.GRAMS_PER_KILOGRAM);
|
|
14
|
+
return new Weight(v.parse(WeightGrams, grams), rounding);
|
|
15
|
+
}
|
|
16
|
+
static fromGrams(grams, rounding = new RoundingToNearestStrategy()) {
|
|
17
|
+
return new Weight(v.parse(WeightGrams, grams), rounding);
|
|
18
|
+
}
|
|
19
|
+
static zero() {
|
|
20
|
+
return new Weight(v.parse(WeightGrams, 0));
|
|
21
|
+
}
|
|
22
|
+
get() {
|
|
23
|
+
return this.grams;
|
|
24
|
+
}
|
|
25
|
+
toKilograms() {
|
|
26
|
+
const kilograms = this.grams / Weight.GRAMS_PER_KILOGRAM;
|
|
27
|
+
return this.rounding.round(kilograms);
|
|
28
|
+
}
|
|
29
|
+
format() {
|
|
30
|
+
return `${this.grams} g`;
|
|
31
|
+
}
|
|
32
|
+
add(other) {
|
|
33
|
+
return new Weight(v.parse(WeightGrams, this.grams + other.grams));
|
|
34
|
+
}
|
|
35
|
+
subtract(other) {
|
|
36
|
+
const result = this.grams - other.grams;
|
|
37
|
+
return new Weight(v.parse(WeightGrams, Math.max(0, result)), this.rounding);
|
|
38
|
+
}
|
|
39
|
+
multiply(factor) {
|
|
40
|
+
const grams = this.rounding.round(this.grams * factor);
|
|
41
|
+
return new Weight(v.parse(WeightGrams, grams));
|
|
42
|
+
}
|
|
43
|
+
divide(divisor) {
|
|
44
|
+
const grams = this.rounding.round(this.grams / divisor);
|
|
45
|
+
return new Weight(v.parse(WeightGrams, grams));
|
|
46
|
+
}
|
|
47
|
+
equals(other) {
|
|
48
|
+
return this.grams === other.grams;
|
|
49
|
+
}
|
|
50
|
+
greaterThan(other) {
|
|
51
|
+
return this.grams > other.grams;
|
|
52
|
+
}
|
|
53
|
+
lessThan(other) {
|
|
54
|
+
return this.grams < other.grams;
|
|
55
|
+
}
|
|
56
|
+
isZero() {
|
|
57
|
+
return this.grams === 0;
|
|
58
|
+
}
|
|
59
|
+
toString() {
|
|
60
|
+
return this.format();
|
|
61
|
+
}
|
|
62
|
+
toJSON() {
|
|
63
|
+
return this.grams;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=weight.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weight.vo.js","sourceRoot":"","sources":["../src/weight.vo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const YearIsoIdError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
BadChars: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const YearIsoId: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.RegexAction<string, string>, v.BrandAction<string, "YearIsoId">]>;
|
|
7
|
+
export type YearIsoIdType = v.InferOutput<typeof YearIsoId>;
|
|
8
|
+
//# sourceMappingURL=year-iso-id.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"year-iso-id.vo.d.ts","sourceRoot":"","sources":["../src/year-iso-id.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,cAAc;;;CAAkE,CAAC;AAK9F,eAAO,MAAM,SAAS,wHAKrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const YearIsoIdError = { Type: "year.iso.id.type", BadChars: "year.iso.id.bad.chars" };
|
|
3
|
+
// Four digits
|
|
4
|
+
const YEAR_ISO_ID_CHARS_WHITELIST = /^[0-9]{4}$/;
|
|
5
|
+
export const YearIsoId = v.pipe(v.string(YearIsoIdError.Type), v.regex(YEAR_ISO_ID_CHARS_WHITELIST, YearIsoIdError.BadChars),
|
|
6
|
+
// Stryker disable next-line StringLiteral
|
|
7
|
+
v.brand("YearIsoId"));
|
|
8
|
+
//# sourceMappingURL=year-iso-id.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"year-iso-id.vo.js","sourceRoot":"","sources":["../src/year-iso-id.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC;AAE9F,cAAc;AACd,MAAM,2BAA2B,GAAG,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAC7B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAC7B,CAAC,CAAC,KAAK,CAAC,2BAA2B,EAAE,cAAc,CAAC,QAAQ,CAAC;AAC7D,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CACrB,CAAC"}
|