@servicelabsco/nestjs-utility-services 3.0.19 → 4.0.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/CHANGELOG.md +219 -1
- package/README.md +2 -0
- package/dist/app.module.js +10 -43
- package/dist/app.module.js.map +1 -1
- package/dist/auth/auth.module.js +1 -4
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/middlewares/internal.middleware.js +4 -36
- package/dist/auth/middlewares/internal.middleware.js.map +1 -1
- package/dist/auth/services/auth.service.js.map +1 -1
- package/dist/auth/services/device.token.service.js +4 -3
- package/dist/auth/services/device.token.service.js.map +1 -1
- package/dist/auth/services/refresh.token.service.js +1 -34
- package/dist/auth/services/refresh.token.service.js.map +1 -1
- package/dist/common/adapters/redis.io.adapter.d.ts +1 -3
- package/dist/common/adapters/redis.io.adapter.js +3 -7
- package/dist/common/adapters/redis.io.adapter.js.map +1 -1
- package/dist/common/libraries/auth.js +1 -34
- package/dist/common/libraries/auth.js.map +1 -1
- package/dist/common/libraries/common.subscriber.js +15 -15
- package/dist/common/libraries/common.subscriber.js.map +1 -1
- package/dist/common/libraries/custom.crypt.js +13 -46
- package/dist/common/libraries/custom.crypt.js.map +1 -1
- package/dist/common/libraries/custom.logger.js +1 -1
- package/dist/common/libraries/custom.logger.js.map +1 -1
- package/dist/common/libraries/date.util.js +3 -3
- package/dist/common/libraries/date.util.js.map +1 -1
- package/dist/common/libraries/hash.js +3 -36
- package/dist/common/libraries/hash.js.map +1 -1
- package/dist/common/libraries/json.evaluator.js +26 -26
- package/dist/common/libraries/json.evaluator.js.map +1 -1
- package/dist/common/libraries/log.redactor.js +14 -14
- package/dist/common/libraries/log.redactor.js.map +1 -1
- package/dist/common/libraries/money.js +4 -4
- package/dist/common/libraries/money.js.map +1 -1
- package/dist/common/libraries/platform.utility.js +1 -4
- package/dist/common/libraries/platform.utility.js.map +1 -1
- package/dist/common/libraries/record.manager.js.map +1 -1
- package/dist/common/libraries/sentry.sdk.d.ts +1 -1
- package/dist/common/libraries/sentry.sdk.js +1 -1
- package/dist/common/libraries/sentry.sdk.js.map +1 -1
- package/dist/config/jwt.config.js.map +1 -1
- package/dist/config/orm.config.js +0 -3
- package/dist/config/orm.config.js.map +1 -1
- package/dist/config/read.typeorm.config.js +6 -35
- package/dist/config/read.typeorm.config.js.map +1 -1
- package/dist/config/sentry.options.js +14 -1
- package/dist/config/sentry.options.js.map +1 -1
- package/dist/config/typeorm.config.js +6 -37
- package/dist/config/typeorm.config.js.map +1 -1
- package/dist/health.check.controller.js +18 -0
- package/dist/health.check.controller.js.map +1 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +6 -45
- package/dist/main.js.map +1 -1
- package/dist/migrations/1619296224563-AddMasterSeedersDataSeederTable.js +2 -35
- package/dist/migrations/1619296224563-AddMasterSeedersDataSeederTable.js.map +1 -1
- package/dist/migrations/1779607111923-AddUniqueIndexSysPropertiesName.js +2 -2
- package/dist/migrations/1779607111923-AddUniqueIndexSysPropertiesName.js.map +1 -1
- package/dist/migrations/1779607111924-AddUniqueIndexSysDocumentsFileHash.js +2 -2
- package/dist/migrations/1779607111924-AddUniqueIndexSysDocumentsFileHash.js.map +1 -1
- package/dist/migrations/1779690975270-AddUniqueIndexSysSessionIdentifiers.js +1 -1
- package/dist/migrations/1779690975270-AddUniqueIndexSysSessionIdentifiers.js.map +1 -1
- package/dist/migrations/1779773659655-AddIdempotencyIndexesForJobs.js +3 -3
- package/dist/migrations/1779773659655-AddIdempotencyIndexesForJobs.js.map +1 -1
- package/dist/migrations/1780002352495-MigrateJsonColumnsToJsonb.js +20 -20
- package/dist/migrations/1780002352495-MigrateJsonColumnsToJsonb.js.map +1 -1
- package/dist/migrations/1788287350858-ReplaceUniqueIndexesWithSoftDeleteAware.js +4 -4
- package/dist/migrations/1788287350858-ReplaceUniqueIndexesWithSoftDeleteAware.js.map +1 -1
- package/dist/migrations/1788287350859-NormalizeSocialIdentitiesUuidDefault.js +1 -1
- package/dist/migrations/1788287350859-NormalizeSocialIdentitiesUuidDefault.js.map +1 -1
- package/dist/migrations/1793302598724-CreateUploadSessionTable.d.ts +5 -0
- package/dist/migrations/1793302598724-CreateUploadSessionTable.js +33 -0
- package/dist/migrations/1793302598724-CreateUploadSessionTable.js.map +1 -0
- package/dist/platformUtility/constants/index.d.ts +1 -0
- package/dist/platformUtility/constants/index.js +1 -0
- package/dist/platformUtility/constants/index.js.map +1 -1
- package/dist/platformUtility/constants/servicelabs.constants.d.ts +30 -0
- package/dist/platformUtility/constants/servicelabs.constants.js +34 -0
- package/dist/platformUtility/constants/servicelabs.constants.js.map +1 -0
- package/dist/platformUtility/consumers/job.consumer.d.ts +2 -1
- package/dist/platformUtility/consumers/job.consumer.js +8 -8
- package/dist/platformUtility/consumers/job.consumer.js.map +1 -1
- package/dist/platformUtility/es6.classes.d.ts +36 -4
- package/dist/platformUtility/es6.classes.js +8 -1
- package/dist/platformUtility/es6.classes.js.map +1 -1
- package/dist/platformUtility/filters/sentry.reporting.filter.js +2 -1
- package/dist/platformUtility/filters/sentry.reporting.filter.js.map +1 -1
- package/dist/platformUtility/interfaces/index.d.ts +19 -0
- package/dist/platformUtility/interfaces/index.js +19 -0
- package/dist/platformUtility/interfaces/index.js.map +1 -1
- package/dist/platformUtility/interfaces/servicelabs.call.options.interface.d.ts +8 -0
- package/dist/platformUtility/interfaces/servicelabs.call.options.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.call.options.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.callback.event.interface.d.ts +6 -0
- package/dist/platformUtility/interfaces/servicelabs.callback.event.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.callback.event.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.error.interface.d.ts +10 -0
- package/dist/platformUtility/interfaces/servicelabs.error.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.error.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.html.pdf.input.interface.d.ts +5 -0
- package/dist/platformUtility/interfaces/servicelabs.html.pdf.input.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.html.pdf.input.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.job.file.interface.d.ts +10 -0
- package/dist/platformUtility/interfaces/servicelabs.job.file.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.job.file.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.job.interface.d.ts +31 -0
- package/dist/platformUtility/interfaces/servicelabs.job.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.job.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.interface.d.ts +5 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.options.interface.d.ts +6 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.options.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.job.list.options.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.job.summary.interface.d.ts +15 -0
- package/dist/platformUtility/interfaces/servicelabs.job.summary.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.job.summary.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.request.interface.d.ts +5 -0
- package/dist/platformUtility/interfaces/servicelabs.request.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.request.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.response.interface.d.ts +6 -0
- package/dist/platformUtility/interfaces/servicelabs.response.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.response.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.run.options.interface.d.ts +8 -0
- package/dist/platformUtility/interfaces/servicelabs.run.options.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.run.options.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.store.options.interface.d.ts +5 -0
- package/dist/platformUtility/interfaces/servicelabs.store.options.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.store.options.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.stored.file.interface.d.ts +6 -0
- package/dist/platformUtility/interfaces/servicelabs.stored.file.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.stored.file.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.url.input.interface.d.ts +3 -0
- package/dist/platformUtility/interfaces/servicelabs.url.input.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.url.input.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.utility.interface.d.ts +12 -0
- package/dist/platformUtility/interfaces/servicelabs.utility.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.utility.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.entry.interface.d.ts +4 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.entry.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.entry.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.files.input.interface.d.ts +4 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.files.input.interface.js +3 -0
- package/dist/platformUtility/interfaces/servicelabs.zip.files.input.interface.js.map +1 -0
- package/dist/platformUtility/interfaces/unzip.file.interface.d.ts +6 -0
- package/dist/platformUtility/interfaces/unzip.file.interface.js +3 -0
- package/dist/platformUtility/interfaces/unzip.file.interface.js.map +1 -0
- package/dist/platformUtility/libraries/common.servicelabs.callback.controller.d.ts +11 -0
- package/dist/platformUtility/libraries/common.servicelabs.callback.controller.js +43 -0
- package/dist/platformUtility/libraries/common.servicelabs.callback.controller.js.map +1 -0
- package/dist/platformUtility/libraries/create.entity.constants.file.js +1 -34
- package/dist/platformUtility/libraries/create.entity.constants.file.js.map +1 -1
- package/dist/platformUtility/libraries/create.es6.classes.file.js +1 -34
- package/dist/platformUtility/libraries/create.es6.classes.file.js.map +1 -1
- package/dist/platformUtility/libraries/create.es6.jobs.file.js +1 -34
- package/dist/platformUtility/libraries/create.es6.jobs.file.js.map +1 -1
- package/dist/platformUtility/libraries/create.es6.service.file.js +1 -34
- package/dist/platformUtility/libraries/create.es6.service.file.js.map +1 -1
- package/dist/platformUtility/libraries/create.index.file.js +1 -34
- package/dist/platformUtility/libraries/create.index.file.js.map +1 -1
- package/dist/platformUtility/libraries/file.system.utility.js +1 -34
- package/dist/platformUtility/libraries/file.system.utility.js.map +1 -1
- package/dist/platformUtility/libraries/index.d.ts +1 -0
- package/dist/platformUtility/libraries/index.js +1 -0
- package/dist/platformUtility/libraries/index.js.map +1 -1
- package/dist/platformUtility/libraries/process.common.mail.js +4 -7
- package/dist/platformUtility/libraries/process.common.mail.js.map +1 -1
- package/dist/platformUtility/libraries/process.kaleyra.sms.d.ts +1 -0
- package/dist/platformUtility/libraries/process.kaleyra.sms.js +11 -37
- package/dist/platformUtility/libraries/process.kaleyra.sms.js.map +1 -1
- package/dist/platformUtility/libraries/process.smtp.mail.js +1 -34
- package/dist/platformUtility/libraries/process.smtp.mail.js.map +1 -1
- package/dist/platformUtility/libraries/sentry.bootstrap.js +5 -5
- package/dist/platformUtility/libraries/sentry.bootstrap.js.map +1 -1
- package/dist/platformUtility/libraries/sentry.context.d.ts +1 -1
- package/dist/platformUtility/libraries/sentry.context.js +1 -2
- package/dist/platformUtility/libraries/sentry.context.js.map +1 -1
- package/dist/platformUtility/middlewares/trim.pipe.js +13 -12
- package/dist/platformUtility/middlewares/trim.pipe.js.map +1 -1
- package/dist/platformUtility/platform.utility.module.js +9 -5
- package/dist/platformUtility/platform.utility.module.js.map +1 -1
- package/dist/platformUtility/services/aws.client.factory.js +3 -2
- package/dist/platformUtility/services/aws.client.factory.js.map +1 -1
- package/dist/platformUtility/services/aws.config.service.js +3 -2
- package/dist/platformUtility/services/aws.config.service.js.map +1 -1
- package/dist/platformUtility/services/cache.service.js +4 -2
- package/dist/platformUtility/services/cache.service.js.map +1 -1
- package/dist/platformUtility/services/dynamo.service.js +4 -3
- package/dist/platformUtility/services/dynamo.service.js.map +1 -1
- package/dist/platformUtility/services/index.d.ts +2 -0
- package/dist/platformUtility/services/index.js +2 -0
- package/dist/platformUtility/services/index.js.map +1 -1
- package/dist/platformUtility/services/local.property.service.js +1 -4
- package/dist/platformUtility/services/local.property.service.js.map +1 -1
- package/dist/platformUtility/services/maintenance.service.js +2 -35
- package/dist/platformUtility/services/maintenance.service.js.map +1 -1
- package/dist/platformUtility/services/pdf.service.d.ts +4 -1
- package/dist/platformUtility/services/pdf.service.js +16 -2
- package/dist/platformUtility/services/pdf.service.js.map +1 -1
- package/dist/platformUtility/services/queue.service.d.ts +5 -3
- package/dist/platformUtility/services/queue.service.js +14 -3
- package/dist/platformUtility/services/queue.service.js.map +1 -1
- package/dist/platformUtility/services/redis.service.d.ts +1 -0
- package/dist/platformUtility/services/redis.service.js +10 -8
- package/dist/platformUtility/services/redis.service.js.map +1 -1
- package/dist/platformUtility/services/remote.request.service.js +1 -4
- package/dist/platformUtility/services/remote.request.service.js.map +1 -1
- package/dist/platformUtility/services/s3.service.js +1 -34
- package/dist/platformUtility/services/s3.service.js.map +1 -1
- package/dist/platformUtility/services/servicelabs.dev.service.d.ts +49 -0
- package/dist/platformUtility/services/servicelabs.dev.service.js +181 -0
- package/dist/platformUtility/services/servicelabs.dev.service.js.map +1 -0
- package/dist/platformUtility/services/servicelabs.utility.service.d.ts +51 -0
- package/dist/platformUtility/services/servicelabs.utility.service.js +193 -0
- package/dist/platformUtility/services/servicelabs.utility.service.js.map +1 -0
- package/dist/platformUtility/services/shutdown.service.js.map +1 -1
- package/dist/platformUtility/services/split.pdf.service.d.ts +3 -1
- package/dist/platformUtility/services/split.pdf.service.js +9 -2
- package/dist/platformUtility/services/split.pdf.service.js.map +1 -1
- package/dist/platformUtility/services/zip.service.d.ts +7 -2
- package/dist/platformUtility/services/zip.service.js +41 -5
- package/dist/platformUtility/services/zip.service.js.map +1 -1
- package/dist/security/security.module.js +1 -4
- package/dist/security/security.module.js.map +1 -1
- package/dist/system/constants/index.d.ts +1 -0
- package/dist/system/constants/index.js +1 -0
- package/dist/system/constants/index.js.map +1 -1
- package/dist/system/constants/upload.session.constants.d.ts +21 -0
- package/dist/system/constants/upload.session.constants.js +25 -0
- package/dist/system/constants/upload.session.constants.js.map +1 -0
- package/dist/system/controllers/upload.controller.js +2 -2
- package/dist/system/controllers/upload.controller.js.map +1 -1
- package/dist/system/dtos/direct.upload.file.dto.d.ts +5 -0
- package/dist/system/dtos/direct.upload.file.dto.js +37 -0
- package/dist/system/dtos/direct.upload.file.dto.js.map +1 -0
- package/dist/system/dtos/direct.upload.initiate.dto.d.ts +4 -0
- package/dist/system/dtos/direct.upload.initiate.dto.js +27 -0
- package/dist/system/dtos/direct.upload.initiate.dto.js.map +1 -0
- package/dist/system/dtos/direct.upload.options.dto.d.ts +8 -0
- package/dist/system/dtos/direct.upload.options.dto.js +54 -0
- package/dist/system/dtos/direct.upload.options.dto.js.map +1 -0
- package/dist/system/dtos/direct.upload.parts.dto.d.ts +3 -0
- package/dist/system/dtos/direct.upload.parts.dto.js +26 -0
- package/dist/system/dtos/direct.upload.parts.dto.js.map +1 -0
- package/dist/system/dtos/index.d.ts +5 -0
- package/dist/system/dtos/index.js +5 -0
- package/dist/system/dtos/index.js.map +1 -1
- package/dist/system/dtos/upload.session.attributes.dto.d.ts +5 -0
- package/dist/system/dtos/upload.session.attributes.dto.js +7 -0
- package/dist/system/dtos/upload.session.attributes.dto.js.map +1 -0
- package/dist/system/entities/index.d.ts +1 -0
- package/dist/system/entities/index.js +1 -0
- package/dist/system/entities/index.js.map +1 -1
- package/dist/system/entities/upload.session.entity.d.ts +20 -0
- package/dist/system/entities/upload.session.entity.js +86 -0
- package/dist/system/entities/upload.session.entity.js.map +1 -0
- package/dist/system/es6.classes.d.ts +34 -5
- package/dist/system/es6.classes.js +20 -1
- package/dist/system/es6.classes.js.map +1 -1
- package/dist/system/interfaces/direct.upload.part.url.interface.d.ts +6 -0
- package/dist/system/interfaces/direct.upload.part.url.interface.js +3 -0
- package/dist/system/interfaces/direct.upload.part.url.interface.js.map +1 -0
- package/dist/system/interfaces/direct.upload.result.interface.d.ts +10 -0
- package/dist/system/interfaces/direct.upload.result.interface.js +3 -0
- package/dist/system/interfaces/direct.upload.result.interface.js.map +1 -0
- package/dist/system/interfaces/direct.upload.session.interface.d.ts +16 -0
- package/dist/system/interfaces/direct.upload.session.interface.js +3 -0
- package/dist/system/interfaces/direct.upload.session.interface.js.map +1 -0
- package/dist/system/interfaces/direct.upload.status.interface.d.ts +12 -0
- package/dist/system/interfaces/direct.upload.status.interface.js +3 -0
- package/dist/system/interfaces/direct.upload.status.interface.js.map +1 -0
- package/dist/system/interfaces/index.d.ts +5 -0
- package/dist/system/interfaces/index.js +5 -0
- package/dist/system/interfaces/index.js.map +1 -1
- package/dist/system/interfaces/uploaded.part.interface.d.ts +5 -0
- package/dist/system/interfaces/uploaded.part.interface.js +3 -0
- package/dist/system/interfaces/uploaded.part.interface.js.map +1 -0
- package/dist/system/jobs/expire.upload.session.job.d.ts +13 -0
- package/dist/system/jobs/expire.upload.session.job.js +38 -0
- package/dist/system/jobs/expire.upload.session.job.js.map +1 -0
- package/dist/system/jobs/index.d.ts +1 -0
- package/dist/system/jobs/index.js +1 -0
- package/dist/system/jobs/index.js.map +1 -1
- package/dist/system/jobs/orphan.sweeper.job.js +3 -2
- package/dist/system/jobs/orphan.sweeper.job.js.map +1 -1
- package/dist/system/jobs/set.event.queue.job.js +3 -2
- package/dist/system/jobs/set.event.queue.job.js.map +1 -1
- package/dist/system/jobs/sqs.polling.job.js.map +1 -1
- package/dist/system/libraries/code.evaluator.d.ts +13 -0
- package/dist/system/libraries/code.evaluator.js +41 -1
- package/dist/system/libraries/code.evaluator.js.map +1 -1
- package/dist/system/libraries/common.direct.upload.controller.d.ts +19 -0
- package/dist/system/libraries/common.direct.upload.controller.js +84 -0
- package/dist/system/libraries/common.direct.upload.controller.js.map +1 -0
- package/dist/system/libraries/common.storage.service.d.ts +13 -0
- package/dist/system/libraries/common.storage.service.js +78 -1
- package/dist/system/libraries/common.storage.service.js.map +1 -1
- package/dist/system/libraries/crypt.re.encrypt.processor.js +2 -2
- package/dist/system/libraries/crypt.re.encrypt.processor.js.map +1 -1
- package/dist/system/libraries/file.type.detector.d.ts +2 -0
- package/dist/system/libraries/file.type.detector.js +88 -75
- package/dist/system/libraries/file.type.detector.js.map +1 -1
- package/dist/system/libraries/generate.downloadable.report.file.js +2 -35
- package/dist/system/libraries/generate.downloadable.report.file.js.map +1 -1
- package/dist/system/libraries/index.d.ts +1 -0
- package/dist/system/libraries/index.js +1 -0
- package/dist/system/libraries/index.js.map +1 -1
- package/dist/system/libraries/model.sync.js +2 -2
- package/dist/system/libraries/model.sync.js.map +1 -1
- package/dist/system/libraries/sandboxed.script.executor.js +17 -17
- package/dist/system/libraries/sandboxed.script.executor.js.map +1 -1
- package/dist/system/services/aws.s3.service.js +6 -5
- package/dist/system/services/aws.s3.service.js.map +1 -1
- package/dist/system/services/base.service.js.map +1 -1
- package/dist/system/services/direct.upload.service.d.ts +41 -0
- package/dist/system/services/direct.upload.service.js +385 -0
- package/dist/system/services/direct.upload.service.js.map +1 -0
- package/dist/system/services/document.service.js +2 -38
- package/dist/system/services/document.service.js.map +1 -1
- package/dist/system/services/event.detail.service.js.map +1 -1
- package/dist/system/services/event.queue.service.js +3 -2
- package/dist/system/services/event.queue.service.js.map +1 -1
- package/dist/system/services/index.d.ts +1 -0
- package/dist/system/services/index.js +1 -0
- package/dist/system/services/index.js.map +1 -1
- package/dist/system/services/storage.service.d.ts +20 -0
- package/dist/system/services/storage.service.js +62 -7
- package/dist/system/services/storage.service.js.map +1 -1
- package/dist/system/services/upload.service.js +3 -5
- package/dist/system/services/upload.service.js.map +1 -1
- package/dist/system/system.module.js +1 -4
- package/dist/system/system.module.js.map +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +2 -1
- package/dist/worker.js.map +1 -1
- package/docs/sentry-reporting.md +26 -20
- package/docs/servicelabs-utilities.md +174 -0
- package/docs/upgrade-4.0.md +215 -0
- package/package.json +70 -74
|
@@ -8,14 +8,11 @@ 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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
var StorageService_1;
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.StorageService = void 0;
|
|
17
14
|
const common_1 = require("@nestjs/common");
|
|
18
|
-
const axios_1 =
|
|
15
|
+
const axios_1 = require("axios");
|
|
19
16
|
const fs_1 = require("fs");
|
|
20
17
|
const common_service_1 = require("../../common/libraries/common.service");
|
|
21
18
|
const operation_exception_1 = require("../../common/exceptions/operation.exception");
|
|
@@ -105,14 +102,25 @@ let StorageService = StorageService_1 = class StorageService extends common_serv
|
|
|
105
102
|
this.logger.warn(`Feature 'tagging' is not supported on engine '${adapter.engineId}'; stripping.`);
|
|
106
103
|
}
|
|
107
104
|
const url = await adapter.upload(params);
|
|
105
|
+
const stored = await this.statUploaded(adapter, params.Bucket, params.Key);
|
|
108
106
|
return {
|
|
109
107
|
url,
|
|
110
108
|
bucket: params.Bucket,
|
|
111
109
|
key: params.Key,
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
etag: stored?.etag,
|
|
111
|
+
size: stored ? stored.size : Buffer.isBuffer(body) ? body.length : input.size,
|
|
112
|
+
contentType: stored ? stored.contentType : params.ContentType,
|
|
114
113
|
};
|
|
115
114
|
}
|
|
115
|
+
async statUploaded(adapter, bucket, key) {
|
|
116
|
+
try {
|
|
117
|
+
return await adapter.head(bucket, key);
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
this.logger.warn(`HEAD after upload failed for ${adapter.engineId}:${bucket}/${key}; using request values. ${err?.message ?? err}`);
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
116
124
|
async get(ref) {
|
|
117
125
|
const { adapter, bucket, key } = await this.resolve(ref);
|
|
118
126
|
const res = await adapter.getObject(bucket, key);
|
|
@@ -235,7 +243,47 @@ let StorageService = StorageService_1 = class StorageService extends common_serv
|
|
|
235
243
|
}
|
|
236
244
|
async getSignedUploadUrl(ref, ttlSeconds, options) {
|
|
237
245
|
const { adapter, bucket, key } = await this.resolve(ref);
|
|
238
|
-
return adapter.getSignedUploadUrl(bucket, key, ttlSeconds, options);
|
|
246
|
+
return adapter.getSignedUploadUrl(bucket, key, ttlSeconds, this.withSupportedAcl(adapter, options));
|
|
247
|
+
}
|
|
248
|
+
async createMultipartUpload(ref, options) {
|
|
249
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
250
|
+
return adapter.createMultipartUpload(bucket, key, this.withSupportedAcl(adapter, options));
|
|
251
|
+
}
|
|
252
|
+
async getSignedPartUploadUrl(ref, uploadId, partNumber, ttlSeconds) {
|
|
253
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
254
|
+
return adapter.getSignedPartUploadUrl(bucket, key, uploadId, partNumber, ttlSeconds);
|
|
255
|
+
}
|
|
256
|
+
async listParts(ref, uploadId) {
|
|
257
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
258
|
+
return adapter.listParts(bucket, key, uploadId);
|
|
259
|
+
}
|
|
260
|
+
async completeMultipartUpload(ref, uploadId, parts) {
|
|
261
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
262
|
+
await adapter.completeMultipartUpload(bucket, key, uploadId, parts);
|
|
263
|
+
}
|
|
264
|
+
async abortMultipartUpload(ref, uploadId) {
|
|
265
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
266
|
+
await adapter.abortMultipartUpload(bucket, key, uploadId);
|
|
267
|
+
}
|
|
268
|
+
async getRange(ref, start, end) {
|
|
269
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
270
|
+
return adapter.getObjectRange(bucket, key, start, end);
|
|
271
|
+
}
|
|
272
|
+
async getUploadTarget(engine) {
|
|
273
|
+
const { adapter, bucket } = await this.resolve({ key: '', engine });
|
|
274
|
+
return { engine: adapter.engineId, bucket };
|
|
275
|
+
}
|
|
276
|
+
buildObjectKey(originalname, folder = 'public') {
|
|
277
|
+
return `${folder}/${this.buildFileName({ originalname }, {})}`;
|
|
278
|
+
}
|
|
279
|
+
async tryPublicUrl(ref) {
|
|
280
|
+
try {
|
|
281
|
+
const { adapter, bucket, key } = await this.resolve(ref);
|
|
282
|
+
return adapter.publicUrl(bucket, key);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
239
287
|
}
|
|
240
288
|
publicUrl(ref) {
|
|
241
289
|
const engineId = this.normaliseEngineId(ref.engine);
|
|
@@ -295,6 +343,13 @@ let StorageService = StorageService_1 = class StorageService extends common_serv
|
|
|
295
343
|
this.logger.warn(`Feature '${feature}' is not supported on engine '${adapter.engineId}'; stripping value=${String(value)}.`);
|
|
296
344
|
}
|
|
297
345
|
}
|
|
346
|
+
withSupportedAcl(adapter, options) {
|
|
347
|
+
if (!options?.acl || adapter.featureSupport.acl)
|
|
348
|
+
return options;
|
|
349
|
+
this.logger.warn(`Feature 'acl' is not supported on engine '${adapter.engineId}'; stripping value=${options.acl}.`);
|
|
350
|
+
const { acl: _acl, ...rest } = options;
|
|
351
|
+
return rest;
|
|
352
|
+
}
|
|
298
353
|
async copyCrossEngine(src, dst) {
|
|
299
354
|
this.logger.log(`Cross-engine ${src.adapter.engineId}→${dst.adapter.engineId} ${src.bucket}/${src.key} → ${dst.bucket}/${dst.key}`);
|
|
300
355
|
const stream = await src.adapter.getObjectStream(src.bucket, src.key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/system/services/storage.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../../src/system/services/storage.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,10 @@ 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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.UploadService = void 0;
|
|
16
13
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const axios_1 =
|
|
14
|
+
const axios_1 = require("axios");
|
|
18
15
|
const fs_1 = require("fs");
|
|
19
16
|
const common_service_1 = require("../../common/libraries/common.service");
|
|
20
17
|
const public_exposed_decorator_1 = require("../../common/decorators/public.exposed.decorator");
|
|
@@ -35,11 +32,12 @@ let UploadService = class UploadService extends common_service_1.CommonService {
|
|
|
35
32
|
return result.url;
|
|
36
33
|
}
|
|
37
34
|
async uploadWithStats(file, options = {}) {
|
|
35
|
+
const contentType = options.contentType ?? options.mime_type ?? file_type_detector_1.FileTypeDetector.detectByExtension(file.originalname ?? file.url);
|
|
38
36
|
const result = await this.storageService.put({
|
|
39
37
|
buffer: file.buffer,
|
|
40
38
|
url: file.url,
|
|
41
39
|
originalname: file.originalname,
|
|
42
|
-
}, options);
|
|
40
|
+
}, { ...options, contentType });
|
|
43
41
|
return { url: result.url, size: result.size ?? 0, contentType: result.contentType ?? '' };
|
|
44
42
|
}
|
|
45
43
|
async uploadFile(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.service.js","sourceRoot":"","sources":["../../../src/system/services/upload.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload.service.js","sourceRoot":"","sources":["../../../src/system/services/upload.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.SystemModule = void 0;
|
|
13
10
|
const common_1 = require("@nestjs/common");
|
|
14
11
|
const auth_module_1 = require("../auth/auth.module");
|
|
15
12
|
const platform_utility_module_1 = require("../platformUtility/platform.utility.module");
|
|
16
|
-
const es6_classes_1 =
|
|
13
|
+
const es6_classes_1 = require("./es6.classes");
|
|
17
14
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
15
|
let SystemModule = class SystemModule {
|
|
19
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.module.js","sourceRoot":"","sources":["../../src/system/system.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system.module.js","sourceRoot":"","sources":["../../src/system/system.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,qDAAiD;AACjD,wFAAmF;AACnF,+CAAuC;AACvC,6CAAgD;AAQzC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IANxB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,qBAAU,CAAC,QAAQ,CAAC,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC,CAAC;QAC/H,WAAW,EAAE,qBAAU,CAAC,WAAW;QACnC,SAAS,EAAE,CAAC,GAAG,qBAAU,CAAC,QAAQ,EAAE,GAAG,qBAAU,CAAC,WAAW,EAAE,GAAG,qBAAU,CAAC,IAAI,CAAC;QAClF,OAAO,EAAE,CAAC,GAAG,qBAAU,CAAC,QAAQ,EAAE,GAAG,qBAAU,CAAC,IAAI,CAAC;KACxD,CAAC;GACW,YAAY,CAAG"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import './instrument';
|
package/dist/worker.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("./instrument");
|
|
3
4
|
const core_1 = require("@nestjs/core");
|
|
4
5
|
const app_module_1 = require("./app.module");
|
|
5
6
|
const queue_service_1 = require("./platformUtility/services/queue.service");
|
|
@@ -16,7 +17,7 @@ async function bootstrap() {
|
|
|
16
17
|
async function assertRedisReachable(queueService) {
|
|
17
18
|
try {
|
|
18
19
|
const queue = queueService.getQueueInstance();
|
|
19
|
-
const client = await queue.client;
|
|
20
|
+
const client = await queue.getBackend().client;
|
|
20
21
|
const info = await Promise.race([
|
|
21
22
|
client.info(),
|
|
22
23
|
new Promise((_, reject) => setTimeout(() => reject(new Error(`timed out after ${REDIS_PING_TIMEOUT_MS}ms`)), REDIS_PING_TIMEOUT_MS)),
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":";;AAEA,wBAAsB;AACtB,uCAA2C;AAC3C,6CAAyC;AACzC,4EAAwE;AAOxE,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,KAAK,UAAU,SAAS;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;IAC1D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAEhD,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAC1B,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAQjB,MAAM,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC,CAAC;IAElD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,YAA0B;IAC1D,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;QAI/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC5B,MAAM,CAAC,IAAI,EAAE;YACb,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,qBAAqB,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAC3G;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/docs/sentry-reporting.md
CHANGED
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
package's security defaults:
|
|
6
6
|
|
|
7
7
|
- `LogRedactor` on every outbound event (`beforeSend`)
|
|
8
|
-
- `includeLocalVariables: false`, `
|
|
9
|
-
|
|
8
|
+
- `includeLocalVariables: false`, and an explicit restrictive `dataCollection` (Sentry v11 replaced
|
|
9
|
+
`sendDefaultPii`; its default now collects cookies, bodies, DB query data and queue payloads — the
|
|
10
|
+
package pins the old `sendDefaultPii: false` baseline instead)
|
|
11
|
+
- Auth user (`id` + `email` only) on the request scope
|
|
10
12
|
- HTTP **5xx** reporting (4xx `HttpException` values stay out of Sentry)
|
|
11
13
|
- **No reporting from queue worker processes** (`worker.ts` entrypoint) unless opted in
|
|
12
14
|
with `SENTRY_ENABLE_WORKER=true` (see §5)
|
|
13
15
|
- Quiet one-line **ERROR** logs in local/dev (full stacks still go to Sentry)
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
`@sentry/nestjs` (v11) is a dependency of this package and pins its own `@sentry/node` /
|
|
18
|
+
`@sentry/core` — do not add separately-ranged `@sentry/*` packages to your app, or a second
|
|
19
|
+
SDK copy can end up with its own (uninitialised) client.
|
|
18
20
|
|
|
19
21
|
## 1. Environment variables
|
|
20
22
|
|
|
@@ -33,19 +35,14 @@ via `worker.ts` / `dist/worker.js` unless that process also has `SENTRY_ENABLE_W
|
|
|
33
35
|
|
|
34
36
|
## 2. Early init (`instrument.ts`)
|
|
35
37
|
|
|
36
|
-
Sentry must initialize **before**
|
|
37
|
-
|
|
38
|
+
Sentry must initialize **before** `@nestjs/*`, `express`, `pg`, `ioredis` and `bullmq` are
|
|
39
|
+
loaded — its instrumentation only applies to modules loaded after `init()`, and v11 no
|
|
40
|
+
longer warns when that order is wrong.
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
import { initSentry } from '@servicelabsco/nestjs-utility-services';
|
|
41
|
-
|
|
42
|
-
initSentry();
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Import it as the **first line** of `main.ts`:
|
|
42
|
+
Import the package's side-effect-only instrument file as the **first line** of `main.ts`:
|
|
46
43
|
|
|
47
44
|
```typescript
|
|
48
|
-
import '
|
|
45
|
+
import '@servicelabsco/nestjs-utility-services/dist/instrument';
|
|
49
46
|
|
|
50
47
|
import { NestFactory } from '@nestjs/core';
|
|
51
48
|
import { AppModule } from './app.module';
|
|
@@ -57,7 +54,15 @@ async function bootstrap() {
|
|
|
57
54
|
bootstrap();
|
|
58
55
|
```
|
|
59
56
|
|
|
60
|
-
|
|
57
|
+
Do **not** use `import { initSentry } from '@servicelabsco/nestjs-utility-services'` for
|
|
58
|
+
this: the package barrel loads every module (and with them Nest, TypeORM/pg, ioredis,
|
|
59
|
+
BullMQ) *before* `initSentry()` runs, so none of those get instrumented. `dist/instrument`
|
|
60
|
+
loads only `dotenv` and the Sentry SDK.
|
|
61
|
+
|
|
62
|
+
Alternatively preload it: `node --import @servicelabsco/nestjs-utility-services/dist/instrument.js dist/main.js`.
|
|
63
|
+
Never use `--require` — Sentry v11 does not support it.
|
|
64
|
+
|
|
65
|
+
Add the same import as the first line of `worker.ts` too. `initSentry()` is a
|
|
61
66
|
no-op on the worker entrypoint unless `SENTRY_ENABLE_WORKER=true`, so importing it
|
|
62
67
|
is safe either way and lets each deployment decide through env alone.
|
|
63
68
|
|
|
@@ -94,7 +99,7 @@ runs without Sentry.
|
|
|
94
99
|
|
|
95
100
|
1. `SentryModule.forRoot()` — official Nest SDK integration + HTTP transaction naming
|
|
96
101
|
2. `SentryReportingFilter` — global exception filter (must stay ahead of custom filters)
|
|
97
|
-
3. `SentryUserScopeInterceptor` — per-request user
|
|
102
|
+
3. `SentryUserScopeInterceptor` — per-request auth user on the Sentry scope
|
|
98
103
|
|
|
99
104
|
If you define your own global `APP_FILTER`, register `SentryReportingModule` **before**
|
|
100
105
|
any custom exception filters, or compose filters explicitly so Sentry still runs first.
|
|
@@ -102,7 +107,7 @@ any custom exception filters, or compose filters explicitly so Sentry still runs
|
|
|
102
107
|
## 4. Manual `captureException`
|
|
103
108
|
|
|
104
109
|
Prefer the package's lazy `SentrySdk` over importing `@sentry/*` directly. A top-level
|
|
105
|
-
`import * as Sentry from '@sentry/
|
|
110
|
+
`import * as Sentry from '@sentry/nestjs'` loads the SDK (~14 MB heap, ~1,300 modules) into every
|
|
106
111
|
process, including those where Sentry is off; `SentrySdk` only loads it when Sentry is enabled
|
|
107
112
|
for the process and is a no-op otherwise. Events pass through the same `beforeSend` redaction
|
|
108
113
|
configured in `initSentry()`.
|
|
@@ -114,7 +119,8 @@ SentrySdk.captureException(error, { tags: { service: 'MyService' } });
|
|
|
114
119
|
```
|
|
115
120
|
|
|
116
121
|
On HTTP requests, `SentryUserScopeInterceptor` already attaches the authenticated user
|
|
117
|
-
(from `Auth.user()`)
|
|
122
|
+
(from `Auth.user()`) to the isolation scope; request data comes from the SDK itself,
|
|
123
|
+
filtered by `dataCollection` and then `beforeSend` redaction.
|
|
118
124
|
|
|
119
125
|
## 5. Workers
|
|
120
126
|
|
|
@@ -152,5 +158,5 @@ for your CI/CD pipeline.
|
|
|
152
158
|
The standalone dev app in this repository follows the same pattern:
|
|
153
159
|
|
|
154
160
|
- `src/instrument.ts` → `initSentry()`
|
|
155
|
-
- `src/main.ts` → `import './instrument'` first
|
|
161
|
+
- `src/main.ts` and `src/worker.ts` → `import './instrument'` first
|
|
156
162
|
- `src/app.module.ts` → `SentryReportingModule.forRoot()`
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# ServiceLabs utilities
|
|
2
|
+
|
|
3
|
+
`ServicelabsUtilityService` calls the [ServiceLabs utilities API](https://servicelabs.dev/docs/):
|
|
4
|
+
HTML → PDF, split PDF, zip, unzip and XLS → XLSX behind one API key. Every utility can run **sync**
|
|
5
|
+
(wait for the result) or **async** (get a job id back, then a signed callback or a poll).
|
|
6
|
+
|
|
7
|
+
ServiceLabs keeps its output files for 30 days only, so nu copies them into the app's default
|
|
8
|
+
storage engine (`STORAGE_ENGINE`: S3 or R2) and hands back links to that copy.
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
| Property | Value |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| `servicelabs.api.key` | The service's API key (`du_live_…`), from the ServiceLabs console. One key per service. |
|
|
15
|
+
| `servicelabs.webhook.secret` | The key's callback signing secret (`whsec_…`). Needed only for async callbacks. |
|
|
16
|
+
| `servicelabs.api.url` | Optional. Defaults to `https://api.servicelabs.dev`. |
|
|
17
|
+
|
|
18
|
+
`PdfService.convert`, `SplitPdfService.split` and `ZipService.zip` / `unzip` switch to ServiceLabs as
|
|
19
|
+
soon as `servicelabs.api.key` is set. Their return shapes do not change; without the key they keep
|
|
20
|
+
calling the Lambda URLs. Set the key in one environment, check the output, then move the next one.
|
|
21
|
+
|
|
22
|
+
## Sync
|
|
23
|
+
|
|
24
|
+
The helpers run the utility, wait for it, copy the output into storage and return the stored files.
|
|
25
|
+
Use them where the caller can wait: a typical PDF takes a few seconds, but the call can take minutes
|
|
26
|
+
on a large input (nu long-polls past ServiceLabs' 90 s sync budget).
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
constructor(private readonly servicelabs: ServicelabsUtilityService) {}
|
|
30
|
+
|
|
31
|
+
const pdf = await this.servicelabs.htmlToPdf('https://…/invoice.html', { format: 'A4' });
|
|
32
|
+
// pdf: { url, bucket, key, size, contentType, name } — key: servicelabs/html-pdf/<date>/<job id>/<file>
|
|
33
|
+
|
|
34
|
+
const pages = await this.servicelabs.splitPdf('s3://finnoto-data/uploads/statement.pdf'); // [{ …, pageNumber }]
|
|
35
|
+
const zip = await this.servicelabs.zipFiles([{ url: 'https://…/a.pdf', fileName: 'invoices/a.pdf' }]);
|
|
36
|
+
const files = await this.servicelabs.unzipFiles('https://…/bundle.zip'); // [{ …, path }]
|
|
37
|
+
const xlsx = await this.servicelabs.xlsToXlsx('https://…/report.xls');
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Every helper takes run options (`metadata`, `idempotencyKey`, `waitTimeoutMs`, `source` for a
|
|
41
|
+
`RemoteRequestLogEntity` row) and store options (`folder`, default `servicelabs`; `visibility`, default
|
|
42
|
+
`public`; `engine`). A utility that fails throws `OperationException` with ServiceLabs' error code and
|
|
43
|
+
message, e.g. `upstream_rejected: Password-protected PDFs are not supported`.
|
|
44
|
+
|
|
45
|
+
## Async
|
|
46
|
+
|
|
47
|
+
For batches, large inputs and anything a user is not waiting on. `create…Job` answers at once with the
|
|
48
|
+
queued job:
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
const job = await this.servicelabs.createSplitPdfJob(url, {
|
|
52
|
+
callbackUrl: 'https://api.example.com/webhooks/servicelabs',
|
|
53
|
+
metadata: { statementId: statement.id },
|
|
54
|
+
idempotencyKey: `statement-${statement.id}`,
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`createHtmlPdfJob`, `createSplitPdfJob`, `createZipFilesJob`, `createUnzipFilesJob`,
|
|
59
|
+
`createXlsToXlsxJob`, or `createJob(slug, input, options)` for any utility.
|
|
60
|
+
|
|
61
|
+
### Receiving the callback
|
|
62
|
+
|
|
63
|
+
Mount `CommonServicelabsCallbackController` on your own route. It verifies the Standard Webhooks
|
|
64
|
+
signature, answers `204` and calls `onJobFinished`:
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
@Controller('webhooks/servicelabs')
|
|
68
|
+
export class ServicelabsCallbackController extends CommonServicelabsCallbackController {
|
|
69
|
+
constructor(
|
|
70
|
+
servicelabsUtilityService: ServicelabsUtilityService,
|
|
71
|
+
private readonly statementSplitJob: StatementSplitJob
|
|
72
|
+
) {
|
|
73
|
+
super(servicelabsUtilityService);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
protected async onJobFinished(event: ServicelabsCallbackEventInterface): Promise<void> {
|
|
77
|
+
await this.statementSplitJob.dispatch(event.data);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
// in the job: copy the output, then use event.data.metadata to find your record
|
|
84
|
+
const pages = await this.servicelabsUtilityService.storeFiles(job);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- **Raw body.** The signature covers the exact bytes received. Create the app with
|
|
88
|
+
`NestFactory.create(AppModule, { rawBody: true })`, or every callback is refused.
|
|
89
|
+
- **Route.** The signature is the authentication. Mount the controller outside `api/…`, where
|
|
90
|
+
`RestrictedMiddleware` would demand a logged-in user. `callbackUrl` must be public `https://`.
|
|
91
|
+
- **Answer fast.** ServiceLabs waits 10 s for a 2xx and retries anything else (8 attempts over about
|
|
92
|
+
21 minutes). Copying files can take longer, so dispatch a job from `onJobFinished`.
|
|
93
|
+
- **Duplicates.** The same callback can arrive twice. De-duplicate on `event.data.id`.
|
|
94
|
+
- **Several API keys.** Override `signingSecret()` to choose the secret per request.
|
|
95
|
+
|
|
96
|
+
Apps with their own webhook route can call `servicelabsUtilityService.verifyCallback(rawBody, headers)`
|
|
97
|
+
directly.
|
|
98
|
+
|
|
99
|
+
### Polling instead
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
const finished = await this.servicelabs.waitForJob(job.id); // long-polls ?wait=60 until final
|
|
103
|
+
const files = await this.servicelabs.storeFiles(finished); // throws unless it succeeded
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`getJob(id, waitSeconds)`, `listJobs({ utility, status, limit, cursor })` and `cancelJob(id)` (queued
|
|
107
|
+
jobs only) cover the rest. Callbacks are a notification, not the source of truth: a periodic
|
|
108
|
+
`listJobs({ status: 'succeeded' })` reconcile catches anything missed while the receiver was down.
|
|
109
|
+
|
|
110
|
+
## The bare API: `ServicelabsDevService`
|
|
111
|
+
|
|
112
|
+
`ServicelabsUtilityService` is built on `ServicelabsDevService`, which apps can inject directly to
|
|
113
|
+
use the API as it is: one method per [operation](https://servicelabs.dev/docs/reference/operations/),
|
|
114
|
+
the API's own request body, and its raw answer.
|
|
115
|
+
|
|
116
|
+
| Method | Operation |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| `runHtmlPdf`, `runSplitPdf`, `runZipFiles`, `runUnzipFiles`, `runXlsToXlsx`, `runUtility(slug, …)` | `POST /v1/utilities/{slug}` (sync) |
|
|
119
|
+
| `createHtmlPdfJob`, `createSplitPdfJob`, `createZipFilesJob`, `createUnzipFilesJob`, `createXlsToXlsxJob`, `createUtilityJob(slug, …)` | `POST /v1/utilities/{slug}/jobs` (async) |
|
|
120
|
+
| `getJob(id, { wait })`, `listJobs(query)`, `cancelJob(id)` | `GET /v1/jobs/{id}`, `GET /v1/jobs`, `POST /v1/jobs/{id}/cancel` |
|
|
121
|
+
| `listUtilities()`, `getUtility(slug)`, `getOpenApi()` | catalog and `GET /v1/openapi.json` |
|
|
122
|
+
| `verifyCallback(rawBody, headers, secret?)` | Standard Webhooks signature check |
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
const response = await this.servicelabsDevService.runSplitPdf(
|
|
126
|
+
{ input: { url }, metadata: { statementId: 7 } },
|
|
127
|
+
{ idempotencyKey: 'statement-7', requestId: 'req-123' }
|
|
128
|
+
);
|
|
129
|
+
// response: { success, status, data, headers }
|
|
130
|
+
if (response.status === 202) {
|
|
131
|
+
// still running after 90 s: poll response.data.id (response.headers.location)
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Every call returns `{ success, status, data, headers }` and does not throw for API answers. A refused
|
|
136
|
+
request comes back with its `{ error: { code, message, details } }` body and status (`429` with
|
|
137
|
+
`retry-after` in `headers`), a failed sync run with the failed job, and a run past 90 s as `202`.
|
|
138
|
+
Results stay on ServiceLabs' storage (30 days); copy them with `ServicelabsUtilityService.storeFiles`
|
|
139
|
+
if you need them longer. Call options: `idempotencyKey`, `respondAsync` (`Prefer: respond-async`),
|
|
140
|
+
`requestId` (`X-Request-Id`), `timeout`, and `source` for a `RemoteRequestLogEntity` row. The only
|
|
141
|
+
throws are a missing API key and an empty id or slug.
|
|
142
|
+
|
|
143
|
+
## From stored scripts and code evaluation
|
|
144
|
+
|
|
145
|
+
Both services are exposed to the script runtime under their registry hashes
|
|
146
|
+
(`md5('platformUtility:<ClassName>')`), so eval and code-eval scripts reach them with `fn.getService`:
|
|
147
|
+
|
|
148
|
+
| Service | Hash |
|
|
149
|
+
| --- | --- |
|
|
150
|
+
| `ServicelabsUtilityService` | `f7943f26e51e694f1338906b2770bd45` |
|
|
151
|
+
| `ServicelabsDevService` | `f04986ac567c8b0c4c5f8af2161be73d` |
|
|
152
|
+
|
|
153
|
+
```js
|
|
154
|
+
const servicelabs = fn.getService('f7943f26e51e694f1338906b2770bd45');
|
|
155
|
+
const pdf = await servicelabs.htmlToPdf(htmlUrl, { format: 'A4' });
|
|
156
|
+
|
|
157
|
+
const dev = fn.getService('f04986ac567c8b0c4c5f8af2161be73d');
|
|
158
|
+
const response = await dev.getJob(jobId, { wait: 30 });
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
To look a service up by a readable identifier instead (`getServiceInstance('servicelabs')`), add a
|
|
162
|
+
`sys_service_details` row mapping that identifier to the hash, as for any other service.
|
|
163
|
+
|
|
164
|
+
## Limits
|
|
165
|
+
|
|
166
|
+
| | |
|
|
167
|
+
| --- | --- |
|
|
168
|
+
| Sync budget | 90 s, then the job keeps running and nu long-polls it |
|
|
169
|
+
| Utility time limit | 900 s (300 s for XLS → XLSX) |
|
|
170
|
+
| Inputs | `http(s)://` everywhere; `s3://` (the `finnoto-data` bucket) for html-pdf, split-pdf, unzip-files |
|
|
171
|
+
| Split PDF | ≤ 150 MB, ≤ 500 pages, no password-protected files |
|
|
172
|
+
| Zip | 1–500 files, unique relative `fileName`s |
|
|
173
|
+
| Rate limit | 600 requests / minute / key by default; polling counts |
|
|
174
|
+
| ServiceLabs retention | Output files 30 days, job records 90 days |
|