@tstdl/base 0.78.0-beta9 → 0.78.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/api/client/client.d.ts +2 -1
- package/api/client/client.js +38 -16
- package/api/client/client.js.map +1 -1
- package/api/response.js +4 -3
- package/api/response.js.map +1 -1
- package/api/server/api-controller.d.ts +3 -1
- package/api/server/api-controller.js +7 -2
- package/api/server/api-controller.js.map +1 -1
- package/api/server/gateway.d.ts +15 -3
- package/api/server/gateway.js +53 -37
- package/api/server/gateway.js.map +1 -1
- package/api/server/middlewares/allowed-methods.middleware.js +1 -1
- package/api/server/middlewares/allowed-methods.middleware.js.map +1 -1
- package/api/server/middlewares/cors.middleware.d.ts +6 -4
- package/api/server/middlewares/cors.middleware.js +30 -30
- package/api/server/middlewares/cors.middleware.js.map +1 -1
- package/api/types.d.ts +36 -14
- package/api/types.js +1 -2
- package/api/types.js.map +1 -1
- package/api/utils.d.ts +9 -0
- package/api/utils.js +15 -0
- package/api/utils.js.map +1 -0
- package/application/application.d.ts +17 -4
- package/application/application.js +97 -48
- package/application/application.js.map +1 -1
- package/collections/awaitable/awaitable-list.js +10 -11
- package/collections/awaitable/awaitable-list.js.map +1 -1
- package/collections/observable/observable-array.js +1 -1
- package/collections/observable/observable-array.js.map +1 -1
- package/collections/observable/observable-collection-base.js +12 -14
- package/collections/observable/observable-collection-base.js.map +1 -1
- package/collections/observable/observable-list-base.js +6 -8
- package/collections/observable/observable-list-base.js.map +1 -1
- package/collections/observable/observable-sorted-array-list.js +3 -3
- package/collections/observable/observable-sorted-array-list.js.map +1 -1
- package/collections/sorted-array-list.js +3 -3
- package/collections/sorted-array-list.js.map +1 -1
- package/collections/sorted-map.js +1 -1
- package/collections/sorted-map.js.map +1 -1
- package/container/container.js +19 -21
- package/container/container.js.map +1 -1
- package/container/decorators.d.ts +1 -1
- package/container/decorators.js.map +1 -1
- package/container/resolve-chain.d.ts +2 -1
- package/container/resolve-chain.js +6 -2
- package/container/resolve-chain.js.map +1 -1
- package/core.js +4 -3
- package/core.js.map +1 -1
- package/css/theme/theme.service.js.map +1 -1
- package/data-structures/circular-buffer.js +5 -6
- package/data-structures/circular-buffer.js.map +1 -1
- package/data-structures/collection.js +4 -5
- package/data-structures/collection.js.map +1 -1
- package/data-structures/index-out-of-bounds.error.d.ts +1 -1
- package/data-structures/index-out-of-bounds.error.js +2 -2
- package/data-structures/index-out-of-bounds.error.js.map +1 -1
- package/data-structures/index.d.ts +1 -0
- package/data-structures/index.js +1 -0
- package/data-structures/index.js.map +1 -1
- package/data-structures/iterable-weak-map.js +1 -1
- package/data-structures/iterable-weak-map.js.map +1 -1
- package/data-structures/linked-list.js.map +1 -1
- package/data-structures/map.d.ts +20 -0
- package/data-structures/map.js +65 -0
- package/data-structures/map.js.map +1 -0
- package/data-structures/sorted-array-list.js +2 -2
- package/data-structures/sorted-array-list.js.map +1 -1
- package/database/mongo/classes.js.map +1 -1
- package/database/mongo/mongo-base.repository.d.ts +1 -0
- package/database/mongo/mongo-base.repository.js +6 -3
- package/database/mongo/mongo-base.repository.js.map +1 -1
- package/database/mongo/mongo-entity-repository.js +18 -25
- package/database/mongo/mongo-entity-repository.js.map +1 -1
- package/distributed-loop/distributed-loop.js.map +1 -1
- package/distributed-loop/provider.js.map +1 -1
- package/environment.d.ts +10 -0
- package/environment.js +26 -0
- package/environment.js.map +1 -0
- package/error/custom.error.d.ts +7 -3
- package/error/custom.error.js +17 -8
- package/error/custom.error.js.map +1 -1
- package/error/index.d.ts +1 -0
- package/error/index.js +1 -0
- package/error/index.js.map +1 -1
- package/error/max-bytes-exceeded.error.d.ts +1 -0
- package/error/max-bytes-exceeded.error.js +3 -0
- package/error/max-bytes-exceeded.error.js.map +1 -1
- package/error/not-implemented.error.js +1 -1
- package/error/not-implemented.error.js.map +1 -1
- package/error/not-supported.error.d.ts +7 -0
- package/error/not-supported.error.js +17 -0
- package/error/not-supported.error.js.map +1 -0
- package/error/unsupported-media-type.error.js +1 -1
- package/error/unsupported-media-type.error.js.map +1 -1
- package/examples/api/basic-overview.js +17 -25
- package/examples/api/basic-overview.js.map +1 -1
- package/examples/api/streaming.d.ts +1 -0
- package/examples/api/streaming.js +79 -0
- package/examples/api/streaming.js.map +1 -0
- package/examples/mail/basic.js +12 -7
- package/examples/mail/basic.js.map +1 -1
- package/examples/mail/templates/hello-name.d.ts +2 -0
- package/examples/mail/templates/hello-name.js +11 -0
- package/examples/mail/templates/hello-name.js.map +1 -0
- package/examples/pdf/basic.js +9 -6
- package/examples/pdf/basic.js.map +1 -1
- package/examples/pdf/templates/hello-name.d.ts +1 -4
- package/examples/pdf/templates/hello-name.js +30 -4
- package/examples/pdf/templates/hello-name.js.map +1 -1
- package/examples/reflection/basic.js +1 -1
- package/examples/reflection/basic.js.map +1 -1
- package/examples/template/basic.d.ts +1 -0
- package/examples/template/basic.js +25 -0
- package/examples/template/basic.js.map +1 -0
- package/examples/template/templates/hello-name.d.ts +2 -0
- package/examples/template/templates/hello-name.js +23 -0
- package/examples/template/templates/hello-name.js.map +1 -0
- package/http/client/adapters/undici-http-client.adapter.d.ts +1 -2
- package/http/client/adapters/undici-http-client.adapter.js +11 -12
- package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
- package/http/client/http-client-request.d.ts +24 -14
- package/http/client/http-client-request.js +4 -2
- package/http/client/http-client-request.js.map +1 -1
- package/http/client/http-client-response.d.ts +10 -12
- package/http/client/http-client-response.js +5 -1
- package/http/client/http-client-response.js.map +1 -1
- package/http/client/http-client.adapter.d.ts +1 -2
- package/http/client/http-client.adapter.js.map +1 -1
- package/http/client/http-client.d.ts +30 -31
- package/http/client/http-client.js +107 -74
- package/http/client/http-client.js.map +1 -1
- package/http/http-body.d.ts +19 -0
- package/http/http-body.js +52 -0
- package/http/http-body.js.map +1 -0
- package/http/http-headers.d.ts +3 -0
- package/http/http-headers.js +6 -0
- package/http/http-headers.js.map +1 -1
- package/http/http-value-map.js +2 -2
- package/http/http-value-map.js.map +1 -1
- package/http/http.error.d.ts +5 -2
- package/http/http.error.js +27 -5
- package/http/http.error.js.map +1 -1
- package/http/index.d.ts +2 -0
- package/http/index.js +2 -0
- package/http/index.js.map +1 -1
- package/http/server/http-server-request.d.ts +5 -10
- package/http/server/http-server-request.js +3 -30
- package/http/server/http-server-request.js.map +1 -1
- package/http/server/http-server-response.d.ts +4 -4
- package/http/server/node/node-http-server.js +6 -5
- package/http/server/node/node-http-server.js.map +1 -1
- package/http/types.d.ts +1 -11
- package/http/types.js +1 -2
- package/http/types.js.map +1 -1
- package/http/utils.d.ts +15 -0
- package/http/utils.js +113 -0
- package/http/utils.js.map +1 -0
- package/image-service/image-service.js.map +1 -1
- package/image-service/imgproxy/imgproxy-image-service.js.map +1 -1
- package/json-path/json-path.d.ts +8 -5
- package/json-path/json-path.js +15 -1
- package/json-path/json-path.js.map +1 -1
- package/key-value-store/mongo/mongo-key-value-store.provider.js.map +1 -1
- package/key-value-store/mongo/mongo-key-value.repository.js.map +1 -1
- package/key-value-store/mongo/mongo-key-value.store.js.map +1 -1
- package/lock/mongo/lock.js.map +1 -1
- package/lock/mongo/mongo-lock-repository.js.map +1 -1
- package/lock/mongo/provider.js.map +1 -1
- package/logger/console/logger.js +1 -1
- package/logger/console/logger.js.map +1 -1
- package/logger/logger.d.ts +2 -2
- package/mail/clients/nodemailer.mail-client.js.map +1 -1
- package/mail/index.d.ts +0 -3
- package/mail/index.js +0 -3
- package/mail/index.js.map +1 -1
- package/mail/mail.service.d.ts +3 -5
- package/mail/mail.service.js +8 -14
- package/mail/mail.service.js.map +1 -1
- package/mail/models/mail-template.model.d.ts +11 -10
- package/mail/models/mail-template.model.js +7 -0
- package/mail/models/mail-template.model.js.map +1 -1
- package/mail/module.d.ts +1 -5
- package/mail/module.js +2 -11
- package/mail/module.js.map +1 -1
- package/mail/repositories/mongo-mail-log.repository.js.map +1 -1
- package/mail/tokens.d.ts +0 -3
- package/mail/tokens.js +1 -2
- package/mail/tokens.js.map +1 -1
- package/message-bus/local/local-message-bus-provider.js.map +1 -1
- package/message-bus/local/local-message-bus.js.map +1 -1
- package/message-bus/message-bus-base.js +1 -2
- package/message-bus/message-bus-base.js.map +1 -1
- package/migration/migrator.js.map +1 -1
- package/migration/mongo/migration-state-repository.js.map +1 -1
- package/module/modules/web-server.module.js.map +1 -1
- package/object-storage/s3/s3.object-storage-provider.js.map +1 -1
- package/object-storage/s3/s3.object-storage.js.map +1 -1
- package/openid-connect/cached-oidc-configuration.service.js.map +1 -1
- package/openid-connect/mongo-oidc-state.repository.js.map +1 -1
- package/openid-connect/oidc-configuration.service.d.ts +2 -1
- package/openid-connect/oidc-configuration.service.js +5 -3
- package/openid-connect/oidc-configuration.service.js.map +1 -1
- package/openid-connect/oidc.service-model.d.ts +11 -3
- package/openid-connect/oidc.service.d.ts +6 -3
- package/openid-connect/oidc.service.js +72 -25
- package/openid-connect/oidc.service.js.map +1 -1
- package/package.json +13 -12
- package/pdf/pdf.service.d.ts +92 -12
- package/pdf/pdf.service.js +234 -34
- package/pdf/pdf.service.js.map +1 -1
- package/pool/pool.d.ts +23 -4
- package/pool/pool.js +76 -40
- package/pool/pool.js.map +1 -1
- package/promise/deferred-promise.d.ts +2 -15
- package/promise/deferred-promise.js +5 -10
- package/promise/deferred-promise.js.map +1 -1
- package/promise/index.d.ts +1 -0
- package/promise/index.js +1 -0
- package/promise/index.js.map +1 -1
- package/promise/lazy-promise.d.ts +11 -0
- package/promise/lazy-promise.js +31 -0
- package/promise/lazy-promise.js.map +1 -0
- package/queue/mongo/mongo-job.repository.js +1 -1
- package/queue/mongo/mongo-job.repository.js.map +1 -1
- package/queue/mongo/queue.js.map +1 -1
- package/queue/mongo/queue.provider.js.map +1 -1
- package/reflection/decorator-data.js +1 -1
- package/reflection/decorator-data.js.map +1 -1
- package/reflection/decorators.d.ts +2 -2
- package/reflection/decorators.js +7 -7
- package/reflection/decorators.js.map +1 -1
- package/reflection/registry.d.ts +8 -8
- package/reflection/registry.js +1 -1
- package/reflection/registry.js.map +1 -1
- package/reflection/types.d.ts +3 -2
- package/reflection/utils.d.ts +7 -2
- package/reflection/utils.js +38 -12
- package/reflection/utils.js.map +1 -1
- package/require.d.ts +1 -0
- package/require.js +9 -0
- package/require.js.map +1 -0
- package/rpc/endpoints/message-port.rpc-endpoint.d.ts +19 -0
- package/rpc/endpoints/message-port.rpc-endpoint.js +34 -0
- package/rpc/endpoints/message-port.rpc-endpoint.js.map +1 -0
- package/rpc/index.d.ts +4 -0
- package/rpc/index.js +21 -0
- package/rpc/index.js.map +1 -0
- package/rpc/model.d.ts +72 -0
- package/rpc/model.js +13 -0
- package/rpc/model.js.map +1 -0
- package/rpc/rpc-endpoint.d.ts +11 -0
- package/rpc/rpc-endpoint.js +23 -0
- package/rpc/rpc-endpoint.js.map +1 -0
- package/rpc/rpc-error.d.ts +8 -0
- package/rpc/rpc-error.js +26 -0
- package/rpc/rpc-error.js.map +1 -0
- package/rpc/rpc.d.ts +19 -0
- package/rpc/rpc.js +263 -0
- package/rpc/rpc.js.map +1 -0
- package/rxjs/retry-backoff.js +4 -5
- package/rxjs/retry-backoff.js.map +1 -1
- package/schema/array-constraints/maximum-length.d.ts +2 -2
- package/schema/array-constraints/maximum-length.js +2 -2
- package/schema/array-constraints/maximum-length.js.map +1 -1
- package/schema/array-constraints/minimum-length.d.ts +2 -2
- package/schema/array-constraints/minimum-length.js +2 -2
- package/schema/array-constraints/minimum-length.js.map +1 -1
- package/schema/coercers/boolean.coercer.d.ts +2 -2
- package/schema/coercers/boolean.coercer.js +2 -2
- package/schema/coercers/boolean.coercer.js.map +1 -1
- package/schema/coercers/date.coercer.d.ts +2 -2
- package/schema/coercers/date.coercer.js +2 -2
- package/schema/coercers/date.coercer.js.map +1 -1
- package/schema/coercers/number.coercer.d.ts +3 -3
- package/schema/coercers/number.coercer.js +2 -2
- package/schema/coercers/number.coercer.js.map +1 -1
- package/schema/coercers/regexp.coercer.d.ts +2 -2
- package/schema/coercers/regexp.coercer.js +2 -2
- package/schema/coercers/regexp.coercer.js.map +1 -1
- package/schema/coercers/string.coercer.d.ts +3 -3
- package/schema/coercers/string.coercer.js +2 -2
- package/schema/coercers/string.coercer.js.map +1 -1
- package/schema/coercers/uint8-array.coercer.js +2 -2
- package/schema/coercers/uint8-array.coercer.js.map +1 -1
- package/schema/constraints/enumeration.d.ts +5 -5
- package/schema/constraints/enumeration.js +6 -6
- package/schema/constraints/enumeration.js.map +1 -1
- package/schema/constraints/generic.d.ts +2 -2
- package/schema/constraints/generic.js +2 -2
- package/schema/constraints/generic.js.map +1 -1
- package/schema/constraints/integer.d.ts +2 -2
- package/schema/constraints/integer.js +2 -2
- package/schema/constraints/integer.js.map +1 -1
- package/schema/constraints/literal.d.ts +2 -2
- package/schema/constraints/literal.js +2 -2
- package/schema/constraints/literal.js.map +1 -1
- package/schema/constraints/maximum-date.d.ts +2 -2
- package/schema/constraints/maximum-date.js +2 -2
- package/schema/constraints/maximum-date.js.map +1 -1
- package/schema/constraints/maximum-length.d.ts +3 -3
- package/schema/constraints/maximum-length.js +2 -2
- package/schema/constraints/maximum-length.js.map +1 -1
- package/schema/constraints/maximum.d.ts +2 -2
- package/schema/constraints/maximum.js +2 -2
- package/schema/constraints/maximum.js.map +1 -1
- package/schema/constraints/minimum-date.d.ts +2 -2
- package/schema/constraints/minimum-date.js +2 -2
- package/schema/constraints/minimum-date.js.map +1 -1
- package/schema/constraints/minimum-length.d.ts +3 -3
- package/schema/constraints/minimum-length.js +2 -2
- package/schema/constraints/minimum-length.js.map +1 -1
- package/schema/constraints/minimum.d.ts +2 -2
- package/schema/constraints/minimum.js +2 -2
- package/schema/constraints/minimum.js.map +1 -1
- package/schema/constraints/pattern.d.ts +2 -2
- package/schema/constraints/pattern.js +2 -2
- package/schema/constraints/pattern.js.map +1 -1
- package/schema/decorators/array.d.ts +2 -2
- package/schema/decorators/array.js.map +1 -1
- package/schema/decorators/defaulted.d.ts +2 -2
- package/schema/decorators/defaulted.js.map +1 -1
- package/schema/decorators/index.d.ts +1 -0
- package/schema/decorators/index.js +1 -0
- package/schema/decorators/index.js.map +1 -1
- package/schema/decorators/one-or-many.d.ts +6 -0
- package/schema/decorators/one-or-many.js +12 -0
- package/schema/decorators/one-or-many.js.map +1 -0
- package/schema/decorators/optional.d.ts +3 -1
- package/schema/decorators/optional.js +2 -2
- package/schema/decorators/optional.js.map +1 -1
- package/schema/decorators/types.d.ts +3 -3
- package/schema/decorators/utils.d.ts +3 -2
- package/schema/decorators/utils.js +8 -4
- package/schema/decorators/utils.js.map +1 -1
- package/schema/schema.d.ts +4 -10
- package/schema/schema.error.d.ts +6 -5
- package/schema/schema.error.js +13 -10
- package/schema/schema.error.js.map +1 -1
- package/schema/schema.js +113 -104
- package/schema/schema.js.map +1 -1
- package/schema/schemas/array.d.ts +3 -3
- package/schema/schemas/array.js +1 -1
- package/schema/schemas/array.js.map +1 -1
- package/schema/schemas/assign.d.ts +6 -6
- package/schema/schemas/assign.js +3 -1
- package/schema/schemas/assign.js.map +1 -1
- package/schema/schemas/constraint.d.ts +3 -2
- package/schema/schemas/constraint.js.map +1 -1
- package/schema/schemas/defaulted.d.ts +2 -2
- package/schema/schemas/defaulted.js.map +1 -1
- package/schema/schemas/enumeration.js +1 -1
- package/schema/schemas/enumeration.js.map +1 -1
- package/schema/schemas/index.d.ts +3 -1
- package/schema/schemas/index.js +3 -1
- package/schema/schemas/index.js.map +1 -1
- package/schema/schemas/nullable.d.ts +2 -2
- package/schema/schemas/nullable.js.map +1 -1
- package/schema/schemas/number.d.ts +1 -1
- package/schema/schemas/number.js +0 -3
- package/schema/schemas/number.js.map +1 -1
- package/schema/schemas/omit.d.ts +4 -0
- package/schema/schemas/{exclude.js → omit.js} +8 -6
- package/schema/schemas/omit.js.map +1 -0
- package/schema/schemas/one-or-many.d.ts +10 -0
- package/schema/schemas/one-or-many.js +12 -0
- package/schema/schemas/one-or-many.js.map +1 -0
- package/schema/schemas/optional.d.ts +3 -2
- package/schema/schemas/optional.js.map +1 -1
- package/schema/schemas/partial.d.ts +4 -0
- package/schema/schemas/partial.js +22 -0
- package/schema/schemas/partial.js.map +1 -0
- package/schema/schemas/pick.d.ts +2 -2
- package/schema/schemas/pick.js +3 -1
- package/schema/schemas/pick.js.map +1 -1
- package/schema/schemas/record.d.ts +2 -2
- package/schema/schemas/record.js.map +1 -1
- package/schema/schemas/union.d.ts +4 -9
- package/schema/schemas/union.js.map +1 -1
- package/schema/types.d.ts +30 -20
- package/schema/types.js +22 -8
- package/schema/types.js.map +1 -1
- package/schema/utils/schema.d.ts +6 -1
- package/schema/utils/schema.js +60 -7
- package/schema/utils/schema.js.map +1 -1
- package/schema/utils/value-type.d.ts +5 -3
- package/schema/utils/value-type.js +22 -7
- package/schema/utils/value-type.js.map +1 -1
- package/search-index/elastic/config.js.map +1 -1
- package/search-index/elastic/model/index-mapping.d.ts +2 -1
- package/search-index/elastic/model/index-mapping.js.map +1 -1
- package/search-index/elastic/module.js +15 -1
- package/search-index/elastic/module.js.map +1 -1
- package/search-index/elastic/search-index.js +5 -4
- package/search-index/elastic/search-index.js.map +1 -1
- package/search-index/error.d.ts +1 -1
- package/search-index/error.js +2 -2
- package/search-index/error.js.map +1 -1
- package/serializer/handlers/register.d.ts +2 -2
- package/serializer/handlers/register.js +6 -2
- package/serializer/handlers/register.js.map +1 -1
- package/serializer/serializable.d.ts +11 -8
- package/serializer/serializable.js +13 -4
- package/serializer/serializable.js.map +1 -1
- package/serializer/serializer.js +21 -8
- package/serializer/serializer.js.map +1 -1
- package/serializer/types.d.ts +21 -6
- package/serializer/types.js +2 -1
- package/serializer/types.js.map +1 -1
- package/supports.d.ts +5 -0
- package/supports.js +9 -0
- package/supports.js.map +1 -0
- package/templates/index.d.ts +2 -0
- package/templates/index.js +2 -0
- package/templates/index.js.map +1 -1
- package/templates/module.d.ts +3 -1
- package/templates/module.js +31 -8
- package/templates/module.js.map +1 -1
- package/templates/providers/file.provider-template.d.ts +16 -0
- package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
- package/templates/providers/file.provider-template.js.map +1 -0
- package/templates/providers/memory.template-provider.d.ts +8 -0
- package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
- package/templates/providers/memory.template-provider.js.map +1 -0
- package/templates/renderers/handlebars.template-renderer.d.ts +38 -6
- package/templates/renderers/handlebars.template-renderer.js +70 -3
- package/templates/renderers/handlebars.template-renderer.js.map +1 -1
- package/templates/renderers/mjml.template-renderer.d.ts +6 -6
- package/templates/renderers/mjml.template-renderer.js +8 -9
- package/templates/renderers/mjml.template-renderer.js.map +1 -1
- package/templates/renderers/string.template-renderer.d.ts +8 -0
- package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
- package/templates/renderers/string.template-renderer.js.map +1 -0
- package/templates/resolvers/file.template-resolver.d.ts +23 -0
- package/templates/resolvers/file.template-resolver.js +63 -0
- package/templates/resolvers/file.template-resolver.js.map +1 -0
- package/templates/resolvers/string.template-resolver.d.ts +13 -0
- package/templates/resolvers/string.template-resolver.js +44 -0
- package/templates/resolvers/string.template-resolver.js.map +1 -0
- package/templates/template-renderer.provider.js +7 -19
- package/templates/template-renderer.provider.js.map +1 -1
- package/templates/template-resolver.provider.d.ts +8 -0
- package/templates/template-resolver.provider.js +48 -0
- package/templates/template-resolver.provider.js.map +1 -0
- package/templates/template.model.d.ts +15 -4
- package/templates/template.model.js +50 -0
- package/templates/template.model.js.map +1 -1
- package/templates/template.renderer.d.ts +14 -3
- package/templates/template.renderer.js +3 -0
- package/templates/template.renderer.js.map +1 -1
- package/templates/template.resolver.d.ts +5 -0
- package/templates/template.resolver.js +7 -0
- package/templates/template.resolver.js.map +1 -0
- package/templates/template.service.d.ts +10 -4
- package/templates/template.service.js +19 -6
- package/templates/template.service.js.map +1 -1
- package/templates/tokens.d.ts +3 -2
- package/templates/tokens.js +2 -1
- package/templates/tokens.js.map +1 -1
- package/threading/index.d.ts +2 -0
- package/{rxjs/compat → threading}/index.js +2 -1
- package/threading/index.js.map +1 -0
- package/threading/thread-pool.d.ts +20 -0
- package/threading/thread-pool.js +50 -0
- package/threading/thread-pool.js.map +1 -0
- package/threading/thread-worker.d.ts +3 -0
- package/threading/thread-worker.js +9 -0
- package/threading/thread-worker.js.map +1 -0
- package/types.d.ts +27 -9
- package/utils/alphabet.d.ts +3 -1
- package/utils/alphabet.js +2 -0
- package/utils/alphabet.js.map +1 -1
- package/utils/array/array.d.ts +1 -2
- package/utils/array/array.js.map +1 -1
- package/utils/async-iterable-helpers/observable-iterable.js +1 -2
- package/utils/async-iterable-helpers/observable-iterable.js.map +1 -1
- package/utils/async-iterable-helpers/take-until.js +2 -3
- package/utils/async-iterable-helpers/take-until.js.map +1 -1
- package/utils/base64.js +3 -2
- package/utils/base64.js.map +1 -1
- package/utils/binary.js +3 -2
- package/utils/binary.js.map +1 -1
- package/utils/cancellation-token.d.ts +28 -28
- package/utils/cancellation-token.js +14 -14
- package/utils/cancellation-token.js.map +1 -1
- package/utils/clone.js +4 -0
- package/utils/clone.js.map +1 -1
- package/utils/compression.d.ts +19 -15
- package/utils/compression.js +43 -10
- package/utils/compression.js.map +1 -1
- package/utils/encoding.d.ts +10 -0
- package/utils/encoding.js +20 -4
- package/utils/encoding.js.map +1 -1
- package/utils/enum.d.ts +5 -8
- package/utils/enum.js +15 -13
- package/utils/enum.js.map +1 -1
- package/utils/feedable-async-iterable.js +1 -2
- package/utils/feedable-async-iterable.js.map +1 -1
- package/utils/function/memoize.js +4 -4
- package/utils/function/memoize.js.map +1 -1
- package/utils/helpers.d.ts +0 -2
- package/utils/helpers.js +3 -14
- package/utils/helpers.js.map +1 -1
- package/utils/image.js +7 -8
- package/utils/image.js.map +1 -1
- package/utils/index.d.ts +2 -0
- package/utils/index.js +2 -0
- package/utils/index.js.map +1 -1
- package/utils/math.d.ts +37 -10
- package/utils/math.js +57 -12
- package/utils/math.js.map +1 -1
- package/utils/object/decycle.js +10 -21
- package/utils/object/decycle.js.map +1 -1
- package/utils/object/dereference.d.ts +7 -5
- package/utils/object/dereference.js +4 -4
- package/utils/object/dereference.js.map +1 -1
- package/utils/object/forward-ref.js +3 -19
- package/utils/object/forward-ref.js.map +1 -1
- package/utils/object/merge.js +3 -3
- package/utils/object/merge.js.map +1 -1
- package/utils/object/object.js +3 -3
- package/utils/object/object.js.map +1 -1
- package/utils/object/property-name.d.ts +2 -2
- package/utils/patch-worker.js +1 -2
- package/utils/patch-worker.js.map +1 -1
- package/utils/periodic-sampler.js +2 -2
- package/utils/periodic-sampler.js.map +1 -1
- package/utils/proxy.d.ts +6 -0
- package/utils/proxy.js +21 -0
- package/utils/proxy.js.map +1 -0
- package/utils/stream/finalize-stream.d.ts +1 -0
- package/utils/stream/finalize-stream.js +38 -0
- package/utils/stream/finalize-stream.js.map +1 -0
- package/utils/stream/index.d.ts +4 -3
- package/utils/stream/index.js +4 -3
- package/utils/stream/index.js.map +1 -1
- package/utils/stream/readable-stream-adapter.d.ts +5 -0
- package/utils/stream/readable-stream-adapter.js +45 -0
- package/utils/stream/readable-stream-adapter.js.map +1 -0
- package/utils/stream/readable-stream-from-promise.d.ts +1 -0
- package/utils/stream/readable-stream-from-promise.js +12 -0
- package/utils/stream/readable-stream-from-promise.js.map +1 -0
- package/utils/stream/size-limited-stream.d.ts +2 -0
- package/utils/stream/size-limited-stream.js +18 -0
- package/utils/stream/size-limited-stream.js.map +1 -0
- package/utils/stream/stream-reader.d.ts +2 -1
- package/utils/stream/stream-reader.js +7 -10
- package/utils/stream/stream-reader.js.map +1 -1
- package/utils/throw.d.ts +2 -0
- package/utils/throw.js +15 -0
- package/utils/throw.js.map +1 -0
- package/utils/timer.js +2 -2
- package/utils/timer.js.map +1 -1
- package/utils/timing.js +2 -2
- package/utils/timing.js.map +1 -1
- package/utils/type-guards.d.ts +34 -16
- package/utils/type-guards.js +112 -75
- package/utils/type-guards.js.map +1 -1
- package/web-types.d.ts +28 -0
- package/web-types.js +3 -0
- package/web-types.js.map +1 -0
- package/http/client/adapters/got-http-client.adapter.d.ts +0 -10
- package/http/client/adapters/got-http-client.adapter.js +0 -141
- package/http/client/adapters/got-http-client.adapter.js.map +0 -1
- package/http/client/adapters/utils.d.ts +0 -11
- package/http/client/adapters/utils.js +0 -79
- package/http/client/adapters/utils.js.map +0 -1
- package/mail/mail-template-renderer.provider.d.ts +0 -8
- package/mail/mail-template-renderer.provider.js +0 -60
- package/mail/mail-template-renderer.provider.js.map +0 -1
- package/mail/mail-template.provider.d.ts +0 -4
- package/mail/mail-template.provider.js +0 -7
- package/mail/mail-template.provider.js.map +0 -1
- package/mail/mail-template.renderer.d.ts +0 -10
- package/mail/mail-template.renderer.js +0 -7
- package/mail/mail-template.renderer.js.map +0 -1
- package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
- package/mail/template-providers/file-mail-template.provider.js +0 -51
- package/mail/template-providers/file-mail-template.provider.js.map +0 -1
- package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
- package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
- package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
- package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
- package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
- package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
- package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
- package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
- package/rxjs/compat/first-value-from.d.ts +0 -2
- package/rxjs/compat/first-value-from.js +0 -9
- package/rxjs/compat/first-value-from.js.map +0 -1
- package/rxjs/compat/index.d.ts +0 -1
- package/rxjs/compat/index.js.map +0 -1
- package/schema/schemas/exclude.d.ts +0 -4
- package/schema/schemas/exclude.js.map +0 -1
- package/templates/providers/file-template.provider.base.d.ts +0 -12
- package/templates/providers/file-template.provider.base.js +0 -50
- package/templates/providers/file-template.provider.base.js.map +0 -1
- package/templates/providers/file-template.provider.d.ts +0 -22
- package/templates/providers/file-template.provider.js.map +0 -1
- package/templates/providers/memory-template.provider.base.d.ts +0 -9
- package/templates/providers/memory-template.provider.base.js.map +0 -1
- package/templates/providers/memory-template.provider.d.ts +0 -4
- package/templates/providers/memory-template.provider.js +0 -18
- package/templates/providers/memory-template.provider.js.map +0 -1
- package/utils/stream/async-iterable-readable.d.ts +0 -13
- package/utils/stream/async-iterable-readable.js +0 -40
- package/utils/stream/async-iterable-readable.js.map +0 -1
- package/utils/stream/async-writable-stream.d.ts +0 -16
- package/utils/stream/async-writable-stream.js +0 -41
- package/utils/stream/async-writable-stream.js.map +0 -1
- package/utils/stream/typed-readable.d.ts +0 -58
- package/utils/stream/typed-readable.js +0 -9
- package/utils/stream/typed-readable.js.map +0 -1
package/pdf/pdf.service.js
CHANGED
|
@@ -8,19 +8,126 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PdfService = void 0;
|
|
15
|
+
exports.pdfTemplate = exports.PdfService = exports.PdfTemplate = exports.PdfRenderOptions = exports.PdfMarginObject = exports.PdfFormat = void 0;
|
|
13
16
|
const container_1 = require("../container");
|
|
14
17
|
const core_1 = require("../core");
|
|
15
18
|
const disposable_1 = require("../disposable/disposable");
|
|
19
|
+
const logger_1 = require("../logger");
|
|
16
20
|
const pool_1 = require("../pool");
|
|
21
|
+
const schema_1 = require("../schema");
|
|
17
22
|
const templates_1 = require("../templates");
|
|
23
|
+
const finalize_stream_1 = require("../utils/stream/finalize-stream");
|
|
24
|
+
const readable_stream_adapter_1 = require("../utils/stream/readable-stream-adapter");
|
|
25
|
+
const readable_stream_from_promise_1 = require("../utils/stream/readable-stream-from-promise");
|
|
26
|
+
const stream_reader_1 = require("../utils/stream/stream-reader");
|
|
18
27
|
const type_guards_1 = require("../utils/type-guards");
|
|
28
|
+
const units_1 = require("../utils/units");
|
|
19
29
|
const puppeteer = require("puppeteer");
|
|
30
|
+
var PdfFormat;
|
|
31
|
+
(function (PdfFormat) {
|
|
32
|
+
PdfFormat["Letter"] = "letter";
|
|
33
|
+
PdfFormat["Legal"] = "legal";
|
|
34
|
+
PdfFormat["Tabloid"] = "tabloid";
|
|
35
|
+
PdfFormat["Ledger"] = "ledger";
|
|
36
|
+
PdfFormat["A0"] = "a0";
|
|
37
|
+
PdfFormat["A1"] = "a1";
|
|
38
|
+
PdfFormat["A2"] = "a2";
|
|
39
|
+
PdfFormat["A3"] = "a3";
|
|
40
|
+
PdfFormat["A4"] = "a4";
|
|
41
|
+
PdfFormat["A5"] = "a5";
|
|
42
|
+
PdfFormat["A6"] = "a6";
|
|
43
|
+
})(PdfFormat = exports.PdfFormat || (exports.PdfFormat = {}));
|
|
44
|
+
class PdfMarginObject {
|
|
45
|
+
}
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, schema_1.Optional)([Number, String]),
|
|
48
|
+
__metadata("design:type", Object)
|
|
49
|
+
], PdfMarginObject.prototype, "top", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, schema_1.Optional)([Number, String]),
|
|
52
|
+
__metadata("design:type", Object)
|
|
53
|
+
], PdfMarginObject.prototype, "bottom", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, schema_1.Optional)([Number, String]),
|
|
56
|
+
__metadata("design:type", Object)
|
|
57
|
+
], PdfMarginObject.prototype, "right", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, schema_1.Optional)([Number, String]),
|
|
60
|
+
__metadata("design:type", Object)
|
|
61
|
+
], PdfMarginObject.prototype, "left", void 0);
|
|
62
|
+
exports.PdfMarginObject = PdfMarginObject;
|
|
63
|
+
class PdfRenderOptions {
|
|
64
|
+
}
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, schema_1.Optional)(),
|
|
67
|
+
__metadata("design:type", Boolean)
|
|
68
|
+
], PdfRenderOptions.prototype, "omitDefaultBackground", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, schema_1.Optional)(),
|
|
71
|
+
__metadata("design:type", Boolean)
|
|
72
|
+
], PdfRenderOptions.prototype, "renderBackground", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, schema_1.Optional)(),
|
|
75
|
+
__metadata("design:type", Boolean)
|
|
76
|
+
], PdfRenderOptions.prototype, "landscape", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, schema_1.Optional)(),
|
|
79
|
+
(0, schema_1.Enumeration)(PdfFormat),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], PdfRenderOptions.prototype, "format", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, schema_1.Optional)([String, Number]),
|
|
84
|
+
__metadata("design:type", Object)
|
|
85
|
+
], PdfRenderOptions.prototype, "width", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, schema_1.Optional)([String, Number]),
|
|
88
|
+
__metadata("design:type", Object)
|
|
89
|
+
], PdfRenderOptions.prototype, "height", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, schema_1.Optional)(),
|
|
92
|
+
__metadata("design:type", Number)
|
|
93
|
+
], PdfRenderOptions.prototype, "scale", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, schema_1.Optional)([String, Number, PdfMarginObject]),
|
|
96
|
+
__metadata("design:type", Object)
|
|
97
|
+
], PdfRenderOptions.prototype, "margin", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, schema_1.Optional)(),
|
|
100
|
+
__metadata("design:type", Boolean)
|
|
101
|
+
], PdfRenderOptions.prototype, "displayHeaderFooter", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, schema_1.Optional)(),
|
|
104
|
+
__metadata("design:type", Boolean)
|
|
105
|
+
], PdfRenderOptions.prototype, "waitForNetworkIdle", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, schema_1.Optional)(),
|
|
108
|
+
__metadata("design:type", String)
|
|
109
|
+
], PdfRenderOptions.prototype, "headerTemplate", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, schema_1.Optional)(),
|
|
112
|
+
__metadata("design:type", String)
|
|
113
|
+
], PdfRenderOptions.prototype, "footerTemplate", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, schema_1.Optional)(),
|
|
116
|
+
__metadata("design:type", Number)
|
|
117
|
+
], PdfRenderOptions.prototype, "timeout", void 0);
|
|
118
|
+
exports.PdfRenderOptions = PdfRenderOptions;
|
|
119
|
+
class PdfTemplate extends templates_1.Template {
|
|
120
|
+
}
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, schema_1.Optional)(),
|
|
123
|
+
__metadata("design:type", Object)
|
|
124
|
+
], PdfTemplate.prototype, "options", void 0);
|
|
125
|
+
exports.PdfTemplate = PdfTemplate;
|
|
20
126
|
let PdfService = class PdfService {
|
|
21
|
-
constructor(templateService) {
|
|
127
|
+
constructor(templateService, logger) {
|
|
22
128
|
this.templateService = templateService;
|
|
23
|
-
this.
|
|
129
|
+
this.logger = logger;
|
|
130
|
+
this.pool = new pool_1.Pool(async () => puppeteer.launch(), async (browser) => browser.close(), logger);
|
|
24
131
|
}
|
|
25
132
|
[container_1.afterResolve]() {
|
|
26
133
|
core_1.disposer.add(this);
|
|
@@ -31,52 +138,145 @@ let PdfService = class PdfService {
|
|
|
31
138
|
async dispose() {
|
|
32
139
|
return this.pool.dispose();
|
|
33
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Renders HTML to pdf stream
|
|
143
|
+
* @param html html to render
|
|
144
|
+
* @param options render options
|
|
145
|
+
* @returns pdf stream
|
|
146
|
+
*/
|
|
147
|
+
renderHtmlStream(html, options) {
|
|
148
|
+
return this.renderStream(async (page) => page.setContent(html, { waitUntil: (options?.waitForNetworkIdle == true) ? 'networkidle2' : 'load' }), options);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Renders HTML to pdf
|
|
152
|
+
* @param html html to render
|
|
153
|
+
* @param options render options
|
|
154
|
+
* @returns pdf bytes
|
|
155
|
+
*/
|
|
34
156
|
async renderHtml(html, options) {
|
|
35
|
-
|
|
157
|
+
const stream = this.renderHtmlStream(html, options);
|
|
158
|
+
return (0, stream_reader_1.readBinaryStream)(stream);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Renders an url to pdf stream
|
|
162
|
+
* @param url url to load and render
|
|
163
|
+
* @param options render options
|
|
164
|
+
* @returns pdf stream
|
|
165
|
+
*/
|
|
166
|
+
renderUrlStream(url, options) {
|
|
167
|
+
return this.renderStream(async (page) => {
|
|
168
|
+
await page.goto(url, { waitUntil: (options?.waitForNetworkIdle == true) ? 'networkidle2' : 'load' });
|
|
169
|
+
}, options);
|
|
36
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Renders an url to pdf
|
|
173
|
+
* @param url url to load and render
|
|
174
|
+
* @param options render options
|
|
175
|
+
* @returns pdf bytes
|
|
176
|
+
*/
|
|
37
177
|
async renderUrl(url, options) {
|
|
38
|
-
|
|
178
|
+
const stream = this.renderUrlStream(url, options);
|
|
179
|
+
return (0, stream_reader_1.readBinaryStream)(stream);
|
|
39
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Renders a template to pdf
|
|
183
|
+
* @param key template key
|
|
184
|
+
* @param templateContext context for template rendering
|
|
185
|
+
* @param options additional options, overwrites options specified in template
|
|
186
|
+
* @returns pdf bytes
|
|
187
|
+
*/
|
|
188
|
+
renderTemplateStream(key, templateContext, options) {
|
|
189
|
+
return this.renderStream(async (page) => {
|
|
190
|
+
const { fields: { header, body, footer }, options: optionsFromTemplate } = await this.templateService.render(key, templateContext);
|
|
191
|
+
await page.setContent(body, { ...optionsFromTemplate, headerTemplate: header, footerTemplate: footer, waitUntil: (options?.waitForNetworkIdle == true) ? 'networkidle2' : 'load', ...options });
|
|
192
|
+
return { ...optionsFromTemplate, headerTemplate: header, footerTemplate: footer, ...options };
|
|
193
|
+
}, options);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Renders a template to pdf
|
|
197
|
+
* @param key template key
|
|
198
|
+
* @param templateContext context for template rendering
|
|
199
|
+
* @param options additional options, overwrites options specified in template
|
|
200
|
+
* @returns pdf bytes
|
|
201
|
+
*/
|
|
40
202
|
async renderTemplate(key, templateContext, options) {
|
|
41
|
-
const
|
|
42
|
-
return
|
|
203
|
+
const stream = this.renderTemplateStream(key, templateContext, options);
|
|
204
|
+
return (0, stream_reader_1.readBinaryStream)(stream);
|
|
43
205
|
}
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
-
const
|
|
206
|
+
renderStream(handler, options = {}) {
|
|
207
|
+
return (0, readable_stream_from_promise_1.readableStreamFromPromise)(async () => {
|
|
208
|
+
const browser = await this.pool.get();
|
|
47
209
|
try {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
210
|
+
let page;
|
|
211
|
+
try {
|
|
212
|
+
page = await browser.newPage();
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
await this.pool.disposeInstance(browser);
|
|
216
|
+
throw error;
|
|
217
|
+
}
|
|
218
|
+
const timeoutRef = setTimeout(() => void page.close().catch((error) => this.logger.error(error)), (options.timeout ?? units_1.millisecondsPerMinute));
|
|
219
|
+
const optionsFromHandler = await handler(page) ?? {};
|
|
220
|
+
const mergedOptions = { ...optionsFromHandler, ...options };
|
|
221
|
+
const createPdfOptions = this.convertOptions(mergedOptions);
|
|
222
|
+
const pdfStream = await page.createPDFStream(createPdfOptions);
|
|
223
|
+
return (0, finalize_stream_1.finalizeStream)((0, readable_stream_adapter_1.getReadableStreamFromIterable)(pdfStream), async () => {
|
|
224
|
+
clearTimeout(timeoutRef);
|
|
225
|
+
try {
|
|
226
|
+
await page.close();
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
this.logger.error(error);
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
finally {
|
|
233
|
+
await this.pool.release(browser);
|
|
234
|
+
}
|
|
68
235
|
});
|
|
69
|
-
return result;
|
|
70
236
|
}
|
|
71
|
-
|
|
72
|
-
await
|
|
237
|
+
catch (error) {
|
|
238
|
+
await this.pool.release(browser);
|
|
239
|
+
throw error;
|
|
73
240
|
}
|
|
74
241
|
});
|
|
75
242
|
}
|
|
243
|
+
convertOptions(options) {
|
|
244
|
+
const margin = (0, type_guards_1.isUndefined)(options.margin)
|
|
245
|
+
? undefined
|
|
246
|
+
: (0, type_guards_1.isObject)(options.margin)
|
|
247
|
+
? options.margin
|
|
248
|
+
: {
|
|
249
|
+
top: options.margin,
|
|
250
|
+
bottom: options.margin,
|
|
251
|
+
right: options.margin,
|
|
252
|
+
left: options.margin
|
|
253
|
+
};
|
|
254
|
+
return {
|
|
255
|
+
format: options.format ?? 'a4',
|
|
256
|
+
scale: options.scale,
|
|
257
|
+
landscape: options.landscape,
|
|
258
|
+
width: options.width,
|
|
259
|
+
height: options.height,
|
|
260
|
+
omitBackground: options.omitDefaultBackground,
|
|
261
|
+
printBackground: options.renderBackground,
|
|
262
|
+
margin,
|
|
263
|
+
displayHeaderFooter: options.displayHeaderFooter ?? ((0, type_guards_1.isDefined)(options.headerTemplate) || (0, type_guards_1.isDefined)(options.footerTemplate)),
|
|
264
|
+
headerTemplate: options.headerTemplate,
|
|
265
|
+
footerTemplate: options.footerTemplate
|
|
266
|
+
};
|
|
267
|
+
}
|
|
76
268
|
};
|
|
77
269
|
PdfService = __decorate([
|
|
78
270
|
(0, container_1.singleton)(),
|
|
79
|
-
|
|
271
|
+
__param(1, (0, container_1.resolveArg)('PdfService')),
|
|
272
|
+
__metadata("design:paramtypes", [templates_1.TemplateService, logger_1.Logger])
|
|
80
273
|
], PdfService);
|
|
81
274
|
exports.PdfService = PdfService;
|
|
275
|
+
function pdfTemplate(fields, options) {
|
|
276
|
+
return {
|
|
277
|
+
fields,
|
|
278
|
+
options
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
exports.pdfTemplate = pdfTemplate;
|
|
82
282
|
//# sourceMappingURL=pdf.service.js.map
|
package/pdf/pdf.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":"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"}
|
package/pool/pool.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AsyncDisposable } from "../disposable/disposable";
|
|
2
2
|
import { disposeAsync } from "../disposable/disposable";
|
|
3
|
+
import type { Logger } from "../logger";
|
|
3
4
|
export declare type PoolOptions = {
|
|
4
5
|
/**
|
|
5
6
|
* maximum number of instances
|
|
@@ -7,18 +8,36 @@ export declare type PoolOptions = {
|
|
|
7
8
|
*/
|
|
8
9
|
size?: number;
|
|
9
10
|
};
|
|
11
|
+
export declare type PoolUseOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* Dipose used instance on error instead of reusing it.
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
disposeOnError?: boolean;
|
|
17
|
+
};
|
|
10
18
|
export declare type PoolInstanceFactory<T> = () => T | Promise<T>;
|
|
11
|
-
export declare type PoolInstanceDisposer<T> = (instance: T) =>
|
|
12
|
-
export declare class Pool<T> implements AsyncDisposable {
|
|
19
|
+
export declare type PoolInstanceDisposer<T> = (instance: T) => any | Promise<any>;
|
|
20
|
+
export declare class Pool<T extends object> implements AsyncDisposable {
|
|
13
21
|
private readonly size;
|
|
22
|
+
private readonly disposeOnError;
|
|
14
23
|
private readonly freeInstances;
|
|
15
24
|
private readonly usedInstances;
|
|
16
25
|
private readonly factory;
|
|
17
26
|
private readonly disposer;
|
|
27
|
+
private readonly logger;
|
|
28
|
+
private placeholderInstances;
|
|
18
29
|
private disposed;
|
|
19
30
|
get length(): number;
|
|
20
|
-
constructor(factory: PoolInstanceFactory<T>, disposer: PoolInstanceDisposer<T>, options?: PoolOptions);
|
|
31
|
+
constructor(factory: PoolInstanceFactory<T>, disposer: PoolInstanceDisposer<T>, logger: Logger, options?: PoolOptions);
|
|
32
|
+
get(): Promise<T>;
|
|
33
|
+
release(instance: T): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get an instance from the pool and use it
|
|
36
|
+
* @param handler consumer of instance
|
|
37
|
+
* @returns instance
|
|
38
|
+
*/
|
|
39
|
+
use<R>(handler: (instance: T) => R | Promise<R>, options?: PoolUseOptions): Promise<R>;
|
|
40
|
+
disposeInstance(instance: T): Promise<void>;
|
|
21
41
|
dispose(): Promise<void>;
|
|
22
42
|
[disposeAsync](): Promise<void>;
|
|
23
|
-
use<R>(handler: (instance: T) => R | Promise<R>): Promise<R>;
|
|
24
43
|
}
|
package/pool/pool.js
CHANGED
|
@@ -4,79 +4,115 @@ exports.Pool = void 0;
|
|
|
4
4
|
const data_structures_1 = require("../data-structures");
|
|
5
5
|
const set_1 = require("../data-structures/set");
|
|
6
6
|
const disposable_1 = require("../disposable/disposable");
|
|
7
|
+
const type_guards_1 = require("../utils/type-guards");
|
|
7
8
|
const os_1 = require("os");
|
|
8
|
-
const rxjs_1 = require("rxjs");
|
|
9
|
-
const placeholder = Symbol('pool placeholder');
|
|
10
9
|
class Pool {
|
|
11
|
-
constructor(factory, disposer, options) {
|
|
10
|
+
constructor(factory, disposer, logger, options) {
|
|
12
11
|
this.size = options?.size ?? (0, os_1.cpus)().length;
|
|
13
12
|
this.factory = factory;
|
|
14
13
|
this.disposer = disposer;
|
|
14
|
+
this.logger = logger;
|
|
15
15
|
this.freeInstances = new data_structures_1.ArrayList();
|
|
16
16
|
this.usedInstances = new set_1.Set();
|
|
17
|
+
this.placeholderInstances = 0;
|
|
17
18
|
this.disposed = false;
|
|
18
19
|
}
|
|
19
20
|
get length() {
|
|
20
|
-
return this.freeInstances.size + this.usedInstances.size;
|
|
21
|
+
return this.freeInstances.size + this.usedInstances.size + this.placeholderInstances;
|
|
21
22
|
}
|
|
22
|
-
async
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
async [disposable_1.disposeAsync]() {
|
|
26
|
-
this.disposed = true;
|
|
27
|
-
while (this.freeInstances.size > 0) {
|
|
28
|
-
const instance = this.freeInstances.removeFirst();
|
|
29
|
-
await this.disposer(instance);
|
|
30
|
-
}
|
|
31
|
-
for (const instance of this.usedInstances) {
|
|
32
|
-
if (instance[placeholder] != true) {
|
|
33
|
-
await this.disposer(instance);
|
|
34
|
-
}
|
|
35
|
-
this.usedInstances.delete(instance);
|
|
23
|
+
async get() {
|
|
24
|
+
if (this.disposed) {
|
|
25
|
+
throw new Error('Pool was disposed.');
|
|
36
26
|
}
|
|
37
|
-
}
|
|
38
|
-
// eslint-disable-next-line max-lines-per-function, max-statements
|
|
39
|
-
async use(handler) {
|
|
40
|
-
let instance;
|
|
41
27
|
if (this.freeInstances.hasItems) {
|
|
42
|
-
instance = this.freeInstances.removeFirst();
|
|
28
|
+
const instance = this.freeInstances.removeFirst();
|
|
29
|
+
this.usedInstances.add(instance);
|
|
30
|
+
return instance;
|
|
43
31
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
await (0, rxjs_1.firstValueFrom)((0, rxjs_1.race)(this.freeInstances.change$, this.usedInstances.change$));
|
|
47
|
-
return this.use(handler);
|
|
48
|
-
}
|
|
49
|
-
const tempInstance = { [placeholder]: true };
|
|
50
|
-
this.usedInstances.add(tempInstance);
|
|
32
|
+
if (this.length < this.size) {
|
|
33
|
+
this.placeholderInstances++;
|
|
51
34
|
try {
|
|
52
|
-
|
|
35
|
+
const newInstance = await this.factory();
|
|
53
36
|
if (this.disposed) {
|
|
54
|
-
await this.disposer(
|
|
37
|
+
await this.disposer(newInstance);
|
|
55
38
|
throw new Error('Pool was disposed.');
|
|
56
39
|
}
|
|
40
|
+
this.usedInstances.add(newInstance);
|
|
41
|
+
return newInstance;
|
|
57
42
|
}
|
|
58
43
|
finally {
|
|
59
|
-
this.
|
|
44
|
+
this.placeholderInstances--;
|
|
60
45
|
}
|
|
61
46
|
}
|
|
62
|
-
this.
|
|
47
|
+
while (!this.freeInstances.hasItems) {
|
|
48
|
+
await this.freeInstances.$onItems;
|
|
49
|
+
}
|
|
50
|
+
return this.get();
|
|
51
|
+
}
|
|
52
|
+
async release(instance) {
|
|
53
|
+
if (!this.usedInstances.has(instance)) {
|
|
54
|
+
throw new Error('Instance is not from this pool.');
|
|
55
|
+
}
|
|
56
|
+
this.usedInstances.delete(instance);
|
|
57
|
+
this.freeInstances.add(instance);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get an instance from the pool and use it
|
|
61
|
+
* @param handler consumer of instance
|
|
62
|
+
* @returns instance
|
|
63
|
+
*/
|
|
64
|
+
async use(handler, options = {}) {
|
|
65
|
+
const instance = await this.get();
|
|
63
66
|
try {
|
|
64
67
|
const result = await handler(instance);
|
|
68
|
+
await this.release(instance);
|
|
65
69
|
return result;
|
|
66
70
|
}
|
|
67
71
|
catch (error) {
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
if (options.disposeOnError == true) {
|
|
73
|
+
try {
|
|
74
|
+
await this.disposeInstance(instance);
|
|
75
|
+
}
|
|
76
|
+
catch (disposeError) {
|
|
77
|
+
this.logger.error(disposeError);
|
|
78
|
+
}
|
|
70
79
|
}
|
|
71
|
-
|
|
72
|
-
this.
|
|
80
|
+
else {
|
|
81
|
+
await this.release(instance);
|
|
73
82
|
}
|
|
74
83
|
throw error;
|
|
75
84
|
}
|
|
76
|
-
|
|
85
|
+
}
|
|
86
|
+
async disposeInstance(instance) {
|
|
87
|
+
let index;
|
|
88
|
+
if (this.usedInstances.has(instance)) {
|
|
89
|
+
this.usedInstances.delete(instance);
|
|
90
|
+
}
|
|
91
|
+
else if ((0, type_guards_1.isDefined)(index = this.freeInstances.indexOf(instance))) {
|
|
92
|
+
this.freeInstances.removeAt(index);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw new Error('Instance is not from this pool.');
|
|
96
|
+
}
|
|
97
|
+
await this.disposer(instance);
|
|
98
|
+
}
|
|
99
|
+
async dispose() {
|
|
100
|
+
return this[disposable_1.disposeAsync]();
|
|
101
|
+
}
|
|
102
|
+
async [disposable_1.disposeAsync]() {
|
|
103
|
+
this.disposed = true;
|
|
104
|
+
if (this.length == 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
while (this.freeInstances.size > 0) {
|
|
108
|
+
const instance = this.freeInstances.removeFirst();
|
|
109
|
+
await this.disposer(instance);
|
|
110
|
+
}
|
|
111
|
+
for (const instance of this.usedInstances) {
|
|
112
|
+
await this.disposer(instance);
|
|
77
113
|
this.usedInstances.delete(instance);
|
|
78
|
-
this.freeInstances.add(instance);
|
|
79
114
|
}
|
|
115
|
+
await this[disposable_1.disposeAsync]();
|
|
80
116
|
}
|
|
81
117
|
}
|
|
82
118
|
exports.Pool = Pool;
|
package/pool/pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../source/pool/pool.ts"],"names":[],"mappings":";;;AAAA,wDAA8C;AAC9C,gDAA4C;AAE5C,yDAAuD;
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../source/pool/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,25 +4,12 @@ export declare const enum PromiseState {
|
|
|
4
4
|
Rejected = 2
|
|
5
5
|
}
|
|
6
6
|
export declare class DeferredPromise<T = void> implements Promise<T> {
|
|
7
|
-
static
|
|
8
|
-
<T_1>(values: Iterable<T_1 | PromiseLike<T_1>>): Promise<Awaited<T_1>[]>;
|
|
9
|
-
<T_2 extends readonly unknown[] | []>(values: T_2): Promise<{ -readonly [P in keyof T_2]: Awaited<T_2[P]>; }>;
|
|
10
|
-
};
|
|
11
|
-
static race: {
|
|
12
|
-
<T_1>(values: Iterable<T_1 | PromiseLike<T_1>>): Promise<Awaited<T_1>>;
|
|
13
|
-
<T_2 extends readonly unknown[] | []>(values: T_2): Promise<Awaited<T_2[number]>>;
|
|
14
|
-
};
|
|
15
|
-
static resolve: {
|
|
16
|
-
(): Promise<void>;
|
|
17
|
-
<T_1>(value: T_1 | PromiseLike<T_1>): Promise<T_1>;
|
|
18
|
-
};
|
|
19
|
-
static reject: <T_1 = never>(reason?: any) => Promise<T_1>;
|
|
20
|
-
static [Symbol.species]: PromiseConstructor;
|
|
7
|
+
static readonly [Symbol.species]: PromiseConstructor;
|
|
21
8
|
private backingPromise;
|
|
22
9
|
private resolvePromise;
|
|
23
10
|
private rejectPromise;
|
|
24
11
|
private state;
|
|
25
|
-
readonly [Symbol.toStringTag]
|
|
12
|
+
readonly [Symbol.toStringTag] = "DeferredPromise";
|
|
26
13
|
get resolved(): boolean;
|
|
27
14
|
get rejected(): boolean;
|
|
28
15
|
get pending(): boolean;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.DeferredPromise = void 0;
|
|
5
|
-
const promiseConstructor = Promise;
|
|
6
5
|
class DeferredPromise {
|
|
7
6
|
constructor(executor) {
|
|
8
|
-
this[
|
|
7
|
+
this[_b] = 'DeferredPromise';
|
|
9
8
|
this.reset();
|
|
10
9
|
if (executor != undefined) {
|
|
11
10
|
executor((value) => this.resolve(value), (reason) => this.reject(reason));
|
|
@@ -50,7 +49,7 @@ class DeferredPromise {
|
|
|
50
49
|
this.state = 2 /* PromiseState.Rejected */;
|
|
51
50
|
}
|
|
52
51
|
reset() {
|
|
53
|
-
this.backingPromise = new
|
|
52
|
+
this.backingPromise = new Promise((resolve, reject) => {
|
|
54
53
|
this.resolvePromise = resolve;
|
|
55
54
|
this.rejectPromise = reject;
|
|
56
55
|
});
|
|
@@ -66,10 +65,6 @@ class DeferredPromise {
|
|
|
66
65
|
}
|
|
67
66
|
}
|
|
68
67
|
exports.DeferredPromise = DeferredPromise;
|
|
69
|
-
_a = Symbol.species, Symbol.toStringTag;
|
|
70
|
-
DeferredPromise
|
|
71
|
-
DeferredPromise.race = promiseConstructor.race.bind(promiseConstructor);
|
|
72
|
-
DeferredPromise.resolve = promiseConstructor.resolve.bind(promiseConstructor);
|
|
73
|
-
DeferredPromise.reject = promiseConstructor.reject.bind(promiseConstructor);
|
|
74
|
-
DeferredPromise[_a] = promiseConstructor;
|
|
68
|
+
_a = Symbol.species, _b = Symbol.toStringTag;
|
|
69
|
+
DeferredPromise[_a] = Promise;
|
|
75
70
|
//# sourceMappingURL=deferred-promise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferred-promise.js","sourceRoot":"","sources":["../../source/promise/deferred-promise.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"deferred-promise.js","sourceRoot":"","sources":["../../source/promise/deferred-promise.ts"],"names":[],"mappings":";;;;AAMA,MAAa,eAAe;IA2B1B,YAAY,QAAiG;QAlBpG,QAAoB,GAAG,iBAAiB,CAAC;QAmBhD,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,QAAQ,IAAI,SAAS,EAAE;YACzB,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;IACH,CAAC;IAtBD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,iCAAyB,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,iCAAyB,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,gCAAwB,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,gCAAwB,CAAC;IAC5C,CAAC;IAUD,qEAAqE;IACrE,IAAI,CAAiC,WAAiF,EAAE,UAAmF;QACzM,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAkB,UAAiF;QACtG,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,SAA2C;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,KAAyB;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,gCAAwB,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,KAAyB;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAgB;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,gCAAwB,CAAC;IACrC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,+BAAuB,CAAC;IACpC,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SAC7C;IACH,CAAC;;AAtFH,0CAuFC;KAtFkB,MAAM,CAAC,OAAO,OAQrB,MAAM,CAAC,WAAW;AARZ,mBAAgB,GAAG,OAAO,CAAC"}
|
package/promise/index.d.ts
CHANGED
package/promise/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./cancelable-promise"), exports);
|
|
18
18
|
__exportStar(require("./deferred-promise"), exports);
|
|
19
|
+
__exportStar(require("./lazy-promise"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/promise/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/promise/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/promise/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,qDAAmC;AACnC,iDAA+B"}
|