@effect-app/infra 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +11 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-314902b6271c341511f7398a50469024 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-3f072cc7afa09b6adaead0527ab9df83 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-74c3c295c110fc861b6a4c673afc3e24 +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-bf6dae8cb9ea9740ceb39aefaf12716c +0 -0
- package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-cf9d1486029526079a5f68f2041dea02 +0 -0
- package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-b4710ed9fb3d0757c4bf23045c585670 +0 -0
- package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-ee17e5395bb1b7b36a4e2e22a6ae1449 +0 -0
- package/.jest-cache/haste-map-7dc16d7fae8c072843ed1c69eae73100-a8a4225b317477b49bca31f54559afb3-c16136699bb7f463be85273162b447c3 +0 -0
- package/.jest-cache/haste-map-9aa1e395a82e108eb49698982c574272-e2f1f4b6d87214e3c49442fed31f310c-f7435f46fc41ac5a13d06a49cae9a650 +0 -0
- package/.jest-cache/haste-map-9d206b45d610536c9ec65eec263c6964-a8a4225b317477b49bca31f54559afb3-3510506a330b44f1ae629033aac8fbb3 +0 -0
- package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-17b550b450b18840c25861aa6e835f0c +0 -0
- package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-4dc31290b1efc98335eb4c89167d75c3 +0 -0
- package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-997106edf4bbc31567a378146180e45e +0 -0
- package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-f0cd25414f9ed16c446940ca3aa23c1b +0 -0
- package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-2cac07d09e6384e2d37c49714edad0ba +0 -0
- package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-d7967c2976c5feac7161c964f0aa442f +0 -0
- package/.jest-cache/haste-map-fb1a173276d25bbff02f815600059283-938122bdc1c8836874b6585d7acb2e99-f705929cca05ce95ceaa6d520b560ce8 +0 -0
- package/.prettierignore +6 -0
- package/_cjs/_global.cjs +6 -0
- package/_cjs/_global.cjs.map +1 -0
- package/_cjs/_global.ext.cjs +6 -0
- package/_cjs/_global.ext.cjs.map +1 -0
- package/_cjs/_global.schema.cjs +5 -0
- package/_cjs/_global.schema.cjs.map +1 -0
- package/_cjs/errors.cjs +82 -0
- package/_cjs/errors.cjs.map +1 -0
- package/_cjs/ext.cjs +4 -0
- package/_cjs/ext.cjs.map +1 -0
- package/_cjs/index.cjs +6 -0
- package/_cjs/index.cjs.map +1 -0
- package/_cjs/lib/RequestContext.cjs +70 -0
- package/_cjs/lib/RequestContext.cjs.map +1 -0
- package/_cjs/lib/api/authorization.jwt.cjs +44 -0
- package/_cjs/lib/api/authorization.jwt.cjs.map +1 -0
- package/_cjs/lib/api/defaultErrorHandler.cjs +45 -0
- package/_cjs/lib/api/defaultErrorHandler.cjs.map +1 -0
- package/_cjs/lib/api/reportError.cjs +64 -0
- package/_cjs/lib/api/reportError.cjs.map +1 -0
- package/_cjs/lib/api/routing.cjs +262 -0
- package/_cjs/lib/api/routing.cjs.map +1 -0
- package/_cjs/lib/api/setupRequest.cjs +35 -0
- package/_cjs/lib/api/setupRequest.cjs.map +1 -0
- package/_cjs/lib/api/util.cjs +17 -0
- package/_cjs/lib/api/util.cjs.map +1 -0
- package/_cjs/lib/api/writeDocs.cjs +31 -0
- package/_cjs/lib/api/writeDocs.cjs.map +1 -0
- package/_cjs/lib/errorReporter.cjs +72 -0
- package/_cjs/lib/errorReporter.cjs.map +1 -0
- package/_cjs/lib/ext/Array.cjs +30 -0
- package/_cjs/lib/ext/Array.cjs.map +1 -0
- package/_cjs/lib/fileUtil.cjs +36 -0
- package/_cjs/lib/fileUtil.cjs.map +1 -0
- package/_cjs/lib/filter/types/errors.cjs +6 -0
- package/_cjs/lib/filter/types/errors.cjs.map +1 -0
- package/_cjs/lib/filter/types/fields.cjs +6 -0
- package/_cjs/lib/filter/types/fields.cjs.map +1 -0
- package/_cjs/lib/filter/types/index.cjs +61 -0
- package/_cjs/lib/filter/types/index.cjs.map +1 -0
- package/_cjs/lib/filter/types/path/common.cjs +6 -0
- package/_cjs/lib/filter/types/path/common.cjs.map +1 -0
- package/_cjs/lib/filter/types/path/eager.cjs +6 -0
- package/_cjs/lib/filter/types/path/eager.cjs.map +1 -0
- package/_cjs/lib/filter/types/path/index.cjs +8 -0
- package/_cjs/lib/filter/types/path/index.cjs.map +1 -0
- package/_cjs/lib/filter/types/utils.cjs +6 -0
- package/_cjs/lib/filter/types/utils.cjs.map +1 -0
- package/_cjs/lib/filter/types/validator.cjs +6 -0
- package/_cjs/lib/filter/types/validator.cjs.map +1 -0
- package/_cjs/lib/filter.cjs +238 -0
- package/_cjs/lib/filter.cjs.map +1 -0
- package/_cjs/lib/instrument.cjs +20 -0
- package/_cjs/lib/instrument.cjs.map +1 -0
- package/_cjs/lib/rateLimit.cjs +88 -0
- package/_cjs/lib/rateLimit.cjs.map +1 -0
- package/_cjs/services/CUPS/service.cjs +15 -0
- package/_cjs/services/CUPS/service.cjs.map +1 -0
- package/_cjs/services/CUPS.cjs +113 -0
- package/_cjs/services/CUPS.cjs.map +1 -0
- package/_cjs/services/Cache.cjs +39 -0
- package/_cjs/services/Cache.cjs.map +1 -0
- package/_cjs/services/Emailer/Sendgrid.cjs +112 -0
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -0
- package/_cjs/services/Emailer/fake.cjs +24 -0
- package/_cjs/services/Emailer/fake.cjs.map +1 -0
- package/_cjs/services/Emailer/service.cjs +12 -0
- package/_cjs/services/Emailer/service.cjs.map +1 -0
- package/_cjs/services/Emailer.cjs +17 -0
- package/_cjs/services/Emailer.cjs.map +1 -0
- package/_cjs/services/Repository.cjs +247 -0
- package/_cjs/services/Repository.cjs.map +1 -0
- package/_cjs/services/ServiceBus.cjs +69 -0
- package/_cjs/services/ServiceBus.cjs.map +1 -0
- package/_cjs/services/Store/Cosmos.cjs +324 -0
- package/_cjs/services/Store/Cosmos.cjs.map +1 -0
- package/_cjs/services/Store/Cosmos.test.cjs +59 -0
- package/_cjs/services/Store/Cosmos.test.cjs.map +1 -0
- package/_cjs/services/Store/Disk.cjs +62 -0
- package/_cjs/services/Store/Disk.cjs.map +1 -0
- package/_cjs/services/Store/Memory.cjs +70 -0
- package/_cjs/services/Store/Memory.cjs.map +1 -0
- package/_cjs/services/Store/Redis.cjs +72 -0
- package/_cjs/services/Store/Redis.cjs.map +1 -0
- package/_cjs/services/Store/codeFilter.test.cjs +61 -0
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -0
- package/_cjs/services/Store/index.cjs +72 -0
- package/_cjs/services/Store/index.cjs.map +1 -0
- package/_cjs/services/Store/service.cjs +72 -0
- package/_cjs/services/Store/service.cjs.map +1 -0
- package/_cjs/services/Store/utils.cjs +78 -0
- package/_cjs/services/Store/utils.cjs.map +1 -0
- package/_cjs/services/Store.cjs +17 -0
- package/_cjs/services/Store.cjs.map +1 -0
- package/_cjs/services/memQueue.cjs +32 -0
- package/_cjs/services/memQueue.cjs.map +1 -0
- package/_cjs/test.arbs.cjs +32 -0
- package/_cjs/test.arbs.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicBoolean.cjs +14 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicBoolean.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicNumber.cjs +29 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicNumber.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicReference.cjs +32 -0
- package/_cjs/vendor/Cache/Cache/_internal/AtomicReference.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/CacheInternal.cjs +266 -0
- package/_cjs/vendor/Cache/Cache/_internal/CacheInternal.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/CacheState.cjs +31 -0
- package/_cjs/vendor/Cache/Cache/_internal/CacheState.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/KeySet.cjs +67 -0
- package/_cjs/vendor/Cache/Cache/_internal/KeySet.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/MapKey.cjs +44 -0
- package/_cjs/vendor/Cache/Cache/_internal/MapKey.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/_internal/MapValue.cjs +33 -0
- package/_cjs/vendor/Cache/Cache/_internal/MapValue.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/definition.cjs +13 -0
- package/_cjs/vendor/Cache/Cache/definition.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/operations/make.cjs +20 -0
- package/_cjs/vendor/Cache/Cache/operations/make.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/operations/makeWith.cjs +23 -0
- package/_cjs/vendor/Cache/Cache/operations/makeWith.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache/operations.cjs +28 -0
- package/_cjs/vendor/Cache/Cache/operations.cjs.map +1 -0
- package/_cjs/vendor/Cache/Cache.cjs +28 -0
- package/_cjs/vendor/Cache/Cache.cjs.map +1 -0
- package/_cjs/vendor/Cache/CacheStats/definition.cjs +13 -0
- package/_cjs/vendor/Cache/CacheStats/definition.cjs.map +1 -0
- package/_cjs/vendor/Cache/CacheStats.cjs +17 -0
- package/_cjs/vendor/Cache/CacheStats.cjs.map +1 -0
- package/_cjs/vendor/Cache/EntryStats/definition.cjs +11 -0
- package/_cjs/vendor/Cache/EntryStats/definition.cjs.map +1 -0
- package/_cjs/vendor/Cache/EntryStats.cjs +17 -0
- package/_cjs/vendor/Cache/EntryStats.cjs.map +1 -0
- package/_cjs/vendor/Cache/Lookup/definition.cjs +6 -0
- package/_cjs/vendor/Cache/Lookup/definition.cjs.map +1 -0
- package/_cjs/vendor/Cache/Lookup.cjs +17 -0
- package/_cjs/vendor/Cache/Lookup.cjs.map +1 -0
- package/_cjs/vendor/Cache/index.cjs +17 -0
- package/_cjs/vendor/Cache/index.cjs.map +1 -0
- package/_src/_global.ext.ts +34 -0
- package/_src/_global.schema.ts +10 -0
- package/_src/_global.ts +14 -0
- package/_src/errors.ts +50 -0
- package/_src/ext.ts +1 -0
- package/_src/index.ts +0 -0
- package/_src/lib/RequestContext.ts +132 -0
- package/_src/lib/api/authorization.jwt.ts +52 -0
- package/_src/lib/api/defaultErrorHandler.ts +92 -0
- package/_src/lib/api/reportError.ts +50 -0
- package/_src/lib/api/routing.ts +623 -0
- package/_src/lib/api/setupRequest.ts +22 -0
- package/_src/lib/api/util.ts +14 -0
- package/_src/lib/api/writeDocs.ts +26 -0
- package/_src/lib/errorReporter.ts +63 -0
- package/_src/lib/ext/Array.ts +32 -0
- package/_src/lib/fileUtil.ts +56 -0
- package/_src/lib/filter/types/errors.ts +47 -0
- package/_src/lib/filter/types/fields.ts +50 -0
- package/_src/lib/filter/types/index.ts +5 -0
- package/_src/lib/filter/types/path/common.ts +404 -0
- package/_src/lib/filter/types/path/eager.ts +146 -0
- package/_src/lib/filter/types/path/index.ts +14 -0
- package/_src/lib/filter/types/utils.ts +106 -0
- package/_src/lib/filter/types/validator.ts +46 -0
- package/_src/lib/filter.ts +323 -0
- package/_src/lib/instrument.ts +9 -0
- package/_src/lib/rateLimit.ts +126 -0
- package/_src/services/CUPS/service.ts +16 -0
- package/_src/services/CUPS.ts +105 -0
- package/_src/services/Cache.ts +45 -0
- package/_src/services/Emailer/Sendgrid.ts +123 -0
- package/_src/services/Emailer/fake.ts +14 -0
- package/_src/services/Emailer/service.ts +33 -0
- package/_src/services/Emailer.ts +1 -0
- package/_src/services/Repository.ts +513 -0
- package/_src/services/ServiceBus.ts +111 -0
- package/_src/services/Store/Cosmos.test.ts +91 -0
- package/_src/services/Store/Cosmos.ts +545 -0
- package/_src/services/Store/Disk.ts +81 -0
- package/_src/services/Store/Memory.ts +77 -0
- package/_src/services/Store/Redis.ts +92 -0
- package/_src/services/Store/codeFilter.test.ts +74 -0
- package/_src/services/Store/index.test.ts.bak +112 -0
- package/_src/services/Store/index.ts +62 -0
- package/_src/services/Store/service.ts +174 -0
- package/_src/services/Store/utils.ts +126 -0
- package/_src/services/Store.ts +1 -0
- package/_src/services/memQueue.ts +30 -0
- package/_src/test.arbs.ts +27 -0
- package/_src/vendor/Cache/Cache/_internal/AtomicBoolean.ts +7 -0
- package/_src/vendor/Cache/Cache/_internal/AtomicNumber.ts +28 -0
- package/_src/vendor/Cache/Cache/_internal/AtomicReference.ts +30 -0
- package/_src/vendor/Cache/Cache/_internal/CacheInternal.ts +293 -0
- package/_src/vendor/Cache/Cache/_internal/CacheState.ts +56 -0
- package/_src/vendor/Cache/Cache/_internal/KeySet.ts +58 -0
- package/_src/vendor/Cache/Cache/_internal/MapKey.ts +43 -0
- package/_src/vendor/Cache/Cache/_internal/MapValue.ts +39 -0
- package/_src/vendor/Cache/Cache/definition.ts +112 -0
- package/_src/vendor/Cache/Cache/operations/make.ts +17 -0
- package/_src/vendor/Cache/Cache/operations/makeWith.ts +32 -0
- package/_src/vendor/Cache/Cache/operations.ts +4 -0
- package/_src/vendor/Cache/Cache.ts +4 -0
- package/_src/vendor/Cache/CacheStats/definition.ts +23 -0
- package/_src/vendor/Cache/CacheStats.ts +3 -0
- package/_src/vendor/Cache/EntryStats/definition.ts +19 -0
- package/_src/vendor/Cache/EntryStats.ts +3 -0
- package/_src/vendor/Cache/Lookup/definition.ts +15 -0
- package/_src/vendor/Cache/Lookup.ts +3 -0
- package/_src/vendor/Cache/global.ts.bak +23 -0
- package/_src/vendor/Cache/index.ts +4 -0
- package/dist/_global.d.ts +10 -0
- package/dist/_global.d.ts.map +1 -0
- package/dist/_global.ext.d.ts +34 -0
- package/dist/_global.ext.d.ts.map +1 -0
- package/dist/_global.ext.js +2 -0
- package/dist/_global.js +12 -0
- package/dist/_global.schema.d.ts +6 -0
- package/dist/_global.schema.d.ts.map +1 -0
- package/dist/_global.schema.js +9 -0
- package/dist/errors.d.ts +41 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +51 -0
- package/dist/ext.d.ts +2 -0
- package/dist/ext.d.ts.map +1 -0
- package/dist/ext.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/lib/RequestContext.d.ts +122 -0
- package/dist/lib/RequestContext.d.ts.map +1 -0
- package/dist/lib/RequestContext.js +52 -0
- package/dist/lib/api/authorization.jwt.d.ts +7 -0
- package/dist/lib/api/authorization.jwt.d.ts.map +1 -0
- package/dist/lib/api/authorization.jwt.js +32 -0
- package/dist/lib/api/defaultErrorHandler.d.ts +8 -0
- package/dist/lib/api/defaultErrorHandler.d.ts.map +1 -0
- package/dist/lib/api/defaultErrorHandler.js +37 -0
- package/dist/lib/api/reportError.d.ts +32 -0
- package/dist/lib/api/reportError.d.ts.map +1 -0
- package/dist/lib/api/reportError.js +44 -0
- package/dist/lib/api/routing.d.ts +100 -0
- package/dist/lib/api/routing.d.ts.map +1 -0
- package/dist/lib/api/routing.js +248 -0
- package/dist/lib/api/setupRequest.d.ts +13 -0
- package/dist/lib/api/setupRequest.d.ts.map +1 -0
- package/dist/lib/api/setupRequest.js +25 -0
- package/dist/lib/api/util.d.ts +3 -0
- package/dist/lib/api/util.d.ts.map +1 -0
- package/dist/lib/api/util.js +14 -0
- package/dist/lib/api/writeDocs.d.ts +3 -0
- package/dist/lib/api/writeDocs.d.ts.map +1 -0
- package/dist/lib/api/writeDocs.js +23 -0
- package/dist/lib/errorReporter.d.ts +8 -0
- package/dist/lib/errorReporter.d.ts.map +1 -0
- package/dist/lib/errorReporter.js +45 -0
- package/dist/lib/ext/Array.d.ts +19 -0
- package/dist/lib/ext/Array.d.ts.map +1 -0
- package/dist/lib/ext/Array.js +21 -0
- package/dist/lib/fileUtil.d.ts +22 -0
- package/dist/lib/fileUtil.d.ts.map +1 -0
- package/dist/lib/fileUtil.js +23 -0
- package/dist/lib/filter/types/errors.d.ts +30 -0
- package/dist/lib/filter/types/errors.d.ts.map +1 -0
- package/dist/lib/filter/types/errors.js +2 -0
- package/dist/lib/filter/types/fields.d.ts +29 -0
- package/dist/lib/filter/types/fields.d.ts.map +1 -0
- package/dist/lib/filter/types/fields.js +2 -0
- package/dist/lib/filter/types/index.d.ts +6 -0
- package/dist/lib/filter/types/index.d.ts.map +1 -0
- package/dist/lib/filter/types/index.js +6 -0
- package/dist/lib/filter/types/path/common.d.ts +316 -0
- package/dist/lib/filter/types/path/common.d.ts.map +1 -0
- package/dist/lib/filter/types/path/common.js +2 -0
- package/dist/lib/filter/types/path/eager.d.ts +95 -0
- package/dist/lib/filter/types/path/eager.d.ts.map +1 -0
- package/dist/lib/filter/types/path/eager.js +2 -0
- package/dist/lib/filter/types/path/index.d.ts +4 -0
- package/dist/lib/filter/types/path/index.d.ts.map +1 -0
- package/dist/lib/filter/types/path/index.js +4 -0
- package/dist/lib/filter/types/utils.d.ts +68 -0
- package/dist/lib/filter/types/utils.d.ts.map +1 -0
- package/dist/lib/filter/types/utils.js +2 -0
- package/dist/lib/filter/types/validator.d.ts +30 -0
- package/dist/lib/filter/types/validator.d.ts.map +1 -0
- package/dist/lib/filter/types/validator.js +2 -0
- package/dist/lib/filter.d.ts +133 -0
- package/dist/lib/filter.d.ts.map +1 -0
- package/dist/lib/filter.js +171 -0
- package/dist/lib/instrument.d.ts +7 -0
- package/dist/lib/instrument.d.ts.map +1 -0
- package/dist/lib/instrument.js +12 -0
- package/dist/lib/rateLimit.d.ts +43 -0
- package/dist/lib/rateLimit.d.ts.map +1 -0
- package/dist/lib/rateLimit.js +76 -0
- package/dist/services/CUPS/service.d.ts +19 -0
- package/dist/services/CUPS/service.d.ts.map +1 -0
- package/dist/services/CUPS/service.js +5 -0
- package/dist/services/CUPS.d.ts +10 -0
- package/dist/services/CUPS.d.ts.map +1 -0
- package/dist/services/CUPS.js +89 -0
- package/dist/services/Cache.d.ts +28 -0
- package/dist/services/Cache.d.ts.map +1 -0
- package/dist/services/Cache.js +28 -0
- package/dist/services/Emailer/Sendgrid.d.ts +180 -0
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -0
- package/dist/services/Emailer/Sendgrid.js +102 -0
- package/dist/services/Emailer/fake.d.ts +7 -0
- package/dist/services/Emailer/fake.d.ts.map +1 -0
- package/dist/services/Emailer/fake.js +15 -0
- package/dist/services/Emailer/service.d.ts +41 -0
- package/dist/services/Emailer/service.d.ts.map +1 -0
- package/dist/services/Emailer/service.js +3 -0
- package/dist/services/Emailer.d.ts +2 -0
- package/dist/services/Emailer.d.ts.map +1 -0
- package/dist/services/Emailer.js +2 -0
- package/dist/services/Repository.d.ts +300 -0
- package/dist/services/Repository.d.ts.map +1 -0
- package/dist/services/Repository.js +193 -0
- package/dist/services/ServiceBus.d.ts +26 -0
- package/dist/services/ServiceBus.d.ts.map +1 -0
- package/dist/services/ServiceBus.js +53 -0
- package/dist/services/Store/Cosmos.d.ts +56 -0
- package/dist/services/Store/Cosmos.d.ts.map +1 -0
- package/dist/services/Store/Cosmos.js +321 -0
- package/dist/services/Store/Cosmos.test.d.ts.map +1 -0
- package/dist/services/Store/Disk.d.ts +14 -0
- package/dist/services/Store/Disk.d.ts.map +1 -0
- package/dist/services/Store/Disk.js +52 -0
- package/dist/services/Store/Memory.d.ts +17 -0
- package/dist/services/Store/Memory.d.ts.map +1 -0
- package/dist/services/Store/Memory.js +60 -0
- package/dist/services/Store/Redis.d.ts +12 -0
- package/dist/services/Store/Redis.d.ts.map +1 -0
- package/dist/services/Store/Redis.js +59 -0
- package/dist/services/Store/codeFilter.test.d.ts.map +1 -0
- package/dist/services/Store/index.d.ts +10 -0
- package/dist/services/Store/index.d.ts.map +1 -0
- package/dist/services/Store/index.js +52 -0
- package/dist/services/Store/service.d.ts +113 -0
- package/dist/services/Store/service.d.ts.map +1 -0
- package/dist/services/Store/service.js +63 -0
- package/dist/services/Store/utils.d.ts +14 -0
- package/dist/services/Store/utils.d.ts.map +1 -0
- package/dist/services/Store/utils.js +103 -0
- package/dist/services/Store.d.ts +2 -0
- package/dist/services/Store.d.ts.map +1 -0
- package/dist/services/Store.js +2 -0
- package/dist/services/memQueue.d.ts +18 -0
- package/dist/services/memQueue.d.ts.map +1 -0
- package/dist/services/memQueue.js +24 -0
- package/dist/test.arbs.d.ts +13 -0
- package/dist/test.arbs.d.ts.map +1 -0
- package/dist/test.arbs.js +22 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.d.ts +5 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.js +7 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicNumber.d.ts +8 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicNumber.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicNumber.js +22 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicReference.d.ts +10 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicReference.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/AtomicReference.js +25 -0
- package/dist/vendor/Cache/Cache/_internal/CacheInternal.d.ts +51 -0
- package/dist/vendor/Cache/Cache/_internal/CacheInternal.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/CacheInternal.js +253 -0
- package/dist/vendor/Cache/Cache/_internal/CacheState.d.ts +33 -0
- package/dist/vendor/Cache/Cache/_internal/CacheState.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/CacheState.js +21 -0
- package/dist/vendor/Cache/Cache/_internal/KeySet.d.ts +20 -0
- package/dist/vendor/Cache/Cache/_internal/KeySet.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/KeySet.js +61 -0
- package/dist/vendor/Cache/Cache/_internal/MapKey.d.ts +24 -0
- package/dist/vendor/Cache/Cache/_internal/MapKey.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/MapKey.js +37 -0
- package/dist/vendor/Cache/Cache/_internal/MapValue.d.ts +32 -0
- package/dist/vendor/Cache/Cache/_internal/MapValue.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/_internal/MapValue.js +24 -0
- package/dist/vendor/Cache/Cache/definition.d.ts +100 -0
- package/dist/vendor/Cache/Cache/definition.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/definition.js +5 -0
- package/dist/vendor/Cache/Cache/operations/make.d.ts +12 -0
- package/dist/vendor/Cache/Cache/operations/make.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/operations/make.js +12 -0
- package/dist/vendor/Cache/Cache/operations/makeWith.d.ts +14 -0
- package/dist/vendor/Cache/Cache/operations/makeWith.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/operations/makeWith.js +15 -0
- package/dist/vendor/Cache/Cache/operations.d.ts +3 -0
- package/dist/vendor/Cache/Cache/operations.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache/operations.js +4 -0
- package/dist/vendor/Cache/Cache.d.ts +3 -0
- package/dist/vendor/Cache/Cache.d.ts.map +1 -0
- package/dist/vendor/Cache/Cache.js +4 -0
- package/dist/vendor/Cache/CacheStats/definition.d.ts +19 -0
- package/dist/vendor/Cache/CacheStats/definition.d.ts.map +1 -0
- package/dist/vendor/Cache/CacheStats/definition.js +6 -0
- package/dist/vendor/Cache/CacheStats.d.ts +2 -0
- package/dist/vendor/Cache/CacheStats.d.ts.map +1 -0
- package/dist/vendor/Cache/CacheStats.js +3 -0
- package/dist/vendor/Cache/EntryStats/definition.d.ts +17 -0
- package/dist/vendor/Cache/EntryStats/definition.d.ts.map +1 -0
- package/dist/vendor/Cache/EntryStats/definition.js +4 -0
- package/dist/vendor/Cache/EntryStats.d.ts +2 -0
- package/dist/vendor/Cache/EntryStats.d.ts.map +1 -0
- package/dist/vendor/Cache/EntryStats.js +3 -0
- package/dist/vendor/Cache/Lookup/definition.d.ts +17 -0
- package/dist/vendor/Cache/Lookup/definition.d.ts.map +1 -0
- package/dist/vendor/Cache/Lookup/definition.js +2 -0
- package/dist/vendor/Cache/Lookup.d.ts +2 -0
- package/dist/vendor/Cache/Lookup.d.ts.map +1 -0
- package/dist/vendor/Cache/Lookup.js +3 -0
- package/dist/vendor/Cache/index.d.ts +5 -0
- package/dist/vendor/Cache/index.d.ts.map +1 -0
- package/dist/vendor/Cache/index.js +5 -0
- package/package.json +756 -0
- package/tsconfig.json +107 -0
- package/tsconfig.json.bak +47 -0
- package/tsplus.config.json +6 -0
- package/types/modules.d.ts +1 -0
- package/vitest.config.ts +5 -0
- package/wallaby.cjs +1 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/lib/rateLimit.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/stm/TSemaphore";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/stm/STM";
|
|
5
|
+
import * as tsplus_module_3 from "@effect/io/Effect";
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/core/Array";
|
|
7
|
+
import * as tsplus_module_5 from "@effect-app/core/Effect";
|
|
8
|
+
/**
|
|
9
|
+
* Executes the specified effect, acquiring the specified number of permits
|
|
10
|
+
* immediately before the effect begins execution and releasing them
|
|
11
|
+
* delayed by duration after the effect completes execution, whether by success,
|
|
12
|
+
* failure, or interruption.
|
|
13
|
+
*
|
|
14
|
+
* @tsplus static effect/stm/TSemaphore.Ops withPermitsDuration
|
|
15
|
+
* @tsplus pipeable effect/stm/TSemaphore withPermitsDuration
|
|
16
|
+
*/
|
|
17
|
+
export function withPermitsDuration(permits, duration) {
|
|
18
|
+
return (self) => {
|
|
19
|
+
return effect => tracer_1.withCallTrace(fileName_1 + ":13:14")(tsplus_module_3.uninterruptibleMask(restore => tsplus_module_3.zipRight(tracer_1.withCallTrace(fileName_1 + ":17:16")(tsplus_module_3.ensuring(tracer_1.withCallTrace(fileName_1 + ":20:20")(tsplus_module_3.delay(duration))(tsplus_module_2.commit(tracer_1.withCallTrace(fileName_1 + ":18:22")(tsplus_module_1.releaseN(permits))(self)))))(restore(effect)))(restore(tsplus_module_2.commit(tracer_1.withCallTrace(fileName_1 + ":15:24")(tsplus_module_1.acquireN(permits))(self))))));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Executes the specified effect, acquiring the specified number of permits
|
|
24
|
+
* immediately before the effect begins execution and releasing them
|
|
25
|
+
* delayed by duration after the effect completes execution, whether by success,
|
|
26
|
+
* failure, or interruption.
|
|
27
|
+
*
|
|
28
|
+
* @tsplus static effect/io/Effect/Semaphore.Ops withPermitsDuration
|
|
29
|
+
* @tsplus pipeable effect/io/Effect/Semaphore withPermitsDuration
|
|
30
|
+
*/
|
|
31
|
+
export function SEM_withPermitsDuration(permits, duration) {
|
|
32
|
+
return (self) => {
|
|
33
|
+
return effect => tracer_1.withCallTrace(fileName_1 + ":38:14")(tsplus_module_3.uninterruptibleMask(restore => tsplus_module_3.zipRight(tracer_1.withCallTrace(fileName_1 + ":42:16")(tsplus_module_3.ensuring(tracer_1.withCallTrace(fileName_1 + ":44:20")(tsplus_module_3.delay(duration))(self.release(permits))))(restore(effect)))(restore(self.take(permits)))));
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @tsplus pipeable Iterable batchNPar
|
|
38
|
+
* @tsplus static Collection.Aspects batchNPar
|
|
39
|
+
*/
|
|
40
|
+
export function batchNPar(n, forEachItem, forEachBatch) {
|
|
41
|
+
return (items) => tsplus_module_4.ext_forEachParWithIndex(tsplus_module_4.chunk_(items, n), (_, i) => tracer_1.withCallTrace(fileName_1 + ":63:12")(tsplus_module_3.flatMap(_ => forEachBatch(_, i)))(tracer_1.withCallTrace(fileName_1 + ":62:11")(tsplus_module_3.forEachParWithIndex((_, j) => forEachItem(_, j, i)))(_)));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @tsplus pipeable Iterable batch
|
|
45
|
+
* @tsplus static Collection.Aspects batch
|
|
46
|
+
*/
|
|
47
|
+
export function batch(n, forEachItem, forEachBatch) {
|
|
48
|
+
return (items) => tsplus_module_4.ext_forEachWithIndex(tsplus_module_4.chunk_(items, n), (_, i) => tracer_1.withCallTrace(fileName_1 + ":80:12")(tsplus_module_3.flatMap(_ => forEachBatch(_, i)))(tracer_1.withCallTrace(fileName_1 + ":79:11")(tsplus_module_3.forEachParWithIndex((_, j) => forEachItem(_, j, i)))(_)));
|
|
49
|
+
}
|
|
50
|
+
// /**
|
|
51
|
+
// * @tsplus pipeable Iterable rateLimit
|
|
52
|
+
// * @tsplus static Collection.Aspects rateLimit
|
|
53
|
+
// */
|
|
54
|
+
// export function rateLimit(
|
|
55
|
+
// n: number,
|
|
56
|
+
// d: DUR
|
|
57
|
+
// ) {
|
|
58
|
+
// return <T>(items: Iterable<T>) =>
|
|
59
|
+
// <R, E, A, R2, E2, A2>(
|
|
60
|
+
// forEachItem: (i: T) => Effect<R, E, A>,
|
|
61
|
+
// forEachBatch: (a: Chunk<A>) => Effect<R2, E2, A2>
|
|
62
|
+
// ) =>
|
|
63
|
+
// Stream.fromCollection(items)
|
|
64
|
+
// .rechunk(n)
|
|
65
|
+
// .throttleShape(n, d, () => n)
|
|
66
|
+
// .mapChunksEffect(_ => _.forEachEffectPar(forEachItem).tap(forEachBatch))
|
|
67
|
+
// .runCollect
|
|
68
|
+
// }
|
|
69
|
+
/**
|
|
70
|
+
* @tsplus pipeable Iterable naiveRateLimit
|
|
71
|
+
* @tsplus static Collection.Aspects naiveRateLimit
|
|
72
|
+
*/
|
|
73
|
+
export function naiveRateLimit(n, d) {
|
|
74
|
+
return (items) => ((forEachItem, forEachBatch) => tsplus_module_4.ext_forEachWithIndex(tsplus_module_4.chunk_(items, n), (batch, i) => tracer_1.withCallTrace(fileName_1 + ":120:12")(tsplus_module_3.zipRight(tracer_1.withCallTrace(fileName_1 + ":123:16")(tsplus_module_3.flatMap(forEachBatch))(tracer_1.withCallTrace(fileName_1 + ":122:16")(tsplus_module_3.withParallelism(n))(tsplus_module_4.ext_forEachEffectPar(batch, forEachItem)))))(((i === 0) ? tsplus_module_5.unit : tracer_1.withCallTrace(fileName_1 + ":119:48")(tsplus_module_3.delay(d))(tsplus_module_5.unit)))));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZUxpbWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9saWIvcmF0ZUxpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFlLEVBQUUsUUFBYTtJQUNoRSxPQUFPLENBQUMsSUFBZ0IsRUFBeUQsRUFBRTtRQUNqRixPQUFPLE1BQU0sQ0FBQyxFQUFFLCtDQUNkLG9DQUNFLE9BQU8sQ0FBQyxFQUFFLDBCQUVKLHVFQUVFLG9FQUVTLFFBQVEsMEJBRmpCLHVFQUFjLE9BQU8sR0FBckIsSUFBSSxDQUFrQixFQUVKLEdBSnBCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FLZCxFQU5MLE9BQU8sd0JBQUMsdUVBQWMsT0FBTyxHQUFyQixJQUFJLENBQWtCLEVBQVEsQ0FNakMsQ0FDUixDQUFBLENBQUE7SUFDTCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBZSxFQUFFLFFBQWE7SUFDcEUsT0FBTyxDQUFDLElBQWUsRUFBeUQsRUFBRTtRQUNoRixPQUFPLE1BQU0sQ0FBQyxFQUFFLCtDQUNkLG9DQUNFLE9BQU8sQ0FBQyxFQUFFLDBCQUVKLHVFQUVFLG9FQUNTLFFBQVEsR0FEakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDSCxHQUhwQixPQUFPLENBQUMsTUFBTSxDQUFDLENBSWQsRUFMTCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUt0QixDQUNSLENBQUEsQ0FBQTtJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixDQUFTLEVBQ1QsV0FBMEUsRUFDMUUsWUFBNEQ7SUFFNUQsT0FBTyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUM1Qix3Q0FBQSx1QkFBQSxLQUFLLEVBQU8sQ0FBQyxDQUFDLEVBQ2UsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDbEMsc0VBQ1csQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQURsQyxrRkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBcEQsQ0FBQyxDQUFvRCxDQUNsQixDQUNwQyxDQUFBO0FBQ1AsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQ25CLENBQVMsRUFDVCxXQUErRSxFQUMvRSxZQUE0RDtJQUU1RCxPQUFPLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQzVCLHFDQUFBLHVCQUFBLEtBQUssRUFBTyxDQUFDLENBQUMsRUFDWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUMvQixzRUFDVyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBRGxDLGtGQUFzQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFwRCxDQUFDLENBQW9ELENBQ2xCLENBQ3BDLENBQUE7QUFDUCxDQUFDO0FBRUQsTUFBTTtBQUNOLHlDQUF5QztBQUN6QyxpREFBaUQ7QUFDakQsTUFBTTtBQUNOLDZCQUE2QjtBQUM3QixlQUFlO0FBQ2YsV0FBVztBQUNYLE1BQU07QUFDTixzQ0FBc0M7QUFDdEMsNkJBQTZCO0FBQzdCLGdEQUFnRDtBQUNoRCwwREFBMEQ7QUFDMUQsV0FBVztBQUNYLHFDQUFxQztBQUNyQyxzQkFBc0I7QUFDdEIsd0NBQXdDO0FBQ3hDLG1GQUFtRjtBQUNuRixzQkFBc0I7QUFDdEIsSUFBSTtBQUVKOzs7R0FHRztBQUVILE1BQU0sVUFBVSxjQUFjLENBQzVCLENBQVMsRUFDVCxDQUFNO0lBRU4sT0FBTyxDQUFJLEtBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDakMsV0FBc0MsRUFDdEMsWUFBaUQsRUFDakQsRUFBRSxDQUNGLHFDQUFBLHVCQUFBLEtBQUssRUFBTyxDQUFDLENBQUMsRUFDWSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNuQyx3RUFFSSx1RUFFVyxZQUFZLEdBRnZCLCtFQUNtQixDQUFDLEdBRHBCLHFDQUFBLEtBQUssRUFBa0IsV0FBVyxDQUFDLENBQ2QsQ0FDRyxHQUo1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQWEsQ0FBQyxDQUFDLHFFQUFrQixDQUFDLHdCQUFDLENBQUMsQ0FLN0MsQ0FDSixDQUFDLENBQUE7QUFDUixDQUFDIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReasonableString } from "@effect-app/prelude/schema";
|
|
2
|
+
import { Effect } from "@effect/io/Effect";
|
|
3
|
+
import { Tag } from "@fp-ts/data/Context";
|
|
4
|
+
export declare const PrinterId: import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>> & import("@effect-app/schema").Utils<import("@effect-app/schema").SchemaDefaultSchema<unknown, import("@effect-app/schema").ReasonableString, string, string, import("@effect-app/schema").ApiSelfType<import("@effect-app/schema").ReasonableString>>>;
|
|
5
|
+
export type PrinterId = ReasonableString;
|
|
6
|
+
export interface CUPS {
|
|
7
|
+
print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect<never, unknown, {
|
|
8
|
+
stdout: string;
|
|
9
|
+
stderr: string;
|
|
10
|
+
}>;
|
|
11
|
+
getAvailablePrinters: Effect<never, unknown, ReasonableString[]>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @tsplus type CUPS.Ops
|
|
15
|
+
*/
|
|
16
|
+
export interface CUPSOps extends Tag<CUPS> {
|
|
17
|
+
}
|
|
18
|
+
export declare const CUPS: CUPSOps;
|
|
19
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/CUPS/service.ts"],"names":[],"mappings":";;;AAAA,eAAO,MAAM,SAAS,2cAAmB,CAAA;AACzC,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAA;AAExC,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;QACjG,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,oBAAoB,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,GAAG,CAAC,IAAI,CAAC;CAAG;AAC7C,eAAO,MAAM,IAAI,EAAE,OAAqB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@effect-app/prelude/schema";
|
|
2
|
+
import * as tsplus_module_2 from "@fp-ts/data/Context";
|
|
3
|
+
export const PrinterId = tsplus_module_1.ReasonableString;
|
|
4
|
+
export const CUPS = tsplus_module_2.Tag();
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvQ1VQUy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxtQkFBRyxnQkFBZ0IsQ0FBQTtBQWV6QyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQVksZ0JBQUEsR0FBRyxFQUFRLENBQUEifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Effect } from "@effect/io/Effect";
|
|
2
|
+
import { CUPS } from "./CUPS/service.js";
|
|
3
|
+
export * from "./CUPS/service.js";
|
|
4
|
+
/**
|
|
5
|
+
* @tsplus static CUPS.Ops Live
|
|
6
|
+
* @tsplus location "@effect-app/infra/services/CUPS"
|
|
7
|
+
*/
|
|
8
|
+
export declare function LiveCUPS(cupsServer?: URL): import("@effect/io/Layer").Layer<never, never, CUPS>;
|
|
9
|
+
export declare const prepareTempDir: Effect<never, never, void>;
|
|
10
|
+
//# sourceMappingURL=CUPS.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../../_src/services/CUPS.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAExC,cAAc,mBAAmB,CAAA;;;;;AAKjC,wBAAgB,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,wDAExC;AAiDD,eAAO,MAAM,cAAc,4BAUzB,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/CUPS.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
+
import * as tsplus_module_2 from "@effect-app/prelude/utils";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
6
|
+
import cp from "child_process";
|
|
7
|
+
import util from "util";
|
|
8
|
+
import { tempFile } from "../lib/fileUtil.js";
|
|
9
|
+
import { isTruthy } from "@effect-app/core/utils";
|
|
10
|
+
import { ReasonableString } from "@effect-app/schema";
|
|
11
|
+
import "@effect/io/Effect";
|
|
12
|
+
import fs from "fs";
|
|
13
|
+
import os from "os";
|
|
14
|
+
import path from "path";
|
|
15
|
+
import { CUPS } from "./CUPS/service.js";
|
|
16
|
+
export * from "./CUPS/service.js";
|
|
17
|
+
/**
|
|
18
|
+
* @tsplus static CUPS.Ops Live
|
|
19
|
+
*/
|
|
20
|
+
export function LiveCUPS(cupsServer) {
|
|
21
|
+
return tsplus_module_1.toLayer(CUPS)(makeCUPS(cupsServer));
|
|
22
|
+
}
|
|
23
|
+
function makeCUPS(cupsServer) {
|
|
24
|
+
return tsplus_module_1.sync(() => {
|
|
25
|
+
function print_(buffer, printerId, ...options) {
|
|
26
|
+
const print = printBuffer({
|
|
27
|
+
id: printerId,
|
|
28
|
+
url: cupsServer
|
|
29
|
+
}, options);
|
|
30
|
+
return print(buffer);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
print: print_,
|
|
34
|
+
getAvailablePrinters: getAvailablePrinters(cupsServer?.host)
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const exec_ = util.promisify(cp.exec);
|
|
39
|
+
const exec = (command) => tsplus_module_1.zipRight(tracer_1.withCallTrace(fileName_1 + ":43:8")(tsplus_module_1.tap(r => (tracer_1.withCallTrace(fileName_1 + ":43:46")(tsplus_module_1.logAnnotate("result", tsplus_module_2.RecordPretty(tsplus_module_2.object$(r))))(tracer_1.withCallTrace(fileName_1 + ":43:25")(tsplus_module_1.logDebug(`Executed`))))))(tracer_1.withCallTrace(fileName_1 + ":42:14")(tsplus_module_1.tryPromise(() => exec_(command)))))(tracer_1.withCallTrace(fileName_1 + ":41:10")(tsplus_module_1.logDebug(`Executing: ${command}`)));
|
|
40
|
+
function printFile(printer, options) {
|
|
41
|
+
return (filePath) => printFile_(filePath, printer, options);
|
|
42
|
+
}
|
|
43
|
+
function printFile_(filePath, printer, options) {
|
|
44
|
+
return exec(["lp", ...buildPrintArgs(filePath, printer, options)].join(" "));
|
|
45
|
+
}
|
|
46
|
+
function* buildPrintArgs(filePath, printer, options) {
|
|
47
|
+
if (printer) {
|
|
48
|
+
if (printer.url) {
|
|
49
|
+
yield `-h ${printer.url.host}`;
|
|
50
|
+
if (printer.url.username) {
|
|
51
|
+
yield `-U ${printer.url.username}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
yield `-d "${printer.id}"`;
|
|
55
|
+
for (const o of options) {
|
|
56
|
+
yield `-o ${o}`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
yield `"${filePath}"`;
|
|
60
|
+
}
|
|
61
|
+
export const prepareTempDir = tsplus_module_1.sync(() => {
|
|
62
|
+
// TODO
|
|
63
|
+
try {
|
|
64
|
+
fs.mkdirSync(path.join(os.tmpdir(), "effect-ts-app"));
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
if (`${err}`.includes("EEXIST")) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const makeTempFile = tempFile("effect-ts-app");
|
|
74
|
+
const makePrintJobTempFile = makeTempFile("print-job");
|
|
75
|
+
function printBuffer(printer, options) {
|
|
76
|
+
return (buffer) => tsplus_module_3.flatMapScoped(makePrintJobTempFile(Buffer.from(buffer)), printFile(printer, options));
|
|
77
|
+
}
|
|
78
|
+
function getAvailablePrinters(host) {
|
|
79
|
+
return tsplus_module_1.map(({ stdout }) => [...stdout.matchAll(/device for (\w+):/g)]
|
|
80
|
+
.map(_ => _[1])
|
|
81
|
+
.filter(isTruthy)
|
|
82
|
+
.map(ReasonableString))(exec(["lpstat", ...buildListArgs({ host }), "-s"].join(" ")));
|
|
83
|
+
}
|
|
84
|
+
function* buildListArgs(config) {
|
|
85
|
+
if (config?.host) {
|
|
86
|
+
yield `-h ${config.host}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvc2VydmljZXMvQ1VQUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM5QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRCxPQUF1QixtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ25CLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFeEMsY0FBYyxtQkFBbUIsQ0FBQTtBQUVqQzs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsVUFBZ0I7SUFDdkMsT0FBTyx3QkFBNkIsSUFBSSxFQUFqQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQWMsQ0FBQTtBQUMzQyxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsVUFBZ0I7SUFDaEMsT0FBTyxxQkFBTyxHQUFHLEVBQUU7UUFDakIsU0FBUyxNQUFNLENBQUMsTUFBbUIsRUFBRSxTQUFvQixFQUFFLEdBQUcsT0FBaUI7WUFDN0UsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN4QixFQUFFLEVBQUUsU0FBUztnQkFDYixHQUFHLEVBQUUsVUFBVTthQUNoQixFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ1gsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEIsQ0FBQztRQUNELE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTTtZQUNiLG9CQUFvQixF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
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DUR } from "@fp-ts/data/Duration";
|
|
2
|
+
import { Effect } from "@effect/io/Effect";
|
|
3
|
+
import { Chunk } from "@fp-ts/data/Chunk";
|
|
4
|
+
import { Exit } from "@effect/io/Exit";
|
|
5
|
+
import type { Cache as _Cache } from "../vendor/Cache/Cache.js";
|
|
6
|
+
import type { Lookup } from "../vendor/Cache/Lookup.js";
|
|
7
|
+
/**
|
|
8
|
+
* @tsplus type ets/cache/Cache
|
|
9
|
+
*/
|
|
10
|
+
export interface Cache<Key, Error, Value> extends _Cache<Key, Error, Value> {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @tsplus type ets/cache/CacheOps
|
|
14
|
+
*/
|
|
15
|
+
export interface CacheOps {
|
|
16
|
+
}
|
|
17
|
+
export declare const Cache: CacheOps;
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus static ets/cache/CacheOps make
|
|
20
|
+
* @tsplus location "@effect-app/infra/services/Cache"
|
|
21
|
+
*/
|
|
22
|
+
export declare function make<Key, Environment, Error, Value>(capacity: number, duration: DUR, lookup: Lookup<Key, Environment, Error, Value>): import("@effect/io/Effect").Effect<Environment, never, Cache<Key, Error, Value>>;
|
|
23
|
+
/**
|
|
24
|
+
* @tsplus getter ets/cache/Cache results
|
|
25
|
+
* @tsplus location "@effect-app/infra/services/Cache"
|
|
26
|
+
*/
|
|
27
|
+
export declare function results<Key, Error, Value>(self: Cache<Key, Error, Value>): Effect<never, never, Chunk<[Key, Exit<Error, Value>]>>;
|
|
28
|
+
//# sourceMappingURL=Cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../_src/services/Cache.ts"],"names":[],"mappings":";;;;AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAE,SAAQ,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;CAAG;AAE9E;;GAEG;AAEH,MAAM,WAAW,QAAQ;CAAG;AAE5B,eAAO,MAAM,KAAK,EAAE,QAAa,CAAA;;;;;AAKjC,wBAAgB,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EACjD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,oFAG/C;;;;;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EACvC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAC7B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAUxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/Cache.ts";
|
|
3
|
+
const fileName_2 = "/Users/patrickroza/Projects/effect-ts-app/libs/packages/infra/_src/services/Cache.ts";
|
|
4
|
+
import * as tsplus_module_1 from "@fp-ts/data/Chunk";
|
|
5
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
6
|
+
import { make as _make } from "../vendor/Cache/Cache.js";
|
|
7
|
+
export const Cache = {};
|
|
8
|
+
/**
|
|
9
|
+
* @tsplus static ets/cache/CacheOps make
|
|
10
|
+
*/
|
|
11
|
+
export function make(capacity, duration, lookup) {
|
|
12
|
+
return _make(capacity, duration, lookup, fileName_2 + ":27:15");
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @tsplus getter ets/cache/Cache results
|
|
16
|
+
*/
|
|
17
|
+
export function results(self) {
|
|
18
|
+
return tracer_1.withCallTrace(fileName_1 + ":36:10")(tsplus_module_2.sync(() => {
|
|
19
|
+
const values = [];
|
|
20
|
+
for (const [key, value] of self.cacheState.map) {
|
|
21
|
+
if (value._tag === "Complete") {
|
|
22
|
+
values.push([key, value.exit]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return tsplus_module_1.fromIterable(values);
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL0NhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQWV4RCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFBO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FDbEIsUUFBZ0IsRUFDaEIsUUFBYSxFQUNiLE1BQThDO0lBRTlDLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBeUQsQ0FBQTtBQUNsRyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixJQUE4QjtJQUU5QixxREFBTyxxQkFBTyxHQUFHLEVBQUU7UUFDakIsTUFBTSxNQUFNLEdBQXFDLEVBQUUsQ0FBQTtRQUNuRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQU0sSUFBWSxDQUFDLFVBQTRDLENBQUMsR0FBRyxFQUFFO1lBQzFGLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7Z0JBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7YUFDL0I7U0FDRjtRQUNELE9BQU8sNkJBQW1CLE1BQU0sQ0FBQyxDQUFBO0lBQ25DLENBQUMsQ0FBQyxFQUFBO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { Config } from "@effect/io/Config";
|
|
2
|
+
import type { EmailData } from "@sendgrid/helpers/classes/email-address.js";
|
|
3
|
+
import { Emailer } from "./service.js";
|
|
4
|
+
import type { EmailMsg, SendgridConfig } from "./service.js";
|
|
5
|
+
/**
|
|
6
|
+
* @tsplus static Emailer.Ops LiveSendgrid
|
|
7
|
+
* @tsplus location "@effect-app/infra/services/Emailer/Sendgrid"
|
|
8
|
+
*/
|
|
9
|
+
export declare function LiveSendgrid(config: Config<SendgridConfig>): import("@effect/io/Layer").Layer<never, import("@effect/io/Config/Error").ConfigError, Emailer>;
|
|
10
|
+
/**
|
|
11
|
+
* @hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
14
|
+
to: EmailData | EmailData[] | undefined;
|
|
15
|
+
cc: EmailData | EmailData[] | undefined;
|
|
16
|
+
bcc: EmailData | EmailData[] | undefined;
|
|
17
|
+
from: EmailData;
|
|
18
|
+
replyTo?: EmailData | undefined;
|
|
19
|
+
sendAt?: number | undefined;
|
|
20
|
+
subject?: string | undefined;
|
|
21
|
+
text: string;
|
|
22
|
+
html?: string | undefined;
|
|
23
|
+
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[] | undefined;
|
|
24
|
+
templateId?: string | undefined;
|
|
25
|
+
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[] | undefined;
|
|
26
|
+
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[] | undefined;
|
|
27
|
+
ipPoolName?: string | undefined;
|
|
28
|
+
batchId?: string | undefined;
|
|
29
|
+
sections?: {
|
|
30
|
+
[key: string]: string;
|
|
31
|
+
} | undefined;
|
|
32
|
+
headers?: {
|
|
33
|
+
[key: string]: string;
|
|
34
|
+
} | undefined;
|
|
35
|
+
categories?: string[] | undefined;
|
|
36
|
+
category?: string | undefined;
|
|
37
|
+
customArgs?: {
|
|
38
|
+
[key: string]: any;
|
|
39
|
+
} | undefined;
|
|
40
|
+
asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions | undefined;
|
|
41
|
+
mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings | undefined;
|
|
42
|
+
trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings | undefined;
|
|
43
|
+
substitutions?: {
|
|
44
|
+
[key: string]: string;
|
|
45
|
+
} | undefined;
|
|
46
|
+
substitutionWrappers?: string[] | undefined;
|
|
47
|
+
isMultiple?: boolean | undefined;
|
|
48
|
+
dynamicTemplateData?: {
|
|
49
|
+
[key: string]: any;
|
|
50
|
+
} | undefined;
|
|
51
|
+
hideWarnings?: boolean | undefined;
|
|
52
|
+
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[] | undefined;
|
|
53
|
+
} | {
|
|
54
|
+
to: EmailData | EmailData[] | undefined;
|
|
55
|
+
cc: EmailData | EmailData[] | undefined;
|
|
56
|
+
bcc: EmailData | EmailData[] | undefined;
|
|
57
|
+
from: EmailData;
|
|
58
|
+
replyTo?: EmailData | undefined;
|
|
59
|
+
sendAt?: number | undefined;
|
|
60
|
+
subject?: string | undefined;
|
|
61
|
+
text?: string | undefined;
|
|
62
|
+
html: string;
|
|
63
|
+
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[] | undefined;
|
|
64
|
+
templateId?: string | undefined;
|
|
65
|
+
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[] | undefined;
|
|
66
|
+
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[] | undefined;
|
|
67
|
+
ipPoolName?: string | undefined;
|
|
68
|
+
batchId?: string | undefined;
|
|
69
|
+
sections?: {
|
|
70
|
+
[key: string]: string;
|
|
71
|
+
} | undefined;
|
|
72
|
+
headers?: {
|
|
73
|
+
[key: string]: string;
|
|
74
|
+
} | undefined;
|
|
75
|
+
categories?: string[] | undefined;
|
|
76
|
+
category?: string | undefined;
|
|
77
|
+
customArgs?: {
|
|
78
|
+
[key: string]: any;
|
|
79
|
+
} | undefined;
|
|
80
|
+
asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions | undefined;
|
|
81
|
+
mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings | undefined;
|
|
82
|
+
trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings | undefined;
|
|
83
|
+
substitutions?: {
|
|
84
|
+
[key: string]: string;
|
|
85
|
+
} | undefined;
|
|
86
|
+
substitutionWrappers?: string[] | undefined;
|
|
87
|
+
isMultiple?: boolean | undefined;
|
|
88
|
+
dynamicTemplateData?: {
|
|
89
|
+
[key: string]: any;
|
|
90
|
+
} | undefined;
|
|
91
|
+
hideWarnings?: boolean | undefined;
|
|
92
|
+
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[] | undefined;
|
|
93
|
+
} | {
|
|
94
|
+
to: EmailData | EmailData[] | undefined;
|
|
95
|
+
cc: EmailData | EmailData[] | undefined;
|
|
96
|
+
bcc: EmailData | EmailData[] | undefined;
|
|
97
|
+
from: EmailData;
|
|
98
|
+
replyTo?: EmailData | undefined;
|
|
99
|
+
sendAt?: number | undefined;
|
|
100
|
+
subject?: string | undefined;
|
|
101
|
+
text?: string | undefined;
|
|
102
|
+
html?: string | undefined;
|
|
103
|
+
content?: import("@sendgrid/helpers/classes/mail.js").MailContent[] | undefined;
|
|
104
|
+
templateId: string;
|
|
105
|
+
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[] | undefined;
|
|
106
|
+
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[] | undefined;
|
|
107
|
+
ipPoolName?: string | undefined;
|
|
108
|
+
batchId?: string | undefined;
|
|
109
|
+
sections?: {
|
|
110
|
+
[key: string]: string;
|
|
111
|
+
} | undefined;
|
|
112
|
+
headers?: {
|
|
113
|
+
[key: string]: string;
|
|
114
|
+
} | undefined;
|
|
115
|
+
categories?: string[] | undefined;
|
|
116
|
+
category?: string | undefined;
|
|
117
|
+
customArgs?: {
|
|
118
|
+
[key: string]: any;
|
|
119
|
+
} | undefined;
|
|
120
|
+
asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions | undefined;
|
|
121
|
+
mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings | undefined;
|
|
122
|
+
trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings | undefined;
|
|
123
|
+
substitutions?: {
|
|
124
|
+
[key: string]: string;
|
|
125
|
+
} | undefined;
|
|
126
|
+
substitutionWrappers?: string[] | undefined;
|
|
127
|
+
isMultiple?: boolean | undefined;
|
|
128
|
+
dynamicTemplateData?: {
|
|
129
|
+
[key: string]: any;
|
|
130
|
+
} | undefined;
|
|
131
|
+
hideWarnings?: boolean | undefined;
|
|
132
|
+
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[] | undefined;
|
|
133
|
+
} | {
|
|
134
|
+
to: EmailData | EmailData[] | undefined;
|
|
135
|
+
cc: EmailData | EmailData[] | undefined;
|
|
136
|
+
bcc: EmailData | EmailData[] | undefined;
|
|
137
|
+
from: EmailData;
|
|
138
|
+
replyTo?: EmailData | undefined;
|
|
139
|
+
sendAt?: number | undefined;
|
|
140
|
+
subject?: string | undefined;
|
|
141
|
+
text?: string | undefined;
|
|
142
|
+
html?: string | undefined;
|
|
143
|
+
content: import("@sendgrid/helpers/classes/mail.js").MailContent[] & {
|
|
144
|
+
0: import("@sendgrid/helpers/classes/mail.js").MailContent;
|
|
145
|
+
};
|
|
146
|
+
templateId?: string | undefined;
|
|
147
|
+
personalizations?: import("@sendgrid/helpers/classes/personalization.js").PersonalizationData[] | undefined;
|
|
148
|
+
attachments?: import("@sendgrid/helpers/classes/attachment.js").AttachmentData[] | undefined;
|
|
149
|
+
ipPoolName?: string | undefined;
|
|
150
|
+
batchId?: string | undefined;
|
|
151
|
+
sections?: {
|
|
152
|
+
[key: string]: string;
|
|
153
|
+
} | undefined;
|
|
154
|
+
headers?: {
|
|
155
|
+
[key: string]: string;
|
|
156
|
+
} | undefined;
|
|
157
|
+
categories?: string[] | undefined;
|
|
158
|
+
category?: string | undefined;
|
|
159
|
+
customArgs?: {
|
|
160
|
+
[key: string]: any;
|
|
161
|
+
} | undefined;
|
|
162
|
+
asm?: import("@sendgrid/helpers/classes/mail.js").ASMOptions | undefined;
|
|
163
|
+
mailSettings?: import("@sendgrid/helpers/classes/mail.js").MailSettings | undefined;
|
|
164
|
+
trackingSettings?: import("@sendgrid/helpers/classes/mail.js").TrackingSettings | undefined;
|
|
165
|
+
substitutions?: {
|
|
166
|
+
[key: string]: string;
|
|
167
|
+
} | undefined;
|
|
168
|
+
substitutionWrappers?: string[] | undefined;
|
|
169
|
+
isMultiple?: boolean | undefined;
|
|
170
|
+
dynamicTemplateData?: {
|
|
171
|
+
[key: string]: any;
|
|
172
|
+
} | undefined;
|
|
173
|
+
hideWarnings?: boolean | undefined;
|
|
174
|
+
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[] | undefined;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* @hidden
|
|
178
|
+
*/
|
|
179
|
+
export declare function isTestAddress(to: EmailData): boolean;
|
|
180
|
+
//# sourceMappingURL=Sendgrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../../_src/services/Emailer/Sendgrid.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAA;;;;;AAgDlF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,mGAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,SAUpC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/Emailer/Sendgrid.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Config/Secret";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/core/Prelude";
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/core/_ext/ord.ext";
|
|
7
|
+
import * as tsplus_module_5 from "@effect-app/core/Array";
|
|
8
|
+
import sgMail from "@sendgrid/mail";
|
|
9
|
+
import { inspect } from "util";
|
|
10
|
+
import { Emailer } from "./service.js";
|
|
11
|
+
const makeLiveSendgrid = ({ apiKey, defaultFrom, realMail, subjectPrefix }) => tracer_1.withCallTrace(fileName_1 + ":8:3")(tsplus_module_2.sync(() => {
|
|
12
|
+
sgMail.setApiKey(tsplus_module_1.value(apiKey));
|
|
13
|
+
return {
|
|
14
|
+
sendMail(msg_) {
|
|
15
|
+
return tracer_1.withCallTrace(fileName_1 + ":13:23")(tsplus_module_2.gen(function* ($) {
|
|
16
|
+
const msg = { ...msg_, from: msg_.from ?? defaultFrom };
|
|
17
|
+
const render = renderMessage(!realMail);
|
|
18
|
+
const renderedMsg_ = render(msg);
|
|
19
|
+
const renderedMsg = { ...renderedMsg_, subject: `${subjectPrefix}${renderedMsg_.subject}` };
|
|
20
|
+
yield* $(tracer_1.withCallTrace(fileName_1 + ":19:53")(tsplus_module_2.logAnnotate("msg", inspect(renderedMsg, false, 5)))(tracer_1.withCallTrace(fileName_1 + ":19:27")(tsplus_module_2.logDebug("Sending email"))));
|
|
21
|
+
const ret = yield* $(tracer_1.withCallTrace(fileName_1 + ":22:20")(tsplus_module_2.async(cb => void sgMail.send(renderedMsg, false, (err, result) => err ?
|
|
22
|
+
cb(tracer_1.withCallTrace(fileName_1 + ":30:31")(tsplus_module_2.fail(err))) :
|
|
23
|
+
cb(tracer_1.withCallTrace(fileName_1 + ":31:24")(tsplus_module_2.sync(() => result)))))));
|
|
24
|
+
// const event = {
|
|
25
|
+
// name: "EmailSent",
|
|
26
|
+
// properties: {
|
|
27
|
+
// templateId: msg.templateId
|
|
28
|
+
// }
|
|
29
|
+
// }
|
|
30
|
+
// yield* $(Effect.logDebug("Tracking email event").logAnnotate("event", event.$$.pretty))
|
|
31
|
+
// const { trackEvent } = yield* $(AiContextService.access)
|
|
32
|
+
// trackEvent(event)
|
|
33
|
+
return ret;
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
})
|
|
38
|
+
/**
|
|
39
|
+
* @tsplus static Emailer.Ops LiveSendgrid
|
|
40
|
+
*/
|
|
41
|
+
);
|
|
42
|
+
/**
|
|
43
|
+
* @tsplus static Emailer.Ops LiveSendgrid
|
|
44
|
+
*/
|
|
45
|
+
export function LiveSendgrid(config) {
|
|
46
|
+
return tsplus_module_2.toLayer(Emailer)(tracer_1.withCallTrace(fileName_1 + ":55:6")(tsplus_module_2.flatMap(makeLiveSendgrid))(tsplus_module_2.config(config)));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @hidden
|
|
50
|
+
*/
|
|
51
|
+
export function renderMessage(forceFake) {
|
|
52
|
+
let i = 0;
|
|
53
|
+
const makeId = () => i++;
|
|
54
|
+
return forceFake
|
|
55
|
+
? (msg) => ({
|
|
56
|
+
...msg,
|
|
57
|
+
to: msg.to && renderFake(msg.to, makeId),
|
|
58
|
+
cc: msg.cc && renderFake(msg.cc, makeId),
|
|
59
|
+
bcc: msg.bcc && renderFake(msg.bcc, makeId)
|
|
60
|
+
})
|
|
61
|
+
: (msg) => ({
|
|
62
|
+
...msg,
|
|
63
|
+
to: msg.to && renderFakeIfTest(msg.to, makeId),
|
|
64
|
+
cc: msg.cc && renderFakeIfTest(msg.cc, makeId),
|
|
65
|
+
bcc: msg.bcc && renderFakeIfTest(msg.bcc, makeId)
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @hidden
|
|
70
|
+
*/
|
|
71
|
+
export function isTestAddress(to) {
|
|
72
|
+
return ((typeof to === "string" && to.toLowerCase().endsWith(".test")) ||
|
|
73
|
+
(typeof to === "object" &&
|
|
74
|
+
"email" in to &&
|
|
75
|
+
to.email.toLowerCase().endsWith(".test")));
|
|
76
|
+
}
|
|
77
|
+
function renderFake(addr, makeId) {
|
|
78
|
+
return {
|
|
79
|
+
name: renderMailData(addr),
|
|
80
|
+
email: `test+${makeId()}@nomizz.com`
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const eq = tsplus_module_4.EqlContramap(tsplus_module_3.Equal.string, (to) => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase());
|
|
84
|
+
// TODO: should just not add any already added email address
|
|
85
|
+
// https://stackoverflow.com/a/53603076/11595834
|
|
86
|
+
function renderFakeIfTest(addr, makeId) {
|
|
87
|
+
return Array.isArray(addr)
|
|
88
|
+
? tsplus_module_5.iterableToArray(tsplus_module_4.uniqArray(eq)(addr
|
|
89
|
+
.map(x => (isTestAddress(x) ? renderFake(x, makeId) : x)))) : isTestAddress(addr)
|
|
90
|
+
? renderFake(addr, makeId)
|
|
91
|
+
: addr;
|
|
92
|
+
}
|
|
93
|
+
function renderMailData(md) {
|
|
94
|
+
if (Array.isArray(md)) {
|
|
95
|
+
return md.map(renderMailData).join(", ");
|
|
96
|
+
}
|
|
97
|
+
if (typeof md === "string") {
|
|
98
|
+
return md;
|
|
99
|
+
}
|
|
100
|
+
return md.email;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL0VtYWlsZXIvU2VuZGdyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUd0QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWtCLEVBQUUsRUFBRSw2Q0FDNUYscUJBQU8sR0FBRyxFQUFFO0lBQ1YsTUFBTSxDQUFDLFNBQVMsdUJBQUMsTUFBTSxFQUFPLENBQUE7SUFFOUIsT0FBTztRQUNMLFFBQVEsQ0FBQyxJQUEwQjtZQUNqQyxxREFBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUMzQixNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFBO2dCQUN2RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQyxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLGFBQWEsR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtnQkFDM0YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBFQUE2QyxLQUFLLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGlEQUFsRix5QkFBZ0IsZUFBZSxDQUFDLEVBQW1ELENBQUMsQ0FBQTtnQkFFN0YsTUFBTSxHQUFHLEdB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Emailer } from "./service.js";
|
|
2
|
+
/**
|
|
3
|
+
* @tsplus static Emailer.Ops Fake
|
|
4
|
+
* @tsplus location "@effect-app/infra/services/Emailer/fake"
|
|
5
|
+
*/
|
|
6
|
+
export declare const FakeSendgrid: import("@effect/io/Layer").Layer<never, never, Emailer>;
|
|
7
|
+
//# sourceMappingURL=fake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake.d.ts","sourceRoot":"","sources":["../../../_src/services/Emailer/fake.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;;;;;AAYtC,eAAO,MAAM,YAAY,yDAA4B,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/services/Emailer/fake.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
+
import { pretty } from "@effect-app/prelude/utils";
|
|
5
|
+
import { Emailer } from "./service.js";
|
|
6
|
+
const makeFake = tracer_1.withCallTrace(fileName_1 + ":5:4")(tsplus_module_1.map(() => ({
|
|
7
|
+
sendMail(msg) {
|
|
8
|
+
return tracer_1.withCallTrace(fileName_1 + ":7:48")(tsplus_module_1.logAnnotate("msg", pretty(msg)))(tracer_1.withCallTrace(fileName_1 + ":7:21")(tsplus_module_1.logDebug(`Fake send mail`)));
|
|
9
|
+
}
|
|
10
|
+
})))(tracer_1.withCallTrace(fileName_1 + ":4:25")(tsplus_module_1.logDebug("FAKE Emailer Service enabled")));
|
|
11
|
+
/**
|
|
12
|
+
* @tsplus static Emailer.Ops Fake
|
|
13
|
+
*/
|
|
14
|
+
export const FakeSendgrid = tsplus_module_1.toLayer(Emailer)(makeFake);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvRW1haWxlci9mYWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRDLE1BQU0sUUFBUSxHQUFHLGdFQUNWLEdBQVksRUFBRSxDQUFDLENBQUM7SUFDbkIsUUFBUSxDQUFDLEdBQUc7UUFDVixPQUFPLHlFQUE4QyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnREFBaEUseUJBQWdCLGdCQUFnQixDQUFDLEVBQWdDLENBQUE7SUFDMUUsQ0FBQztDQUNGLENBQUMsZ0RBTGEseUJBQWdCLDhCQUE4QixDQUFDLEVBSzNELENBQUE7QUFFTDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyx3QkFBaUIsT0FBTyxFQUF4QixRQUFRLENBQWlCLENBQUEifQ==
|