@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 @@
|
|
|
1
|
+
{"version":3,"file":"defaultErrorHandler.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/defaultErrorHandler.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,eAAe,EAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,IAAI,EAAE,OAAO,CAAC,OAAO,EACrB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,eAAe,EAAE,cAAc,EAC/B,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEAgBrC;AAKD,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,CAAC,EAAE,cAAc,EACjB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,uEA0CrC;AAED,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/lib/api/defaultErrorHandler.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/io/Cause";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
6
|
+
import * as tsplus_module_4 from "@effect/io/Schedule";
|
|
7
|
+
import { logRequestError } from "./reportError.js";
|
|
8
|
+
export function defaultBasicErrorHandler(_req, res, _requestContext, r2) {
|
|
9
|
+
return tracer_1.withCallTrace(fileName_1 + ":26:6")(tsplus_module_1.catchAll((err) => tracer_1.withCallTrace(fileName_1 + ":31:10")(tsplus_module_1.flatMap(tsplus_module_1.die))(tracer_1.withCallTrace(fileName_1 + ":30:10")(tsplus_module_1.map(() => err))(tracer_1.withCallTrace(fileName_1 + ":27:14")(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))))(tracer_1.withCallTrace(fileName_1 + ":21:6")(tsplus_module_1.catchTag("ValidationError", err => tracer_1.withCallTrace(fileName_1 + ":22:7")(tsplus_module_1.sync(() => {
|
|
10
|
+
res.status(400).send(err.errors);
|
|
11
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":20:6")(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit))(r2))
|
|
12
|
+
// final catch all; expecting never so that unhandled known errors will show up
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
const optimisticConcurrencySchedule = tsplus_module_4.intersect(tsplus_module_4.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_4.once());
|
|
16
|
+
export function defaultErrorHandler(req, res, _, r2) {
|
|
17
|
+
const r3 = (req.method === "PATCH"
|
|
18
|
+
? tracer_1.withCallTrace(fileName_1 + ":46:12")(tsplus_module_1.retry(optimisticConcurrencySchedule))(r2)
|
|
19
|
+
: r2);
|
|
20
|
+
return tracer_1.withCallTrace(fileName_1 + ":77:6")(tsplus_module_1.catchAll((err) => tracer_1.withCallTrace(fileName_1 + ":82:10")(tsplus_module_1.flatMap(tsplus_module_1.die))(tracer_1.withCallTrace(fileName_1 + ":81:10")(tsplus_module_1.map(() => err))(tracer_1.withCallTrace(fileName_1 + ":78:14")(tsplus_module_1.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err))))))(tracer_1.withCallTrace(fileName_1 + ":71:6")(tsplus_module_1.catchTag("OptimisticConcurrencyException", err => tracer_1.withCallTrace(fileName_1 + ":72:7")(tsplus_module_1.sync(() => {
|
|
21
|
+
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
22
|
+
res.status(412).send(err);
|
|
23
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":67:6")(tsplus_module_1.catchTag("InvalidStateError", err => tracer_1.withCallTrace(fileName_1 + ":68:7")(tsplus_module_1.sync(() => {
|
|
24
|
+
res.status(422).send(err);
|
|
25
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":63:6")(tsplus_module_1.catchTag("UnauthorizedError", err => tracer_1.withCallTrace(fileName_1 + ":64:7")(tsplus_module_1.sync(() => {
|
|
26
|
+
res.status(403).send(err);
|
|
27
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":59:6")(tsplus_module_1.catchTag("NotLoggedInError", err => tracer_1.withCallTrace(fileName_1 + ":60:7")(tsplus_module_1.sync(() => {
|
|
28
|
+
res.status(401).send(err);
|
|
29
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":55:6")(tsplus_module_1.catchTag("NotFoundError", err => tracer_1.withCallTrace(fileName_1 + ":56:7")(tsplus_module_1.sync(() => {
|
|
30
|
+
res.status(404).send(err);
|
|
31
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":51:6")(tsplus_module_1.catchTag("ValidationError", err => tracer_1.withCallTrace(fileName_1 + ":52:7")(tsplus_module_1.sync(() => {
|
|
32
|
+
res.status(400).send(err.errors);
|
|
33
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":50:6")(tsplus_module_1.tapErrorCause(cause => tsplus_module_2.isFailure(cause) ? logRequestError(cause) : tsplus_module_3.unit))(r3)))))))
|
|
34
|
+
// final catch all; expecting never so that unhandled known errors will show up
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdEVycm9ySGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvbGliL2FwaS9kZWZhdWx0RXJyb3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVsRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLElBQXFCLEVBQ3JCLEdBQXFCLEVBQ3JCLGVBQStCLEVBQy9CLEVBQW9DO0lBRXBDLE9BQU8sc0VBT0ssQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUN2Qiw0RkFBQSxrRUFHTyxHQUFHLEVBQUUsQ0FBQyxHQUFjLGlEQUgzQix5QkFDRSxnR0FBZ0csR0FBRyxHQUFHLENBQ3ZHLEVBQzJCLENBQ04sR0FabkIsc0VBRUssaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsOENBQ2pDLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQSxHQUxDLDJFQUNVLEtBQUssQ0FBQyxFQUFFLENBQUMsMEJBQUEsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFZLEdBRDNFLEVBQUUsQ0FDMEUsQ0FJNUU7SUFDTCwrRUFBK0U7S0FPOUUsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLDZCQUE2Qiw2QkFDakMsMkJBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsQ0FBQyxFQURsRCxzQkFBZSxDQUNtQyxDQUFBO0FBRXhGLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsR0FBb0IsRUFDcEIsR0FBcUIsRUFDckIsQ0FBaUIsRUFDakIsRUFBb0M7SUFFcEMsTUFBTSxFQUFFLEdBQUcsQ0FDVCxHQUFHLENBQUMsTUFBTSxLQUFLLE9BQU87UUFDcEIsQ0FBQyxDQUFDLG9FQUFTLDZCQUE2QixHQUF0QyxFQUFFLENBQXFDO1FBQ3pDLENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQTtJQUNELE9BQU8sc0VBNEJLLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FDdkIsNEZBQUEsa0VBR08sR0FBRyxFQUFFLENBQUMsR0FBYyxpREFIM0IseUJBQ0UsZ0dBQWdHLEdBQUcsR0FBRyxDQUN2RyxFQUMyQixDQUNOLEdBakNuQixzRUFzQkssZ0NBQWdDLEVBQUUsR0FBRyxDQUFDLEVBQUUsOENBQ2hELHFCQUFPLEdBQUcsRUFBRTtRQUNWLDRJQUE0STtRQUM1SSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQSxHQTFCQyxzRUFrQkssbUJBQW1CLEVBQUUsR0FBRyxDQUFDLEVBQUUsOENBQ25DLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBLEdBckJDLHNFQWNLLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFFLDhDQUNuQyxxQkFBTyxHQUFHLEVBQUU7UUFDVixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUMsQ0FBQSxHQWpCQyxzRUFVSyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsRUFBRSw4Q0FDbEMscUJBQU8sR0FBRyxFQUFFO1FBQ1YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFDLENBQUEsR0FiQyxzRUFNSyxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsOENBQy9CLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBLEdBVEMsc0VBRUssaUJBQWlCLEVBQUUsR0FBRyxDQUFDLEVBQUUsOENBQ2pDLHFCQUFPLEdBQUcsRUFBRTtRQUNWLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQSxHQUxDLDJFQUNVLEtBQUssQ0FBQyxFQUFFLENBQUMsMEJBQUEsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFZLEdBRDNFLEVBQUUsQ0FDMEUsQ0FJNUUsQ0FJQSxDQUlBLENBSUEsQ0FJQSxDQUtBO0lBQ0wsK0VBQStFO0tBTzlFLENBQUE7QUFDTCxDQUFDIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Cause } from "@effect/io/Cause";
|
|
2
|
+
import { Effect } from "@effect/io/Effect";
|
|
3
|
+
import { CauseException } from "../../errors.js";
|
|
4
|
+
import { RequestContext } from "../../lib/RequestContext.js";
|
|
5
|
+
export declare class RequestException<E> extends CauseException<E> {
|
|
6
|
+
constructor(cause: Cause<E>);
|
|
7
|
+
}
|
|
8
|
+
export declare const reportRequestError_: (cause: import("@effect/io/Cause").Cause<unknown>, context?: Record<string, unknown> | undefined) => import("@effect/io/Effect").Effect<never, never, void>;
|
|
9
|
+
export declare const reportRequestError: (cause: Cause<unknown>, context?: Record<string, unknown> | undefined) => import("@effect/io/Effect").Effect<RequestContext, never, void>;
|
|
10
|
+
export declare const logRequestError_: (cause: import("@effect/io/Cause").Cause<unknown>, context?: Record<string, unknown> | undefined) => import("@effect/io/Effect").Effect<never, never, void>;
|
|
11
|
+
export declare const logRequestError: (cause: Cause<unknown>, context?: Record<string, unknown> | undefined) => import("@effect/io/Effect").Effect<RequestContext, never, void>;
|
|
12
|
+
/**
|
|
13
|
+
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
14
|
+
* new fiber is attached to the global scope, when the fiber executing the
|
|
15
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
16
|
+
*
|
|
17
|
+
* Reports errors.
|
|
18
|
+
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
19
|
+
* @tsplus location "@effect-app/infra/lib/api/reportError"
|
|
20
|
+
*/
|
|
21
|
+
export declare function forkDaemonReportRequest<R, E, A>(self: Effect<R, E, A>): import("@effect/io/Effect").Effect<RequestContext | R, never, import("@effect/io/Fiber").RuntimeFiber<E, A>>;
|
|
22
|
+
/**
|
|
23
|
+
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
24
|
+
* new fiber is attached to the global scope, when the fiber executing the
|
|
25
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
26
|
+
*
|
|
27
|
+
* Reports errors.
|
|
28
|
+
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
29
|
+
* @tsplus location "@effect-app/infra/lib/api/reportError"
|
|
30
|
+
*/
|
|
31
|
+
export declare function forkDaemonReportRequestUnexpected<R, E, A>(self: Effect<R, E, A>): import("@effect/io/Effect").Effect<RequestContext | R, never, import("@effect/io/Fiber").RuntimeFiber<E, A>>;
|
|
32
|
+
//# sourceMappingURL=reportError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportError.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/reportError.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AACD,eAAO,MAAM,mBAAmB,6JAAoD,CAAA;AAEpF,eAAO,MAAM,kBAAkB,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEACY,CAAA;AAEnH,eAAO,MAAM,gBAAgB,6JAAiD,CAAA;AAE9E,eAAO,MAAM,eAAe,UAAW,MAAM,OAAO,CAAC,YAAY,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEACY,CAAA;;;;;;;;;;AAWhH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAGrE;;;;;;;;;;AAWD,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gHAO/E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/lib/api/reportError.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect-app/infra/lib/RequestContext";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
5
|
+
import * as tsplus_module_3 from "@effect/io/Cause";
|
|
6
|
+
import { CauseException } from "../../errors.js";
|
|
7
|
+
import { logError, reportError } from "../../lib/errorReporter.js";
|
|
8
|
+
import "../../lib/RequestContext.js";
|
|
9
|
+
export class RequestException extends CauseException {
|
|
10
|
+
constructor(cause) {
|
|
11
|
+
super(cause, "Request");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export const reportRequestError_ = reportError(cause => new RequestException(cause));
|
|
15
|
+
export const reportRequestError = (cause, context) => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag)(requestContext => reportRequestError_(cause, { requestContext, ...context }));
|
|
16
|
+
export const logRequestError_ = logError(cause => new RequestException(cause));
|
|
17
|
+
export const logRequestError = (cause, context) => tsplus_module_2.serviceWithEffect(tsplus_module_1.tag)(requestContext => logRequestError_(cause, { requestContext, ...context }));
|
|
18
|
+
/**
|
|
19
|
+
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
20
|
+
* new fiber is attached to the global scope, when the fiber executing the
|
|
21
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
22
|
+
*
|
|
23
|
+
* Reports errors.
|
|
24
|
+
*
|
|
25
|
+
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
26
|
+
*/
|
|
27
|
+
export function forkDaemonReportRequest(self) {
|
|
28
|
+
return tsplus_module_2.daemonChildren(tsplus_module_2.fork(tracer_1.withCallTrace(fileName_1 + ":30:15")(tsplus_module_2.tapErrorCause(reportRequestError))(self)));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
32
|
+
* new fiber is attached to the global scope, when the fiber executing the
|
|
33
|
+
* returned effect terminates, the forked fiber will continue running.
|
|
34
|
+
*
|
|
35
|
+
* Reports errors.
|
|
36
|
+
*
|
|
37
|
+
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
38
|
+
*/
|
|
39
|
+
export function forkDaemonReportRequestUnexpected(self) {
|
|
40
|
+
return tsplus_module_2.daemonChildren(tsplus_module_2.fork(tracer_1.withCallTrace(fileName_1 + ":44:15")(tsplus_module_2.tapErrorCause(cause => tsplus_module_3.isInterruptedOnly(cause) || tsplus_module_3.isDie(cause)
|
|
41
|
+
? reportRequestError(cause)
|
|
42
|
+
: logRequestError(cause)))(self)));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL2xpYi9hcGkvcmVwb3J0RXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRSxPQUErQiw2QkFBNkIsQ0FBQTtBQUU1RCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsY0FBaUI7SUFDeEQsWUFBWSxLQUFlO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekIsQ0FBQztDQUNGO0FBQ0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRXBGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBcUIsRUFBRSxPQUE2QyxFQUFFLEVBQUUsQ0FDekcsdURBQW9DLGNBQWMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRW5ILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUU5RSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQTZDLEVBQUUsRUFBRSxDQUN0Ryx1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFaEg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQVUsSUFBcUI7SUFDcEUsMkRBQU8sNEVBQW1CLGtCQUFrQixHQUFyQyxJQUFJLENBQWtDLEdBQ3ZCO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBVSxJQUFxQjtJQUM5RSwyREFBTyw0RUFBbUIsS0FBSyxDQUFDLEVBQUUsQ0FDaEMsa0NBQUEsS0FBSyxDQUFvQixJQUFJLHNCQUFBLEtBQUssQ0FBUTtRQUN4QyxDQUFDLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBSHJCLElBQUksQ0FJVixHQUNxQjtBQUN4QixDQUFDIn0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Effect } from "@effect/io/Effect";
|
|
2
|
+
import { Context } from "@fp-ts/data/Context";
|
|
3
|
+
import { ParsedShapeOf } from "@effect-app/prelude/schema";
|
|
4
|
+
import type { _E, _R } from "@effect-app/prelude/_ext/Prelude.ext";
|
|
5
|
+
import type { GetRequest, GetResponse } from "@effect-app/prelude/schema";
|
|
6
|
+
import * as MO from "@effect-app/prelude/schema";
|
|
7
|
+
import * as Ex from "@effect-app/infra-adapters/express/index";
|
|
8
|
+
import type { Encode, RequestHandler, RequestHandlerOptRes, RequestParsers } from "@effect-app/infra-adapters/express/schema/requestHandler";
|
|
9
|
+
import type { RouteDescriptorAny } from "@effect-app/infra-adapters/express/schema/routing";
|
|
10
|
+
import type express from "express";
|
|
11
|
+
import type { ValidationError } from "../../errors.js";
|
|
12
|
+
import { RequestContext } from "../../lib/RequestContext.js";
|
|
13
|
+
import type { SupportedErrors } from "./defaultErrorHandler.js";
|
|
14
|
+
export declare function makeRequestParsers<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA extends PathA & QueryA & BodyA, ResA, Errors>(Request: RequestHandler<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, Errors>["Request"]): RequestParsers<PathA, CookieA, QueryA, BodyA, HeaderA>;
|
|
15
|
+
export type MakeMiddlewareContext<ResE, R2 = never, PR = never> = (req: express.Request, res: express.Response, context: RequestContext) => Effect<R2, ResE, Context<PR>>;
|
|
16
|
+
export type Middleware<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA extends PathA & QueryA & BodyA, ResA, ResE, R2 = never, PR = never> = (handler: RequestHandler<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, ResE>) => {
|
|
17
|
+
handler: typeof handler;
|
|
18
|
+
makeContext: MakeMiddlewareContext<ResE, R2, PR>;
|
|
19
|
+
};
|
|
20
|
+
export declare function match<R, E, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA extends PathA & QueryA & BodyA, ResA, R2 = never, PR = never, RErr = never>(requestHandler: RequestHandler<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, E>, errorHandler: <R>(req: express.Request, res: express.Response, requestContext: RequestContext, r2: Effect<R, E | ValidationError, void>) => Effect<RErr, never, void>, middleware?: Middleware<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, E, R2, PR>): import("@effect/io/Effect").Effect<R | R2 | RErr | Ex.ExpressEnv, never, import("@effect-app/infra-adapters/express/schema/routing").RouteDescriptor<R, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, E, MO.Methods>>;
|
|
21
|
+
export declare function respondSuccess<ReqA, A, E>(encodeResponse: (req: ReqA) => Encode<A, E>): (req: ReqA, res: express.Response, a: A) => import("@effect/io/Effect").Effect<never, never, void>;
|
|
22
|
+
export declare function makeRequestHandler<R, E, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA extends PathA & QueryA & BodyA, ResA = void, R2 = never, PR = never, RErr = never>(handler: RequestHandlerOptRes<R | PR, PathA, CookieA, QueryA, BodyA, HeaderA, ReqA, ResA, E>, errorHandler: <R>(req: express.Request, res: express.Response, requestContext: RequestContext, r2: Effect<R, E | ValidationError, void>) => Effect<RErr | R, never, void>, makeMiddlewareContext?: MakeMiddlewareContext<E, R2, PR>): (req: express.Request, res: express.Response) => Effect<RErr | R | R2, never, void>;
|
|
23
|
+
export type RequestHandlers = {
|
|
24
|
+
[key: string]: BasicRequestHandler;
|
|
25
|
+
};
|
|
26
|
+
export type BasicRequestHandler = RequestHandler<any, any, any, any, any, any, any, any, ValidationError>;
|
|
27
|
+
export type AnyRequestHandler = RequestHandler<any, any, any, any, any, any, any, any, any>;
|
|
28
|
+
type RouteAll<T extends RequestHandlers> = {
|
|
29
|
+
[K in keyof T]: T[K] extends RequestHandler<infer R, any, // infer PathA,
|
|
30
|
+
any, // infer CookieA,
|
|
31
|
+
any, // infer QueryA,
|
|
32
|
+
any, // infer BodyA,
|
|
33
|
+
any, // infer HeaderA,
|
|
34
|
+
any, // infer ReqA,
|
|
35
|
+
any, // infer ResA,
|
|
36
|
+
ValidationError> ? RouteMatch<R, never> : never;
|
|
37
|
+
};
|
|
38
|
+
export type RouteMatch<R, PR = never> = Effect<Ex.ExpressAppConfig | Ex.ExpressApp | Exclude<R, PR>, never, RouteDescriptorAny>;
|
|
39
|
+
/**
|
|
40
|
+
* Gather all handlers of a module and attach them to the Server.
|
|
41
|
+
* Requires no login.
|
|
42
|
+
*/
|
|
43
|
+
export declare function matchAll<T extends RequestHandlers>(handlers: T): RouteAll<T>;
|
|
44
|
+
/**
|
|
45
|
+
* Gather all handlers of a module and attach them to the Server.
|
|
46
|
+
* Requires no login.
|
|
47
|
+
*/
|
|
48
|
+
export declare function matchAllAlt<T extends RequestHandlersTest>(handlers: T): Flatten<RouteAllTest<T>>;
|
|
49
|
+
export type RequestHandlersTest = {
|
|
50
|
+
[key: string]: Record<string, BasicRequestHandler>;
|
|
51
|
+
};
|
|
52
|
+
export type RouteAllTest<T extends RequestHandlersTest> = {
|
|
53
|
+
[K in keyof T]: RouteAll<T[K]>;
|
|
54
|
+
};
|
|
55
|
+
export type Flatten<T extends object> = object extends T ? object : {
|
|
56
|
+
[K in keyof T]-?: (x: NonNullable<T[K]> extends infer V ? V extends object ? V extends readonly any[] ? Pick<T, K> : FlattenLVL1<V> extends infer FV ? ({
|
|
57
|
+
[P in keyof FV as `${Extract<K, string | number>}.${Extract<P, string | number>}`]: FV[P];
|
|
58
|
+
}) : never : Pick<T, K> : never) => void;
|
|
59
|
+
} extends Record<keyof T, (y: infer O) => void> ? O extends unknown ? {
|
|
60
|
+
[K in keyof O]: O[K];
|
|
61
|
+
} : never : never;
|
|
62
|
+
type FlattenLVL1<T extends object> = object extends T ? object : {
|
|
63
|
+
[K in keyof T]-?: (x: NonNullable<T[K]> extends infer V ? V extends object ? V extends readonly any[] ? Pick<T, K> : Pick<T, K> : never : never) => void;
|
|
64
|
+
} extends Record<keyof T, (y: infer O) => void> ? O extends unknown ? {
|
|
65
|
+
[K in keyof O]: O[K];
|
|
66
|
+
} : never : never;
|
|
67
|
+
export declare function handle<TModule extends Record<string, any>>(_: TModule & {
|
|
68
|
+
ResponseOpenApi?: any;
|
|
69
|
+
}, adaptResponse?: any): <R, E>(h: (r: InstanceType<GetRequest<TModule> extends new (...args: any[]) => any ? GetRequest<TModule> : never>) => import("@effect/io/Effect").Effect<R, E, MO.ParsedShapeOf<Extr<GetResponse<TModule>>>>) => ReqHandler<InstanceType<GetRequest<TModule> extends new (...args: any[]) => any ? GetRequest<TModule> : never>, R, E, MO.ParsedShapeOf<Extr<GetResponse<TModule>>>, GetRequest<TModule>, GetResponse<TModule>, any>;
|
|
70
|
+
export type Extr<T> = T extends {
|
|
71
|
+
Model: MO.SchemaAny;
|
|
72
|
+
} ? T["Model"] : T extends MO.SchemaAny ? T : never;
|
|
73
|
+
export interface ReqHandler<Req, R, E, Res, ReqSchema extends MO.SchemaAny, ResSchema extends MO.SchemaAny, CTX = any> {
|
|
74
|
+
h: (r: Req, ctx: CTX) => Effect<R, E, Res>;
|
|
75
|
+
Request: ReqSchema;
|
|
76
|
+
Response: ResSchema;
|
|
77
|
+
ResponseOpenApi: any;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Provided a module with resources, and provided an Object with resource handlers, will prepare route handlers to be attached to server.
|
|
81
|
+
* @param mod The module with Resources you want to match.
|
|
82
|
+
* @returns A function that must be called with an Object with a handler "Request -> Effect<R, E, Response>" for each resource defined in the Module.
|
|
83
|
+
*
|
|
84
|
+
* Example:
|
|
85
|
+
* ```
|
|
86
|
+
* class SayHelloRequest extends Get("/say-hello")<SayHelloRequest>()({ name: prop(ReasonableString) }) {}
|
|
87
|
+
* class SayHelloResponse extends Model<SayHelloRequest>()({ message: prop(LongString) }) {}
|
|
88
|
+
*
|
|
89
|
+
* export const SayHelloControllers = matchResource({ SayHello: { SayHelloRequest, SayHelloResponse } })({
|
|
90
|
+
* SayHello: (req) => Effect({ message: `Hi ${req.name}` })
|
|
91
|
+
* })
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function matchResource<TModules extends Record<string, Record<string, any>>>(mod: TModules): <THandlers extends { [K in keyof TModules]: (req: InstanceType<GetRequest<TModules[K]> extends infer T ? T extends GetRequest<TModules[K]> ? T extends new (...args: any[]) => any ? T : never : never : never>) => import("@effect/io/Effect").Effect<any, SupportedErrors, MO.ParsedShapeOf<Extr<GetResponse<TModules[K]>>>>; }>(handlers: THandlers) => { [K_1 in keyof TModules]: ReqHandler<InstanceType<GetRequest<TModules[K_1]> extends infer T_1 ? T_1 extends GetRequest<TModules[K_1]> ? T_1 extends new (...args: any[]) => any ? T_1 : never : never : never>, _R<ReturnType<THandlers[K_1]>>, _E<ReturnType<THandlers[K_1]>>, MO.ParsedShapeOf<Extr<GetResponse<TModules[K_1]>>>, GetRequest<TModules[K_1]>, GetResponse<TModules[K_1]>, any>; };
|
|
95
|
+
export type ReqFromSchema<ReqSchema> = InstanceType<ReqSchema extends {
|
|
96
|
+
new (...args: any[]): any;
|
|
97
|
+
} ? ReqSchema : never>;
|
|
98
|
+
export type ResFromSchema<ResSchema> = ParsedShapeOf<Extr<ResSchema>>;
|
|
99
|
+
export {};
|
|
100
|
+
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/lib/api/routing.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@fp-ts/data/Option";
|
|
4
|
+
import * as tsplus_module_2 from "@effect/io/Effect";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/prelude/_ext/Schema.ext";
|
|
7
|
+
import * as tsplus_module_5 from "@effect-app/infra/lib/RequestContext";
|
|
8
|
+
import * as tsplus_module_6 from "@effect-app/prelude/utils";
|
|
9
|
+
import * as tsplus_module_7 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
10
|
+
import * as tsplus_module_8 from "@effect-app/core/Option";
|
|
11
|
+
import * as tsplus_module_9 from "@effect-app/infra/lib/api/setupRequest";
|
|
12
|
+
import { extractSchema, SchemaNamed } from "@effect-app/prelude/schema";
|
|
13
|
+
import * as MO from "@effect-app/prelude/schema";
|
|
14
|
+
import { pretty } from "@effect-app/prelude/utils";
|
|
15
|
+
import * as Ex from "@effect-app/infra-adapters/express/index";
|
|
16
|
+
import { parseRequestParams } from "@effect-app/infra-adapters/express/schema/requestHandler";
|
|
17
|
+
import { makeRouteDescriptor } from "@effect-app/infra-adapters/express/schema/routing";
|
|
18
|
+
import { RequestContext, RequestId } from "../../lib/RequestContext.js";
|
|
19
|
+
import { defaultBasicErrorHandler } from "./defaultErrorHandler.js";
|
|
20
|
+
import { reportRequestError } from "./reportError.js";
|
|
21
|
+
import { snipString, snipValue } from "./util.js";
|
|
22
|
+
export function makeRequestParsers(Request) {
|
|
23
|
+
const ph = tracer_1.withCallTrace(fileName_1 + ":48:14")(tsplus_module_2.sync(() => tsplus_module_1.map(MO.condemnFail)(tsplus_module_1.map(MO.Parser.for)(tsplus_module_1.map(s => s)(tsplus_module_1.fromNullable(Request.Headers))))));
|
|
24
|
+
const parseHeaders = (u) => tracer_1.withCallTrace(fileName_1 + ":54:43")(tsplus_module_3.flatMapOpt(ph, d => d(u)));
|
|
25
|
+
const pq = tracer_1.withCallTrace(fileName_1 + ":56:14")(tsplus_module_2.sync(() => tsplus_module_1.map(MO.condemnFail)(tsplus_module_1.map(MO.Parser.for)(tsplus_module_1.map(s => s)(tsplus_module_1.fromNullable(Request.Query))))));
|
|
26
|
+
const parseQuery = (u) => tracer_1.withCallTrace(fileName_1 + ":62:41")(tsplus_module_3.flatMapOpt(pq, d => d(u)));
|
|
27
|
+
const pb = tracer_1.withCallTrace(fileName_1 + ":64:14")(tsplus_module_2.sync(() => tsplus_module_1.map(MO.condemnFail)(tsplus_module_1.map(MO.Parser.for)(tsplus_module_1.map(s => s)(tsplus_module_1.fromNullable(Request.Body))))));
|
|
28
|
+
const parseBody = (u) => tracer_1.withCallTrace(fileName_1 + ":70:40")(tsplus_module_3.flatMapOpt(pb, d => d(u)));
|
|
29
|
+
const pp = tracer_1.withCallTrace(fileName_1 + ":72:14")(tsplus_module_2.sync(() => tsplus_module_1.map(MO.condemnFail)(tsplus_module_1.map(MO.Parser.for)(tsplus_module_1.map(s => s)(tsplus_module_1.fromNullable(Request.Path))))));
|
|
30
|
+
const parsePath = (u) => tracer_1.withCallTrace(fileName_1 + ":78:40")(tsplus_module_3.flatMapOpt(pp, d => d(u)));
|
|
31
|
+
const pc = tracer_1.withCallTrace(fileName_1 + ":80:14")(tsplus_module_2.sync(() => tsplus_module_1.map(MO.condemnFail)(tsplus_module_1.map(MO.Parser.for)(tsplus_module_1.map(s => s)(tsplus_module_1.fromNullable(Request.Cookie))))));
|
|
32
|
+
const parseCookie = (u) => tracer_1.withCallTrace(fileName_1 + ":86:42")(tsplus_module_3.flatMapOpt(pc, d => d(u)));
|
|
33
|
+
return {
|
|
34
|
+
parseBody,
|
|
35
|
+
parseCookie,
|
|
36
|
+
parseHeaders,
|
|
37
|
+
parsePath,
|
|
38
|
+
parseQuery
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function match(requestHandler, errorHandler, middleware) {
|
|
42
|
+
let makeMiddlewareContext = undefined;
|
|
43
|
+
if (middleware) {
|
|
44
|
+
const { handler, makeContext } = middleware(requestHandler);
|
|
45
|
+
requestHandler = handler;
|
|
46
|
+
makeMiddlewareContext = makeContext;
|
|
47
|
+
}
|
|
48
|
+
return tracer_1.withCallTrace(fileName_1 + ":180:5")(tsplus_module_2.zipRight(tracer_1.withCallTrace(fileName_1 + ":181:5")(tsplus_module_2.sync(() => makeRouteDescriptor(requestHandler.Request.path, requestHandler.Request.method, requestHandler)))))(Ex.match(requestHandler.Request.method.toLowerCase())(requestHandler.Request.path.split("?")[0], makeRequestHandler(requestHandler, errorHandler, makeMiddlewareContext)));
|
|
49
|
+
}
|
|
50
|
+
export function respondSuccess(encodeResponse) {
|
|
51
|
+
return (req, res, a) => tracer_1.withCallTrace(fileName_1 + ":196:8")(tsplus_module_2.flatMap(r => tracer_1.withCallTrace(fileName_1 + ":197:9")(tsplus_module_2.sync(() => {
|
|
52
|
+
r === undefined
|
|
53
|
+
? res.status(204).send()
|
|
54
|
+
: res.status(200)
|
|
55
|
+
.send(JSON.stringify(r));
|
|
56
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":195:5")(tsplus_module_2.sync(() => encodeResponse(req)(a))));
|
|
57
|
+
}
|
|
58
|
+
export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext) {
|
|
59
|
+
const { Request, Response, adaptResponse, h: handle } = handler;
|
|
60
|
+
const response = Response ? extractSchema(Response) : MO.Void;
|
|
61
|
+
const encoder = MO.Encoder.for(response);
|
|
62
|
+
const encodeResponse = adaptResponse
|
|
63
|
+
? (req) => MO.Encoder.for(adaptResponse(req))
|
|
64
|
+
: () => encoder;
|
|
65
|
+
const requestParsers = makeRequestParsers(Request);
|
|
66
|
+
const parseRequest = parseRequestParams(requestParsers);
|
|
67
|
+
const respond = respondSuccess(encodeResponse);
|
|
68
|
+
function getParams(req) {
|
|
69
|
+
return tracer_1.withCallTrace(fileName_1 + ":251:12")(tsplus_module_2.sync(() => ({
|
|
70
|
+
path: req.params,
|
|
71
|
+
query: req.query,
|
|
72
|
+
body: req.body,
|
|
73
|
+
headers: req.headers
|
|
74
|
+
? Object.entries(req.headers).reduce((prev, [key, value]) => {
|
|
75
|
+
prev[key] = snipValue(value);
|
|
76
|
+
return prev;
|
|
77
|
+
}, {})
|
|
78
|
+
: req.headers,
|
|
79
|
+
cookies: req.cookies
|
|
80
|
+
? Object.entries(req.cookies).reduce((prev, [key, value]) => {
|
|
81
|
+
prev[key] = typeof value === "string" || Array.isArray(value)
|
|
82
|
+
? snipValue(value)
|
|
83
|
+
: value;
|
|
84
|
+
return prev;
|
|
85
|
+
}, {})
|
|
86
|
+
: req.cookies
|
|
87
|
+
})));
|
|
88
|
+
}
|
|
89
|
+
function makeContext(req) {
|
|
90
|
+
const start = new Date();
|
|
91
|
+
const supported = ["en", "de"];
|
|
92
|
+
const desiredLocale = req.headers["x-locale"];
|
|
93
|
+
const locale = desiredLocale && supported.includes(desiredLocale)
|
|
94
|
+
? desiredLocale
|
|
95
|
+
: "en";
|
|
96
|
+
// const context = getAppInsightsContext()
|
|
97
|
+
// if (!context) {
|
|
98
|
+
// throw new Error("AI Context missing")
|
|
99
|
+
// }
|
|
100
|
+
const requestId = req.headers["request-id"];
|
|
101
|
+
const rootId = requestId ? tsplus_module_4.parseUnsafe(RequestId)(requestId) : RequestId.make();
|
|
102
|
+
const requestContext = new RequestContext({
|
|
103
|
+
rootId,
|
|
104
|
+
name: MO.ReasonableString(Request.Model instanceof SchemaNamed ? Request.Model.name : Request.name),
|
|
105
|
+
locale,
|
|
106
|
+
createdAt: start
|
|
107
|
+
// ...(context.operation.parentId
|
|
108
|
+
// ? {
|
|
109
|
+
// parent: new RequestContextParent({
|
|
110
|
+
// id: RequestId(context.operation.parentId),
|
|
111
|
+
// locale,
|
|
112
|
+
// name: ReasonableString("API Request")
|
|
113
|
+
// })
|
|
114
|
+
// }
|
|
115
|
+
// : {})
|
|
116
|
+
});
|
|
117
|
+
// context.requestContext = requestContext
|
|
118
|
+
return requestContext;
|
|
119
|
+
}
|
|
120
|
+
return (req, res) => {
|
|
121
|
+
return tracer_1.withCallTrace(fileName_1 + ":321:8")(tsplus_module_2.flatMap(({ pars, requestContext }) => tsplus_module_9.setupRequest(tracer_1.withCallTrace(fileName_1 + ":405:12")(tsplus_module_3.provideService(tracer_1.withCallTrace(fileName_1 + ":390:12")(tsplus_module_2.tap(() => tracer_1.withCallTrace(fileName_1 + ":391:20")(tsplus_module_2.suspendSucceed(() => {
|
|
122
|
+
const headers = res.getHeaders();
|
|
123
|
+
return tsplus_module_7.logAnnotates({
|
|
124
|
+
method: req.method,
|
|
125
|
+
path: req.originalUrl,
|
|
126
|
+
statusCode: res.statusCode.toString(),
|
|
127
|
+
resHeaders: tsplus_module_6.RecordPretty(tsplus_module_6.object$(Object.entries(headers).reduce((prev, [key, value]) => {
|
|
128
|
+
prev[key] = value && typeof value === "string" ? snipString(value) : value;
|
|
129
|
+
return prev;
|
|
130
|
+
}, {})))
|
|
131
|
+
})(tracer_1.withCallTrace(fileName_1 + ":393:29")(tsplus_module_2.logInfo("Processed request")));
|
|
132
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":362:12")(tsplus_module_2.tapErrorCause(cause => tracer_1.withCallTrace(fileName_1 + ":388:16")(tsplus_module_2.tapErrorCause(cause => tracer_1.withCallTrace(fileName_1 + ":388:39")(tsplus_module_2.sync(() => console.error("Error occurred while reporting error", cause)))))(tracer_1.withCallTrace(fileName_1 + ":370:16")(tsplus_module_2.zipRight(tracer_1.withCallTrace(fileName_1 + ":371:22")(tsplus_module_2.suspendSucceed(() => {
|
|
133
|
+
const headers = res.getHeaders();
|
|
134
|
+
return tsplus_module_7.logAnnotates({
|
|
135
|
+
method: req.method,
|
|
136
|
+
path: req.originalUrl,
|
|
137
|
+
statusCode: res.statusCode.toString(),
|
|
138
|
+
resHeaders: tsplus_module_6.RecordPretty(tsplus_module_6.object$(Object.entries(headers).reduce((prev, [key, value]) => {
|
|
139
|
+
prev[key] = value && typeof value === "string" ? snipString(value) : value;
|
|
140
|
+
return prev;
|
|
141
|
+
}, {})))
|
|
142
|
+
})(tracer_1.withCallTrace(fileName_1 + ":373:31")(tsplus_module_2.logErrorCauseMessage("Processed request", cause)));
|
|
143
|
+
}))))(tracer_1.withCallTrace(fileName_1 + ":363:20")(tsplus_module_2.suspendSucceed(() => {
|
|
144
|
+
res.status(500).send();
|
|
145
|
+
return reportRequestError(cause, {
|
|
146
|
+
requestContext,
|
|
147
|
+
path: req.originalUrl,
|
|
148
|
+
method: req.method
|
|
149
|
+
});
|
|
150
|
+
}))))))(tracer_1.withCallTrace(fileName_1 + ":330:13")(tsplus_module_2.zipRight(tracer_1.withCallTrace(fileName_1 + ":331:18")(tsplus_module_2.suspendSucceed(() => {
|
|
151
|
+
const handleRequest = tracer_1.withCallTrace(fileName_1 + ":341:16")(tsplus_module_2.flatMap(parsedReq => tracer_1.withCallTrace(fileName_1 + ":343:20")(tsplus_module_2.flatMap(r => respond(parsedReq, res, r)))(handle(parsedReq))))(tracer_1.withCallTrace(fileName_1 + ":333:16")(tsplus_module_2.map(({ body, path, query }) => {
|
|
152
|
+
const hn = {
|
|
153
|
+
...tsplus_module_8.getOrUndefined(body),
|
|
154
|
+
...tsplus_module_8.getOrUndefined(query),
|
|
155
|
+
...tsplus_module_8.getOrUndefined(path)
|
|
156
|
+
};
|
|
157
|
+
return hn;
|
|
158
|
+
}))(parseRequest(req)));
|
|
159
|
+
// Commands should not be interruptable.
|
|
160
|
+
const r = (req.method !== "GET" ? tsplus_module_2.uninterruptible(handleRequest) : handleRequest); // .instrument("Performance.RequestResponse")
|
|
161
|
+
// the first log entry should be of the request start.
|
|
162
|
+
const r2 = makeMiddlewareContext
|
|
163
|
+
? tsplus_module_3.provideSomeEnvironmentEffect(makeMiddlewareContext(req, res, requestContext))(r)
|
|
164
|
+
: // PR is not relevant here
|
|
165
|
+
r;
|
|
166
|
+
return errorHandler(req, res, requestContext, r2);
|
|
167
|
+
}))))(tsplus_module_7.logAnnotates({
|
|
168
|
+
method: req.method,
|
|
169
|
+
path: req.originalUrl,
|
|
170
|
+
reqPath: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.path)),
|
|
171
|
+
reqQuery: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.query)),
|
|
172
|
+
reqBody: pretty(pars.body),
|
|
173
|
+
reqCookies: pretty(pars.cookies),
|
|
174
|
+
reqHeaders: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.headers))
|
|
175
|
+
})(tracer_1.withCallTrace(fileName_1 + ":322:16")(tsplus_module_2.logInfo("Processing request")))))), tsplus_module_5.tag, requestContext) // otherwise external error reporter breaks.
|
|
176
|
+
), requestContext)))(tracer_1.withCallTrace(fileName_1 + ":310:19")(tsplus_module_2.struct({
|
|
177
|
+
requestContext: tracer_1.withCallTrace(fileName_1 + ":311:23")(tsplus_module_2.sync(() => {
|
|
178
|
+
const requestContext = makeContext(req);
|
|
179
|
+
if (req.method === "GET") {
|
|
180
|
+
res.setHeader("Cache-Control", "no-store");
|
|
181
|
+
}
|
|
182
|
+
res.setHeader("Content-Language", requestContext.locale);
|
|
183
|
+
return requestContext;
|
|
184
|
+
})),
|
|
185
|
+
pars: getParams(req)
|
|
186
|
+
})));
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Gather all handlers of a module and attach them to the Server.
|
|
191
|
+
* Requires no login.
|
|
192
|
+
*/
|
|
193
|
+
export function matchAll(handlers) {
|
|
194
|
+
const mapped = tsplus_module_6.RecordKeys(tsplus_module_6.object$(handlers)).reduce((prev, cur) => {
|
|
195
|
+
prev[cur] = match(handlers[cur], defaultBasicErrorHandler);
|
|
196
|
+
return prev;
|
|
197
|
+
}, {});
|
|
198
|
+
return mapped;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Gather all handlers of a module and attach them to the Server.
|
|
202
|
+
* Requires no login.
|
|
203
|
+
*/
|
|
204
|
+
export function matchAllAlt(handlers) {
|
|
205
|
+
const mapped = tsplus_module_6.RecordKeys(tsplus_module_6.object$(handlers)).reduce((prev, cur) => {
|
|
206
|
+
const matches = matchAll(handlers[cur]);
|
|
207
|
+
tsplus_module_6.RecordKeys(tsplus_module_6.object$(matches)).forEach(key => prev[`${cur}.${key}`] = matches[key]);
|
|
208
|
+
return prev;
|
|
209
|
+
}, {});
|
|
210
|
+
return mapped;
|
|
211
|
+
}
|
|
212
|
+
export function handle(_, adaptResponse) {
|
|
213
|
+
// TODO: Prevent over providing // no strict/shrink yet.
|
|
214
|
+
const Request = MO.extractRequest(_);
|
|
215
|
+
const Response = MO.extractResponse(_);
|
|
216
|
+
return (h) => ({
|
|
217
|
+
adaptResponse,
|
|
218
|
+
h,
|
|
219
|
+
Request,
|
|
220
|
+
Response,
|
|
221
|
+
ResponseOpenApi: _.ResponseOpenApi ?? Response
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Provided a module with resources, and provided an Object with resource handlers, will prepare route handlers to be attached to server.
|
|
226
|
+
* @param mod The module with Resources you want to match.
|
|
227
|
+
* @returns A function that must be called with an Object with a handler "Request -> Effect<R, E, Response>" for each resource defined in the Module.
|
|
228
|
+
*
|
|
229
|
+
* Example:
|
|
230
|
+
* ```
|
|
231
|
+
* class SayHelloRequest extends Get("/say-hello")<SayHelloRequest>()({ name: prop(ReasonableString) }) {}
|
|
232
|
+
* class SayHelloResponse extends Model<SayHelloRequest>()({ message: prop(LongString) }) {}
|
|
233
|
+
*
|
|
234
|
+
* export const SayHelloControllers = matchResource({ SayHello: { SayHelloRequest, SayHelloResponse } })({
|
|
235
|
+
* SayHello: (req) => Effect({ message: `Hi ${req.name}` })
|
|
236
|
+
* })
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
export function matchResource(mod) {
|
|
240
|
+
return (handlers) => {
|
|
241
|
+
const handler = tsplus_module_6.RecordKeys(tsplus_module_6.object$(mod)).reduce((prev, cur) => {
|
|
242
|
+
prev[cur] = handle(mod[cur])(handlers[cur]);
|
|
243
|
+
return prev;
|
|
244
|
+
}, {});
|
|
245
|
+
return handler;
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvbGliL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN2RSxPQUFPLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBTzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFBO0FBRTdGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBR3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFakQsTUFBTSxVQUFVLGtCQUFrQixDQVdoQyxPQVVZO0lBRVosTUFBTSxFQUFFLGlEQUFHLDJCQUNULG9CQUdPLEVBQUUsQ0FBQyxXQUFXLEVBSHJCLG9CQUVPLEFBOUNDLEVBQUUsQ0E4Q0gsTUFBTSxDQUFDLEdBQUcsRUFGakIsb0JBQ08sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBRGIsNkJBQWlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDbkIsQ0FDSSxDQUNJLENBQ3ZCLENBQUEsQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBVSxFQUFFLEVBQUUsK0NBQUMsMkJBQUEsRUFBRSxFQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxD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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Effect } from "@effect/io/Effect";
|
|
2
|
+
import { RequestContext } from "../RequestContext.js";
|
|
3
|
+
/**
|
|
4
|
+
* @tsplus fluent effect/io/Effect setupRequest
|
|
5
|
+
* @tsplus location "@effect-app/infra/lib/api/setupRequest"
|
|
6
|
+
*/
|
|
7
|
+
export declare function setupRequest<R, E, A>(self: Effect<R, E, A>, requestContext: RequestContext): import("@effect/io/Effect").Effect<R, E, A>;
|
|
8
|
+
/**
|
|
9
|
+
* @tsplus getter effect/io/Effect setupRequestFrom
|
|
10
|
+
* @tsplus location "@effect-app/infra/lib/api/setupRequest"
|
|
11
|
+
*/
|
|
12
|
+
export declare function setupRequestFrom<R, E, A>(self: Effect<R, E, A>): import("@effect/io/Effect").Effect<RequestContext | R, E, A>;
|
|
13
|
+
//# sourceMappingURL=setupRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/setupRequest.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;;;;AAKrD,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,+CAS1F;;;;;AAKD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gEAE9D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as tracer_1 from "@effect/io/Debug";
|
|
2
|
+
const fileName_1 = "packages/infra/_src/lib/api/setupRequest.ts";
|
|
3
|
+
import * as tsplus_module_1 from "@effect/io/Effect";
|
|
4
|
+
import * as tsplus_module_2 from "@effect-app/prelude/_ext/Prelude.ext";
|
|
5
|
+
import * as tsplus_module_3 from "@effect-app/core/Function";
|
|
6
|
+
import * as tsplus_module_4 from "@effect-app/infra/lib/RequestContext";
|
|
7
|
+
export const setupRequest = setupRequest_1;
|
|
8
|
+
import "../RequestContext.js";
|
|
9
|
+
/**
|
|
10
|
+
* @tsplus fluent effect/io/Effect setupRequest
|
|
11
|
+
*/
|
|
12
|
+
function setupRequest_1(self, requestContext) {
|
|
13
|
+
return tsplus_module_3.pipe(tracer_1.withCallTrace(fileName_1 + ":8:10")(tsplus_module_1.withSpan("request"))(self), tsplus_module_2.logAnnotates({
|
|
14
|
+
requestRootId: requestContext.rootId,
|
|
15
|
+
requestId: requestContext.id,
|
|
16
|
+
requestName: requestContext.name
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @tsplus getter effect/io/Effect setupRequestFrom
|
|
21
|
+
*/
|
|
22
|
+
export function setupRequestFrom(self) {
|
|
23
|
+
return tsplus_module_1.serviceWithEffect(tsplus_module_4.tag)(requestContext => setupRequest_1(self, requestContext));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9saWIvYXBpL3NldHVwUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7YUFLZ0IsWUFBWTtBQUw1QixPQUErQixzQkFBc0IsQ0FBQTtBQUVyRDs7R0FFRztBQUNILHdCQUFzQyxJQUFxQixFQUFFLGNBQThCO0lBQ3pGLE9BQU8sZ0JBQUEsSUFBSSxDQUNULHNFQUFjLFNBQVMsR0FBdkIsSUFBSSxDQUFvQixFQUN4Qiw2QkFBb0I7UUFDbEIsYUFBYSxFQUFFLGNBQWMsQ0FBQyxNQUFNO1FBQ3BDLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBRTtRQUM1QixXQUFXLEVBQUUsY0FBYyxDQUFDLElBQUk7S0FDakMsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQVUsSUFBcUI7SUFDN0QsT0FBTyx1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FBQyxlQUFBLElBQUksRUFBYyxjQUFjLENBQUMsQ0FBQyxDQUFBO0FBQ2pHLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,0CAStE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAEvC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function snipValue(value) {
|
|
2
|
+
if (!value) {
|
|
3
|
+
return value;
|
|
4
|
+
}
|
|
5
|
+
return Array.isArray(value)
|
|
6
|
+
? value.map(snipString)
|
|
7
|
+
: typeof value === "string" && value.length > 50
|
|
8
|
+
? snipString(value)
|
|
9
|
+
: value;
|
|
10
|
+
}
|
|
11
|
+
export function snipString(value) {
|
|
12
|
+
return value.length > 255 ? value.slice(0, 255) + "...snip" : value;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvbGliL2FwaS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBNkM7SUFDckUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFBO0tBQ2I7SUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN2QixDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRTtZQUNoRCxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBYTtJQUN0QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUNyRSxDQUFDIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RouteDescriptorAny } from "@effect-app/infra-adapters/express/schema/routing";
|
|
2
|
+
export declare function writeOpenapiDocs(rdescs: Record<string, Record<string, RouteDescriptorAny>>): import("@effect/io/Effect").Effect<never, never, void>;
|
|
3
|
+
//# sourceMappingURL=writeDocs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeDocs.d.ts","sourceRoot":"","sources":["../../../_src/lib/api/writeDocs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAM3F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,0DAkB1F"}
|