@mavogel/awscdk-rootmail 0.1.24 → 0.1.26
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/.jsii +9 -9
- package/lib/rootmail.js +1 -1
- package/lib/ses-receive.js +1 -1
- package/lib/ses-receive.ops-santa-handler.js +2 -2
- package/node_modules/@aws-sdk/checksums/package.json +3 -3
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-cjs/index.js +9 -7
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-es/schemas/schemas_0.js +11 -6
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/commands/DescribeDeliveriesCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/commands/DescribeDeliveryDestinationsCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/commands/DescribeDeliverySourcesCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/commands/PutResourcePolicyCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/models/models_0.d.ts +27 -1
- package/node_modules/@aws-sdk/client-cloudwatch-logs/dist-types/ts3.4/models/models_0.d.ts +3 -0
- package/node_modules/@aws-sdk/client-cloudwatch-logs/package.json +4 -4
- package/node_modules/@aws-sdk/client-route-53/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/client-route-53/package.json +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/client-s3/package.json +7 -7
- package/node_modules/@aws-sdk/client-ses/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/client-ses/package.json +4 -4
- package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/client-ssm/package.json +4 -4
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
- package/node_modules/@aws-sdk/core/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
- package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
- package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/package.json +3 -3
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
- package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
- package/node_modules/@aws-sdk/token-providers/package.json +4 -4
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
- package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
- package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
- package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
- package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
- package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +11 -1
- package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
- package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
- package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
- package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
- package/node_modules/{@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json → @smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +7 -4
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
- package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
- package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
- package/node_modules/@smithy/core/package.json +2 -1
- package/node_modules/@zone-eu/mailsplit/README.md +43 -54
- package/node_modules/@zone-eu/mailsplit/lib/headers.js +10 -4
- package/node_modules/@zone-eu/mailsplit/lib/message-splitter.js +5 -4
- package/node_modules/@zone-eu/mailsplit/lib/mime-node.d.ts +4 -1
- package/node_modules/@zone-eu/mailsplit/lib/mime-node.js +30 -5
- package/node_modules/@zone-eu/mailsplit/lib/types.d.ts +3 -1
- package/node_modules/@zone-eu/mailsplit/package.json +22 -17
- package/node_modules/libbase64/CHANGELOG.md +20 -0
- package/node_modules/libbase64/README.md +40 -13
- package/node_modules/libbase64/dist/cjs/libbase64.d.ts +80 -0
- package/node_modules/libbase64/dist/cjs/libbase64.js +310 -0
- package/node_modules/libbase64/dist/cjs/package.json +3 -0
- package/node_modules/libbase64/dist/esm/libbase64.d.ts +80 -0
- package/node_modules/libbase64/{lib → dist/esm}/libbase64.js +74 -117
- package/node_modules/libbase64/dist/esm/package.json +3 -0
- package/node_modules/libbase64/package.json +59 -13
- package/node_modules/libmime/CHANGELOG.md +38 -0
- package/node_modules/libmime/README.md +55 -26
- package/node_modules/libmime/SECURITY.md +152 -0
- package/node_modules/libmime/dist/cjs/charset.d.ts +43 -0
- package/node_modules/libmime/dist/cjs/charset.js +135 -0
- package/node_modules/libmime/dist/cjs/charsets.d.ts +2 -0
- package/node_modules/libmime/dist/cjs/charsets.js +213 -0
- package/node_modules/libmime/dist/cjs/get-charset-name.d.ts +1 -0
- package/node_modules/libmime/dist/cjs/get-charset-name.js +224 -0
- package/node_modules/libmime/dist/cjs/libmime.d.ts +218 -0
- package/node_modules/libmime/dist/cjs/libmime.js +1027 -0
- package/node_modules/libmime/dist/cjs/mimetypes.d.ts +7 -0
- package/node_modules/libmime/dist/cjs/mimetypes.js +2072 -0
- package/node_modules/libmime/dist/cjs/package.json +3 -0
- package/node_modules/libmime/dist/cjs/types.d.ts +59 -0
- package/node_modules/libmime/dist/cjs/types.js +4 -0
- package/node_modules/libmime/dist/esm/charset.d.ts +43 -0
- package/node_modules/libmime/dist/esm/charset.js +125 -0
- package/node_modules/libmime/dist/esm/charsets.d.ts +2 -0
- package/node_modules/libmime/{lib → dist/esm}/charsets.js +3 -5
- package/node_modules/libmime/dist/esm/get-charset-name.d.ts +1 -0
- package/node_modules/libmime/{lib → dist/esm}/get-charset-name.js +1 -8
- package/node_modules/libmime/dist/esm/libmime.d.ts +219 -0
- package/node_modules/libmime/{lib → dist/esm}/libmime.js +275 -334
- package/node_modules/libmime/dist/esm/mimetypes.d.ts +7 -0
- package/node_modules/libmime/dist/esm/mimetypes.js +2068 -0
- package/node_modules/libmime/dist/esm/package.json +3 -0
- package/node_modules/libmime/dist/esm/types.d.ts +59 -0
- package/node_modules/libmime/dist/esm/types.js +3 -0
- package/node_modules/libmime/package.json +60 -15
- package/node_modules/libqp/CHANGELOG.md +18 -0
- package/node_modules/libqp/README.md +50 -19
- package/node_modules/libqp/dist/cjs/libqp.d.ts +74 -0
- package/node_modules/libqp/dist/cjs/libqp.js +378 -0
- package/node_modules/libqp/dist/cjs/package.json +3 -0
- package/node_modules/libqp/dist/esm/libqp.d.ts +74 -0
- package/node_modules/libqp/dist/esm/libqp.js +369 -0
- package/node_modules/libqp/dist/esm/package.json +3 -0
- package/node_modules/libqp/lib/libqp.js +4 -383
- package/node_modules/libqp/lib/package.json +3 -0
- package/node_modules/libqp/package.json +62 -6
- package/node_modules/mailparser/CHANGELOG.md +56 -0
- package/node_modules/mailparser/README.md +6 -0
- package/node_modules/mailparser/dist/cjs/index.d.ts +10 -0
- package/node_modules/mailparser/dist/cjs/index.js +12 -0
- package/node_modules/mailparser/dist/cjs/mail-parser.d.ts +98 -0
- package/node_modules/mailparser/dist/cjs/mail-parser.js +1419 -0
- package/node_modules/mailparser/dist/cjs/package.json +3 -0
- package/node_modules/mailparser/dist/cjs/simple-parser.d.ts +17 -0
- package/node_modules/mailparser/dist/cjs/simple-parser.js +133 -0
- package/node_modules/mailparser/dist/cjs/stream-hash.d.ts +24 -0
- package/node_modules/mailparser/dist/cjs/stream-hash.js +33 -0
- package/node_modules/mailparser/dist/cjs/tlds.cjs +8 -0
- package/node_modules/mailparser/dist/cjs/types.d.ts +309 -0
- package/node_modules/mailparser/dist/cjs/types.js +2 -0
- package/node_modules/mailparser/dist/esm/index.d.ts +10 -0
- package/node_modules/mailparser/dist/esm/index.js +4 -0
- package/node_modules/mailparser/dist/esm/mail-parser.d.ts +98 -0
- package/node_modules/mailparser/{lib → dist/esm}/mail-parser.js +302 -368
- package/node_modules/mailparser/dist/esm/package.json +3 -0
- package/node_modules/mailparser/dist/esm/simple-parser.d.ts +17 -0
- package/node_modules/mailparser/{lib → dist/esm}/simple-parser.js +45 -68
- package/node_modules/mailparser/dist/esm/stream-hash.d.ts +24 -0
- package/node_modules/mailparser/{lib → dist/esm}/stream-hash.js +7 -9
- package/node_modules/mailparser/dist/esm/tlds.cjs +8 -0
- package/node_modules/mailparser/dist/esm/types.d.ts +309 -0
- package/node_modules/mailparser/dist/esm/types.js +1 -0
- package/node_modules/mailparser/package.json +88 -17
- package/node_modules/nodemailer/CHANGELOG.md +44 -0
- package/node_modules/nodemailer/dist/cjs/addressparser/index.js +695 -267
- package/node_modules/nodemailer/dist/cjs/mailer/mail-message.js +4 -1
- package/node_modules/nodemailer/dist/cjs/mime-funcs/index.js +8 -2
- package/node_modules/nodemailer/dist/cjs/mime-node/index.js +48 -16
- package/node_modules/nodemailer/dist/cjs/package-info.d.ts +1 -1
- package/node_modules/nodemailer/dist/cjs/package-info.js +1 -1
- package/node_modules/nodemailer/dist/cjs/shared/url.js +22 -5
- package/node_modules/nodemailer/dist/esm/addressparser/index.js +695 -267
- package/node_modules/nodemailer/dist/esm/mailer/mail-message.js +4 -1
- package/node_modules/nodemailer/dist/esm/mime-funcs/index.js +8 -2
- package/node_modules/nodemailer/dist/esm/mime-node/index.js +48 -16
- package/node_modules/nodemailer/dist/esm/package-info.d.ts +1 -1
- package/node_modules/nodemailer/dist/esm/package-info.js +1 -1
- package/node_modules/nodemailer/dist/esm/shared/url.js +22 -5
- package/node_modules/nodemailer/package.json +1 -1
- package/package.json +9 -9
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
- package/node_modules/libbase64/.eslintrc +0 -11
- package/node_modules/libbase64/.github/FUNDING.yml +0 -4
- package/node_modules/libbase64/.github/VULNERABILITY_REPORT.yml +0 -75
- package/node_modules/libbase64/.github/workflows/release.yaml +0 -39
- package/node_modules/libbase64/.github/workflows/test.yml +0 -21
- package/node_modules/libbase64/.ncurc.js +0 -13
- package/node_modules/libbase64/.prettierrc.js +0 -8
- package/node_modules/libmime/lib/charset.js +0 -131
- package/node_modules/libmime/lib/mimetypes.js +0 -2049
- package/node_modules/libqp/.eslintrc +0 -15
- package/node_modules/libqp/.github/FUNDING.yml +0 -4
- package/node_modules/libqp/.github/VULNERABILITY_REPORT.yml +0 -75
- package/node_modules/libqp/.github/workflows/release.yaml +0 -39
- package/node_modules/libqp/.github/workflows/test.yml +0 -21
- package/node_modules/libqp/.prettierrc.js +0 -8
- package/node_modules/libqp/test/libqp-test.js +0 -366
- package/node_modules/mailparser/.gitattributes +0 -1
- package/node_modules/mailparser/.prettierignore +0 -3
- package/node_modules/mailparser/.prettierrc.js +0 -10
- package/node_modules/mailparser/.release-please-manifest.json +0 -3
- package/node_modules/mailparser/eslint.config.js +0 -33
- package/node_modules/mailparser/index.js +0 -9
- package/node_modules/mailparser/release-please-config.json +0 -10
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/dist-types/submodules/protocols/json → @smithy/core/dist-types/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
- /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { Transform } from 'node:stream';
|
|
2
|
+
// the shortest line wrap() can make progress with: a complete =XX sequence and the soft break
|
|
3
|
+
const MIN_LINE_LENGTH = 4;
|
|
4
|
+
// 1 for every byte value that is written as is: <TAB>, <LF>, <CR> and the printable ASCII
|
|
5
|
+
// range except "=", https://tools.ietf.org/html/rfc2045#section-6.7
|
|
6
|
+
const QP_LITERAL = new Uint8Array(256);
|
|
7
|
+
for (let i = 0; i < 256; i++) {
|
|
8
|
+
QP_LITERAL[i] = i === 0x09 || i === 0x0a || i === 0x0d || (i >= 0x20 && i <= 0x7e && i !== 0x3d) ? 1 : 0;
|
|
9
|
+
}
|
|
10
|
+
const HEX_DIGITS = Buffer.from('0123456789ABCDEF', 'latin1');
|
|
11
|
+
const isWhitespace = (c) => c === 0x20 || c === 0x09;
|
|
12
|
+
/**
|
|
13
|
+
* Encodes a Buffer into a Quoted-Printable encoded string
|
|
14
|
+
*
|
|
15
|
+
* @param buffer Buffer to convert, a string is encoded as UTF-8
|
|
16
|
+
* @returns Quoted-Printable encoded string
|
|
17
|
+
*/
|
|
18
|
+
export function encode(buffer) {
|
|
19
|
+
return encodeBytes(typeof buffer === 'string' ? Buffer.from(buffer, 'utf-8') : buffer);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Encodes bytes that may be followed by more input
|
|
23
|
+
*
|
|
24
|
+
* @param buffer Bytes to encode
|
|
25
|
+
* @param [next] The byte that follows the buffer, whitespace before it is kept literal unless it
|
|
26
|
+
* is a line break. Without it the buffer ends the input and its trailing whitespace is encoded
|
|
27
|
+
* @param [binary] Keep only CRLF pairs literal. A lone CR or LF is data, not a line break, and
|
|
28
|
+
* anything that rewrites line endings on the way would change it
|
|
29
|
+
* @param [previous] The byte before the buffer. Without it the buffer starts a line
|
|
30
|
+
* @returns Quoted-Printable encoded string
|
|
31
|
+
*/
|
|
32
|
+
function encodeBytes(buffer, next, binary, previous) {
|
|
33
|
+
const len = buffer.length;
|
|
34
|
+
// every byte takes three characters at most
|
|
35
|
+
const output = Buffer.allocUnsafe(len * 3);
|
|
36
|
+
let pos = 0;
|
|
37
|
+
for (let i = 0; i < len; i++) {
|
|
38
|
+
const ord = buffer[i];
|
|
39
|
+
const preceding = i > 0 ? buffer[i - 1] : previous;
|
|
40
|
+
const following = i + 1 < len ? buffer[i + 1] : next;
|
|
41
|
+
// in binary data only a CR followed by LF, or an LF that follows CR, is a line break
|
|
42
|
+
const loneLineBreak = binary && (ord === 0x0d ? following !== 0x0a : ord === 0x0a && preceding !== 0x0d);
|
|
43
|
+
// if the char is in allowed range, then keep as is, unless it is a ws in the end of a line
|
|
44
|
+
// or a hyphen in the start of a line. A line starting with two hyphens reads as a MIME
|
|
45
|
+
// boundary delimiter, so a decoded body that gets encoded again could inject a part. A lone
|
|
46
|
+
// CR counts as a line break here, a relay may turn it into CRLF
|
|
47
|
+
if (QP_LITERAL[ord] &&
|
|
48
|
+
!loneLineBreak &&
|
|
49
|
+
!(isWhitespace(ord) && (following === undefined || following === 0x0a || following === 0x0d)) &&
|
|
50
|
+
!(ord === 0x2d && (preceding === undefined || preceding === 0x0a || preceding === 0x0d))) {
|
|
51
|
+
output[pos++] = ord;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
output[pos++] = 0x3d; // =
|
|
55
|
+
output[pos++] = HEX_DIGITS[Math.floor(ord / 16)];
|
|
56
|
+
output[pos++] = HEX_DIGITS[ord % 16];
|
|
57
|
+
}
|
|
58
|
+
return output.toString('latin1', 0, pos);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Decodes a Quoted-Printable encoded string to a Buffer object
|
|
62
|
+
*
|
|
63
|
+
* @param str Quoted-Printable encoded string. A Buffer is read byte for byte, so raw 8-bit bytes
|
|
64
|
+
* in the input are copied to the output unchanged. A char of a string is copied as the low
|
|
65
|
+
* byte of its char code, so a string should only hold chars below 256 ('binary')
|
|
66
|
+
* @returns Decoded value
|
|
67
|
+
*/
|
|
68
|
+
export function decode(str) {
|
|
69
|
+
// 'binary' maps every byte to one char code 0-255. A UTF-8 read would collapse raw
|
|
70
|
+
// multi-byte chars into one byte below and turn raw latin1 bytes into U+FFFD
|
|
71
|
+
let input;
|
|
72
|
+
if (str instanceof Uint8Array) {
|
|
73
|
+
input = (Buffer.isBuffer(str) ? str : Buffer.from(str.buffer, str.byteOffset, str.byteLength)).toString('binary');
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
input = (str || '').toString();
|
|
77
|
+
}
|
|
78
|
+
input = input
|
|
79
|
+
// remove invalid whitespace from the end of lines. The leading group keeps this linear,
|
|
80
|
+
// a plain /[\t ]+$/gm rescans the rest of a whitespace run from every position inside it,
|
|
81
|
+
// which is quadratic. The lookahead lists the line terminators multiline $ matches before
|
|
82
|
+
.replace(/(^|[^ \t])[ \t]+(?=[\n\r\u2028\u2029]|$)/g, '$1')
|
|
83
|
+
// remove soft line breaks
|
|
84
|
+
.replace(/[=](?:\r?\n|$)/g, '');
|
|
85
|
+
// every =XX escape decodes into one byte, so count them to size the output.
|
|
86
|
+
// Counted with a loop, a match() would build an array with a string for every escape
|
|
87
|
+
const len = input.length;
|
|
88
|
+
let encodedBytesCount = 0;
|
|
89
|
+
for (let i = input.indexOf('='); i >= 0 && i < len - 2; i = input.indexOf('=', i + 1)) {
|
|
90
|
+
if (hexValue(input.charCodeAt(i + 1)) >= 0 && hexValue(input.charCodeAt(i + 2)) >= 0) {
|
|
91
|
+
encodedBytesCount++;
|
|
92
|
+
i += 2;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const buffer = Buffer.alloc(len - encodedBytesCount * 2);
|
|
96
|
+
let bufferPos = 0;
|
|
97
|
+
for (let i = 0; i < len; i++) {
|
|
98
|
+
const code = input.charCodeAt(i);
|
|
99
|
+
if (code === 0x3d /* = */ && i < len - 2) {
|
|
100
|
+
const hi = hexValue(input.charCodeAt(i + 1));
|
|
101
|
+
const lo = hexValue(input.charCodeAt(i + 2));
|
|
102
|
+
if (hi >= 0 && lo >= 0) {
|
|
103
|
+
buffer[bufferPos++] = hi * 16 + lo;
|
|
104
|
+
i += 2;
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
buffer[bufferPos++] = code;
|
|
109
|
+
}
|
|
110
|
+
return buffer;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Helper function to read the value of a hex digit
|
|
114
|
+
*
|
|
115
|
+
* @param code Char code
|
|
116
|
+
* @returns 0-15, or -1 if the char is not a hex digit
|
|
117
|
+
*/
|
|
118
|
+
function hexValue(code) {
|
|
119
|
+
if (code >= 0x30 && code <= 0x39) {
|
|
120
|
+
return code - 0x30; // 0-9
|
|
121
|
+
}
|
|
122
|
+
if (code >= 0x41 && code <= 0x46) {
|
|
123
|
+
return code - 0x41 + 10; // A-F
|
|
124
|
+
}
|
|
125
|
+
if (code >= 0x61 && code <= 0x66) {
|
|
126
|
+
return code - 0x61 + 10; // a-f
|
|
127
|
+
}
|
|
128
|
+
return -1;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Adds soft line breaks to a Quoted-Printable string
|
|
132
|
+
*
|
|
133
|
+
* @param str Quoted-Printable encoded string that might need line wrapping
|
|
134
|
+
* @param [lineLength=76] Maximum allowed length for a line, at least 4
|
|
135
|
+
* @returns Soft-wrapped Quoted-Printable encoded string
|
|
136
|
+
*/
|
|
137
|
+
export function wrap(str, lineLength) {
|
|
138
|
+
str = (str || '').toString();
|
|
139
|
+
// a line has to hold a complete =XX sequence plus the soft break, shorter lengths
|
|
140
|
+
// (or a negative one) would loop without consuming input
|
|
141
|
+
lineLength = Math.max(Number(lineLength) || 76, MIN_LINE_LENGTH);
|
|
142
|
+
if (str.length <= lineLength) {
|
|
143
|
+
return str;
|
|
144
|
+
}
|
|
145
|
+
// every line is wrapped on its own, a line break does not count towards the line length
|
|
146
|
+
const parts = str.split(/(\r?\n)/);
|
|
147
|
+
for (let i = 0; i < parts.length; i += 2) {
|
|
148
|
+
parts[i] = wrapLine(parts[i], lineLength);
|
|
149
|
+
}
|
|
150
|
+
return parts.join('');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Adds soft line breaks to one line of a Quoted-Printable string
|
|
154
|
+
*
|
|
155
|
+
* @param str Quoted-Printable encoded line, without line breaks
|
|
156
|
+
* @param lineLength Maximum allowed length for a line, at least MIN_LINE_LENGTH
|
|
157
|
+
* @returns Soft-wrapped line
|
|
158
|
+
*/
|
|
159
|
+
function wrapLine(str, lineLength) {
|
|
160
|
+
const len = str.length;
|
|
161
|
+
const lineMargin = Math.floor(lineLength / 3);
|
|
162
|
+
let pos = 0;
|
|
163
|
+
let result = '';
|
|
164
|
+
// every pass either ends with the rest of the line or consumes input
|
|
165
|
+
for (;;) {
|
|
166
|
+
// a line started by a soft break must not begin with a hyphen either, see encodeBytes().
|
|
167
|
+
// The escape takes the place of the hyphen, as if the input held it
|
|
168
|
+
const escapeHyphen = pos > 0 && str.charCodeAt(pos) === 0x2d;
|
|
169
|
+
if (len - pos + (escapeHyphen ? 2 : 0) <= lineLength) {
|
|
170
|
+
// the rest fits on a line
|
|
171
|
+
result += escapeHyphen ? '=2D' + str.substr(pos + 1) : str.substr(pos);
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
let line = escapeHyphen ? '=2D' + str.substr(pos + 1, lineLength - 3) : str.substr(pos, lineLength);
|
|
175
|
+
let match;
|
|
176
|
+
if ((match = line.substr(-lineMargin).match(/[ \t.,!?][^ \t.,!?]*$/))) {
|
|
177
|
+
// truncate to nearest space
|
|
178
|
+
line = line.substr(0, line.length - (match[0].length - 1));
|
|
179
|
+
}
|
|
180
|
+
else if (/[=][\da-f]{0,2}$/i.test(line)) {
|
|
181
|
+
// push an incomplete encoding sequence to the next line and ensure that utf-8
|
|
182
|
+
// sequences are not split
|
|
183
|
+
line = trimUtf8Sequence(line.replace(/[=][\da-f]?$/i, ''));
|
|
184
|
+
}
|
|
185
|
+
// make room for the soft break, without splitting an encoding sequence
|
|
186
|
+
if (line.length === lineLength) {
|
|
187
|
+
line = line.substr(0, line.length - (/[=][\da-f]{2}$/i.test(line) ? 3 : 1));
|
|
188
|
+
}
|
|
189
|
+
// the escape stands for one char of the input
|
|
190
|
+
pos += escapeHyphen ? line.length - 2 : line.length;
|
|
191
|
+
result += line + '=\r\n';
|
|
192
|
+
}
|
|
193
|
+
return result;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Cuts the escapes of a trailing UTF-8 sequence off a line, so that a soft line break does not
|
|
197
|
+
* split the sequence. A line that holds nothing but the sequence, after the escape of a hyphen
|
|
198
|
+
* that starts the line, is kept whole
|
|
199
|
+
*
|
|
200
|
+
* @param line Quoted-Printable encoded line that ends with an escape
|
|
201
|
+
* @returns The line without the escapes of its last multi-byte sequence
|
|
202
|
+
*/
|
|
203
|
+
function trimUtf8Sequence(line) {
|
|
204
|
+
let end = line.length;
|
|
205
|
+
while (end >= 3 && line.charCodeAt(end - 3) === 0x3d /* = */) {
|
|
206
|
+
const hi = hexValue(line.charCodeAt(end - 2));
|
|
207
|
+
const lo = hexValue(line.charCodeAt(end - 1));
|
|
208
|
+
if (hi < 0 || lo < 0) {
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
const code = hi * 16 + lo;
|
|
212
|
+
if (code < 0x80) {
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
end -= 3;
|
|
216
|
+
if (code >= 0xc0) {
|
|
217
|
+
// the lead byte of the sequence
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return end > (line.startsWith('=2D') ? 3 : 0) ? line.substr(0, end) : line;
|
|
222
|
+
}
|
|
223
|
+
// Converts a chunk of a stream to bytes. A stream only hands over a string when its decodeStrings
|
|
224
|
+
// option is off, and then the encoding is the one the chunk was written with
|
|
225
|
+
const toBuffer = (chunk, encoding) => typeof chunk === 'string' ? Buffer.from(chunk, encoding) : chunk;
|
|
226
|
+
// Input is encoded and wrapped this many bytes at a time. wrap() works on strings, and a large
|
|
227
|
+
// chunk handed over at once, such as a whole Buffer attachment, would be held several times over
|
|
228
|
+
// as intermediate strings
|
|
229
|
+
const ENCODE_SLICE_SIZE = 64 * 1024;
|
|
230
|
+
/**
|
|
231
|
+
* Creates a transform stream for encoding data to Quoted-Printable encoding
|
|
232
|
+
*/
|
|
233
|
+
export class Encoder extends Transform {
|
|
234
|
+
/**
|
|
235
|
+
* @param [options] Stream options
|
|
236
|
+
* @param [options.lineLength=76] Maximum length for lines, set to false to disable wrapping
|
|
237
|
+
* @param [options.binary=false] Encode every CR or LF that is not part of a CRLF pair
|
|
238
|
+
*/
|
|
239
|
+
constructor(options) {
|
|
240
|
+
const opts = options || {};
|
|
241
|
+
super(opts);
|
|
242
|
+
this.options = opts;
|
|
243
|
+
if (this.options.lineLength !== false) {
|
|
244
|
+
this.options.lineLength = this.options.lineLength || 76;
|
|
245
|
+
}
|
|
246
|
+
this._curLine = '';
|
|
247
|
+
this._heldByte = undefined;
|
|
248
|
+
this._lastByte = undefined;
|
|
249
|
+
this.inputBytes = 0;
|
|
250
|
+
this.outputBytes = 0;
|
|
251
|
+
}
|
|
252
|
+
/** @internal */
|
|
253
|
+
_transform(chunk, encoding, done) {
|
|
254
|
+
let buf = toBuffer(chunk, encoding);
|
|
255
|
+
if (!buf || !buf.length) {
|
|
256
|
+
return done();
|
|
257
|
+
}
|
|
258
|
+
this.inputBytes += buf.length;
|
|
259
|
+
if (this._heldByte !== undefined) {
|
|
260
|
+
this._encodeSlices(Buffer.of(this._heldByte), buf[0]);
|
|
261
|
+
this._heldByte = undefined;
|
|
262
|
+
}
|
|
263
|
+
// Whitespace is encoded when it ends a line, and the end of the input counts as one, and a
|
|
264
|
+
// binary CR is a line break only when LF follows. Hold back such a last byte until it is
|
|
265
|
+
// known what follows it, so the output does not depend on where the input was split. Every
|
|
266
|
+
// other byte depends only on its neighbours, which _encodeSlices passes on
|
|
267
|
+
const last = buf[buf.length - 1];
|
|
268
|
+
if (isWhitespace(last) || (this.options.binary && last === 0x0d)) {
|
|
269
|
+
this._heldByte = last;
|
|
270
|
+
buf = buf.subarray(0, buf.length - 1);
|
|
271
|
+
}
|
|
272
|
+
// the bytes before a held back one only need to know it follows them
|
|
273
|
+
this._encodeSlices(buf, this._heldByte);
|
|
274
|
+
done();
|
|
275
|
+
}
|
|
276
|
+
/** @internal */
|
|
277
|
+
_flush(done) {
|
|
278
|
+
if (this._heldByte !== undefined) {
|
|
279
|
+
this._encodeSlices(Buffer.of(this._heldByte), undefined);
|
|
280
|
+
this._heldByte = undefined;
|
|
281
|
+
}
|
|
282
|
+
if (this._curLine) {
|
|
283
|
+
// it can end with a CR that was not wrapped yet
|
|
284
|
+
const qp = wrap(this._curLine, this.options.lineLength);
|
|
285
|
+
this.outputBytes += qp.length;
|
|
286
|
+
this.push(qp, 'ascii');
|
|
287
|
+
this._curLine = '';
|
|
288
|
+
}
|
|
289
|
+
done();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Encodes the input in slices of ENCODE_SLICE_SIZE bytes. Each slice is told the bytes around
|
|
293
|
+
* it, so a slice is encoded as if the input was not split
|
|
294
|
+
*
|
|
295
|
+
* @param buf Bytes to encode
|
|
296
|
+
* @param next The byte that follows buf, undefined when it is not known
|
|
297
|
+
* @internal
|
|
298
|
+
*/
|
|
299
|
+
_encodeSlices(buf, next) {
|
|
300
|
+
for (let start = 0; start < buf.length; start += ENCODE_SLICE_SIZE) {
|
|
301
|
+
const end = Math.min(start + ENCODE_SLICE_SIZE, buf.length);
|
|
302
|
+
let qp = encodeBytes(buf.subarray(start, end), end < buf.length ? buf[end] : next, this.options.binary, this._lastByte);
|
|
303
|
+
this._lastByte = buf[end - 1];
|
|
304
|
+
if (this.options.lineLength) {
|
|
305
|
+
qp = this._curLine + qp;
|
|
306
|
+
// a CR at the end is a line break if LF follows, so it is wrapped once that is known
|
|
307
|
+
const cr = qp.endsWith('\r') ? '\r' : '';
|
|
308
|
+
qp = wrap(cr ? qp.slice(0, -1) : qp, this.options.lineLength);
|
|
309
|
+
// the last line is kept until it is known whether it needs a soft break
|
|
310
|
+
const lastLF = qp.lastIndexOf('\n');
|
|
311
|
+
this._curLine = qp.substring(lastLF + 1) + cr;
|
|
312
|
+
qp = qp.substring(0, lastLF + 1);
|
|
313
|
+
}
|
|
314
|
+
if (qp) {
|
|
315
|
+
this.outputBytes += qp.length;
|
|
316
|
+
this.push(qp, 'ascii');
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Creates a transform stream for decoding Quoted-Printable encoded strings.
|
|
323
|
+
* The input is not actually processed as a stream but concatted and processed as a single input,
|
|
324
|
+
* so escapes and soft line breaks split across chunks decode the same as unsplit input
|
|
325
|
+
*/
|
|
326
|
+
export class Decoder extends Transform {
|
|
327
|
+
/**
|
|
328
|
+
* @param [options] Stream options
|
|
329
|
+
*/
|
|
330
|
+
constructor(options) {
|
|
331
|
+
const opts = options || {};
|
|
332
|
+
super(opts);
|
|
333
|
+
this.options = opts;
|
|
334
|
+
this.inputBytes = 0;
|
|
335
|
+
this.outputBytes = 0;
|
|
336
|
+
this.qpChunks = [];
|
|
337
|
+
}
|
|
338
|
+
/** @internal */
|
|
339
|
+
_transform(chunk, encoding, done) {
|
|
340
|
+
if (!chunk || !chunk.length) {
|
|
341
|
+
return done();
|
|
342
|
+
}
|
|
343
|
+
const buf = toBuffer(chunk, encoding);
|
|
344
|
+
// kept as a binary string, so joining the chunks is the only copy made before decoding
|
|
345
|
+
this.qpChunks.push(buf.toString('binary'));
|
|
346
|
+
this.inputBytes += buf.length;
|
|
347
|
+
done();
|
|
348
|
+
}
|
|
349
|
+
/** @internal */
|
|
350
|
+
_flush(done) {
|
|
351
|
+
if (this.inputBytes) {
|
|
352
|
+
const input = this.qpChunks.join('');
|
|
353
|
+
// the chunks are not needed anymore, release them before decoding allocates more
|
|
354
|
+
this.qpChunks = [];
|
|
355
|
+
const buf = decode(input);
|
|
356
|
+
this.outputBytes += buf.length;
|
|
357
|
+
this.push(buf);
|
|
358
|
+
}
|
|
359
|
+
done();
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
const libqp = {
|
|
363
|
+
encode,
|
|
364
|
+
decode,
|
|
365
|
+
wrap,
|
|
366
|
+
Encoder,
|
|
367
|
+
Decoder
|
|
368
|
+
};
|
|
369
|
+
export default libqp;
|