@atlantjs/arch 15.7.6 → 15.7.8
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/package.json +4 -2
- package/src/@tool-box/tests/builder.abstract.util.d.ts +0 -1
- package/src/@tool-box/tests/builder.abstract.util.js +40 -0
- package/src/@tool-box/tests/builders/datetime/datetime.edge.builder.d.ts +2 -3
- package/src/@tool-box/tests/builders/datetime/datetime.edge.builder.js +15 -0
- package/src/@tool-box/tests/builders/failures/dummies/failure.dummy.d.ts +1 -2
- package/src/@tool-box/tests/builders/failures/dummies/failure.dummy.js +13 -0
- package/src/@tool-box/tests/builders/failures/failure.builder.d.ts +1 -2
- package/src/@tool-box/tests/builders/failures/failure.builder.js +18 -0
- package/src/@tool-box/tests/builders/metadata/metadata-uv.builder.d.ts +2 -3
- package/src/@tool-box/tests/builders/metadata/metadata-uv.builder.js +18 -0
- package/src/@tool-box/tests/builders/metadata/metadata.edge.builder.d.ts +2 -3
- package/src/@tool-box/tests/builders/metadata/metadata.edge.builder.js +15 -0
- package/src/@tool-box/tests/builders/user/email.edge.builder.d.ts +2 -3
- package/src/@tool-box/tests/builders/user/email.edge.builder.js +15 -0
- package/src/@tool-box/tests/builders/user/username.edge.builder.d.ts +2 -3
- package/src/@tool-box/tests/builders/user/username.edge.builder.js +15 -0
- package/src/@tool-box/tests/faker/faker.d.ts +0 -1
- package/src/@tool-box/tests/faker/faker.js +208 -0
- package/src/@tool-box/utils/convert-units/convert-units.d.ts +5 -6
- package/src/@tool-box/utils/convert-units/convert-units.js +154 -0
- package/src/@tool-box/utils/datatypes/boolean-utils.d.ts +0 -1
- package/src/@tool-box/utils/datatypes/boolean-utils.js +155 -0
- package/src/@tool-box/utils/datatypes/generic-types.d.ts +0 -1
- package/src/@tool-box/utils/datatypes/generic-types.js +3 -0
- package/src/@tool-box/utils/datatypes/plainify.d.ts +0 -1
- package/src/@tool-box/utils/datatypes/plainify.js +2 -0
- package/src/@tool-box/utils/datatypes/string-utils.d.ts +0 -1
- package/src/@tool-box/utils/datatypes/string-utils.js +292 -0
- package/src/@tool-box/utils/datetime/mappers/month.mapper.d.ts +2 -3
- package/src/@tool-box/utils/datetime/mappers/month.mapper.js +58 -0
- package/src/@tool-box/utils/datetime/mappers/points/month-abbreviation.enum.d.ts +0 -1
- package/src/@tool-box/utils/datetime/mappers/points/month-abbreviation.enum.js +18 -0
- package/src/@tool-box/utils/datetime/mappers/points/month-number.enum.d.ts +0 -1
- package/src/@tool-box/utils/datetime/mappers/points/month-number.enum.js +18 -0
- package/src/@tool-box/utils/ducts/common.d.ts +0 -1
- package/src/@tool-box/utils/ducts/common.js +47 -0
- package/src/@tool-box/utils/ducts/optional-type.d.ts +1 -2
- package/src/@tool-box/utils/ducts/optional-type.js +130 -0
- package/src/@tool-box/utils/ducts/return-type.d.ts +2 -3
- package/src/@tool-box/utils/ducts/return-type.js +69 -0
- package/src/@tool-box/utils/http-provider/http-provider-failure-response.d.ts +1 -2
- package/src/@tool-box/utils/http-provider/http-provider-failure-response.js +22 -0
- package/src/@tool-box/utils/http-provider/http-provider-success-response.d.ts +1 -2
- package/src/@tool-box/utils/http-provider/http-provider-success-response.js +22 -0
- package/src/@tool-box/utils/http-provider/http-provider.d.ts +4 -5
- package/src/@tool-box/utils/http-provider/http-provider.js +87 -0
- package/src/@tool-box/utils/logger/index.d.ts +0 -1
- package/src/@tool-box/utils/logger/index.js +31 -0
- package/src/@tool-box/utils/map/map.abstract.d.ts +0 -1
- package/src/@tool-box/utils/map/map.abstract.js +84 -0
- package/src/@tool-box/utils/random/random.d.ts +0 -1
- package/src/@tool-box/utils/random/random.js +260 -0
- package/src/@tool-box/utils/type-guard/guardian-exception.d.ts +0 -1
- package/src/@tool-box/utils/type-guard/guardian-exception.js +6 -0
- package/src/@tool-box/utils/type-guard/guardian.d.ts +2 -3
- package/src/@tool-box/utils/type-guard/guardian.js +625 -0
- package/src/@tool-box/utils/type-guard/guardian.type.d.ts +0 -1
- package/src/@tool-box/utils/type-guard/guardian.type.js +2 -0
- package/src/@tool-box/utils/validators/is-cron-expression.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-cron-expression.js +39 -0
- package/src/@tool-box/utils/validators/is-date-string.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-date-string.js +39 -0
- package/src/@tool-box/utils/validators/is-password-match.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-password-match.js +27 -0
- package/src/@tool-box/utils/validators/is-password-policy.validator.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-password-policy.validator.js +30 -0
- package/src/@tool-box/utils/validators/is-schedule.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-schedule.js +43 -0
- package/src/@tool-box/utils/validators/is-time-string.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-time-string.js +39 -0
- package/src/@tool-box/utils/validators/is-ulid.d.ts +0 -1
- package/src/@tool-box/utils/validators/is-ulid.js +39 -0
- package/src/index.d.ts +74 -75
- package/src/index.js +179 -0
- package/src/objects/@common/edges/email.edge.d.ts +1 -2
- package/src/objects/@common/edges/email.edge.js +88 -0
- package/src/objects/@common/edges/ulid.sketch.edge.d.ts +0 -1
- package/src/objects/@common/edges/ulid.sketch.edge.js +92 -0
- package/src/objects/@common/edges/url.edge.d.ts +1 -2
- package/src/objects/@common/edges/url.edge.js +270 -0
- package/src/objects/@common/edges/username.edge.d.ts +1 -2
- package/src/objects/@common/edges/username.edge.js +38 -0
- package/src/objects/@common/edges/uuid.sketch.edge.d.ts +0 -1
- package/src/objects/@common/edges/uuid.sketch.edge.js +146 -0
- package/src/objects/@common/points/environment.point.d.ts +0 -1
- package/src/objects/@common/points/environment.point.js +10 -0
- package/src/objects/@common/points/header-token-name.point.d.ts +0 -1
- package/src/objects/@common/points/header-token-name.point.js +10 -0
- package/src/objects/@common/points/http-status-codes.point.d.ts +0 -1
- package/src/objects/@common/points/http-status-codes.point.js +244 -0
- package/src/objects/amount/amount-value.edge.d.ts +1 -2
- package/src/objects/amount/amount-value.edge.js +76 -0
- package/src/objects/amount/amount.edge.d.ts +1 -2
- package/src/objects/amount/amount.edge.js +628 -0
- package/src/objects/amount/amount.polygon.d.ts +0 -1
- package/src/objects/amount/amount.polygon.js +2 -0
- package/src/objects/amount/amount.uv.d.ts +3 -4
- package/src/objects/amount/amount.uv.js +31 -0
- package/src/objects/amount/points/duration-unit.point.d.ts +0 -1
- package/src/objects/amount/points/duration-unit.point.js +15 -0
- package/src/objects/amount/points/energy-unit.point.d.ts +0 -1
- package/src/objects/amount/points/energy-unit.point.js +10 -0
- package/src/objects/amount/points/length-unit.point.d.ts +0 -1
- package/src/objects/amount/points/length-unit.point.js +10 -0
- package/src/objects/amount/points/mass-unit.point.d.ts +0 -1
- package/src/objects/amount/points/mass-unit.point.js +11 -0
- package/src/objects/amount/points/month-name.point.d.ts +0 -1
- package/src/objects/amount/points/month-name.point.js +18 -0
- package/src/objects/amount/points/object-unit.point.d.ts +0 -1
- package/src/objects/amount/points/object-unit.point.js +7 -0
- package/src/objects/amount/points/units.point.d.ts +5 -2
- package/src/objects/amount/points/units.point.js +2 -0
- package/src/objects/amount/points/volume-unit.point.d.ts +0 -1
- package/src/objects/amount/points/volume-unit.point.js +8 -0
- package/src/objects/amount/points/week-day.point.d.ts +0 -1
- package/src/objects/amount/points/week-day.point.js +13 -0
- package/src/objects/datetime/edges/datetime.edge.d.ts +2 -3
- package/src/objects/datetime/edges/datetime.edge.js +675 -0
- package/src/objects/datetime/edges/locale/day/day-name-to-english.mapper.d.ts +1 -2
- package/src/objects/datetime/edges/locale/day/day-name-to-english.mapper.js +16 -0
- package/src/objects/datetime/edges/locale/day/day-name-to-portuguese.mapper.d.ts +1 -2
- package/src/objects/datetime/edges/locale/day/day-name-to-portuguese.mapper.js +16 -0
- package/src/objects/datetime/edges/locale/day/today-to-language.mapper.d.ts +2 -3
- package/src/objects/datetime/edges/locale/day/today-to-language.mapper.js +12 -0
- package/src/objects/datetime/edges/locale/holidays-country.type.d.ts +0 -1
- package/src/objects/datetime/edges/locale/holidays-country.type.js +2 -0
- package/src/objects/datetime/edges/locale/month/month-to-english.mapper.d.ts +1 -2
- package/src/objects/datetime/edges/locale/month/month-to-english.mapper.js +21 -0
- package/src/objects/datetime/edges/locale/month/month-to-portuguese.mapper.d.ts +1 -2
- package/src/objects/datetime/edges/locale/month/month-to-portuguese.mapper.js +21 -0
- package/src/objects/datetime/points/month-name.enum.d.ts +0 -1
- package/src/objects/datetime/points/month-name.enum.js +18 -0
- package/src/objects/datetime/points/week-day.enum.d.ts +0 -1
- package/src/objects/datetime/points/week-day.enum.js +13 -0
- package/src/objects/failure/edges/failure.abstract.d.ts +1 -2
- package/src/objects/failure/edges/failure.abstract.js +27 -0
- package/src/objects/failure/edges/failure.abstract.polygon.d.ts +0 -1
- package/src/objects/failure/edges/failure.abstract.polygon.js +2 -0
- package/src/objects/language/points/language.point.d.ts +0 -1
- package/src/objects/language/points/language.point.js +135 -0
- package/src/objects/metadata/metadata.edge.d.ts +3 -4
- package/src/objects/metadata/metadata.edge.js +27 -0
- package/src/objects/metadata/metadata.polygon.d.ts +0 -1
- package/src/objects/metadata/metadata.polygon.js +2 -0
- package/src/objects/metadata/metadata.uv.d.ts +1 -2
- package/src/objects/metadata/metadata.uv.js +31 -0
- package/src/objects/password/password.edge.d.ts +2 -3
- package/src/objects/password/password.edge.js +176 -0
- package/src/objects/password/password.polygon.d.ts +1 -2
- package/src/objects/password/password.polygon.js +2 -0
- package/src/objects/password/steps/not-allowing-consecutive-chars-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-consecutive-chars-step.js +35 -0
- package/src/objects/password/steps/not-allowing-date-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-date-step.js +62 -0
- package/src/objects/password/steps/not-allowing-phone-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-phone-step.js +28 -0
- package/src/objects/password/steps/not-allowing-repeated-chars-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-repeated-chars-step.js +35 -0
- package/src/objects/password/steps/not-allowing-string-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-string-step.js +20 -0
- package/src/objects/password/steps/not-allowing-these-chars-step.d.ts +2 -3
- package/src/objects/password/steps/not-allowing-these-chars-step.js +18 -0
- package/src/objects/password/steps/numeric-step.d.ts +2 -3
- package/src/objects/password/steps/numeric-step.js +13 -0
- package/src/objects/password/steps/with-at-least-one-letter-step.d.ts +2 -3
- package/src/objects/password/steps/with-at-least-one-letter-step.js +14 -0
- package/src/objects/password/steps/with-at-least-one-number-digit-step.d.ts +2 -3
- package/src/objects/password/steps/with-at-least-one-number-digit-step.js +14 -0
- package/src/objects/password/steps/with-at-least-one-special-char-step.d.ts +2 -3
- package/src/objects/password/steps/with-at-least-one-special-char-step.js +14 -0
- package/src/objects/password/steps/with-length-step.d.ts +2 -3
- package/src/objects/password/steps/with-length-step.js +19 -0
- package/src/objects/password/validation-step.d.ts +1 -2
- package/src/objects/password/validation-step.js +9 -0
- package/src/objects/password/validation-step.type.d.ts +0 -1
- package/src/objects/password/validation-step.type.js +2 -0
- package/src/objects/primitives/boolean.edge.sketch.d.ts +0 -1
- package/src/objects/primitives/boolean.edge.sketch.js +148 -0
- package/src/objects/primitives/datetime.edge.sketch.d.ts +1 -2
- package/src/objects/primitives/datetime.edge.sketch.js +7 -0
- package/src/objects/primitives/number.edge.sketch.d.ts +0 -1
- package/src/objects/primitives/number.edge.sketch.js +347 -0
- package/src/objects/primitives/string.edge.sketch.d.ts +0 -1
- package/src/objects/primitives/string.edge.sketch.js +219 -0
- package/src/objects/scheduling/scheduling.edge.d.ts +6 -7
- package/src/objects/scheduling/scheduling.edge.failure.d.ts +1 -2
- package/src/objects/scheduling/scheduling.edge.failure.js +14 -0
- package/src/objects/scheduling/scheduling.edge.js +281 -0
- package/src/objects/time/time.edge.d.ts +1 -2
- package/src/objects/time/time.edge.js +448 -0
- package/src/objects-interface/edges/edge.abstract.d.ts +1 -2
- package/src/objects-interface/edges/edge.abstract.js +6 -0
- package/src/objects-interface/face.abstract.d.ts +2 -3
- package/src/objects-interface/face.abstract.js +6 -0
- package/src/objects-interface/solid.abstract.d.ts +5 -6
- package/src/objects-interface/solid.abstract.js +13 -0
- package/src/objects-interface/uv.abstract.d.ts +3 -4
- package/src/objects-interface/uv.abstract.js +6 -0
- package/src/objects-interface/vertices/vertex.abstract.d.ts +5 -6
- package/src/objects-interface/vertices/vertex.abstract.js +13 -0
- package/src/shared/payload.abstract.d.ts +0 -1
- package/src/shared/payload.abstract.js +6 -0
- package/src/shared/request.abstract.d.ts +5 -6
- package/src/shared/request.abstract.js +3 -0
- package/src/shared/response.abstract.d.ts +0 -1
- package/src/shared/response.abstract.js +6 -0
- package/{tsconfig-default.json → tsconfig.base.json} +0 -2
- package/{tsconfig-lib.json → tsconfig.lib.json} +0 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/@tool-box/tests/builder.abstract.util.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/datetime/datetime.edge.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/failures/dummies/failure.dummy.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/failures/failure.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/metadata/metadata-uv.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/metadata/metadata.edge.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/user/email.edge.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/builders/user/username.edge.builder.d.ts.map +0 -1
- package/src/@tool-box/tests/faker/faker.d.ts.map +0 -1
- package/src/@tool-box/utils/convert-units/convert-units.d.ts.map +0 -1
- package/src/@tool-box/utils/datatypes/boolean-utils.d.ts.map +0 -1
- package/src/@tool-box/utils/datatypes/generic-types.d.ts.map +0 -1
- package/src/@tool-box/utils/datatypes/plainify.d.ts.map +0 -1
- package/src/@tool-box/utils/datatypes/string-utils.d.ts.map +0 -1
- package/src/@tool-box/utils/datetime/mappers/month.mapper.d.ts.map +0 -1
- package/src/@tool-box/utils/datetime/mappers/points/month-abbreviation.enum.d.ts.map +0 -1
- package/src/@tool-box/utils/datetime/mappers/points/month-number.enum.d.ts.map +0 -1
- package/src/@tool-box/utils/ducts/common.d.ts.map +0 -1
- package/src/@tool-box/utils/ducts/optional-type.d.ts.map +0 -1
- package/src/@tool-box/utils/ducts/return-type.d.ts.map +0 -1
- package/src/@tool-box/utils/http-provider/http-provider-failure-response.d.ts.map +0 -1
- package/src/@tool-box/utils/http-provider/http-provider-success-response.d.ts.map +0 -1
- package/src/@tool-box/utils/http-provider/http-provider.d.ts.map +0 -1
- package/src/@tool-box/utils/logger/index.d.ts.map +0 -1
- package/src/@tool-box/utils/map/map.abstract.d.ts.map +0 -1
- package/src/@tool-box/utils/random/random.d.ts.map +0 -1
- package/src/@tool-box/utils/type-guard/guardian-exception.d.ts.map +0 -1
- package/src/@tool-box/utils/type-guard/guardian.d.ts.map +0 -1
- package/src/@tool-box/utils/type-guard/guardian.type.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-cron-expression.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-date-string.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-password-match.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-password-policy.validator.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-schedule.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-time-string.d.ts.map +0 -1
- package/src/@tool-box/utils/validators/is-ulid.d.ts.map +0 -1
- package/src/index.d.ts.map +0 -1
- package/src/objects/@common/edges/email.edge.d.ts.map +0 -1
- package/src/objects/@common/edges/ulid.sketch.edge.d.ts.map +0 -1
- package/src/objects/@common/edges/url.edge.d.ts.map +0 -1
- package/src/objects/@common/edges/username.edge.d.ts.map +0 -1
- package/src/objects/@common/edges/uuid.sketch.edge.d.ts.map +0 -1
- package/src/objects/@common/points/environment.point.d.ts.map +0 -1
- package/src/objects/@common/points/header-token-name.point.d.ts.map +0 -1
- package/src/objects/@common/points/http-status-codes.point.d.ts.map +0 -1
- package/src/objects/amount/amount-value.edge.d.ts.map +0 -1
- package/src/objects/amount/amount.edge.d.ts.map +0 -1
- package/src/objects/amount/amount.polygon.d.ts.map +0 -1
- package/src/objects/amount/amount.uv.d.ts.map +0 -1
- package/src/objects/amount/points/duration-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/energy-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/length-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/mass-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/month-name.point.d.ts.map +0 -1
- package/src/objects/amount/points/object-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/units.point.d.ts.map +0 -1
- package/src/objects/amount/points/volume-unit.point.d.ts.map +0 -1
- package/src/objects/amount/points/week-day.point.d.ts.map +0 -1
- package/src/objects/datetime/edges/datetime.edge.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/day/day-name-to-english.mapper.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/day/day-name-to-portuguese.mapper.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/day/today-to-language.mapper.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/holidays-country.type.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/month/month-to-english.mapper.d.ts.map +0 -1
- package/src/objects/datetime/edges/locale/month/month-to-portuguese.mapper.d.ts.map +0 -1
- package/src/objects/datetime/points/month-name.enum.d.ts.map +0 -1
- package/src/objects/datetime/points/week-day.enum.d.ts.map +0 -1
- package/src/objects/failure/edges/failure.abstract.d.ts.map +0 -1
- package/src/objects/failure/edges/failure.abstract.polygon.d.ts.map +0 -1
- package/src/objects/language/points/language.point.d.ts.map +0 -1
- package/src/objects/metadata/metadata.edge.d.ts.map +0 -1
- package/src/objects/metadata/metadata.polygon.d.ts.map +0 -1
- package/src/objects/metadata/metadata.uv.d.ts.map +0 -1
- package/src/objects/password/password.edge.d.ts.map +0 -1
- package/src/objects/password/password.polygon.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-consecutive-chars-step.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-date-step.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-phone-step.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-repeated-chars-step.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-string-step.d.ts.map +0 -1
- package/src/objects/password/steps/not-allowing-these-chars-step.d.ts.map +0 -1
- package/src/objects/password/steps/numeric-step.d.ts.map +0 -1
- package/src/objects/password/steps/with-at-least-one-letter-step.d.ts.map +0 -1
- package/src/objects/password/steps/with-at-least-one-number-digit-step.d.ts.map +0 -1
- package/src/objects/password/steps/with-at-least-one-special-char-step.d.ts.map +0 -1
- package/src/objects/password/steps/with-length-step.d.ts.map +0 -1
- package/src/objects/password/validation-step.d.ts.map +0 -1
- package/src/objects/password/validation-step.type.d.ts.map +0 -1
- package/src/objects/primitives/boolean.edge.sketch.d.ts.map +0 -1
- package/src/objects/primitives/datetime.edge.sketch.d.ts.map +0 -1
- package/src/objects/primitives/number.edge.sketch.d.ts.map +0 -1
- package/src/objects/primitives/string.edge.sketch.d.ts.map +0 -1
- package/src/objects/scheduling/scheduling.edge.d.ts.map +0 -1
- package/src/objects/scheduling/scheduling.edge.failure.d.ts.map +0 -1
- package/src/objects/time/time.edge.d.ts.map +0 -1
- package/src/objects-interface/edges/edge.abstract.d.ts.map +0 -1
- package/src/objects-interface/face.abstract.d.ts.map +0 -1
- package/src/objects-interface/solid.abstract.d.ts.map +0 -1
- package/src/objects-interface/uv.abstract.d.ts.map +0 -1
- package/src/objects-interface/vertices/vertex.abstract.d.ts.map +0 -1
- package/src/shared/payload.abstract.d.ts.map +0 -1
- package/src/shared/request.abstract.d.ts.map +0 -1
- package/src/shared/response.abstract.d.ts.map +0 -1
- /package/{tsconfig-backend.json → tsconfig.backend.json} +0 -0
- /package/{tsconfig-mobile.json → tsconfig.mobile.json} +0 -0
- /package/{tsconfig-web.json → tsconfig.web.json} +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringEdgeSketch = void 0;
|
|
4
|
+
class StringEdgeSketch {
|
|
5
|
+
value;
|
|
6
|
+
constructor(value) {
|
|
7
|
+
this.value = value;
|
|
8
|
+
this.sanitize();
|
|
9
|
+
this.validate();
|
|
10
|
+
}
|
|
11
|
+
// ==================== Getters ====================
|
|
12
|
+
/**
|
|
13
|
+
* Retorna o valor da string.
|
|
14
|
+
* @returns String interna do edge
|
|
15
|
+
* @example
|
|
16
|
+
* new MyStringEdge("hello").toString() // "hello"
|
|
17
|
+
*/
|
|
18
|
+
toString() {
|
|
19
|
+
return this.value;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Retorna o comprimento da string.
|
|
23
|
+
* @returns Número de caracteres da string
|
|
24
|
+
* @example
|
|
25
|
+
* new MyStringEdge("hello").length() // 5
|
|
26
|
+
*/
|
|
27
|
+
length() {
|
|
28
|
+
return this.value.length;
|
|
29
|
+
}
|
|
30
|
+
// ==================== Verificações ====================
|
|
31
|
+
/**
|
|
32
|
+
* Verifica se a string contém uma substring específica.
|
|
33
|
+
* @param value - Substring a ser procurada
|
|
34
|
+
* @returns true se a substring foi encontrada, false caso contrário
|
|
35
|
+
* @example
|
|
36
|
+
* new MyStringEdge("hello world").has("world") // true
|
|
37
|
+
* new MyStringEdge("hello world").has("foo") // false
|
|
38
|
+
*/
|
|
39
|
+
has(value) {
|
|
40
|
+
return this.value.includes(value); // 🐛 fix: !indexOf() falha quando index é 0
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Verifica se a string começa com uma substring específica.
|
|
44
|
+
* @param value - Substring a ser verificada no início
|
|
45
|
+
* @returns true se a string começa com a substring, false caso contrário
|
|
46
|
+
* @example
|
|
47
|
+
* new MyStringEdge("hello world").startsWith("hello") // true
|
|
48
|
+
* new MyStringEdge("hello world").startsWith("world") // false
|
|
49
|
+
*/
|
|
50
|
+
startsWith(value) {
|
|
51
|
+
return this.value.startsWith(value);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Verifica se a string termina com uma substring específica.
|
|
55
|
+
* @param value - Substring a ser verificada no final
|
|
56
|
+
* @returns true se a string termina com a substring, false caso contrário
|
|
57
|
+
* @example
|
|
58
|
+
* new MyStringEdge("hello world").endsWith("world") // true
|
|
59
|
+
* new MyStringEdge("hello world").endsWith("hello") // false
|
|
60
|
+
*/
|
|
61
|
+
endsWith(value) {
|
|
62
|
+
return this.value.endsWith(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Verifica se a string é igual a outra (case-sensitive).
|
|
66
|
+
* @param value - String para comparação
|
|
67
|
+
* @returns true se as strings são iguais, false caso contrário
|
|
68
|
+
* @example
|
|
69
|
+
* new MyStringEdge("hello").isEqual("hello") // true
|
|
70
|
+
* new MyStringEdge("hello").isEqual("Hello") // false
|
|
71
|
+
*/
|
|
72
|
+
isEqual(value) {
|
|
73
|
+
return this.value === value;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Verifica se a string é igual a outra ignorando maiúsculas/minúsculas.
|
|
77
|
+
* @param value - String para comparação
|
|
78
|
+
* @returns true se as strings são iguais (case-insensitive), false caso contrário
|
|
79
|
+
* @example
|
|
80
|
+
* new MyStringEdge("hello").isEqualIgnoreCase("HELLO") // true
|
|
81
|
+
* new MyStringEdge("hello").isEqualIgnoreCase("world") // false
|
|
82
|
+
*/
|
|
83
|
+
isEqualIgnoreCase(value) {
|
|
84
|
+
return this.value.toLowerCase() === value.toLowerCase();
|
|
85
|
+
}
|
|
86
|
+
// ==================== Extração ====================
|
|
87
|
+
/**
|
|
88
|
+
* Extrai uma substring entre dois delimitadores (exclusivo).
|
|
89
|
+
* @param start - Delimitador de início (não incluído no resultado)
|
|
90
|
+
* @param end - Delimitador de fim (não incluído no resultado)
|
|
91
|
+
* @returns Substring entre os delimitadores
|
|
92
|
+
* @example
|
|
93
|
+
* new MyStringEdge("[hello]").extract("[", "]") // "hello"
|
|
94
|
+
* new MyStringEdge("(foo bar)").extract("(", ")") // "foo bar"
|
|
95
|
+
*/
|
|
96
|
+
extract(start, end) {
|
|
97
|
+
const indexStart = this.value.indexOf(start) + start.length; // 🐛 fix: incluir tamanho do delimitador
|
|
98
|
+
const indexEnd = this.value.lastIndexOf(end); // 🐛 fix: remover + 1 que incluía o char final
|
|
99
|
+
return this.value.substring(indexStart, indexEnd);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Retorna uma fatia da string entre dois índices.
|
|
103
|
+
* @param start - Índice inicial (inclusivo)
|
|
104
|
+
* @param end - Índice final (exclusivo, opcional)
|
|
105
|
+
* @returns Substring entre os índices fornecidos
|
|
106
|
+
* @example
|
|
107
|
+
* new MyStringEdge("hello world").slice(0, 5) // "hello"
|
|
108
|
+
* new MyStringEdge("hello world").slice(6) // "world"
|
|
109
|
+
*/
|
|
110
|
+
slice(start, end) {
|
|
111
|
+
return this.value.slice(start, end);
|
|
112
|
+
}
|
|
113
|
+
// ==================== Transformação ====================
|
|
114
|
+
/**
|
|
115
|
+
* Remove todas as ocorrências das substrings fornecidas.
|
|
116
|
+
* @param substrings - Array de substrings a serem removidas
|
|
117
|
+
* @returns Nova string sem as substrings fornecidas
|
|
118
|
+
* @example
|
|
119
|
+
* new MyStringEdge("hello world").remove(["hello", " "]) // "world"
|
|
120
|
+
* new MyStringEdge("foo-bar_baz").remove(["-", "_"]) // "foobarbaz"
|
|
121
|
+
*/
|
|
122
|
+
remove(substrings) {
|
|
123
|
+
return substrings.reduce(
|
|
124
|
+
// 🐛 fix: regex com [...] quebra para substrings com mais de 1 char
|
|
125
|
+
(acc, substring) => acc.split(substring).join(""), this.value);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Substitui a primeira ocorrência de uma substring por outra.
|
|
129
|
+
* @param search - Substring a ser substituída
|
|
130
|
+
* @param replacement - Substring substituta
|
|
131
|
+
* @returns Nova string com a primeira ocorrência substituída
|
|
132
|
+
* @example
|
|
133
|
+
* new MyStringEdge("foo bar foo").replace("foo", "baz") // "baz bar foo"
|
|
134
|
+
*/
|
|
135
|
+
replace(search, replacement) {
|
|
136
|
+
return this.value.replace(search, replacement);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Substitui todas as ocorrências de uma substring por outra.
|
|
140
|
+
* @param search - Substring a ser substituída
|
|
141
|
+
* @param replacement - Substring substituta
|
|
142
|
+
* @returns Nova string com todas as ocorrências substituídas
|
|
143
|
+
* @example
|
|
144
|
+
* new MyStringEdge("foo bar foo").replaceAll("foo", "baz") // "baz bar baz"
|
|
145
|
+
*/
|
|
146
|
+
replaceAll(search, replacement) {
|
|
147
|
+
return this.value.split(search).join(replacement);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Converte a string para letras maiúsculas.
|
|
151
|
+
* @returns String em maiúsculas
|
|
152
|
+
* @example
|
|
153
|
+
* new MyStringEdge("hello").toUpperCase() // "HELLO"
|
|
154
|
+
*/
|
|
155
|
+
toUpperCase() {
|
|
156
|
+
return this.value.toUpperCase();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Converte a string para letras minúsculas.
|
|
160
|
+
* @returns String em minúsculas
|
|
161
|
+
* @example
|
|
162
|
+
* new MyStringEdge("HELLO").toLowerCase() // "hello"
|
|
163
|
+
*/
|
|
164
|
+
toLowerCase() {
|
|
165
|
+
return this.value.toLowerCase();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Reverte os caracteres da string.
|
|
169
|
+
* @returns String com os caracteres em ordem inversa
|
|
170
|
+
* @example
|
|
171
|
+
* new MyStringEdge("hello").reverse() // "olleh"
|
|
172
|
+
*/
|
|
173
|
+
reverse() {
|
|
174
|
+
return this.value.split("").reverse().join("");
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Trunca a string para um comprimento máximo, adicionando "..." ao final.
|
|
178
|
+
* Se a string já for menor ou igual ao comprimento, retorna sem alteração.
|
|
179
|
+
* @param length - Comprimento máximo da string resultante (incluindo "...")
|
|
180
|
+
* @returns String truncada com "..." se necessário
|
|
181
|
+
* @example
|
|
182
|
+
* new MyStringEdge("Hello World").truncate(8) // "Hello..."
|
|
183
|
+
* new MyStringEdge("Hi").truncate(8) // "Hi"
|
|
184
|
+
*/
|
|
185
|
+
truncate(length) {
|
|
186
|
+
if (this.value.length <= length)
|
|
187
|
+
return this.value;
|
|
188
|
+
return `${this.value.substring(0, length - 3)}...`;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Conta o número de ocorrências de uma substring na string.
|
|
192
|
+
* @param substring - Substring a ser contada
|
|
193
|
+
* @returns Número de ocorrências encontradas
|
|
194
|
+
* @example
|
|
195
|
+
* new MyStringEdge("hello world hello").countOccurrences("hello") // 2
|
|
196
|
+
*/
|
|
197
|
+
countOccurrences(substring) {
|
|
198
|
+
if (substring.length === 0)
|
|
199
|
+
return 0;
|
|
200
|
+
return this.value.split(substring).length - 1;
|
|
201
|
+
}
|
|
202
|
+
// ==================== Privados ====================
|
|
203
|
+
/**
|
|
204
|
+
* Remove espaços extras no início e no fim da string.
|
|
205
|
+
*/
|
|
206
|
+
sanitize() {
|
|
207
|
+
this.value = this.value.trim();
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Valida se a string não está vazia após o sanitize.
|
|
211
|
+
* @throws {TypeError} Se a string estiver vazia
|
|
212
|
+
*/
|
|
213
|
+
validate() {
|
|
214
|
+
if (this.value.length <= 0) {
|
|
215
|
+
throw new TypeError(`${this.constructor.name} should not be empty.`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.StringEdgeSketch = StringEdgeSketch;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Optional } from "
|
|
2
|
-
import { Return } from "
|
|
3
|
-
import { DatetimeEdge } from "
|
|
4
|
-
import { FailureAbstract } from "
|
|
5
|
-
import { StringEdgeSketch } from "
|
|
6
|
-
import { TimeEdge } from "
|
|
1
|
+
import { Optional } from "../../@tool-box/utils/ducts/optional-type";
|
|
2
|
+
import { Return } from "../../@tool-box/utils/ducts/return-type";
|
|
3
|
+
import { DatetimeEdge } from "../../objects/datetime/edges/datetime.edge";
|
|
4
|
+
import { FailureAbstract } from "../../objects/failure/edges/failure.abstract";
|
|
5
|
+
import { StringEdgeSketch } from "../../objects/primitives/string.edge.sketch";
|
|
6
|
+
import { TimeEdge } from "../../objects/time/time.edge";
|
|
7
7
|
export declare class SchedulingEdge extends StringEdgeSketch {
|
|
8
8
|
protected _cronExpression: string;
|
|
9
9
|
expiresInPacked: Optional<DatetimeEdge>;
|
|
@@ -159,4 +159,3 @@ export declare class SchedulingEdge extends StringEdgeSketch {
|
|
|
159
159
|
*/
|
|
160
160
|
static monthly(dayOfMonth: number, time: TimeEdge): SchedulingEdge;
|
|
161
161
|
}
|
|
162
|
-
//# sourceMappingURL=scheduling.edge.d.ts.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { FailureAbstract } from "
|
|
1
|
+
import { FailureAbstract } from "../../objects/failure/edges/failure.abstract";
|
|
2
2
|
export declare class RecurringSchedulingEdgeFailure extends FailureAbstract {
|
|
3
3
|
constructor(schedule: string, error?: any);
|
|
4
4
|
}
|
|
5
|
-
//# sourceMappingURL=scheduling.edge.failure.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecurringSchedulingEdgeFailure = void 0;
|
|
4
|
+
const failure_abstract_1 = require("../../objects/failure/edges/failure.abstract");
|
|
5
|
+
class RecurringSchedulingEdgeFailure extends failure_abstract_1.FailureAbstract {
|
|
6
|
+
constructor(schedule, error) {
|
|
7
|
+
super({
|
|
8
|
+
failureClass: RecurringSchedulingEdgeFailure,
|
|
9
|
+
message: `${schedule} is not a recurring schedule`,
|
|
10
|
+
stackTrace: error,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.RecurringSchedulingEdgeFailure = RecurringSchedulingEdgeFailure;
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchedulingEdge = void 0;
|
|
4
|
+
const cron_parser_1 = require("cron-parser");
|
|
5
|
+
const optional_type_1 = require("../../@tool-box/utils/ducts/optional-type");
|
|
6
|
+
const return_type_1 = require("../../@tool-box/utils/ducts/return-type");
|
|
7
|
+
const datetime_edge_1 = require("../../objects/datetime/edges/datetime.edge");
|
|
8
|
+
const string_edge_sketch_1 = require("../../objects/primitives/string.edge.sketch");
|
|
9
|
+
const time_edge_1 = require("../../objects/time/time.edge");
|
|
10
|
+
class SchedulingEdge extends string_edge_sketch_1.StringEdgeSketch {
|
|
11
|
+
_cronExpression;
|
|
12
|
+
expiresInPacked = optional_type_1.Nothing;
|
|
13
|
+
constructor(_cronExpression) {
|
|
14
|
+
// normaliza espaços múltiplos para evitar inconsistência de validação
|
|
15
|
+
super(_cronExpression.replace(/\s+/g, " "));
|
|
16
|
+
this._cronExpression = _cronExpression;
|
|
17
|
+
this.validateCronExpression();
|
|
18
|
+
}
|
|
19
|
+
validateCronExpression() {
|
|
20
|
+
try {
|
|
21
|
+
cron_parser_1.CronExpressionParser.parse(this.toString());
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
throw new Error(`${this.toString()} should be a valid Cron Expression.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// ==================== Verificações ====================
|
|
28
|
+
/**
|
|
29
|
+
* Verifica se o agendamento é recorrente (baseado em expressão cron).
|
|
30
|
+
* @returns true se o agendamento é recorrente, false se é um datetime fixo
|
|
31
|
+
* @example
|
|
32
|
+
* new ScheduleEdge(new CronExpressionEdge("0 8 * * *")).isRecurrent() // true
|
|
33
|
+
* new ScheduleEdge(new DatetimeEdge(new Date())).isRecurrent() // false
|
|
34
|
+
*/
|
|
35
|
+
isRecurrent() {
|
|
36
|
+
return this.expiresInPacked.hasSomething();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Verifica se o agendamento é um evento único (baseado no momento de expiracao).
|
|
40
|
+
* @returns true se o agendamento é um evento único, false se é recorrente
|
|
41
|
+
*/
|
|
42
|
+
isOneTime() {
|
|
43
|
+
return this.expiresInPacked.hasNothing();
|
|
44
|
+
}
|
|
45
|
+
// ==================== Ocorrências ====================
|
|
46
|
+
/**
|
|
47
|
+
* Retorna a próxima ocorrência de um agendamento recorrente.
|
|
48
|
+
* @returns Success com a próxima ocorrência ou Failure se o agendamento não for recorrente
|
|
49
|
+
* @example
|
|
50
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
51
|
+
* schedule.nextOccurrence() // Success(DatetimeEdge com a próxima ocorrência às 8h)
|
|
52
|
+
*/
|
|
53
|
+
nextOccurrence() {
|
|
54
|
+
const cronDate = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString()).next();
|
|
55
|
+
return (0, return_type_1.Success)(new datetime_edge_1.DatetimeEdge(cronDate.toDate()));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Retorna as próximas N ocorrências de um agendamento recorrente.
|
|
59
|
+
* @param quantity - Número de ocorrências a retornar
|
|
60
|
+
* @returns Success com array das próximas ocorrências ou Failure se não for recorrente
|
|
61
|
+
* @example
|
|
62
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
63
|
+
* schedule.nextOccurrences(3) // Success([DatetimeEdge, DatetimeEdge, DatetimeEdge])
|
|
64
|
+
*/
|
|
65
|
+
nextOccurrences(quantity) {
|
|
66
|
+
const cronDates = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString()).take(quantity);
|
|
67
|
+
return (0, return_type_1.Success)(cronDates.map((cronDate) => new datetime_edge_1.DatetimeEdge(cronDate.toDate())));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Retorna a ocorrência anterior de um agendamento recorrente.
|
|
71
|
+
* @returns Success com a ocorrência anterior ou Failure se o agendamento não for recorrente
|
|
72
|
+
* @example
|
|
73
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
74
|
+
* schedule.previousOccurrence() // Success(DatetimeEdge com a última ocorrência às 8h)
|
|
75
|
+
*/
|
|
76
|
+
previousOccurrence() {
|
|
77
|
+
const cronDate = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString()).prev();
|
|
78
|
+
return (0, return_type_1.Success)(new datetime_edge_1.DatetimeEdge(cronDate.toDate()));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Retorna as N ocorrências anteriores de um agendamento recorrente.
|
|
82
|
+
* @param quantity - Número de ocorrências a retornar
|
|
83
|
+
* @returns Success com array das ocorrências anteriores ou Failure se não for recorrente
|
|
84
|
+
* @example
|
|
85
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
86
|
+
* schedule.previousOccurrences(3) // Success([DatetimeEdge, DatetimeEdge, DatetimeEdge])
|
|
87
|
+
*/
|
|
88
|
+
previousOccurrences(quantity) {
|
|
89
|
+
const cronDates = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString()).take(-quantity);
|
|
90
|
+
return (0, return_type_1.Success)(cronDates.map((cronDate) => new datetime_edge_1.DatetimeEdge(cronDate.toDate())));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Retorna todas as ocorrências dentro de um intervalo de datas.
|
|
94
|
+
* @param start - Data de início do intervalo
|
|
95
|
+
* @param end - Data de fim do intervalo
|
|
96
|
+
* @returns Success com array das ocorrências no intervalo ou Failure se não for recorrente
|
|
97
|
+
* @example
|
|
98
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
99
|
+
* schedule.occurrencesBetween(startDate, endDate)
|
|
100
|
+
* // Success([DatetimeEdge, DatetimeEdge, ...])
|
|
101
|
+
*/
|
|
102
|
+
occurrencesBetween(start, end) {
|
|
103
|
+
const interval = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString(), {
|
|
104
|
+
currentDate: start.toDate(),
|
|
105
|
+
endDate: end.toDate(),
|
|
106
|
+
});
|
|
107
|
+
const occurrences = [];
|
|
108
|
+
while (true) {
|
|
109
|
+
try {
|
|
110
|
+
const next = interval.next();
|
|
111
|
+
occurrences.push(new datetime_edge_1.DatetimeEdge(next.toDate()));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return (0, return_type_1.Success)(occurrences);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Conta quantas ocorrências existem dentro de um intervalo de datas.
|
|
121
|
+
* @param start - Data de início do intervalo
|
|
122
|
+
* @param end - Data de fim do intervalo
|
|
123
|
+
* @returns Success com o número de ocorrências ou Failure se não for recorrente
|
|
124
|
+
* @example
|
|
125
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * 1-5"));
|
|
126
|
+
* schedule.countOccurrencesBetween(startDate, endDate) // Success(5) em uma semana
|
|
127
|
+
*/
|
|
128
|
+
countOccurrencesBetween(start, end) {
|
|
129
|
+
const resultWrapped = this.occurrencesBetween(start, end);
|
|
130
|
+
if (!resultWrapped.hasSuccess)
|
|
131
|
+
return resultWrapped;
|
|
132
|
+
return (0, return_type_1.Success)(resultWrapped.unwrap().values.length);
|
|
133
|
+
}
|
|
134
|
+
// ==================== Getters ====================
|
|
135
|
+
/**
|
|
136
|
+
* Retorna o horário do agendamento como um TimeEdge.
|
|
137
|
+
* @returns TimeEdge com hora e minuto do agendamento
|
|
138
|
+
* @example
|
|
139
|
+
* new ScheduleEdge(new CronExpressionEdge("0 8 * * *")).getTime()
|
|
140
|
+
* // TimeEdge("08:00")
|
|
141
|
+
*/
|
|
142
|
+
getTime() {
|
|
143
|
+
const interval = cron_parser_1.CronExpressionParser.parse(this._cronExpression.toString()).fields;
|
|
144
|
+
const hour = String(interval.hour.values.toString()).padStart(2, "0");
|
|
145
|
+
const minute = String(interval.minute.values.toString()).padStart(2, "0");
|
|
146
|
+
return new time_edge_1.TimeEdge(`${hour}:${minute}`);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Retorna os campos da expressão cron.
|
|
150
|
+
*/
|
|
151
|
+
getFields() {
|
|
152
|
+
return this.toString().split(/\s+/);
|
|
153
|
+
}
|
|
154
|
+
// ==================== Cálculo de Execução ====================
|
|
155
|
+
/**
|
|
156
|
+
* Retorna a próxima execução a partir de uma data base.
|
|
157
|
+
*/
|
|
158
|
+
nextDate(fromDate = new Date()) {
|
|
159
|
+
const interval = cron_parser_1.CronExpressionParser.parse(this.toString(), {
|
|
160
|
+
currentDate: fromDate,
|
|
161
|
+
});
|
|
162
|
+
return interval.next().toDate();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Retorna a execução anterior a partir de uma data base.
|
|
166
|
+
*/
|
|
167
|
+
previousDate(fromDate = new Date()) {
|
|
168
|
+
const interval = cron_parser_1.CronExpressionParser.parse(this.toString(), {
|
|
169
|
+
currentDate: fromDate,
|
|
170
|
+
});
|
|
171
|
+
return interval.prev().toDate();
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Retorna as próximas N execuções.
|
|
175
|
+
*/
|
|
176
|
+
nextDates(count, fromDate = new Date()) {
|
|
177
|
+
if (count <= 0)
|
|
178
|
+
return [];
|
|
179
|
+
const interval = cron_parser_1.CronExpressionParser.parse(this.toString(), {
|
|
180
|
+
currentDate: fromDate,
|
|
181
|
+
});
|
|
182
|
+
const dates = [];
|
|
183
|
+
for (let i = 0; i < count; i++) {
|
|
184
|
+
dates.push(interval.next().toDate());
|
|
185
|
+
}
|
|
186
|
+
return dates;
|
|
187
|
+
}
|
|
188
|
+
// ==================== Métodos Estáticos ====================
|
|
189
|
+
/**
|
|
190
|
+
* Valida expressão cron sem lançar exceção.
|
|
191
|
+
*/
|
|
192
|
+
static isValid(expression) {
|
|
193
|
+
try {
|
|
194
|
+
cron_parser_1.CronExpressionParser.parse(expression.trim().replace(/\s+/g, " "));
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Retorna a CronExpressionEdge do agendamento se for recorrente.
|
|
203
|
+
* @returns Success com a CronExpressionEdge ou Failure se for evento único
|
|
204
|
+
* @example
|
|
205
|
+
* const cron = new CronExpressionEdge("0 8 * * *");
|
|
206
|
+
* new ScheduleEdge(cron).getCronExpression() // CronExpressionEdge("0 8 * * *")
|
|
207
|
+
*/
|
|
208
|
+
getCronExpression() {
|
|
209
|
+
return this._cronExpression;
|
|
210
|
+
}
|
|
211
|
+
// ==================== Clonagem e Imutabilidade ====================
|
|
212
|
+
/**
|
|
213
|
+
* Cria uma cópia independente desta instância de ScheduleEdge.
|
|
214
|
+
* @returns Nova instância com o mesmo momento interno
|
|
215
|
+
* @example
|
|
216
|
+
* const schedule = new ScheduleEdge(new CronExpressionEdge("0 8 * * *"));
|
|
217
|
+
* const clone = schedule.clone(); // instância independente
|
|
218
|
+
*/
|
|
219
|
+
clone() {
|
|
220
|
+
return new SchedulingEdge(this._cronExpression);
|
|
221
|
+
}
|
|
222
|
+
// ==================== Métodos Estáticos ====================
|
|
223
|
+
/**
|
|
224
|
+
* Cria um ScheduleEdge de evento único a partir de um objeto Datetime.
|
|
225
|
+
* @param datetime - Data e hora do evento único
|
|
226
|
+
* @returns Nova instância de ScheduleEdge para evento único
|
|
227
|
+
* @example
|
|
228
|
+
* ScheduleEdge.fromDatetime(new Datetime("2026-12-25T08:00:00"))
|
|
229
|
+
* // agendamento para o Natal de 2026 às 8h
|
|
230
|
+
*/
|
|
231
|
+
static fromDatetime(datetime) {
|
|
232
|
+
const date = datetime.toDate();
|
|
233
|
+
const minute = date.getMinutes();
|
|
234
|
+
const hour = date.getHours();
|
|
235
|
+
const day = date.getDate();
|
|
236
|
+
const month = date.getMonth() + 1;
|
|
237
|
+
const dayOfWeek = date.getDay();
|
|
238
|
+
const cron = `${minute} ${hour} ${day} ${month} ${dayOfWeek}`;
|
|
239
|
+
const scheduledFor = new SchedulingEdge(cron);
|
|
240
|
+
scheduledFor.expiresInPacked = (0, optional_type_1.Optional)(datetime);
|
|
241
|
+
return scheduledFor;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Cria um ScheduleEdge para agendamentos diários em um horário específico.
|
|
245
|
+
* @param time - Horário do agendamento no formato TimeEdge
|
|
246
|
+
* @returns Nova instância de ScheduleEdge com recorrência diária
|
|
247
|
+
* @example
|
|
248
|
+
* ScheduleEdge.daily(new TimeEdge("08:00")) // todos os dias às 8h -> "0 8 * * *"
|
|
249
|
+
*/
|
|
250
|
+
static daily(time) {
|
|
251
|
+
const expression = `${time.getMinutes()} ${time.getHours()} * * *`;
|
|
252
|
+
return new SchedulingEdge(expression);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Cria um ScheduleEdge para agendamentos semanais em um dia e horário específico.
|
|
256
|
+
* @param dayOfWeek - Dia da semana (0=domingo, 1=segunda, ..., 6=sábado)
|
|
257
|
+
* @param time - Horário do agendamento no formato TimeEdge
|
|
258
|
+
* @returns Nova instância de ScheduleEdge com recorrência semanal
|
|
259
|
+
* @example
|
|
260
|
+
* ScheduleEdge.weekly(1, new TimeEdge("08:00"))
|
|
261
|
+
* // toda segunda-feira às 8h -> "0 8 * * 1"
|
|
262
|
+
*/
|
|
263
|
+
static weekly(dayOfWeek, time) {
|
|
264
|
+
const expression = `${time.getMinutes()} ${time.getHours()} * * ${dayOfWeek}`;
|
|
265
|
+
return new SchedulingEdge(expression);
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Cria um ScheduleEdge para agendamentos mensais em um dia e horário específico.
|
|
269
|
+
* @param dayOfMonth - Dia do mês (1-31)
|
|
270
|
+
* @param time - Horário do agendamento no formato TimeEdge
|
|
271
|
+
* @returns Nova instância de ScheduleEdge com recorrência mensal
|
|
272
|
+
* @example
|
|
273
|
+
* ScheduleEdge.monthly(15, new TimeEdge("08:00"))
|
|
274
|
+
* // todo dia 15 de cada mês às 8h -> "0 8 15 * *"
|
|
275
|
+
*/
|
|
276
|
+
static monthly(dayOfMonth, time) {
|
|
277
|
+
const expression = `${time.getMinutes()} ${time.getHours()} ${dayOfMonth} * *`;
|
|
278
|
+
return new SchedulingEdge(expression);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
exports.SchedulingEdge = SchedulingEdge;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SchedulingEdge } from "
|
|
1
|
+
import { SchedulingEdge } from "../../objects/scheduling/scheduling.edge";
|
|
2
2
|
export declare class TimeEdge {
|
|
3
3
|
private readonly value;
|
|
4
4
|
constructor(value: string);
|
|
@@ -294,4 +294,3 @@ export declare class TimeEdge {
|
|
|
294
294
|
*/
|
|
295
295
|
private isValidTimeFormat;
|
|
296
296
|
}
|
|
297
|
-
//# sourceMappingURL=time.edge.d.ts.map
|