@intlayer/backend 7.0.9-canary.0 → 7.0.9-canary.2
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/README.md +2 -1
- package/dist/cjs/controllers/dictionary.controller.cjs +64 -41
- package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
- package/dist/cjs/emails/MagicLinkEmail.cjs +242 -0
- package/dist/cjs/emails/MagicLinkEmail.cjs.map +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs +16 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs.map +1 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs +25 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs.map +1 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs +31 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs.map +1 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs +38 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs.map +1 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs +231 -0
- package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs.map +1 -0
- package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs +1210 -0
- package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs.map +1 -0
- package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs +362 -0
- package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs +89 -0
- package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs +110 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs +248 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs +1309 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs +2176 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs +20 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs.map +1 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs +499 -0
- package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs +20 -0
- package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/ber/index.cjs +28 -0
- package/dist/cjs/node_modules/asn1/lib/ber/index.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs +167 -0
- package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/ber/types.cjs +47 -0
- package/dist/cjs/node_modules/asn1/lib/ber/types.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs +223 -0
- package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs.map +1 -0
- package/dist/cjs/node_modules/asn1/lib/index.cjs +21 -0
- package/dist/cjs/node_modules/asn1/lib/index.cjs.map +1 -0
- package/dist/cjs/node_modules/camelcase/index.cjs +78 -0
- package/dist/cjs/node_modules/camelcase/index.cjs.map +1 -0
- package/dist/cjs/node_modules/escape-html/index.cjs +71 -0
- package/dist/cjs/node_modules/escape-html/index.cjs.map +1 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs +9 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs.map +1 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs +29 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs.map +1 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs +244 -0
- package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs +14 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs +10 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs +17 -0
- package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs +20 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs +32 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs.map +1 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs +28 -0
- package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/aes.cjs +604 -0
- package/dist/cjs/node_modules/node-forge/lib/aes.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs +202 -0
- package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs +83 -0
- package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/asn1.cjs +945 -0
- package/dist/cjs/node_modules/node-forge/lib/asn1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/baseN.cjs +144 -0
- package/dist/cjs/node_modules/node-forge/lib/baseN.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/cipher.cjs +193 -0
- package/dist/cjs/node_modules/node-forge/lib/cipher.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs +604 -0
- package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/des.cjs +1194 -0
- package/dist/cjs/node_modules/node-forge/lib/des.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs +1027 -0
- package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/forge.cjs +22 -0
- package/dist/cjs/node_modules/node-forge/lib/forge.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/hmac.cjs +114 -0
- package/dist/cjs/node_modules/node-forge/lib/hmac.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/index.cjs +73 -0
- package/dist/cjs/node_modules/node-forge/lib/index.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs +1263 -0
- package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/kem.cjs +153 -0
- package/dist/cjs/node_modules/node-forge/lib/kem.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/log.cjs +248 -0
- package/dist/cjs/node_modules/node-forge/lib/log.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/md.all.cjs +31 -0
- package/dist/cjs/node_modules/node-forge/lib/md.all.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/md.cjs +25 -0
- package/dist/cjs/node_modules/node-forge/lib/md.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/md5.cjs +331 -0
- package/dist/cjs/node_modules/node-forge/lib/md5.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/mgf.cjs +27 -0
- package/dist/cjs/node_modules/node-forge/lib/mgf.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs +51 -0
- package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/oids.cjs +160 -0
- package/dist/cjs/node_modules/node-forge/lib/oids.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pbe.cjs +822 -0
- package/dist/cjs/node_modules/node-forge/lib/pbe.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs +132 -0
- package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pem.cjs +182 -0
- package/dist/cjs/node_modules/node-forge/lib/pem.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs +207 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs +730 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs +648 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs +412 -0
- package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pki.cjs +108 -0
- package/dist/cjs/node_modules/node-forge/lib/pki.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/prime.cjs +200 -0
- package/dist/cjs/node_modules/node-forge/lib/prime.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/prng.cjs +297 -0
- package/dist/cjs/node_modules/node-forge/lib/prng.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/pss.cjs +148 -0
- package/dist/cjs/node_modules/node-forge/lib/pss.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/random.cjs +148 -0
- package/dist/cjs/node_modules/node-forge/lib/random.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/rc2.cjs +545 -0
- package/dist/cjs/node_modules/node-forge/lib/rc2.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/rsa.cjs +1306 -0
- package/dist/cjs/node_modules/node-forge/lib/rsa.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/sha1.cjs +237 -0
- package/dist/cjs/node_modules/node-forge/lib/sha1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/sha256.cjs +274 -0
- package/dist/cjs/node_modules/node-forge/lib/sha256.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/sha512.cjs +420 -0
- package/dist/cjs/node_modules/node-forge/lib/sha512.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/ssh.cjs +201 -0
- package/dist/cjs/node_modules/node-forge/lib/ssh.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/tls.cjs +3662 -0
- package/dist/cjs/node_modules/node-forge/lib/tls.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/util.cjs +2124 -0
- package/dist/cjs/node_modules/node-forge/lib/util.cjs.map +1 -0
- package/dist/cjs/node_modules/node-forge/lib/x509.cjs +2171 -0
- package/dist/cjs/node_modules/node-forge/lib/x509.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs +341 -0
- package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs +26 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs +65 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs +44 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs +49 -0
- package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs +55 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs +86 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs +177 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs +104 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs +131 -0
- package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs +1347 -0
- package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs +231 -0
- package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs +123 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs +175 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs +123 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs +28 -0
- package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs.map +1 -0
- package/dist/cjs/node_modules/node-rsa/src/utils.cjs +84 -0
- package/dist/cjs/node_modules/node-rsa/src/utils.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/index.cjs +25 -0
- package/dist/cjs/node_modules/pako/index.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/deflate.cjs +311 -0
- package/dist/cjs/node_modules/pako/lib/deflate.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/inflate.cjs +317 -0
- package/dist/cjs/node_modules/pako/lib/inflate.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/utils/common.cjs +77 -0
- package/dist/cjs/node_modules/pako/lib/utils/common.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/utils/strings.cjs +131 -0
- package/dist/cjs/node_modules/pako/lib/utils/strings.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs +29 -0
- package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs +43 -0
- package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs +31 -0
- package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs +889 -0
- package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs +27 -0
- package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs +227 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs +1038 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs +278 -0
- package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs +25 -0
- package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs +626 -0
- package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs.map +1 -0
- package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs +29 -0
- package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs.map +1 -0
- package/dist/cjs/node_modules/safer-buffer/safer.cjs +52 -0
- package/dist/cjs/node_modules/safer-buffer/safer.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/index.cjs +120 -0
- package/dist/cjs/node_modules/samlify/build/index.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/api.cjs +36 -0
- package/dist/cjs/node_modules/samlify/build/src/api.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs +507 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs +342 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs +361 -0
- package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs +282 -0
- package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs +145 -0
- package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/entity.cjs +256 -0
- package/dist/cjs/node_modules/samlify/build/src/entity.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/extractor.cjs +355 -0
- package/dist/cjs/node_modules/samlify/build/src/extractor.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/flow.cjs +392 -0
- package/dist/cjs/node_modules/samlify/build/src/flow.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs +547 -0
- package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs +174 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs +217 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata.cjs +203 -0
- package/dist/cjs/node_modules/samlify/build/src/metadata.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/urn.cjs +228 -0
- package/dist/cjs/node_modules/samlify/build/src/urn.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/utility.cjs +280 -0
- package/dist/cjs/node_modules/samlify/build/src/utility.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/build/src/validator.cjs +56 -0
- package/dist/cjs/node_modules/samlify/build/src/validator.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs +50 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs +25 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs +18 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs +42 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs +18 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs +28 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs +25 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs +27 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs +69 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs +23 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs +54 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs +34 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs +23 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs +23 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs.map +1 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs +24 -0
- package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs.map +1 -0
- package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs +27 -0
- package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs.map +1 -0
- package/dist/cjs/node_modules/xml/lib/xml.cjs +186 -0
- package/dist/cjs/node_modules/xml/lib/xml.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs +202 -0
- package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs +52 -0
- package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs +223 -0
- package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs +56 -0
- package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/index.cjs +73 -0
- package/dist/cjs/node_modules/xml-crypto/lib/index.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs +91 -0
- package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs +695 -0
- package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/types.cjs +58 -0
- package/dist/cjs/node_modules/xml-crypto/lib/types.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs +213 -0
- package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs +3445 -0
- package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs.map +1 -0
- package/dist/cjs/node_modules/xml-escape/index.cjs +30 -0
- package/dist/cjs/node_modules/xml-escape/index.cjs.map +1 -0
- package/dist/cjs/node_modules/xpath/xpath.cjs +3410 -0
- package/dist/cjs/node_modules/xpath/xpath.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/classic/errors.cjs +31 -0
- package/dist/cjs/node_modules/zod/v4/classic/errors.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/classic/iso.cjs +42 -0
- package/dist/cjs/node_modules/zod/v4/classic/iso.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/dist/cjs/node_modules/zod/v4/classic/parse.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs +527 -0
- package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/api.cjs +443 -0
- package/dist/cjs/node_modules/zod/v4/core/api.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/checks.cjs +238 -0
- package/dist/cjs/node_modules/zod/v4/core/checks.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/core.cjs +63 -0
- package/dist/cjs/node_modules/zod/v4/core/core.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/doc.cjs +36 -0
- package/dist/cjs/node_modules/zod/v4/core/doc.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/errors.cjs +67 -0
- package/dist/cjs/node_modules/zod/v4/core/errors.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/parse.cjs +124 -0
- package/dist/cjs/node_modules/zod/v4/core/parse.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/regexes.cjs +87 -0
- package/dist/cjs/node_modules/zod/v4/core/regexes.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/registries.cjs +55 -0
- package/dist/cjs/node_modules/zod/v4/core/registries.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/schemas.cjs +1115 -0
- package/dist/cjs/node_modules/zod/v4/core/schemas.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/util.cjs +333 -0
- package/dist/cjs/node_modules/zod/v4/core/util.cjs.map +1 -0
- package/dist/cjs/node_modules/zod/v4/core/versions.cjs +12 -0
- package/dist/cjs/node_modules/zod/v4/core/versions.cjs.map +1 -0
- package/dist/cjs/schemas/user.schema.cjs +17 -0
- package/dist/cjs/schemas/user.schema.cjs.map +1 -1
- package/dist/cjs/services/dictionary.service.cjs +7 -31
- package/dist/cjs/services/dictionary.service.cjs.map +1 -1
- package/dist/cjs/services/email.service.cjs +13 -0
- package/dist/cjs/services/email.service.cjs.map +1 -1
- package/dist/cjs/types/user.types.cjs.map +1 -1
- package/dist/cjs/utils/auth/getAuth.cjs +60 -26
- package/dist/cjs/utils/auth/getAuth.cjs.map +1 -1
- package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
- package/dist/esm/_virtual/rolldown_runtime.mjs +43 -0
- package/dist/esm/controllers/dictionary.controller.mjs +65 -42
- package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
- package/dist/esm/emails/MagicLinkEmail.mjs +239 -0
- package/dist/esm/emails/MagicLinkEmail.mjs.map +1 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs +13 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs.map +1 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs +22 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs.map +1 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs +28 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs.map +1 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs +35 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs.map +1 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs +228 -0
- package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs.map +1 -0
- package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs +1210 -0
- package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs +359 -0
- package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs +86 -0
- package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs +107 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs +245 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs +1306 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs +2173 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs +17 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs.map +1 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs +496 -0
- package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/ber/errors.mjs +17 -0
- package/dist/esm/node_modules/asn1/lib/ber/errors.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/ber/index.mjs +25 -0
- package/dist/esm/node_modules/asn1/lib/ber/index.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/ber/reader.mjs +164 -0
- package/dist/esm/node_modules/asn1/lib/ber/reader.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/ber/types.mjs +44 -0
- package/dist/esm/node_modules/asn1/lib/ber/types.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/ber/writer.mjs +220 -0
- package/dist/esm/node_modules/asn1/lib/ber/writer.mjs.map +1 -0
- package/dist/esm/node_modules/asn1/lib/index.mjs +18 -0
- package/dist/esm/node_modules/asn1/lib/index.mjs.map +1 -0
- package/dist/esm/node_modules/available-typed-arrays/index.mjs +20 -0
- package/dist/esm/node_modules/available-typed-arrays/index.mjs.map +1 -0
- package/dist/esm/node_modules/base64-js/index.mjs +95 -0
- package/dist/esm/node_modules/base64-js/index.mjs.map +1 -0
- package/dist/esm/node_modules/buffer/index.mjs +1114 -0
- package/dist/esm/node_modules/buffer/index.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind/index.mjs +26 -0
- package/dist/esm/node_modules/call-bind/index.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs +21 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs +21 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs +13 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs +13 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs +24 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs.map +1 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs +13 -0
- package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs.map +1 -0
- package/dist/esm/node_modules/call-bound/index.mjs +23 -0
- package/dist/esm/node_modules/call-bound/index.mjs.map +1 -0
- package/dist/esm/node_modules/camelcase/index.mjs +75 -0
- package/dist/esm/node_modules/camelcase/index.mjs.map +1 -0
- package/dist/esm/node_modules/define-data-property/index.mjs +41 -0
- package/dist/esm/node_modules/define-data-property/index.mjs.map +1 -0
- package/dist/esm/node_modules/dunder-proto/get.mjs +28 -0
- package/dist/esm/node_modules/dunder-proto/get.mjs.map +1 -0
- package/dist/esm/node_modules/es-define-property/index.mjs +19 -0
- package/dist/esm/node_modules/es-define-property/index.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/eval.mjs +13 -0
- package/dist/esm/node_modules/es-errors/eval.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/index.mjs +13 -0
- package/dist/esm/node_modules/es-errors/index.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/range.mjs +13 -0
- package/dist/esm/node_modules/es-errors/range.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/ref.mjs +13 -0
- package/dist/esm/node_modules/es-errors/ref.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/syntax.mjs +13 -0
- package/dist/esm/node_modules/es-errors/syntax.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/type.mjs +13 -0
- package/dist/esm/node_modules/es-errors/type.mjs.map +1 -0
- package/dist/esm/node_modules/es-errors/uri.mjs +13 -0
- package/dist/esm/node_modules/es-errors/uri.mjs.map +1 -0
- package/dist/esm/node_modules/es-object-atoms/index.mjs +13 -0
- package/dist/esm/node_modules/es-object-atoms/index.mjs.map +1 -0
- package/dist/esm/node_modules/escape-html/index.mjs +68 -0
- package/dist/esm/node_modules/escape-html/index.mjs.map +1 -0
- package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs +8 -0
- package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs.map +1 -0
- package/dist/esm/node_modules/fast-xml-parser/src/util.mjs +26 -0
- package/dist/esm/node_modules/fast-xml-parser/src/util.mjs.map +1 -0
- package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs +243 -0
- package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs.map +1 -0
- package/dist/esm/node_modules/for-each/index.mjs +43 -0
- package/dist/esm/node_modules/for-each/index.mjs.map +1 -0
- package/dist/esm/node_modules/function-bind/implementation.mjs +59 -0
- package/dist/esm/node_modules/function-bind/implementation.mjs.map +1 -0
- package/dist/esm/node_modules/function-bind/index.mjs +14 -0
- package/dist/esm/node_modules/function-bind/index.mjs.map +1 -0
- package/dist/esm/node_modules/generator-function/index.mjs +14 -0
- package/dist/esm/node_modules/generator-function/index.mjs.map +1 -0
- package/dist/esm/node_modules/get-intrinsic/index.mjs +358 -0
- package/dist/esm/node_modules/get-intrinsic/index.mjs.map +1 -0
- package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs +15 -0
- package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs.map +1 -0
- package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs +13 -0
- package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs.map +1 -0
- package/dist/esm/node_modules/get-proto/index.mjs +26 -0
- package/dist/esm/node_modules/get-proto/index.mjs.map +1 -0
- package/dist/esm/node_modules/gopd/gOPD.mjs +13 -0
- package/dist/esm/node_modules/gopd/gOPD.mjs.map +1 -0
- package/dist/esm/node_modules/gopd/index.mjs +20 -0
- package/dist/esm/node_modules/gopd/index.mjs.map +1 -0
- package/dist/esm/node_modules/has-property-descriptors/index.mjs +25 -0
- package/dist/esm/node_modules/has-property-descriptors/index.mjs.map +1 -0
- package/dist/esm/node_modules/has-symbols/index.mjs +22 -0
- package/dist/esm/node_modules/has-symbols/index.mjs.map +1 -0
- package/dist/esm/node_modules/has-symbols/shams.mjs +36 -0
- package/dist/esm/node_modules/has-symbols/shams.mjs.map +1 -0
- package/dist/esm/node_modules/has-tostringtag/shams.mjs +17 -0
- package/dist/esm/node_modules/has-tostringtag/shams.mjs.map +1 -0
- package/dist/esm/node_modules/hasown/index.mjs +17 -0
- package/dist/esm/node_modules/hasown/index.mjs.map +1 -0
- package/dist/esm/node_modules/ieee754/index.mjs +80 -0
- package/dist/esm/node_modules/ieee754/index.mjs.map +1 -0
- package/dist/esm/node_modules/inherits/inherits_browser.mjs +31 -0
- package/dist/esm/node_modules/inherits/inherits_browser.mjs.map +1 -0
- package/dist/esm/node_modules/is-arguments/index.mjs +31 -0
- package/dist/esm/node_modules/is-arguments/index.mjs.map +1 -0
- package/dist/esm/node_modules/is-callable/index.mjs +87 -0
- package/dist/esm/node_modules/is-callable/index.mjs.map +1 -0
- package/dist/esm/node_modules/is-generator-function/index.mjs +32 -0
- package/dist/esm/node_modules/is-generator-function/index.mjs.map +1 -0
- package/dist/esm/node_modules/is-regex/index.mjs +58 -0
- package/dist/esm/node_modules/is-regex/index.mjs.map +1 -0
- package/dist/esm/node_modules/is-typed-array/index.mjs +17 -0
- package/dist/esm/node_modules/is-typed-array/index.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs +12 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs +8 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs +15 -0
- package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs +19 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs +31 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs.map +1 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs +26 -0
- package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/abs.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/abs.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/floor.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/floor.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/isNaN.mjs +15 -0
- package/dist/esm/node_modules/math-intrinsics/isNaN.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/max.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/max.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/min.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/min.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/pow.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/pow.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/round.mjs +13 -0
- package/dist/esm/node_modules/math-intrinsics/round.mjs.map +1 -0
- package/dist/esm/node_modules/math-intrinsics/sign.mjs +18 -0
- package/dist/esm/node_modules/math-intrinsics/sign.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/aes.mjs +601 -0
- package/dist/esm/node_modules/node-forge/lib/aes.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs +199 -0
- package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs +80 -0
- package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/asn1.mjs +942 -0
- package/dist/esm/node_modules/node-forge/lib/asn1.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/baseN.mjs +141 -0
- package/dist/esm/node_modules/node-forge/lib/baseN.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/cipher.mjs +190 -0
- package/dist/esm/node_modules/node-forge/lib/cipher.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs +601 -0
- package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/des.mjs +1191 -0
- package/dist/esm/node_modules/node-forge/lib/des.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/ed25519.mjs +1024 -0
- package/dist/esm/node_modules/node-forge/lib/ed25519.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/forge.mjs +19 -0
- package/dist/esm/node_modules/node-forge/lib/forge.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/hmac.mjs +111 -0
- package/dist/esm/node_modules/node-forge/lib/hmac.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/index.mjs +70 -0
- package/dist/esm/node_modules/node-forge/lib/index.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/jsbn.mjs +1260 -0
- package/dist/esm/node_modules/node-forge/lib/jsbn.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/kem.mjs +150 -0
- package/dist/esm/node_modules/node-forge/lib/kem.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/log.mjs +245 -0
- package/dist/esm/node_modules/node-forge/lib/log.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/md.all.mjs +28 -0
- package/dist/esm/node_modules/node-forge/lib/md.all.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/md.mjs +22 -0
- package/dist/esm/node_modules/node-forge/lib/md.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/md5.mjs +328 -0
- package/dist/esm/node_modules/node-forge/lib/md5.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/mgf.mjs +24 -0
- package/dist/esm/node_modules/node-forge/lib/mgf.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/mgf1.mjs +48 -0
- package/dist/esm/node_modules/node-forge/lib/mgf1.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/oids.mjs +157 -0
- package/dist/esm/node_modules/node-forge/lib/oids.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pbe.mjs +819 -0
- package/dist/esm/node_modules/node-forge/lib/pbe.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs +130 -0
- package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pem.mjs +179 -0
- package/dist/esm/node_modules/node-forge/lib/pem.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs +204 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs +727 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs +645 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs +409 -0
- package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pki.mjs +105 -0
- package/dist/esm/node_modules/node-forge/lib/pki.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/prime.mjs +197 -0
- package/dist/esm/node_modules/node-forge/lib/prime.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/prng.mjs +295 -0
- package/dist/esm/node_modules/node-forge/lib/prng.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/pss.mjs +145 -0
- package/dist/esm/node_modules/node-forge/lib/pss.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/random.mjs +145 -0
- package/dist/esm/node_modules/node-forge/lib/random.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/rc2.mjs +542 -0
- package/dist/esm/node_modules/node-forge/lib/rc2.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/rsa.mjs +1304 -0
- package/dist/esm/node_modules/node-forge/lib/rsa.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/sha1.mjs +234 -0
- package/dist/esm/node_modules/node-forge/lib/sha1.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/sha256.mjs +271 -0
- package/dist/esm/node_modules/node-forge/lib/sha256.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/sha512.mjs +417 -0
- package/dist/esm/node_modules/node-forge/lib/sha512.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/ssh.mjs +198 -0
- package/dist/esm/node_modules/node-forge/lib/ssh.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/tls.mjs +3659 -0
- package/dist/esm/node_modules/node-forge/lib/tls.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/util.mjs +2121 -0
- package/dist/esm/node_modules/node-forge/lib/util.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib/x509.mjs +2168 -0
- package/dist/esm/node_modules/node-forge/lib/x509.mjs.map +1 -0
- package/dist/esm/node_modules/node-forge/lib.mjs +10 -0
- package/dist/esm/node_modules/node-forge/lib.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs +338 -0
- package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs +23 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs +62 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs +41 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs +46 -0
- package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/formats/components.mjs +52 -0
- package/dist/esm/node_modules/node-rsa/src/formats/components.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs +83 -0
- package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs +174 -0
- package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs +101 -0
- package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs +128 -0
- package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs +1344 -0
- package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs +228 -0
- package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs +120 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs +172 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs +120 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs +25 -0
- package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs.map +1 -0
- package/dist/esm/node_modules/node-rsa/src/utils.mjs +81 -0
- package/dist/esm/node_modules/node-rsa/src/utils.mjs.map +1 -0
- package/dist/esm/node_modules/pako/index.mjs +22 -0
- package/dist/esm/node_modules/pako/index.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/deflate.mjs +308 -0
- package/dist/esm/node_modules/pako/lib/deflate.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/inflate.mjs +314 -0
- package/dist/esm/node_modules/pako/lib/inflate.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/utils/common.mjs +74 -0
- package/dist/esm/node_modules/pako/lib/utils/common.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/utils/strings.mjs +128 -0
- package/dist/esm/node_modules/pako/lib/utils/strings.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs +26 -0
- package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/constants.mjs +40 -0
- package/dist/esm/node_modules/pako/lib/zlib/constants.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs +28 -0
- package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs +886 -0
- package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs +24 -0
- package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs +224 -0
- package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs +1035 -0
- package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs +275 -0
- package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/messages.mjs +22 -0
- package/dist/esm/node_modules/pako/lib/zlib/messages.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/trees.mjs +623 -0
- package/dist/esm/node_modules/pako/lib/zlib/trees.mjs.map +1 -0
- package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs +26 -0
- package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs.map +1 -0
- package/dist/esm/node_modules/possible-typed-array-names/index.mjs +26 -0
- package/dist/esm/node_modules/possible-typed-array-names/index.mjs.map +1 -0
- package/dist/esm/node_modules/safe-regex-test/index.mjs +25 -0
- package/dist/esm/node_modules/safe-regex-test/index.mjs.map +1 -0
- package/dist/esm/node_modules/safer-buffer/safer.mjs +50 -0
- package/dist/esm/node_modules/safer-buffer/safer.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/index.mjs +117 -0
- package/dist/esm/node_modules/samlify/build/index.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/api.mjs +33 -0
- package/dist/esm/node_modules/samlify/build/src/api.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/binding-post.mjs +504 -0
- package/dist/esm/node_modules/samlify/build/src/binding-post.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs +339 -0
- package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs +358 -0
- package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs +279 -0
- package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs +142 -0
- package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/entity.mjs +253 -0
- package/dist/esm/node_modules/samlify/build/src/entity.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/extractor.mjs +352 -0
- package/dist/esm/node_modules/samlify/build/src/extractor.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/flow.mjs +389 -0
- package/dist/esm/node_modules/samlify/build/src/flow.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/libsaml.mjs +544 -0
- package/dist/esm/node_modules/samlify/build/src/libsaml.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs +171 -0
- package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs +214 -0
- package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/metadata.mjs +200 -0
- package/dist/esm/node_modules/samlify/build/src/metadata.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/urn.mjs +225 -0
- package/dist/esm/node_modules/samlify/build/src/urn.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/utility.mjs +277 -0
- package/dist/esm/node_modules/samlify/build/src/utility.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/build/src/validator.mjs +53 -0
- package/dist/esm/node_modules/samlify/build/src/validator.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs +39 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs +154 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs +12 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs +36 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs +12 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs +20 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs +101 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs +22 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs +63 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs +17 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs +48 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs +28 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs +17 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs +17 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs.map +1 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs +18 -0
- package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs.map +1 -0
- package/dist/esm/node_modules/set-function-length/index.mjs +38 -0
- package/dist/esm/node_modules/set-function-length/index.mjs.map +1 -0
- package/dist/esm/node_modules/util/support/isBufferBrowser.mjs +14 -0
- package/dist/esm/node_modules/util/support/isBufferBrowser.mjs.map +1 -0
- package/dist/esm/node_modules/util/support/types.mjs +218 -0
- package/dist/esm/node_modules/util/support/types.mjs.map +1 -0
- package/dist/esm/node_modules/util/util.mjs +443 -0
- package/dist/esm/node_modules/util/util.mjs.map +1 -0
- package/dist/esm/node_modules/which-typed-array/index.mjs +93 -0
- package/dist/esm/node_modules/which-typed-array/index.mjs.map +1 -0
- package/dist/esm/node_modules/xml/lib/escapeForXML.mjs +24 -0
- package/dist/esm/node_modules/xml/lib/escapeForXML.mjs.map +1 -0
- package/dist/esm/node_modules/xml/lib/xml.mjs +183 -0
- package/dist/esm/node_modules/xml/lib/xml.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs +199 -0
- package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs +49 -0
- package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs +220 -0
- package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs +53 -0
- package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/index.mjs +70 -0
- package/dist/esm/node_modules/xml-crypto/lib/index.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs +88 -0
- package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs +693 -0
- package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/types.mjs +55 -0
- package/dist/esm/node_modules/xml-crypto/lib/types.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/lib/utils.mjs +210 -0
- package/dist/esm/node_modules/xml-crypto/lib/utils.mjs.map +1 -0
- package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs +3442 -0
- package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs.map +1 -0
- package/dist/esm/node_modules/xml-escape/index.mjs +27 -0
- package/dist/esm/node_modules/xml-escape/index.mjs.map +1 -0
- package/dist/esm/node_modules/xpath/xpath.mjs +3407 -0
- package/dist/esm/node_modules/xpath/xpath.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/classic/errors.mjs +30 -0
- package/dist/esm/node_modules/zod/v4/classic/errors.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/classic/iso.mjs +38 -0
- package/dist/esm/node_modules/zod/v4/classic/iso.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/classic/parse.mjs +20 -0
- package/dist/esm/node_modules/zod/v4/classic/parse.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/classic/schemas.mjs +519 -0
- package/dist/esm/node_modules/zod/v4/classic/schemas.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/api.mjs +395 -0
- package/dist/esm/node_modules/zod/v4/core/api.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/checks.mjs +226 -0
- package/dist/esm/node_modules/zod/v4/core/checks.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/core.mjs +57 -0
- package/dist/esm/node_modules/zod/v4/core/core.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/doc.mjs +34 -0
- package/dist/esm/node_modules/zod/v4/core/doc.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/errors.mjs +63 -0
- package/dist/esm/node_modules/zod/v4/core/errors.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/parse.mjs +110 -0
- package/dist/esm/node_modules/zod/v4/core/parse.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/regexes.mjs +60 -0
- package/dist/esm/node_modules/zod/v4/core/regexes.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/registries.mjs +53 -0
- package/dist/esm/node_modules/zod/v4/core/registries.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/schemas.mjs +1069 -0
- package/dist/esm/node_modules/zod/v4/core/schemas.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/util.mjs +302 -0
- package/dist/esm/node_modules/zod/v4/core/util.mjs.map +1 -0
- package/dist/esm/node_modules/zod/v4/core/versions.mjs +10 -0
- package/dist/esm/node_modules/zod/v4/core/versions.mjs.map +1 -0
- package/dist/esm/schemas/user.schema.mjs +17 -0
- package/dist/esm/schemas/user.schema.mjs.map +1 -1
- package/dist/esm/services/dictionary.service.mjs +8 -31
- package/dist/esm/services/dictionary.service.mjs.map +1 -1
- package/dist/esm/services/email.service.mjs +13 -0
- package/dist/esm/services/email.service.mjs.map +1 -1
- package/dist/esm/types/user.types.mjs.map +1 -1
- package/dist/esm/utils/auth/getAuth.mjs +61 -27
- package/dist/esm/utils/auth/getAuth.mjs.map +1 -1
- package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
- package/dist/types/MagicLinkEmail.d.ts +8 -0
- package/dist/types/MagicLinkEmail.d.ts.map +1 -0
- package/dist/types/controllers/ai.controller.d.ts.map +1 -1
- package/dist/types/controllers/dictionary.controller.d.ts +18 -5
- package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
- package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
- package/dist/types/controllers/tag.controller.d.ts.map +1 -1
- package/dist/types/emails/InviteUserEmail.d.ts +4 -4
- package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
- package/dist/types/emails/MagicLinkEmail.d.ts +31 -0
- package/dist/types/emails/MagicLinkEmail.d.ts.map +1 -0
- package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +4 -4
- package/dist/types/emails/OAuthTokenCreatedEmail.d.ts.map +1 -1
- package/dist/types/emails/PasswordChangeConfirmation.d.ts +4 -4
- package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -4
- package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -1
- package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -4
- package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -1
- package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -4
- package/dist/types/emails/ValidateUserEmail.d.ts +4 -4
- package/dist/types/emails/Welcome.d.ts +4 -4
- package/dist/types/export.d.ts +1 -3
- package/dist/types/models/dictionary.model.d.ts +4 -4
- package/dist/types/models/dictionary.model.d.ts.map +1 -1
- package/dist/types/models/discussion.model.d.ts +2 -2
- package/dist/types/models/oAuth2.model.d.ts +3 -3
- package/dist/types/schemas/dictionary.schema.d.ts +6 -6
- package/dist/types/schemas/discussion.schema.d.ts +6 -6
- package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
- package/dist/types/schemas/oAuth2.schema.d.ts +5 -5
- package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
- package/dist/types/schemas/organization.schema.d.ts +6 -6
- package/dist/types/schemas/plans.schema.d.ts +6 -6
- package/dist/types/schemas/project.schema.d.ts +6 -6
- package/dist/types/schemas/project.schema.d.ts.map +1 -1
- package/dist/types/schemas/session.schema.d.ts +6 -6
- package/dist/types/schemas/tag.schema.d.ts +6 -6
- package/dist/types/schemas/user.schema.d.ts +6 -6
- package/dist/types/schemas/user.schema.d.ts.map +1 -1
- package/dist/types/services/dictionary.service.d.ts +1 -12
- package/dist/types/services/dictionary.service.d.ts.map +1 -1
- package/dist/types/services/email.service.d.ts +21 -10
- package/dist/types/services/email.service.d.ts.map +1 -1
- package/dist/types/types/dictionary.types.d.ts +1 -0
- package/dist/types/types/dictionary.types.d.ts.map +1 -1
- package/dist/types/types/user.types.d.ts +1 -0
- package/dist/types/types/user.types.d.ts.map +1 -1
- package/dist/types/utils/auth/getAuth.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -2
- package/dist/types/utils/filtersAndPagination/getDiscussionFiltersAndPagination.d.ts +2 -2
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +2 -2
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +2 -2
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +2 -2
- package/dist/types/utils/mongoDB/connectDB.d.ts +2 -2
- package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
- package/package.json +38 -33
- package/dist/assets/controllers/test.json +0 -4
- package/dist/cjs/routes/audit.routes.cjs +0 -35
- package/dist/cjs/routes/audit.routes.cjs.map +0 -1
- package/dist/cjs/schemas/audit.schema.cjs +0 -65
- package/dist/cjs/schemas/audit.schema.cjs.map +0 -1
- package/dist/cjs/services/audit.service.cjs +0 -49
- package/dist/cjs/services/audit.service.cjs.map +0 -1
- package/dist/cjs/types/audit.types.cjs +0 -0
- package/dist/esm/routes/audit.routes.mjs +0 -31
- package/dist/esm/routes/audit.routes.mjs.map +0 -1
- package/dist/esm/schemas/audit.schema.mjs +0 -63
- package/dist/esm/schemas/audit.schema.mjs.map +0 -1
- package/dist/esm/services/audit.service.mjs +0 -46
- package/dist/esm/services/audit.service.mjs.map +0 -1
- package/dist/esm/types/audit.types.mjs +0 -0
- package/dist/types/emails/index.d.ts.map +0 -1
- package/dist/types/export.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/routes/audit.routes.d.ts +0 -29
- package/dist/types/routes/audit.routes.d.ts.map +0 -1
- package/dist/types/schemas/audit.schema.d.ts +0 -19
- package/dist/types/schemas/audit.schema.d.ts.map +0 -1
- package/dist/types/services/audit.service.d.ts +0 -36
- package/dist/types/services/audit.service.d.ts.map +0 -1
- package/dist/types/types/audit.types.d.ts +0 -29
- package/dist/types/types/audit.types.d.ts.map +0 -1
- package/dist/types/utils/access.d.ts.map +0 -1
- package/dist/types/utils/errors/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -171,8 +171,9 @@ Explore our comprehensive documentation to get started with Intlayer and learn h
|
|
|
171
171
|
<details open>
|
|
172
172
|
<summary style="font-size:16px; font-weight:bold;">🌐 Environment</summary>
|
|
173
173
|
<ul>
|
|
174
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs" rel=''>Intlayer with Next.js
|
|
174
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs" rel=''>Intlayer with Next.js 16</a>
|
|
175
175
|
<ul>
|
|
176
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
|
|
176
177
|
<li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
|
|
177
178
|
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
|
|
178
179
|
</ul>
|
|
@@ -9,8 +9,18 @@ const require_utils_filtersAndPagination_getDictionaryFiltersAndPagination = req
|
|
|
9
9
|
const require_utils_mapper_dictionary = require('../utils/mapper/dictionary.cjs');
|
|
10
10
|
const require_utils_permissions = require('../utils/permissions.cjs');
|
|
11
11
|
let express_intlayer = require("express-intlayer");
|
|
12
|
+
let node_util = require("node:util");
|
|
12
13
|
|
|
13
14
|
//#region src/controllers/dictionary.controller.ts
|
|
15
|
+
const removeMetadata = (obj) => {
|
|
16
|
+
if (Array.isArray(obj)) return obj.map(removeMetadata);
|
|
17
|
+
if (obj && typeof obj === "object") {
|
|
18
|
+
const clone = {};
|
|
19
|
+
for (const key in obj) if (key !== "metadata") clone[key] = removeMetadata(obj[key]);
|
|
20
|
+
return clone;
|
|
21
|
+
}
|
|
22
|
+
return obj;
|
|
23
|
+
};
|
|
14
24
|
/**
|
|
15
25
|
* Retrieves a list of dictionaries based on filters and pagination.
|
|
16
26
|
*/
|
|
@@ -98,7 +108,10 @@ const getDictionariesUpdateTimestamp = async (_req, res, _next) => {
|
|
|
98
108
|
}
|
|
99
109
|
const responseData = require_utils_responseData.formatResponse({ data: dictionaries.reduce((acc, dictionary) => ({
|
|
100
110
|
...acc,
|
|
101
|
-
[dictionary.
|
|
111
|
+
[dictionary.id]: {
|
|
112
|
+
key: dictionary.key,
|
|
113
|
+
updatedAt: new Date(dictionary.updatedAt).getTime()
|
|
114
|
+
}
|
|
102
115
|
}), {}) });
|
|
103
116
|
res.json(responseData);
|
|
104
117
|
return;
|
|
@@ -169,7 +182,7 @@ const addDictionary = async (req, res, _next) => {
|
|
|
169
182
|
key: dictionaryData.key,
|
|
170
183
|
title: dictionaryData.title,
|
|
171
184
|
description: dictionaryData.description,
|
|
172
|
-
content: new Map([["v1", { content: dictionaryData.content ?? {} }]]),
|
|
185
|
+
content: new Map([["v1", { content: removeMetadata(dictionaryData.content ?? {}) }]]),
|
|
173
186
|
creatorId: user.id,
|
|
174
187
|
projectIds: dictionaryData.projectIds ?? [String(project.id)]
|
|
175
188
|
};
|
|
@@ -213,7 +226,6 @@ const addDictionary = async (req, res, _next) => {
|
|
|
213
226
|
const pushDictionaries = async (req, res, _next) => {
|
|
214
227
|
const { project, user, roles } = res.locals;
|
|
215
228
|
const dictionaryData = req.body.dictionaries;
|
|
216
|
-
const dictionariesKeys = dictionaryData.map((dictionary) => dictionary.key);
|
|
217
229
|
if (typeof dictionaryData === "object" && Array.isArray(dictionaryData) && dictionaryData.length === 0) {
|
|
218
230
|
require_utils_errors_ErrorHandler.ErrorHandler.handleGenericErrorResponse(res, "DICTIONARIES_NOT_PROVIDED");
|
|
219
231
|
return;
|
|
@@ -234,9 +246,8 @@ const pushDictionaries = async (req, res, _next) => {
|
|
|
234
246
|
return;
|
|
235
247
|
}
|
|
236
248
|
try {
|
|
237
|
-
const
|
|
238
|
-
const
|
|
239
|
-
const newDictionaries = dictionaryData.filter((dictionary) => newDictionariesKey.includes(dictionary.key));
|
|
249
|
+
const existingDictionaries = dictionaryData.filter((dictionary) => dictionary.id !== void 0);
|
|
250
|
+
const newDictionaries = dictionaryData.filter((dictionary) => dictionary.id === void 0);
|
|
240
251
|
const newDictionariesResult = [];
|
|
241
252
|
const updatedDictionariesResult = [];
|
|
242
253
|
const errorResult = [];
|
|
@@ -246,51 +257,63 @@ const pushDictionaries = async (req, res, _next) => {
|
|
|
246
257
|
description: dictionaryDataEl.description,
|
|
247
258
|
projectIds: [String(project.id)],
|
|
248
259
|
creatorId: user.id,
|
|
249
|
-
content: new Map([["v1", { content: dictionaryDataEl.content ?? {} }]]),
|
|
260
|
+
content: new Map([["v1", { content: removeMetadata(dictionaryDataEl.content) ?? {} }]]),
|
|
250
261
|
key: dictionaryDataEl.key
|
|
251
262
|
};
|
|
252
263
|
try {
|
|
253
264
|
const newDictionary = await require_services_dictionary_service.createDictionary(dictionary);
|
|
254
|
-
newDictionariesResult.push(
|
|
265
|
+
newDictionariesResult.push({
|
|
266
|
+
key: newDictionary.key,
|
|
267
|
+
localId: dictionaryDataEl.localId,
|
|
268
|
+
id: newDictionary.id
|
|
269
|
+
});
|
|
255
270
|
} catch (error) {
|
|
256
|
-
|
|
257
|
-
|
|
271
|
+
errorResult.push({
|
|
272
|
+
id: dictionaryDataEl.id,
|
|
273
|
+
key: dictionaryDataEl.key,
|
|
274
|
+
localId: dictionaryDataEl.localId,
|
|
275
|
+
message: error.message
|
|
276
|
+
});
|
|
258
277
|
}
|
|
259
278
|
}
|
|
260
|
-
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
279
|
+
for (const dictionaryDataEl of existingDictionaries) {
|
|
280
|
+
const remoteDictionary = await require_services_dictionary_service.getDictionaryById(dictionaryDataEl.id);
|
|
281
|
+
const cleanedContent = removeMetadata(dictionaryDataEl.content);
|
|
282
|
+
const versionList = [...remoteDictionary.content.keys() ?? []];
|
|
283
|
+
const lastVersion = versionList[versionList.length - 1];
|
|
284
|
+
const isSameContent = (0, node_util.isDeepStrictEqual)(remoteDictionary.content.get(lastVersion)?.content ?? null, cleanedContent);
|
|
285
|
+
const newContent = new Map(remoteDictionary.content);
|
|
286
|
+
if (!isSameContent) {
|
|
287
|
+
const newContentVersion = require_services_dictionary_service.incrementVersion(remoteDictionary);
|
|
288
|
+
newContent.set(newContentVersion, { content: cleanedContent });
|
|
289
|
+
}
|
|
290
|
+
const dictionary = {
|
|
291
|
+
...require_utils_ensureMongoDocumentToObject.ensureMongoDocumentToObject(remoteDictionary),
|
|
292
|
+
...dictionaryDataEl,
|
|
293
|
+
content: newContent,
|
|
294
|
+
projectIds: [String(project.id)],
|
|
295
|
+
creatorId: user.id,
|
|
296
|
+
key: remoteDictionary.key
|
|
297
|
+
};
|
|
298
|
+
try {
|
|
299
|
+
const updatedDictionary = await require_services_dictionary_service.updateDictionaryByKey(remoteDictionary.key, dictionary, project.id);
|
|
300
|
+
updatedDictionariesResult.push({
|
|
301
|
+
key: updatedDictionary.key,
|
|
302
|
+
localId: dictionaryDataEl.localId,
|
|
303
|
+
id: updatedDictionary.id
|
|
304
|
+
});
|
|
305
|
+
} catch (error) {
|
|
306
|
+
errorResult.push({
|
|
307
|
+
id: dictionaryDataEl.id,
|
|
308
|
+
key: dictionaryDataEl.key,
|
|
309
|
+
localId: dictionaryDataEl.localId,
|
|
310
|
+
message: error.message
|
|
311
|
+
});
|
|
289
312
|
}
|
|
290
313
|
}
|
|
291
314
|
const result = {
|
|
292
|
-
newDictionaries: newDictionariesResult
|
|
293
|
-
updatedDictionaries: updatedDictionariesResult
|
|
315
|
+
newDictionaries: newDictionariesResult,
|
|
316
|
+
updatedDictionaries: updatedDictionariesResult,
|
|
294
317
|
error: errorResult
|
|
295
318
|
};
|
|
296
319
|
const responseData = require_utils_responseData.formatResponse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.controller.cjs","names":["getDictionaryFiltersAndPagination","hasPermission","formatPaginatedResponse","mapDictionaryToAPI","formatResponse","dictionary: DictionaryData","newDictionariesResult: DictionaryAPI[]","updatedDictionariesResult: DictionaryAPI[]","errorResult: PushDictionariesResultData['error']","newContent: VersionedContent","ensureMongoDocumentToObject","result: PushDictionariesResultData"],"sources":["../../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import * as eventListener from '@controllers/eventListener.controller';\nimport type {\n ContentNode,\n Dictionary as LocalDictionary,\n} from '@intlayer/types';\nimport { logger } from '@logger';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport * as dictionaryService from '@services/dictionary.service';\nimport { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { type AppError, ErrorHandler } from '@utils/errors';\nimport {\n type DictionaryFiltersParams,\n getDictionaryFiltersAndPagination,\n} from '@utils/filtersAndPagination/getDictionaryFiltersAndPagination';\nimport type { FiltersAndPagination } from '@utils/filtersAndPagination/getFiltersAndPaginationFromBody';\nimport { mapDictionaryToAPI } from '@utils/mapper/dictionary';\nimport { hasPermission } from '@utils/permissions';\nimport {\n formatPaginatedResponse,\n formatResponse,\n type PaginatedResponse,\n type ResponseData,\n} from '@utils/responseData';\nimport type { NextFunction, Request } from 'express';\nimport { t } from 'express-intlayer';\nimport type {\n Dictionary,\n DictionaryAPI,\n DictionaryCreationData,\n DictionaryData,\n VersionedContent,\n} from '@/types/dictionary.types';\n\nexport type GetDictionariesParams =\n FiltersAndPagination<DictionaryFiltersParams>;\nexport type GetDictionariesResult = PaginatedResponse<DictionaryAPI>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const getDictionaries = async (\n req: Request<GetDictionariesParams>,\n res: ResponseWithSession<GetDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n const { user, project, roles } = res.locals;\n const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } =\n getDictionaryFiltersAndPagination(req, res);\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries(\n {\n ...filters,\n projectIds: project.id,\n },\n skip,\n pageSize,\n sortOptions\n );\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const totalItems = await dictionaryService.countDictionaries(filters);\n\n const dictionariesAPI = dictionaries.map((el) => mapDictionaryToAPI(el));\n\n const responseData = formatPaginatedResponse<DictionaryAPI>({\n data: dictionariesAPI,\n page,\n pageSize,\n totalPages: getNumberOfPages(totalItems),\n totalItems,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionariesKeysResult = ResponseData<string[]>;\n\n/**\n * Retrieves a list of dictionaries keys based on filters and pagination.\n */\nexport const getDictionariesKeys = async (\n _req: Request,\n res: ResponseWithSession<GetDictionariesKeysResult>,\n _next: NextFunction\n) => {\n const { project, roles } = res.locals;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries({\n projectIds: project.id,\n });\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const dictionariesKeys = dictionaries.map((dictionary) => dictionary.key);\n\n const responseData = formatResponse<string[]>({\n data: dictionariesKeys,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionariesUpdateTimestampResult = ResponseData<\n Record<string, number>\n>;\n\n/**\n * Retrieves a list of dictionaries keys based on filters and pagination.\n */\nexport const getDictionariesUpdateTimestamp = async (\n _req: Request,\n res: ResponseWithSession<GetDictionariesUpdateTimestampResult>,\n _next: NextFunction\n) => {\n const { project, roles } = res.locals;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries({\n projectIds: project.id,\n });\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const dictionariesUpdateTimestamp = dictionaries.reduce(\n (acc, dictionary) => ({\n ...acc,\n [dictionary.key]: new Date(dictionary.updatedAt).getTime(),\n }),\n {}\n );\n\n const responseData = formatResponse<Record<string, number>>({\n data: dictionariesUpdateTimestamp,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionaryParams = { dictionaryKey: string };\nexport type GetDictionaryQuery = { version?: string };\nexport type GetDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const getDictionaryByKey = async (\n req: Request<GetDictionaryParams, any, any, GetDictionaryQuery>,\n res: ResponseWithSession<GetDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n const { dictionaryKey } = req.params;\n const version = req.query.version;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionary = await dictionaryService.getDictionaryByKey(\n dictionaryKey,\n project.id\n );\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: [dictionary],\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n if (!dictionary.projectIds.map(String).includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'DICTIONARY_PROJECT_MISMATCH'\n );\n return;\n }\n\n const apiResult = mapDictionaryToAPI(dictionary, version);\n\n const responseData = formatResponse<DictionaryAPI>({\n data: apiResult,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AddDictionaryBody = { dictionary: DictionaryCreationData };\nexport type AddDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const addDictionary = async (\n req: Request<any, any, AddDictionaryBody>,\n res: ResponseWithSession<AddDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n const dictionaryData = req.body.dictionary;\n\n if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (!dictionaryData.projectIds?.includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_PROJECT_MISMATCH');\n return;\n }\n\n const dictionary: DictionaryData = {\n key: dictionaryData.key,\n title: dictionaryData.title,\n description: dictionaryData.description,\n content: new Map([\n ['v1', { content: dictionaryData.content ?? ({} as ContentNode) }],\n ]),\n creatorId: user.id,\n projectIds: dictionaryData.projectIds ?? [String(project.id)],\n };\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const newDictionary = await dictionaryService.createDictionary(dictionary);\n\n const apiResult = mapDictionaryToAPI(newDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary created successfully',\n fr: 'Dictionnaire créé avec succès',\n es: 'Diccionario creado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been created successfully',\n fr: 'Votre dictionnaire a été créé avec succès',\n es: 'Su diccionario ha sido creado con éxito',\n }),\n data: apiResult,\n });\n\n res.json(responseData);\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: mapDictionaryToAPI(newDictionary),\n status: 'ADDED',\n },\n ]);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type PushDictionariesBody = {\n dictionaries: LocalDictionary[];\n};\ntype PushDictionariesResultData = {\n newDictionaries: string[];\n updatedDictionaries: string[];\n error: { dictionaryId: string; message: string }[];\n};\nexport type PushDictionariesResult = ResponseData<PushDictionariesResultData>;\n\n/**\n * Check each dictionaries, add the new ones and update the existing ones.\n * @param req - Express request object.\n * @param res - Express response object.\n * @returns Response containing the created dictionary.\n */\nexport const pushDictionaries = async (\n req: Request<any, any, PushDictionariesBody>,\n res: ResponseWithSession<PushDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n const dictionaryData = req.body.dictionaries;\n const dictionariesKeys = dictionaryData.map((dictionary) => dictionary.key);\n\n if (\n typeof dictionaryData === 'object' &&\n Array.isArray(dictionaryData) &&\n dictionaryData.length === 0\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARIES_NOT_PROVIDED');\n return;\n } else if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const { existingDictionariesKey, newDictionariesKey } =\n await dictionaryService.getExistingDictionaryKey(\n dictionariesKeys,\n project.id\n );\n\n const existingDictionaries = dictionaryData.filter((dictionary) =>\n existingDictionariesKey.includes(dictionary.key)\n );\n const newDictionaries = dictionaryData.filter((dictionary) =>\n newDictionariesKey.includes(dictionary.key)\n );\n\n const newDictionariesResult: DictionaryAPI[] = [];\n const updatedDictionariesResult: DictionaryAPI[] = [];\n const errorResult: PushDictionariesResultData['error'] = [];\n\n for (const dictionaryDataEl of newDictionaries) {\n const dictionary: DictionaryData = {\n title: dictionaryDataEl.title,\n description: dictionaryDataEl.description,\n projectIds: [String(project.id)],\n creatorId: user.id,\n content: new Map([\n ['v1', { content: dictionaryDataEl.content ?? ({} as ContentNode) }],\n ]),\n key: dictionaryDataEl.key,\n };\n\n try {\n const newDictionary =\n await dictionaryService.createDictionary(dictionary);\n newDictionariesResult.push(mapDictionaryToAPI(newDictionary));\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n }\n\n if (existingDictionariesKey.length >= 0) {\n const existingDictionariesDB =\n await dictionaryService.getDictionariesByKeys(\n existingDictionariesKey,\n project.id\n );\n\n for (const dictionaryDataEl of existingDictionaries) {\n const existingDictionaryDB = existingDictionariesDB.find(\n (dictionaryDB) => dictionaryDB.key === dictionaryDataEl.key\n )!;\n\n const versionList = [...(existingDictionaryDB.content.keys() ?? [])];\n const lastVersion = versionList[versionList.length - 1];\n\n const lastContent =\n (existingDictionaryDB.content.get(lastVersion)\n ?.content as DictionaryAPI['content']) ?? null;\n\n const isSameContent =\n JSON.stringify(lastContent) ===\n JSON.stringify(dictionaryDataEl.content);\n\n let newContent: VersionedContent = existingDictionaryDB.content;\n\n if (!isSameContent) {\n const newContentVersion =\n dictionaryService.incrementVersion(existingDictionaryDB);\n\n existingDictionaryDB.content.set(newContentVersion, {\n content: dictionaryDataEl.content ?? ({} as ContentNode),\n });\n\n newContent = existingDictionaryDB.content;\n }\n\n const dictionary: DictionaryData = {\n ...ensureMongoDocumentToObject(existingDictionaryDB),\n ...dictionaryDataEl,\n content: newContent,\n projectIds: [String(project.id)],\n creatorId: user.id,\n key: dictionaryDataEl.key,\n };\n\n try {\n const updatedDictionary =\n await dictionaryService.updateDictionaryByKey(\n dictionaryDataEl.key,\n dictionary,\n project.id\n );\n updatedDictionariesResult.push(mapDictionaryToAPI(updatedDictionary));\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n }\n }\n\n const result: PushDictionariesResultData = {\n newDictionaries: newDictionariesResult.map(\n (dictionary) => dictionary.key\n ),\n updatedDictionaries: updatedDictionariesResult.map(\n (dictionary) => dictionary.key\n ),\n error: errorResult,\n };\n\n const responseData = formatResponse<PushDictionariesResultData>({\n message: t({\n en: 'Dictionaries updated successfully',\n fr: 'Dictionnaires mis à jour avec succès',\n es: 'Diccionarios actualizados con éxito',\n }),\n description: t({\n en: 'Your dictionaries have been updated successfully',\n fr: 'Vos dictionnaires ont été mis à jour avec succès',\n es: 'Sus diccionarios han sido actualizados con éxito',\n }),\n data: result,\n });\n\n eventListener.sendDictionaryUpdate([\n ...newDictionariesResult.map(\n (dictionary) =>\n ({\n dictionary,\n status: 'ADDED',\n }) as eventListener.SendDictionaryUpdateArg\n ),\n ...updatedDictionariesResult.map(\n (dictionary) =>\n ({\n dictionary,\n status: 'UPDATED',\n }) as eventListener.SendDictionaryUpdateArg\n ),\n ]);\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type UpdateDictionaryParam = { dictionaryId: string };\nexport type UpdateDictionaryBody = Partial<Dictionary>;\nexport type UpdateDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Updates an existing dictionary in the database.\n */\nexport const updateDictionary = async (\n req: Request<UpdateDictionaryParam, any, UpdateDictionaryBody>,\n res: ResponseWithSession<UpdateDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { dictionaryId } = req.params;\n const { project, roles } = res.locals;\n const dictionaryData = req.body;\n\n if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!dictionaryData.projectIds?.includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_PROJECT_MISMATCH');\n return;\n }\n\n if (typeof dictionaryId === 'undefined') {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_ID_NOT_FOUND');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const updatedDictionary = await dictionaryService.updateDictionaryById(\n dictionaryId,\n dictionaryData\n );\n\n const apiResult = mapDictionaryToAPI(updatedDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary updated successfully',\n fr: 'Dictionnaire mis à jour avec succès',\n es: 'Diccionario actualizado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been updated successfully',\n fr: 'Votre dictionnaire a été mis à jour avec succès',\n es: 'Su diccionario ha sido actualizado con éxito',\n }),\n data: apiResult,\n });\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: apiResult,\n status: 'UPDATED',\n },\n ]);\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type DeleteDictionaryParam = { dictionaryId: string };\nexport type DeleteDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Deletes a dictionary from the database by its ID.\n */\nexport const deleteDictionary = async (\n req: Request<DeleteDictionaryParam>,\n res: ResponseWithSession<DeleteDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, roles } = res.locals;\n const { dictionaryId } = req.params as Partial<DeleteDictionaryParam>;\n\n if (!dictionaryId) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_ID_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:admin')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const dictionaryToDelete =\n await dictionaryService.getDictionaryById(dictionaryId);\n\n if (!dictionaryToDelete.projectIds.includes(project.id)) {\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'DICTIONARY_PROJECT_MISMATCH'\n );\n return;\n }\n\n const deletedDictionary =\n await dictionaryService.deleteDictionaryById(dictionaryId);\n\n if (!deletedDictionary) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_NOT_FOUND', {\n dictionaryId,\n });\n return;\n }\n\n logger.info(`Dictionary deleted: ${String(deletedDictionary.id)}`);\n\n const apiResult = mapDictionaryToAPI(deletedDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary deleted successfully',\n fr: 'Dictionnaire supprimé avec succès',\n es: 'Diccionario eliminado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been deleted successfully',\n fr: 'Votre dictionnaire a été supprimé avec succès',\n es: 'Su diccionario ha sido eliminado con éxito',\n }),\n data: apiResult,\n });\n\n res.json(responseData);\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: apiResult,\n status: 'DELETED',\n },\n ]);\n\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dictionary.controller.cjs","names":["clone: T","getDictionaryFiltersAndPagination","hasPermission","formatPaginatedResponse","mapDictionaryToAPI","formatResponse","dictionary: DictionaryData","newDictionariesResult: PushDictionariesResultData['newDictionaries']","updatedDictionariesResult: PushDictionariesResultData['updatedDictionaries']","errorResult: PushDictionariesResultData['error']","newContent: VersionedContent","ensureMongoDocumentToObject","result: PushDictionariesResultData"],"sources":["../../../src/controllers/dictionary.controller.ts"],"sourcesContent":["import { isDeepStrictEqual } from 'node:util';\nimport * as eventListener from '@controllers/eventListener.controller';\nimport type {\n ContentNode,\n DictionaryId,\n Dictionary as LocalDictionary,\n LocalDictionaryId,\n} from '@intlayer/types';\nimport { logger } from '@logger';\nimport type { ResponseWithSession } from '@middlewares/sessionAuth.middleware';\nimport * as dictionaryService from '@services/dictionary.service';\nimport { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { type AppError, ErrorHandler } from '@utils/errors';\nimport {\n type DictionaryFiltersParams,\n getDictionaryFiltersAndPagination,\n} from '@utils/filtersAndPagination/getDictionaryFiltersAndPagination';\nimport type { FiltersAndPagination } from '@utils/filtersAndPagination/getFiltersAndPaginationFromBody';\nimport { mapDictionaryToAPI } from '@utils/mapper/dictionary';\nimport { hasPermission } from '@utils/permissions';\nimport {\n formatPaginatedResponse,\n formatResponse,\n type PaginatedResponse,\n type ResponseData,\n} from '@utils/responseData';\nimport type { NextFunction, Request } from 'express';\nimport { t } from 'express-intlayer';\nimport type {\n Dictionary,\n DictionaryAPI,\n DictionaryCreationData,\n DictionaryData,\n VersionedContent,\n} from '@/types/dictionary.types';\n\nexport type GetDictionariesParams =\n FiltersAndPagination<DictionaryFiltersParams>;\nexport type GetDictionariesResult = PaginatedResponse<DictionaryAPI>;\n\nconst removeMetadata = <T extends Record<string, any>>(obj: T): T => {\n if (Array.isArray(obj)) {\n return obj.map(removeMetadata) as unknown as T;\n }\n\n if (obj && typeof obj === 'object') {\n const clone: T = {} as T;\n for (const key in obj) {\n if (key !== 'metadata') {\n clone[key] = removeMetadata(obj[key]);\n }\n }\n return clone as T;\n }\n\n return obj as T;\n};\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const getDictionaries = async (\n req: Request<GetDictionariesParams>,\n res: ResponseWithSession<GetDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n const { user, project, roles } = res.locals;\n const { filters, sortOptions, pageSize, skip, page, getNumberOfPages } =\n getDictionaryFiltersAndPagination(req, res);\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries(\n {\n ...filters,\n projectIds: project.id,\n },\n skip,\n pageSize,\n sortOptions\n );\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const totalItems = await dictionaryService.countDictionaries(filters);\n\n const dictionariesAPI = dictionaries.map((el) => mapDictionaryToAPI(el));\n\n const responseData = formatPaginatedResponse<DictionaryAPI>({\n data: dictionariesAPI,\n page,\n pageSize,\n totalPages: getNumberOfPages(totalItems),\n totalItems,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionariesKeysResult = ResponseData<string[]>;\n\n/**\n * Retrieves a list of dictionaries keys based on filters and pagination.\n */\nexport const getDictionariesKeys = async (\n _req: Request,\n res: ResponseWithSession<GetDictionariesKeysResult>,\n _next: NextFunction\n) => {\n const { project, roles } = res.locals;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries({\n projectIds: project.id,\n });\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const dictionariesKeys = dictionaries.map((dictionary) => dictionary.key);\n\n const responseData = formatResponse<string[]>({\n data: dictionariesKeys,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionariesUpdateTimestampResult = ResponseData<\n Record<DictionaryId, { key: string; updatedAt: number }>\n>;\n\n/**\n * Retrieves a list of dictionaries keys based on filters and pagination.\n */\nexport const getDictionariesUpdateTimestamp = async (\n _req: Request,\n res: ResponseWithSession<GetDictionariesUpdateTimestampResult>,\n _next: NextFunction\n) => {\n const { project, roles } = res.locals;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionaries = await dictionaryService.findDictionaries({\n projectIds: project.id,\n });\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: dictionaries,\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n const dictionariesUpdateTimestamp = dictionaries.reduce(\n (acc, dictionary) => ({\n ...acc,\n [dictionary.id]: {\n key: dictionary.key,\n updatedAt: new Date(dictionary.updatedAt).getTime(),\n },\n }),\n {}\n );\n\n const responseData = formatResponse<\n Record<string, { key: string; updatedAt: number }>\n >({\n data: dictionariesUpdateTimestamp,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type GetDictionaryParams = { dictionaryKey: string };\nexport type GetDictionaryQuery = { version?: string };\nexport type GetDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Retrieves a list of dictionaries based on filters and pagination.\n */\nexport const getDictionaryByKey = async (\n req: Request<GetDictionaryParams, any, any, GetDictionaryQuery>,\n res: ResponseWithSession<GetDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n const { dictionaryKey } = req.params;\n const version = req.query.version;\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n try {\n const dictionary = await dictionaryService.getDictionaryByKey(\n dictionaryKey,\n project.id\n );\n\n if (\n !hasPermission(\n roles,\n 'dictionary:read'\n )({\n ...res.locals,\n targetDictionaries: [dictionary],\n })\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n if (!dictionary.projectIds.map(String).includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'DICTIONARY_PROJECT_MISMATCH'\n );\n return;\n }\n\n const apiResult = mapDictionaryToAPI(dictionary, version);\n\n const responseData = formatResponse<DictionaryAPI>({\n data: apiResult,\n });\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type AddDictionaryBody = { dictionary: DictionaryCreationData };\nexport type AddDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Adds a new dictionary to the database.\n */\nexport const addDictionary = async (\n req: Request<any, any, AddDictionaryBody>,\n res: ResponseWithSession<AddDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n const dictionaryData = req.body.dictionary;\n\n if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (!dictionaryData.projectIds?.includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_PROJECT_MISMATCH');\n return;\n }\n\n const dictionary: DictionaryData = {\n key: dictionaryData.key,\n title: dictionaryData.title,\n description: dictionaryData.description,\n content: new Map([\n [\n 'v1',\n {\n // Remove metadata as markdown metadata are dynamic data inserted at build time\n content: removeMetadata(dictionaryData.content ?? {}) as ContentNode,\n },\n ],\n ]),\n creatorId: user.id,\n projectIds: dictionaryData.projectIds ?? [String(project.id)],\n };\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const newDictionary = await dictionaryService.createDictionary(dictionary);\n\n const apiResult = mapDictionaryToAPI(newDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary created successfully',\n fr: 'Dictionnaire créé avec succès',\n es: 'Diccionario creado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been created successfully',\n fr: 'Votre dictionnaire a été créé avec succès',\n es: 'Su diccionario ha sido creado con éxito',\n }),\n data: apiResult,\n });\n\n res.json(responseData);\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: mapDictionaryToAPI(newDictionary),\n status: 'ADDED',\n },\n ]);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type PushDictionariesBody = {\n dictionaries: LocalDictionary[];\n};\ntype PushDictionariesResultData = {\n newDictionaries: {\n key: string;\n localId: LocalDictionaryId;\n id: string | undefined;\n }[];\n updatedDictionaries: {\n key: string;\n localId: LocalDictionaryId;\n id: string | undefined;\n }[];\n error: {\n id: string | undefined;\n key: string;\n localId: LocalDictionaryId | undefined;\n message: string;\n }[];\n};\nexport type PushDictionariesResult = ResponseData<PushDictionariesResultData>;\n\n/**\n * Check each dictionaries, add the new ones and update the existing ones.\n * @param req - Express request object.\n * @param res - Express response object.\n * @returns Response containing the created dictionary.\n */\nexport const pushDictionaries = async (\n req: Request<any, any, PushDictionariesBody>,\n res: ResponseWithSession<PushDictionariesResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, user, roles } = res.locals;\n\n const dictionaryData = req.body.dictionaries;\n\n if (\n typeof dictionaryData === 'object' &&\n Array.isArray(dictionaryData) &&\n dictionaryData.length === 0\n ) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARIES_NOT_PROVIDED');\n return;\n } else if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!user) {\n ErrorHandler.handleGenericErrorResponse(res, 'USER_NOT_DEFINED');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const existingDictionaries = dictionaryData.filter(\n (dictionary) => dictionary.id !== undefined\n );\n const newDictionaries = dictionaryData.filter(\n (dictionary) => dictionary.id === undefined\n );\n\n const newDictionariesResult: PushDictionariesResultData['newDictionaries'] =\n [];\n const updatedDictionariesResult: PushDictionariesResultData['updatedDictionaries'] =\n [];\n const errorResult: PushDictionariesResultData['error'] = [];\n\n for (const dictionaryDataEl of newDictionaries) {\n const dictionary: DictionaryData = {\n title: dictionaryDataEl.title,\n description: dictionaryDataEl.description,\n projectIds: [String(project.id)],\n creatorId: user.id,\n content: new Map([\n // Remove metadata as markdown metadata are dynamic data inserted at build time\n\n [\n 'v1',\n {\n content:\n removeMetadata(dictionaryDataEl.content) ?? ({} as ContentNode),\n },\n ],\n ]),\n key: dictionaryDataEl.key,\n };\n\n try {\n const newDictionary =\n await dictionaryService.createDictionary(dictionary);\n newDictionariesResult.push({\n key: newDictionary.key,\n localId: dictionaryDataEl.localId!,\n id: newDictionary.id,\n });\n } catch (error) {\n errorResult.push({\n id: dictionaryDataEl.id!,\n key: dictionaryDataEl.key,\n localId: dictionaryDataEl.localId!,\n message: (error as AppError).message,\n });\n }\n }\n\n for (const dictionaryDataEl of existingDictionaries) {\n const remoteDictionary = await dictionaryService.getDictionaryById(\n dictionaryDataEl.id!\n );\n\n // Remove metadata as markdown metadata are dynamic data inserted at build time\n const cleanedContent = removeMetadata(dictionaryDataEl.content);\n\n const versionList = [...(remoteDictionary.content.keys() ?? [])];\n const lastVersion = versionList[versionList.length - 1];\n\n const lastContent =\n (remoteDictionary.content.get(lastVersion)\n ?.content as DictionaryAPI['content']) ?? null;\n\n const isSameContent = isDeepStrictEqual(lastContent, cleanedContent);\n\n const newContent: VersionedContent = new Map(remoteDictionary.content);\n\n if (!isSameContent) {\n const newContentVersion =\n dictionaryService.incrementVersion(remoteDictionary);\n\n newContent.set(newContentVersion, {\n // Remove metadata as markdown metadata are dynamic data inserted at build time\n content: cleanedContent,\n });\n }\n\n const dictionary: DictionaryData = {\n ...ensureMongoDocumentToObject(remoteDictionary),\n ...dictionaryDataEl,\n content: newContent,\n projectIds: [String(project.id)],\n creatorId: user.id,\n key: remoteDictionary.key,\n };\n\n try {\n const updatedDictionary = await dictionaryService.updateDictionaryByKey(\n remoteDictionary.key,\n dictionary,\n project.id\n );\n updatedDictionariesResult.push({\n key: updatedDictionary.key,\n localId: dictionaryDataEl.localId!,\n id: updatedDictionary.id,\n });\n } catch (error) {\n errorResult.push({\n id: dictionaryDataEl.id!,\n key: dictionaryDataEl.key,\n localId: dictionaryDataEl.localId!,\n message: (error as AppError).message,\n });\n }\n }\n\n const result: PushDictionariesResultData = {\n newDictionaries: newDictionariesResult,\n updatedDictionaries: updatedDictionariesResult,\n error: errorResult,\n };\n\n const responseData = formatResponse<PushDictionariesResultData>({\n message: t({\n en: 'Dictionaries updated successfully',\n fr: 'Dictionnaires mis à jour avec succès',\n es: 'Diccionarios actualizados con éxito',\n }),\n description: t({\n en: 'Your dictionaries have been updated successfully',\n fr: 'Vos dictionnaires ont été mis à jour avec succès',\n es: 'Sus diccionarios han sido actualizados con éxito',\n }),\n data: result,\n });\n\n eventListener.sendDictionaryUpdate([\n ...newDictionariesResult.map(\n (dictionary) =>\n ({\n dictionary,\n status: 'ADDED',\n }) as eventListener.SendDictionaryUpdateArg\n ),\n ...updatedDictionariesResult.map(\n (dictionary) =>\n ({\n dictionary,\n status: 'UPDATED',\n }) as eventListener.SendDictionaryUpdateArg\n ),\n ]);\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type UpdateDictionaryParam = { dictionaryId: string };\nexport type UpdateDictionaryBody = Partial<Dictionary>;\nexport type UpdateDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Updates an existing dictionary in the database.\n */\nexport const updateDictionary = async (\n req: Request<UpdateDictionaryParam, any, UpdateDictionaryBody>,\n res: ResponseWithSession<UpdateDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { dictionaryId } = req.params;\n const { project, roles } = res.locals;\n const dictionaryData = req.body;\n\n if (!dictionaryData) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_DATA_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!dictionaryData.projectIds?.includes(String(project.id))) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_PROJECT_MISMATCH');\n return;\n }\n\n if (typeof dictionaryId === 'undefined') {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_ID_NOT_FOUND');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:write')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const updatedDictionary = await dictionaryService.updateDictionaryById(\n dictionaryId,\n dictionaryData\n );\n\n const apiResult = mapDictionaryToAPI(updatedDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary updated successfully',\n fr: 'Dictionnaire mis à jour avec succès',\n es: 'Diccionario actualizado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been updated successfully',\n fr: 'Votre dictionnaire a été mis à jour avec succès',\n es: 'Su diccionario ha sido actualizado con éxito',\n }),\n data: apiResult,\n });\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: apiResult,\n status: 'UPDATED',\n },\n ]);\n\n res.json(responseData);\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n\nexport type DeleteDictionaryParam = { dictionaryId: string };\nexport type DeleteDictionaryResult = ResponseData<DictionaryAPI>;\n\n/**\n * Deletes a dictionary from the database by its ID.\n */\nexport const deleteDictionary = async (\n req: Request<DeleteDictionaryParam>,\n res: ResponseWithSession<DeleteDictionaryResult>,\n _next: NextFunction\n): Promise<void> => {\n const { project, roles } = res.locals;\n const { dictionaryId } = req.params as Partial<DeleteDictionaryParam>;\n\n if (!dictionaryId) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_ID_NOT_FOUND');\n return;\n }\n\n if (!project) {\n ErrorHandler.handleGenericErrorResponse(res, 'PROJECT_NOT_DEFINED');\n return;\n }\n\n if (!hasPermission(roles, 'dictionary:admin')(res.locals)) {\n ErrorHandler.handleGenericErrorResponse(res, 'PERMISSION_DENIED');\n return;\n }\n\n try {\n const dictionaryToDelete =\n await dictionaryService.getDictionaryById(dictionaryId);\n\n if (!dictionaryToDelete.projectIds.includes(project.id)) {\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'DICTIONARY_PROJECT_MISMATCH'\n );\n return;\n }\n\n const deletedDictionary =\n await dictionaryService.deleteDictionaryById(dictionaryId);\n\n if (!deletedDictionary) {\n ErrorHandler.handleGenericErrorResponse(res, 'DICTIONARY_NOT_FOUND', {\n dictionaryId,\n });\n return;\n }\n\n logger.info(`Dictionary deleted: ${String(deletedDictionary.id)}`);\n\n const apiResult = mapDictionaryToAPI(deletedDictionary);\n\n const responseData = formatResponse<DictionaryAPI>({\n message: t({\n en: 'Dictionary deleted successfully',\n fr: 'Dictionnaire supprimé avec succès',\n es: 'Diccionario eliminado con éxito',\n }),\n description: t({\n en: 'Your dictionary has been deleted successfully',\n fr: 'Votre dictionnaire a été supprimé avec succès',\n es: 'Su diccionario ha sido eliminado con éxito',\n }),\n data: apiResult,\n });\n\n res.json(responseData);\n\n eventListener.sendDictionaryUpdate([\n {\n dictionary: apiResult,\n status: 'DELETED',\n },\n ]);\n\n return;\n } catch (error) {\n ErrorHandler.handleAppErrorResponse(res, error as AppError);\n return;\n }\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __react_email_components = require("@react-email/components");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
|
|
5
|
+
//#region src/emails/MagicLinkEmail.tsx
|
|
6
|
+
const MagicLinkEmailEN = ({ username, magicLink }) => {
|
|
7
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
|
|
8
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
|
|
9
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: `Sign in to Intlayer` }),
|
|
10
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
|
|
11
|
+
className: "m-auto px-2 font-sans",
|
|
12
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
|
|
13
|
+
className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
16
|
+
className: "mt-[32px]",
|
|
17
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
|
|
18
|
+
src: "https://intlayer.org/apple-touch-icon.png",
|
|
19
|
+
width: "40",
|
|
20
|
+
height: "37",
|
|
21
|
+
alt: "Intlayer",
|
|
22
|
+
className: "mx-auto my-0"
|
|
23
|
+
})
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
|
|
26
|
+
className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
|
|
27
|
+
children: ["Sign in to ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })]
|
|
28
|
+
}),
|
|
29
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
30
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
31
|
+
children: [
|
|
32
|
+
"Hello ",
|
|
33
|
+
username,
|
|
34
|
+
","
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
38
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
39
|
+
children: [
|
|
40
|
+
"Click the button below to sign in to your",
|
|
41
|
+
" ",
|
|
42
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
|
|
43
|
+
" account. This link will expire in 10 minutes."
|
|
44
|
+
]
|
|
45
|
+
}),
|
|
46
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
47
|
+
className: "my-[32px] text-center",
|
|
48
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
|
|
49
|
+
className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
|
|
50
|
+
href: magicLink,
|
|
51
|
+
children: "Sign In"
|
|
52
|
+
})
|
|
53
|
+
}),
|
|
54
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Text, {
|
|
55
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
56
|
+
children: "or copy and paste this URL into your browser:"
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
|
|
59
|
+
href: magicLink,
|
|
60
|
+
className: "text-[#8a8a8a] text-[10px] no-underline",
|
|
61
|
+
children: magicLink
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
|
|
64
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
65
|
+
className: "text-[#666666] text-[12px] leading-[24px]",
|
|
66
|
+
children: [
|
|
67
|
+
"This sign-in link was intended for",
|
|
68
|
+
" ",
|
|
69
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
70
|
+
className: "text-black",
|
|
71
|
+
children: username
|
|
72
|
+
}),
|
|
73
|
+
". If you did not request this link, you can safely ignore this email. If you are concerned about your account's safety, please reply to this email to get in touch with us."
|
|
74
|
+
]
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
}) })
|
|
79
|
+
] });
|
|
80
|
+
};
|
|
81
|
+
const MagicLinkEmailFR = ({ username, magicLink }) => {
|
|
82
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
|
|
83
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
|
|
84
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: `Connectez-vous à Intlayer` }),
|
|
85
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
|
|
86
|
+
className: "m-auto px-2 font-sans",
|
|
87
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
|
|
88
|
+
className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
91
|
+
className: "mt-[32px]",
|
|
92
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
|
|
93
|
+
src: "https://intlayer.org/apple-touch-icon.png",
|
|
94
|
+
width: "40",
|
|
95
|
+
height: "37",
|
|
96
|
+
alt: "Intlayer",
|
|
97
|
+
className: "mx-auto my-0"
|
|
98
|
+
})
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
|
|
101
|
+
className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
|
|
102
|
+
children: ["Connectez-vous à ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })]
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
105
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
106
|
+
children: [
|
|
107
|
+
"Bonjour ",
|
|
108
|
+
username,
|
|
109
|
+
","
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
113
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
114
|
+
children: [
|
|
115
|
+
"Cliquez sur le bouton ci-dessous pour vous connecter à votre compte ",
|
|
116
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
|
|
117
|
+
". Ce lien expirera dans 10 minutes."
|
|
118
|
+
]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
121
|
+
className: "my-[32px] text-center",
|
|
122
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
|
|
123
|
+
className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
|
|
124
|
+
href: magicLink,
|
|
125
|
+
children: "Se connecter"
|
|
126
|
+
})
|
|
127
|
+
}),
|
|
128
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Text, {
|
|
129
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
130
|
+
children: "ou copiez et collez cette URL dans votre navigateur :"
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
|
|
133
|
+
href: magicLink,
|
|
134
|
+
className: "text-[#8a8a8a] text-[10px] no-underline",
|
|
135
|
+
children: magicLink
|
|
136
|
+
}),
|
|
137
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
|
|
138
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
139
|
+
className: "text-[#666666] text-[12px] leading-[24px]",
|
|
140
|
+
children: [
|
|
141
|
+
"Ce lien de connexion était destiné à",
|
|
142
|
+
" ",
|
|
143
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
144
|
+
className: "text-black",
|
|
145
|
+
children: username
|
|
146
|
+
}),
|
|
147
|
+
". Si vous n'avez pas demandé ce lien, vous pouvez ignorer cet email en toute sécurité. Si vous êtes préoccupé par la sécurité de votre compte, veuillez répondre à cet email pour nous contacter."
|
|
148
|
+
]
|
|
149
|
+
})
|
|
150
|
+
]
|
|
151
|
+
})
|
|
152
|
+
}) })
|
|
153
|
+
] });
|
|
154
|
+
};
|
|
155
|
+
const MagicLinkEmailES = ({ username, magicLink }) => {
|
|
156
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Html, { children: [
|
|
157
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Head, {}),
|
|
158
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Preview, { children: `Inicia sesión en Intlayer` }),
|
|
159
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Tailwind, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Body, {
|
|
160
|
+
className: "m-auto px-2 font-sans",
|
|
161
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Container, {
|
|
162
|
+
className: "mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]",
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
165
|
+
className: "mt-[32px]",
|
|
166
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Img, {
|
|
167
|
+
src: "https://intlayer.org/apple-touch-icon.png",
|
|
168
|
+
width: "40",
|
|
169
|
+
height: "37",
|
|
170
|
+
alt: "Intlayer",
|
|
171
|
+
className: "mx-auto my-0"
|
|
172
|
+
})
|
|
173
|
+
}),
|
|
174
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Heading, {
|
|
175
|
+
className: "mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black",
|
|
176
|
+
children: ["Inicia sesión en ", /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" })]
|
|
177
|
+
}),
|
|
178
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
179
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
180
|
+
children: [
|
|
181
|
+
"Hola ",
|
|
182
|
+
username,
|
|
183
|
+
","
|
|
184
|
+
]
|
|
185
|
+
}),
|
|
186
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
187
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
188
|
+
children: [
|
|
189
|
+
"Haz clic en el botón de abajo para iniciar sesión en tu cuenta de",
|
|
190
|
+
" ",
|
|
191
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: "Intlayer" }),
|
|
192
|
+
". Este enlace expirará en 10 minutos."
|
|
193
|
+
]
|
|
194
|
+
}),
|
|
195
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Section, {
|
|
196
|
+
className: "my-[32px] text-center",
|
|
197
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Button, {
|
|
198
|
+
className: "rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline",
|
|
199
|
+
href: magicLink,
|
|
200
|
+
children: "Iniciar Sesión"
|
|
201
|
+
})
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Text, {
|
|
204
|
+
className: "text-[14px] text-black leading-[24px]",
|
|
205
|
+
children: "o copia y pega esta URL en tu navegador:"
|
|
206
|
+
}),
|
|
207
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Link, {
|
|
208
|
+
href: magicLink,
|
|
209
|
+
className: "text-[#8a8a8a] text-[10px] no-underline",
|
|
210
|
+
children: magicLink
|
|
211
|
+
}),
|
|
212
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__react_email_components.Hr, { className: "mx-0 my-[26px] w-full border border-[#eaeaea] border-solid" }),
|
|
213
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__react_email_components.Text, {
|
|
214
|
+
className: "text-[#666666] text-[12px] leading-[24px]",
|
|
215
|
+
children: [
|
|
216
|
+
"Este enlace de inicio de sesión estaba destinado a",
|
|
217
|
+
" ",
|
|
218
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
219
|
+
className: "text-black",
|
|
220
|
+
children: username
|
|
221
|
+
}),
|
|
222
|
+
". Si no solicitaste este enlace, puedes ignorar este correo de forma segura. Si estás preocupado por la seguridad de tu cuenta, por favor responde a este correo para ponerte en contacto con nosotros."
|
|
223
|
+
]
|
|
224
|
+
})
|
|
225
|
+
]
|
|
226
|
+
})
|
|
227
|
+
}) })
|
|
228
|
+
] });
|
|
229
|
+
};
|
|
230
|
+
const PreviewProps = {
|
|
231
|
+
username: "alanturing",
|
|
232
|
+
magicLink: "https://intlayer.org/auth/magic-link/verify?token=foo"
|
|
233
|
+
};
|
|
234
|
+
MagicLinkEmailEN.PreviewProps = PreviewProps;
|
|
235
|
+
MagicLinkEmailFR.PreviewProps = PreviewProps;
|
|
236
|
+
MagicLinkEmailES.PreviewProps = PreviewProps;
|
|
237
|
+
|
|
238
|
+
//#endregion
|
|
239
|
+
exports.MagicLinkEmailEN = MagicLinkEmailEN;
|
|
240
|
+
exports.MagicLinkEmailES = MagicLinkEmailES;
|
|
241
|
+
exports.MagicLinkEmailFR = MagicLinkEmailFR;
|
|
242
|
+
//# sourceMappingURL=MagicLinkEmail.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MagicLinkEmail.cjs","names":["Html","Head","Preview","Tailwind","Body","Container","Section","Img","Heading","Text","Button","Link","Hr","PreviewProps: MagicLinkEmailProps"],"sources":["../../../src/emails/MagicLinkEmail.tsx"],"sourcesContent":["import {\n Body,\n Button,\n Container,\n Head,\n Heading,\n Hr,\n Html,\n Img,\n Link,\n Preview,\n Section,\n Tailwind,\n Text,\n} from '@react-email/components';\n\nexport type MagicLinkEmailProps = {\n username: string;\n magicLink: string;\n};\n\nexport const MagicLinkEmailEN = ({\n username,\n magicLink,\n}: MagicLinkEmailProps) => {\n const previewText = `Sign in to Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Sign in to <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Hello {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Click the button below to sign in to your{' '}\n <strong>Intlayer</strong> account. This link will expire in 10\n minutes.\n </Text>\n\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={magicLink}\n >\n Sign In\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n or copy and paste this URL into your browser:\n </Text>\n <Link\n href={magicLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {magicLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n This sign-in link was intended for{' '}\n <span className=\"text-black\">{username}</span>. If you did not\n request this link, you can safely ignore this email. If you are\n concerned about your account's safety, please reply to this email\n to get in touch with us.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nexport const MagicLinkEmailFR = ({\n username,\n magicLink,\n}: MagicLinkEmailProps) => {\n const previewText = `Connectez-vous à Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Connectez-vous à <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Bonjour {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Cliquez sur le bouton ci-dessous pour vous connecter à votre\n compte <strong>Intlayer</strong>. Ce lien expirera dans 10\n minutes.\n </Text>\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={magicLink}\n >\n Se connecter\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n ou copiez et collez cette URL dans votre navigateur :\n </Text>\n <Link\n href={magicLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {magicLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n Ce lien de connexion était destiné à{' '}\n <span className=\"text-black\">{username}</span>. Si vous n'avez pas\n demandé ce lien, vous pouvez ignorer cet email en toute sécurité.\n Si vous êtes préoccupé par la sécurité de votre compte, veuillez\n répondre à cet email pour nous contacter.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nexport const MagicLinkEmailES = ({\n username,\n magicLink,\n}: MagicLinkEmailProps) => {\n const previewText = `Inicia sesión en Intlayer`;\n\n return (\n <Html>\n <Head />\n <Preview>{previewText}</Preview>\n <Tailwind>\n <Body className=\"m-auto px-2 font-sans\">\n <Container className=\"mx-auto my-[40px] max-w-[465px] rounded-xl border border-[#eaeaea] border-solid bg-white p-[20px]\">\n <Section className=\"mt-[32px]\">\n <Img\n src=\"https://intlayer.org/apple-touch-icon.png\"\n width=\"40\"\n height=\"37\"\n alt=\"Intlayer\"\n className=\"mx-auto my-0\"\n />\n </Section>\n <Heading className=\"mx-0 my-[30px] p-0 text-center font-normal text-[24px] text-black\">\n Inicia sesión en <strong>Intlayer</strong>\n </Heading>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Hola {username},\n </Text>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n Haz clic en el botón de abajo para iniciar sesión en tu cuenta de{' '}\n <strong>Intlayer</strong>. Este enlace expirará en 10 minutos.\n </Text>\n <Section className=\"my-[32px] text-center\">\n <Button\n className=\"rounded-md bg-[#000000] px-5 py-3 text-center font-semibold text-[12px] text-white no-underline\"\n href={magicLink}\n >\n Iniciar Sesión\n </Button>\n </Section>\n <Text className=\"text-[14px] text-black leading-[24px]\">\n o copia y pega esta URL en tu navegador:\n </Text>\n <Link\n href={magicLink}\n className=\"text-[#8a8a8a] text-[10px] no-underline\"\n >\n {magicLink}\n </Link>\n <Hr className=\"mx-0 my-[26px] w-full border border-[#eaeaea] border-solid\" />\n <Text className=\"text-[#666666] text-[12px] leading-[24px]\">\n Este enlace de inicio de sesión estaba destinado a{' '}\n <span className=\"text-black\">{username}</span>. Si no solicitaste\n este enlace, puedes ignorar este correo de forma segura. Si estás\n preocupado por la seguridad de tu cuenta, por favor responde a\n este correo para ponerte en contacto con nosotros.\n </Text>\n </Container>\n </Body>\n </Tailwind>\n </Html>\n );\n};\n\nconst PreviewProps: MagicLinkEmailProps = {\n username: 'alanturing',\n magicLink: 'https://intlayer.org/auth/magic-link/verify?token=foo',\n};\n\nMagicLinkEmailEN.PreviewProps = PreviewProps;\nMagicLinkEmailFR.PreviewProps = PreviewProps;\nMagicLinkEmailES.PreviewProps = PreviewProps;\n"],"mappings":"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"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -64,7 +64,7 @@ const startServer = async () => {
|
|
|
64
64
|
}));
|
|
65
65
|
});
|
|
66
66
|
const auth = require_utils_auth_getAuth.getAuth(dbClient);
|
|
67
|
-
app.all("/api/auth/{*
|
|
67
|
+
app.all("/api/auth/{*rest}", (0, better_auth_node.toNodeHandler)(auth));
|
|
68
68
|
app.use(/(.*)/, require_middlewares_sessionAuth_middleware.authMiddleware(auth));
|
|
69
69
|
app.use(/(.*)/, require_middlewares_oAuth2_middleware.attachOAuthInstance);
|
|
70
70
|
app.post("/oauth2/token", require_controllers_oAuth2_controller.getOAuth2AccessToken);
|