{"_id":"@cubos/mail-sender","_rev":"8-aea5607cc01fffc0e95f89c1b93b9897","name":"@cubos/mail-sender","dist-tags":{"latest":"0.1.0","rc":"1.0.0-rc.5"},"versions":{"0.1.0":{"name":"@cubos/mail-sender","version":"0.1.0","_id":"@cubos/mail-sender@0.1.0","maintainers":[{"name":"lbguilherme","email":"guilherme@cubos.io"}],"dist":{"shasum":"3d5ddb1605134cdec452bcd27a46baa6c9f7124f","tarball":"https://registry.npmjs.org/@cubos/mail-sender/-/mail-sender-0.1.0.tgz","fileCount":14,"integrity":"sha512-Pc2db9H9EW0pMSJAduAfAEsDQhpfV92eQb2UUYq6ZLLb7cf8F0R87gAXaV5ZRCEFAkGmLjcuCMGAohyLHbul0w==","signatures":[{"sig":"MEQCID+JhTRICxotJ4P9/TxoghtcykXWfCBk5fKG+UCHbxd6AiAVkxfbYVy7ajDY8aAVtAqnsrpKp9HBzZ7Xu1B+JMbCNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCy21ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNNw//U0eE4IFbtq+V7ShGXZJP8K+nWowp8m1K1kR5cq+LTJxKuoWK\r\nZF18yZ4AqCsLAKNStA5LH9WvtjhEJ0FFKNs37SFeTxTTuBTZvHFXBbQ+W5O1\r\nhWTMXeSIR23R6T4MZhrWOHbs5kusDcx+DWQW5dB9zIrcKyU4BNXnRQ1FB7OQ\r\npn0wZ1m+yzfh1N2L9+rGHqFO9jTp8rwwprcdWK75KbHPA7IOvyZRSVPCqgc0\r\noGAMbZ11n/K4WV78s2HBjkdR1OgKoeC1/HVCmOm3k7jx55ihzsGlpYjqfNKl\r\n611Mwr+2puYLMABPEfKAHp6T8SXiyknFDqbhnJgNAEcpcio0L08SpUNuPdpb\r\nR4FgZjZsZdV2reV0h3Vt0P/ICZL9yoX/qoYhfiOzfdmIgy1iXOI8m4WzFgtl\r\nc0CykiayAMA9VickOEiCC+zjNFQIkBftC+ixf+1LNghQ1mGpNYwSuJQwsfsZ\r\ncFO9P1bl9H0TLam9EKH3UNPBgWEgQfvqK3dXpYTy0kSWWqU44m86hcb4CAGg\r\n8X4hyv3Jq28+6LUCvWl2u12sefbtVLDdaWvjr8+RhjCj7gSmvGuLYAY0WbO5\r\n9IDqQwLRtaapMn3l6QqWX0uvsBHTXiDyFhaRRaZZZUGamPdUegHnr4A4B4Xn\r\niRsGph4XjWi9XndeHeHWychHwgyCVa459Mo=\r\n=pwBO\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":"tests/.*\\.test\\.ts$","transform":{"^.+\\.tsx?$":["@swc/jest",{"jsc":{"parser":{"syntax":"typescript","decorators":true},"transform":{"legacyDecorator":true,"decoratorMetadata":true}}}]},"collectCoverage":true,"moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"setupFilesAfterEnv":["<rootDir>/tests/config/_setup.ts"],"extensionsToTreatAsEsm":[".ts"],"coveragePathIgnorePatterns":["/node_modules/","/src/migrations/","/tests/"]},"main":"./src/index.ts","type":"module","_from":"file:cubos-mail-sender-0.1.0.tgz","types":"./src/index.d.ts","engines":{"node":">=16"},"exports":"./src/index.js","scripts":{"test":"TEST=1 NODE_OPTIONS='--no-warnings --inspect --experimental-vm-modules' jest -w8 --detectOpenHandles","build":"tsc","eslint":"eslint '{src,tests}/**/*.ts'","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lbguilherme","email":"guilherme@cubos.io"},"prettier":{"semi":true,"parser":"typescript","useTabs":false,"tabWidth":2,"endOfLine":"lf","printWidth":120,"arrowParens":"avoid","singleQuote":false,"trailingComma":"all","bracketSpacing":true},"_resolved":"/tmp/16b8d125c26ad8381ced088e8f76803c/cubos-mail-sender-0.1.0.tgz","_integrity":"sha512-Pc2db9H9EW0pMSJAduAfAEsDQhpfV92eQb2UUYq6ZLLb7cf8F0R87gAXaV5ZRCEFAkGmLjcuCMGAohyLHbul0w==","_npmVersion":"9.5.0","description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"jest":"^29.3.1","uuid":"^9.0.0","tsyringe":"^4.7.0","mailparser":"^3.6.3","nodemailer":"^6.9.1","reflect-metadata":"^0.1.13","@cubos/sdkgen-types":"rc","@sdkgen/node-runtime":"dev","@cubos/sdkgen-controller":"rc"},"eslintConfig":{"extends":["@cubos"],"parserOptions":{"project":["./packages/**/tsconfig.json","./tsconfig.json"]}},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","dotenv":"^16.0.3","kysely":"^0.23.4","@types/pg":"^8.6.6","pg-cursor":"^2.7.4","@cubos/env":"^2.0.0","typescript":"^4.9.5","@types/uuid":"^9.0.1","smtp-server":"^3.11.0","@jest/globals":"^29.4.3","kysely-codegen":"^0.9.0","@faker-js/faker":"^7.6.0","@types/pg-cursor":"^2.7.0","ts-retry-promise":"^0.7.0","@types/mailparser":"^3.4.0","@types/nodemailer":"^6.4.7","@types/smtp-server":"^3.5.7","jest-mock-extended":"^3.0.2","@cubos/kysely-migrate":"rc","@cubos/kysely-cockroach":"rc","@cubos/kysely-transaction":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mail-sender_0.1.0_1678454197110_0.39155330097947716","host":"s3://npm-registry-packages"}},"1.0.0-rc.1":{"name":"@cubos/mail-sender","version":"1.0.0-rc.1","_id":"@cubos/mail-sender@1.0.0-rc.1","maintainers":[{"name":"lbguilherme","email":"guilherme@cubos.io"}],"dist":{"shasum":"fd5238329b1edd82efc4155044fa3382e3ffc27c","tarball":"https://registry.npmjs.org/@cubos/mail-sender/-/mail-sender-1.0.0-rc.1.tgz","fileCount":20,"integrity":"sha512-8diGYHUCwrw0EsW9mBRz5jzcexJTbd9iY+qkMbj5sR85zqaAPmXKKkE0sO7u6XkFPgDxi7zAuZF+vmaup2BRKg==","signatures":[{"sig":"MEUCIQDQpXkSsykQjSRO67kOuA0nXEW9CDmU9rpF68kaZ5T4egIgaRPnU1ASz2RL/Uc/F8k/egT3GQmRH3p4UuSwth4xLz4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDydIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJjxAAiqpS7TPinF4k8sMOMsJJrUJ/Q9MauRB5G6K0DOCzIMeCtuiX\r\nBjGzDG75Ak5U3BjfqpiTjXSwk4ihYatoixh27xJ8VCcq1fI0E3RQltt1pXQY\r\nEgjyifdl1jAp0sOO133axaJTG3HInBpgWW0o+Due2ctRFt8K4Xg1Whl0NccD\r\nnT5D9TscyqRQeJOqfxzRR4/IorWNm4BBqR/UcbceUzmpUrbuUoMlcheGEF3v\r\nGe7j/3xWB8MKYvbCtOK++69L3bAPfKiPSnGMATFquBoiEqcwUQaRwVWdbero\r\nwumKzBpOjcByBqi5d8c43tr2SrAHFlMB4KctdVlACkAzvQCumFRz2TdKMSOx\r\n1TCyFeU3X797fS9XUOj9BU+p6pJuThKk8JjnIsqQOvLeDE6mNofby7bZAOEP\r\nuXkzwiInPr0cHdGe/Cn0uQHyu+jxB4EiTVD+l8lyWc7Qr3gywEUX8IPmrZrV\r\n6FDsYHV6ezAAafNJTMc8pXFXOxTsO4LpmV9KqGlBPDkg6ucFEDRbUqk5LgIh\r\nK+e96Poui77Jze12MaiAQc5E4OnPkJacw4EKrZw6biOX4SaqQPIvFu+Iw0Ef\r\nGzr/MN5/4ZVXENdB+X09UpV1WV4TvTt9uwyfnJdoHHTVt6TB8Yty9q71+5fb\r\nHhD1EH+KdnGGeoMCNs6MWnI8IjOCvf9mEdw=\r\n=dpYK\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":"tests/.*\\.test\\.ts$","transform":{"^.+\\.tsx?$":["@swc/jest",{"jsc":{"parser":{"syntax":"typescript","decorators":true},"transform":{"legacyDecorator":true,"decoratorMetadata":true}}}]},"collectCoverage":true,"moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"setupFilesAfterEnv":["<rootDir>/tests/config/_setup.ts"],"extensionsToTreatAsEsm":[".ts"],"coveragePathIgnorePatterns":["/node_modules/","/src/migrations/","/tests/"]},"main":"./src/index.ts","type":"module","_from":"file:cubos-mail-sender-1.0.0-rc.1.tgz","types":"./src/index.d.ts","readme":"# @cubos/mail-sender\n\nEste módulo ficará responsável por enviar emails de forma assíncrona.\n\nNo *entrypoint* do seu projeto, crie uma nova instancia do MailSender utilizando o provider de sua escolha:\n\n## Como Usar (com Nodemailer)\n\nPodemos criar uma instancia e fazer o inject com a lib `@cubos/utils`:\n\n```typescript\nimport { MailSender, NodemailerProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject([\n  create(MailSender).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n]);\n\n```\n\nA instancia ficará disponível através do token 'MailSender'\n\n```typescript\nconst mailSender = container.resolve(MailSender);\n\nmailSender.sendMail({\n  to: [\"johndoe@email.com\"],\n  from: \"cliente@email.com\",\n  html: `<span>Html do email</span>`,\n  subject: \"Assunto do email\",\n  text: \"texto do email\",\n  attachments: [\n    {\n      content: Buffer.from(\"conteudo\");\n      encoding: \"base64\";\n      filename: \"conteudo.txt\";\n      cid: \"conteudo\";\n      contentType: \"text/plain\";\n      headers: {\n        key: \"\",\n        value: \"\"\n      };\n      path: \"path/to/file\";\n      raw: \"raw\";\n    }\n  ]\n});\n```\n\nPorém é possível registrar tokens alternativos, o que é útil quando se faz necessário utilizar múltiplas instâncias:\n\n```typescript\nimport { NodemailerProvider, OutroProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject([\n  create(NodemailerProvider).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n  create(OutroProvider).using(OutroProvider).getDependency({outroProviderParam: \"smtp://localhost:25\"}),\n]);\n\nconst nodemailerProvider = container.resolve(NodemailerProvider);\n\nconst outroProvider = container.resolve(OutroProvider);\n\n```\n","engines":{"node":">=16"},"exports":"./src/index.js","scripts":{"test":"TEST=1 NODE_OPTIONS='--no-warnings --inspect --experimental-vm-modules' jest -w8 --detectOpenHandles","build":"tsc","eslint":"eslint '{src,tests}/**/*.ts'","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lbguilherme","email":"guilherme@cubos.io"},"prettier":{"semi":true,"parser":"typescript","useTabs":false,"tabWidth":2,"endOfLine":"lf","printWidth":120,"arrowParens":"avoid","singleQuote":false,"trailingComma":"all","bracketSpacing":true},"_resolved":"/tmp/af7497570cbb9532f5d1934bfcaf9214/cubos-mail-sender-1.0.0-rc.1.tgz","_integrity":"sha512-8diGYHUCwrw0EsW9mBRz5jzcexJTbd9iY+qkMbj5sR85zqaAPmXKKkE0sO7u6XkFPgDxi7zAuZF+vmaup2BRKg==","_npmVersion":"9.5.0","description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"jest":"^29.3.1","uuid":"^9.0.0","tsyringe":"^4.7.0","mailparser":"^3.6.3","nodemailer":"^6.9.1","reflect-metadata":"^0.1.13","@cubos/sdkgen-types":"rc","@sdkgen/node-runtime":"dev","@cubos/sdkgen-controller":"rc"},"eslintConfig":{"extends":["@cubos"],"parserOptions":{"project":["./packages/**/tsconfig.json","./tsconfig.json"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"pg":"^8.8.0","dotenv":"^16.0.3","kysely":"^0.23.4","@types/pg":"^8.6.6","pg-cursor":"^2.7.4","@cubos/env":"^2.0.0","typescript":"^4.9.5","@types/uuid":"^9.0.1","smtp-server":"^3.11.0","@cubos/utils":"^0.1.0","@jest/globals":"^29.4.3","kysely-codegen":"^0.9.0","@faker-js/faker":"^7.6.0","@types/pg-cursor":"^2.7.0","ts-retry-promise":"^0.7.0","@types/mailparser":"^3.4.0","@types/nodemailer":"^6.4.7","@types/smtp-server":"^3.5.7","jest-mock-extended":"^3.0.2","@cubos/kysely-migrate":"rc","@cubos/kysely-cockroach":"rc","@cubos/kysely-transaction":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mail-sender_1.0.0-rc.1_1678714696177_0.32538614606729777","host":"s3://npm-registry-packages"}},"1.0.0-rc.2":{"name":"@cubos/mail-sender","version":"1.0.0-rc.2","_id":"@cubos/mail-sender@1.0.0-rc.2","maintainers":[{"name":"lbguilherme","email":"guilherme@cubos.io"}],"dist":{"shasum":"2549de34a261848a376e42c1237c575007df29dc","tarball":"https://registry.npmjs.org/@cubos/mail-sender/-/mail-sender-1.0.0-rc.2.tgz","fileCount":20,"integrity":"sha512-PoyF5rdEqQZy+k3FghoK+CrJhVXlV/q5FZNl6b/eSNzX6TPGx/4eqyCbx9urz746dx7xsKlw10WAtvkkmqv3iQ==","signatures":[{"sig":"MEYCIQC+uEGLmXWQ11IsDORC9jwyiPNTnjWih8wQsKFULBhZiwIhAJQdGDK+JBJ75XxqFNyc/sGK2gw9qjfYGsgfPPhUap3X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29717,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDzD5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvUA/7B0rIAQoXyU+BQCp+wW4Yksda2avyV7rgbMqahxP7qyjn9HzD\r\np99DPJwDpekIda1rbA9D7QMjbo8Au+FbQJpmAR3AjRO2XGtdIwO5ZGB1Cxv3\r\ncKeXubZJ8iqYuaaoRgikBqH9H+4gq+FuZnRmV6PADneFjwn6e2w0/Gx5R/oU\r\nDAuvvOFojHMxYER1L4x+0Rg9mR8BQ2vcP7oBTUVkEsPSRcvcxPByF/POsFUa\r\ncZ3uZXKlxoRvAWWHUlTaDZ1hcSkMaT2BGocQk9ZkUB3guEP8VxofDVblH6+L\r\ndOuu8GDZEOqRfGoKS6Waq2NOUUaeYb0cwgnn14mzpNYiAQVjOjha7JJ2gWoU\r\naWsX3ZDwV1vgbl1W08WB8rvZvq450ZSbUsv3/iCJkhqKvgv128HKIZBxB3ws\r\ncMt89VAuecyBlfOZhK6A1yOsFJR46d4FbfNHUEkv5A0uMLnUMNnnda287Pf4\r\nVLClggpOh5kyU0NbkmNDxOp3bNrBPBVUYzx2FAxHLB6u0aLcvfPh6LMb5yku\r\n4a3CPRVkEt4yx6uXYT9hkLKn2pbZoV8cpE7CVbqk0HxGUsEhtxKfFqrkv4mB\r\nnWmGCHQ3HsMiDQM6JgYbvIxBLF6Ylj51hacg9IhD4nyqYEHinyJa44US9yhJ\r\n20UFqPYAPlZvWoBRMNnDtEgqY+efCYX9TEg=\r\n=2FUt\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":"tests/.*\\.test\\.ts$","transform":{"^.+\\.tsx?$":["@swc/jest",{"jsc":{"parser":{"syntax":"typescript","decorators":true},"transform":{"legacyDecorator":true,"decoratorMetadata":true}}}]},"collectCoverage":true,"moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"setupFilesAfterEnv":["<rootDir>/tests/config/_setup.ts"],"extensionsToTreatAsEsm":[".ts"],"coveragePathIgnorePatterns":["/node_modules/","/src/migrations/","/tests/"]},"main":"./src/index.ts","type":"module","_from":"file:cubos-mail-sender-1.0.0-rc.2.tgz","types":"./src/index.d.ts","readme":"# @cubos/mail-sender\n\nEste módulo ficará responsável por enviar emails de forma assíncrona.\n\nNo *entrypoint* do seu projeto, crie uma nova instancia do MailSender utilizando o provider de sua escolha:\n\n## Como Usar (com Nodemailer)\n\nPodemos criar uma instancia e fazer o inject com a lib `@cubos/utils`:\n\n```typescript\nimport { MailSender, NodemailerProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject([\n  create(MailSender).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n]);\n\n```\n\nA instancia ficará disponível através do token 'MailSender'\n\n```typescript\nconst mailSender = container.resolve(MailSender);\n\nmailSender.sendMail({\n  to: [\"johndoe@email.com\"],\n  from: \"cliente@email.com\",\n  html: `<span>Html do email</span>`,\n  subject: \"Assunto do email\",\n  text: \"texto do email\",\n  attachments: [\n    {\n      content: Buffer.from(\"conteudo\");\n      encoding: \"base64\";\n      filename: \"conteudo.txt\";\n      cid: \"conteudo\";\n      contentType: \"text/plain\";\n      headers: {\n        key: \"\",\n        value: \"\"\n      };\n      path: \"path/to/file\";\n      raw: \"raw\";\n    }\n  ]\n});\n```\n\nPorém é possível registrar tokens alternativos, o que é útil quando se faz necessário utilizar múltiplas instâncias:\n\n```typescript\nimport { NodemailerProvider, OutroProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject([\n  create(NodemailerProvider).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n  create(OutroProvider).using(OutroProvider).getDependency({outroProviderParam: \"smtp://localhost:25\"}),\n]);\n\nconst nodemailerProvider = container.resolve(NodemailerProvider);\n\nconst outroProvider = container.resolve(OutroProvider);\n\n```\n","engines":{"node":">=16"},"exports":"./src/index.js","scripts":{"test":"TEST=1 NODE_OPTIONS='--no-warnings --inspect --experimental-vm-modules' jest -w8 --detectOpenHandles","build":"tsc","eslint":"eslint '{src,tests}/**/*.ts'","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lbguilherme","email":"guilherme@cubos.io"},"prettier":{"semi":true,"parser":"typescript","useTabs":false,"tabWidth":2,"endOfLine":"lf","printWidth":120,"arrowParens":"avoid","singleQuote":false,"trailingComma":"all","bracketSpacing":true},"_resolved":"/tmp/d1ff1597b2113fc43f3284c49434a3c0/cubos-mail-sender-1.0.0-rc.2.tgz","_integrity":"sha512-PoyF5rdEqQZy+k3FghoK+CrJhVXlV/q5FZNl6b/eSNzX6TPGx/4eqyCbx9urz746dx7xsKlw10WAtvkkmqv3iQ==","_npmVersion":"9.5.0","description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"jest":"^29.3.1","uuid":"^9.0.0","tsyringe":"^4.7.0","mailparser":"^3.6.3","nodemailer":"^6.9.1","reflect-metadata":"^0.1.13","@cubos/sdkgen-types":"rc","@sdkgen/node-runtime":"dev","@cubos/sdkgen-controller":"rc"},"eslintConfig":{"extends":["@cubos"],"parserOptions":{"project":["./packages/**/tsconfig.json","./tsconfig.json"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"pg":"^8.8.0","dotenv":"^16.0.3","kysely":"^0.23.4","@types/pg":"^8.6.6","pg-cursor":"^2.7.4","@cubos/env":"^2.0.0","typescript":"^4.9.5","@types/uuid":"^9.0.1","smtp-server":"^3.11.0","@cubos/utils":"^0.1.0","@jest/globals":"^29.4.3","kysely-codegen":"^0.9.0","@faker-js/faker":"^7.6.0","@types/pg-cursor":"^2.7.0","ts-retry-promise":"^0.7.0","@types/mailparser":"^3.4.0","@types/nodemailer":"^6.4.7","@types/smtp-server":"^3.5.7","jest-mock-extended":"^3.0.2","@cubos/kysely-migrate":"rc","@cubos/kysely-cockroach":"rc","@cubos/kysely-transaction":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mail-sender_1.0.0-rc.2_1678717176877_0.19225281156877316","host":"s3://npm-registry-packages"}},"1.0.0-rc.3":{"name":"@cubos/mail-sender","version":"1.0.0-rc.3","_id":"@cubos/mail-sender@1.0.0-rc.3","maintainers":[{"name":"lbguilherme","email":"guilherme@cubos.io"}],"dist":{"shasum":"5f2f07cb8fd614eaaa1a2b9b1447b10b2bbc836f","tarball":"https://registry.npmjs.org/@cubos/mail-sender/-/mail-sender-1.0.0-rc.3.tgz","fileCount":20,"integrity":"sha512-YSYi4kO/N1+CL4YkuvGqTHhLOnvCLKbEzqc2dI4elJwPFT18x0NGEXXInuKR++Lu9cFRRvx7ZxMogFzen8RvBA==","signatures":[{"sig":"MEQCIHridaGB7OgHgUP97olIYA8iSfj4vlH5j4eS+L5S0Xn3AiAc/NEYlrhH/xWZCLkuEx390CnV9nAiTiEKDBKoNfUARg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNrDEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0Sg//bisIsxYbpaKQ0laeLr8UHofrg3+cBxBX1ixBWLOp+FbNinqN\r\nPc8fq0FJdlpjSj9gbyZr36XCQV1M56h2DHnECx3/Y5tbNBXriH2v9dweylzU\r\nxJdCG0xNfVkVI0e+u+f9+ZUWH1E8xW3mZp1JkSqF250iLqz4JuXPWiCi11BK\r\nFLYjtnSIc5kdsBfLGtim1QuAaQ9QHmkNT49iD4+95WOkWx4oR+Hx4aGa4ju/\r\nRgjE4K6DgJ+WyGwpWkPTWhWrLexKTRuBO4WoSqDHUnGAV4IQ/LaG2NcooqA9\r\nd41kzqpY845MgKRR2Y52sH1bvPBwc6VPiJ5SWHk7YjGixVJQYC/Ahq4nX0ty\r\n3qLCwoiXaRoR0JVauhdxQyVZRoE0RDv0Wm96UYOs5BaMYN8MLjSPFqPCZnXN\r\npisuyRekMCY8kWczcO4VR2DvgfMyx584rWdJJpb19Y8o07GK8XX42XbuDhK4\r\nHseDJ2atlnvdiIecEO59vPUYM+5EbD+DxESBjC5fAdLX9ZqX980AYA1GCAlK\r\n5BK/E6OsOUJy9hL5PVq5Brk2qh9MFPwFv0ANtGoeGwfMJd1sS6iJJokFs7MU\r\n2LPNu5DorEIpCOUdbzNb+YcasNT0gfzDUrRwbEeVHJFjk7v4ujWQJ0BcnGKd\r\n45jLfe+oZW8WE1i0bRNBaU77F14K3o85Kvc=\r\n=mjhd\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testRegex":"tests/.*\\.test\\.ts$","transform":{"^.+\\.tsx?$":["@swc/jest",{"jsc":{"parser":{"syntax":"typescript","decorators":true},"transform":{"legacyDecorator":true,"decoratorMetadata":true}}}]},"collectCoverage":true,"moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"setupFilesAfterEnv":["<rootDir>/tests/config/_setup.ts"],"extensionsToTreatAsEsm":[".ts"],"coveragePathIgnorePatterns":["/node_modules/","/src/migrations/","/tests/"]},"main":"./src/index.ts","type":"module","_from":"file:cubos-mail-sender-1.0.0-rc.3.tgz","types":"./src/index.d.ts","readme":"# @cubos/mail-sender\n\nEste módulo ficará responsável por enviar emails de forma assíncrona.\n\nNo *entrypoint* do seu projeto, crie uma nova instancia do MailSender utilizando o provider de sua escolha:\n\n## Como Usar (com Nodemailer)\n\nPodemos criar uma instancia e fazer o inject com a lib `@cubos/utils`:\n\n```typescript\nimport { MailSender, NodemailerProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject(\n  create(MailSender).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n);\n\n```\n\nA instancia ficará disponível através do token 'MailSender'\n\n```typescript\nconst mailSender = container.resolve(MailSender);\n\nmailSender.sendMail({\n  to: [\"johndoe@email.com\"],\n  from: \"cliente@email.com\",\n  html: `<span>Html do email</span>`,\n  subject: \"Assunto do email\",\n  text: \"texto do email\",\n  attachments: [\n    {\n      content: Buffer.from(\"conteudo\");\n      encoding: \"base64\";\n      filename: \"conteudo.txt\";\n      cid: \"conteudo\";\n      contentType: \"text/plain\";\n      headers: {\n        key: \"\",\n        value: \"\"\n      };\n      path: \"path/to/file\";\n      raw: \"raw\";\n    }\n  ]\n});\n```\n\nPorém é possível registrar tokens alternativos, o que é útil quando se faz necessário utilizar múltiplas instâncias:\n\n```typescript\nimport { NodemailerProvider, OutroProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject(\n  create(NodemailerProvider).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n  create(OutroProvider).using(OutroProvider).getDependency({outroProviderParam: \"smtp://localhost:25\"}),\n);\n\nconst nodemailerProvider = container.resolve(NodemailerProvider);\n\nconst outroProvider = container.resolve(OutroProvider);\n\n```\n","engines":{"node":">=16"},"exports":"./src/index.js","scripts":{"test":"TEST=1 NODE_OPTIONS='--no-warnings --inspect --experimental-vm-modules' jest -w8 --detectOpenHandles","build":"tsc","eslint":"eslint '{src,tests}/**/*.ts'","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lbguilherme","email":"guilherme@cubos.io"},"prettier":{"semi":true,"parser":"typescript","useTabs":false,"tabWidth":2,"endOfLine":"lf","printWidth":120,"arrowParens":"avoid","singleQuote":false,"trailingComma":"all","bracketSpacing":true},"_resolved":"/tmp/dc24d2a14097278c0dae80f8ab32e31c/cubos-mail-sender-1.0.0-rc.3.tgz","_integrity":"sha512-YSYi4kO/N1+CL4YkuvGqTHhLOnvCLKbEzqc2dI4elJwPFT18x0NGEXXInuKR++Lu9cFRRvx7ZxMogFzen8RvBA==","_npmVersion":"9.5.0","description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"jest":"^29.3.1","uuid":"^9.0.0","tsyringe":"^4.7.0","mailparser":"^3.6.3","nodemailer":"^6.9.1","reflect-metadata":"^0.1.13","@cubos/sdkgen-types":"rc","@sdkgen/node-runtime":"dev","@cubos/sdkgen-controller":"rc"},"eslintConfig":{"extends":["@cubos"],"parserOptions":{"project":["./packages/**/tsconfig.json","./tsconfig.json"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"pg":"^8.8.0","dotenv":"^16.0.3","kysely":"^0.24.0","@types/pg":"^8.6.6","pg-cursor":"^2.7.4","@cubos/env":"^2.0.0","typescript":"^5.0.0","@types/uuid":"^9.0.1","smtp-server":"^3.11.0","@cubos/utils":"^0.1.0","@jest/globals":"^29.4.3","kysely-codegen":"^0.10.0","@faker-js/faker":"^7.6.0","@types/pg-cursor":"^2.7.0","ts-retry-promise":"^0.7.0","@types/mailparser":"^3.4.0","@types/nodemailer":"^6.4.7","@types/smtp-server":"^3.5.7","jest-mock-extended":"^3.0.2","@cubos/kysely-migrate":"rc","@cubos/kysely-cockroach":"rc","@cubos/kysely-transaction":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mail-sender_1.0.0-rc.3_1681305796532_0.22194540595571133","host":"s3://npm-registry-packages"}},"1.0.0-rc.5":{"name":"@cubos/mail-sender","version":"1.0.0-rc.5","_id":"@cubos/mail-sender@1.0.0-rc.5","maintainers":[{"name":"lbguilherme","email":"guilherme@cubos.io"}],"dist":{"shasum":"bbad4d2f782a5fd903b23f56cb39729c32082550","tarball":"https://registry.npmjs.org/@cubos/mail-sender/-/mail-sender-1.0.0-rc.5.tgz","fileCount":20,"integrity":"sha512-5QVJMGo5eWCqIdlxeV4OEWpIF06rOOgegdOLzXJIdGshmXBlCVM05dqY8wW/bUolST7BV4kM5NiK4gnPv3zGZg==","signatures":[{"sig":"MEQCICiqSvKts+7rk2njvnTtZAjRs0Z3zIXExL1B1O13/cknAiB0pWYzqkaHF5uyyz2W3okzpUaVr89oEpXwvKH4NIru4w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29763},"jest":{"testRegex":"tests/.*\\.test\\.ts$","transform":{"^.+\\.tsx?$":["@swc/jest",{"jsc":{"parser":{"syntax":"typescript","decorators":true},"transform":{"legacyDecorator":true,"decoratorMetadata":true}}}]},"collectCoverage":true,"moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"setupFilesAfterEnv":["<rootDir>/tests/config/_setup.ts"],"extensionsToTreatAsEsm":[".ts"],"coveragePathIgnorePatterns":["/node_modules/","/src/migrations/","/tests/"]},"main":"./src/index.ts","type":"module","_from":"file:cubos-mail-sender-1.0.0-rc.5.tgz","types":"./src/index.d.ts","readme":"# @cubos/mail-sender\n\nEste módulo ficará responsável por enviar emails de forma assíncrona.\n\nNo *entrypoint* do seu projeto, crie uma nova instancia do MailSender utilizando o provider de sua escolha:\n\n## Como Usar (com Nodemailer)\n\nPodemos criar uma instancia e fazer o inject com a lib `@cubos/utils`:\n\n```typescript\nimport { MailSender, NodemailerProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject(\n  create(MailSender).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n);\n\n```\n\nA instancia ficará disponível através do token 'MailSender'\n\n```typescript\nconst mailSender = container.resolve(MailSender);\n\nmailSender.sendMail({\n  to: [\"johndoe@email.com\"],\n  from: \"cliente@email.com\",\n  html: `<span>Html do email</span>`,\n  subject: \"Assunto do email\",\n  text: \"texto do email\",\n  attachments: [\n    {\n      content: Buffer.from(\"conteudo\");\n      encoding: \"base64\";\n      filename: \"conteudo.txt\";\n      cid: \"conteudo\";\n      contentType: \"text/plain\";\n      headers: {\n        key: \"\",\n        value: \"\"\n      };\n      path: \"path/to/file\";\n      raw: \"raw\";\n    }\n  ]\n});\n```\n\nPorém é possível registrar tokens alternativos, o que é útil quando se faz necessário utilizar múltiplas instâncias:\n\n```typescript\nimport { NodemailerProvider, OutroProvider } from \"@cubos/mail-sender\";\nimport { create, inject } from \"@cubos/utils\";\n\ninject(\n  create(NodemailerProvider).using(NodemailerProvider).getDependency({transportUrl: \"smtp://localhost:25\"}),\n  create(OutroProvider).using(OutroProvider).getDependency({outroProviderParam: \"smtp://localhost:25\"}),\n);\n\nconst nodemailerProvider = container.resolve(NodemailerProvider);\n\nconst outroProvider = container.resolve(OutroProvider);\n\n```\n","engines":{"node":">=16"},"exports":"./src/index.js","scripts":{"test":"TEST=1 NODE_OPTIONS='--no-warnings --inspect --experimental-vm-modules' jest -w8 --detectOpenHandles","build":"tsc","eslint":"eslint '{src,tests}/**/*.ts'","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lbguilherme","email":"guilherme@cubos.io"},"prettier":{"semi":true,"parser":"typescript","useTabs":false,"tabWidth":2,"endOfLine":"lf","printWidth":120,"arrowParens":"avoid","singleQuote":false,"trailingComma":"all","bracketSpacing":true},"_resolved":"/tmp/32722e87fbe82c4d34780ca8fb058c34/cubos-mail-sender-1.0.0-rc.5.tgz","_integrity":"sha512-5QVJMGo5eWCqIdlxeV4OEWpIF06rOOgegdOLzXJIdGshmXBlCVM05dqY8wW/bUolST7BV4kM5NiK4gnPv3zGZg==","_npmVersion":"9.5.1","description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","directories":{},"_nodeVersion":"18.16.1","dependencies":{"jest":"^29.3.1","uuid":"^9.0.0","tsyringe":"^4.7.0","mailparser":"^3.6.3","nodemailer":"^6.9.1","reflect-metadata":"^0.1.13","@cubos/sdkgen-types":"rc","@sdkgen/node-runtime":"dev","@cubos/sdkgen-controller":"rc"},"eslintConfig":{"extends":["@cubos"],"parserOptions":{"project":["./packages/**/tsconfig.json","./tsconfig.json"]}},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"pg":"^8.8.0","dotenv":"^16.0.3","kysely":"^0.25.0","@types/pg":"^8.6.6","pg-cursor":"^2.7.4","@cubos/env":"^2.0.0","typescript":"^5.0.0","@types/uuid":"^9.0.1","smtp-server":"^3.11.0","@cubos/utils":"^0.1.0","@jest/globals":"^29.4.3","kysely-codegen":"^0.10.0","@faker-js/faker":"^7.6.0","@types/pg-cursor":"^2.7.0","ts-retry-promise":"^0.7.0","@types/mailparser":"^3.4.0","@types/nodemailer":"^6.4.7","@types/smtp-server":"^3.5.7","jest-mock-extended":"^3.0.2","@cubos/kysely-migrate":"rc","@cubos/kysely-cockroach":"rc","@cubos/kysely-transaction":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mail-sender_1.0.0-rc.5_1688179018899_0.035248219552274085","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-03-10T13:16:37.109Z","modified":"2026-03-31T18:49:34.561Z","0.1.0":"2023-03-10T13:16:37.240Z","1.0.0-rc.1":"2023-03-13T13:38:16.348Z","1.0.0-rc.2":"2023-03-13T14:19:37.098Z","1.0.0-rc.3":"2023-04-12T13:23:16.696Z","1.0.0-rc.5":"2023-07-01T02:36:59.090Z"},"description":"Este módulo ficará responsável por enviar emails de forma assíncrona.","maintainers":[{"email":"guilherme@cubos.io","name":"lbguilherme"},{"email":"joshuapassos@gmail.com","name":"joshuapassos"},{"email":"tech@cubos.io","name":"cubos-tech"}],"readme":"","readmeFilename":""}