{"_id":"@a-mehrabi/aranode-amqp-client","_rev":"1-a7e2ba11540a1d257b4f952151ff78ac","name":"@a-mehrabi/aranode-amqp-client","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a-mehrabi/aranode-amqp-client","version":"1.0.0","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"scripts":{"build":"tsc --build","build:prod":"tsc --build","test":"jest lib/*","test:integration":"jest tests/*","release":"semantic-release"},"dependencies":{"@a-mehrabi/aranode-types":"workspace:*","amqplib":"^0.8.0","class-validator":"^0.13.1"},"devDependencies":{"@types/amqplib":"^0.8.2","@types/jest":"^26.0.23","@types/rewire":"^2.5.28","jest":"^26.6.3","jest-junit":"^12.0.0","jest-mock-extended":"^1.0.14","semantic-release":"^18.0.1","semantic-release-monorepo":"^7.0.5","ts-jest":"^26.5.6","typescript":"^4.2.4"},"aranode":{"version":"^0.5.0-beta"},"gitHead":"e88a63821bb3f25a024cd786b7eb6198166bd825","description":"xml parser implementation for aranode flow engine.","_id":"@a-mehrabi/aranode-amqp-client@1.0.0","_nodeVersion":"16.13.1","_npmVersion":"8.1.2","dist":{"integrity":"sha512-Rw5/evdFrsOQXDmIdKp90bNVDpqlqH/l68GxXhh+xzIIw61SH3i5OOFhl4E9D8kI1ORC5SWleUJSS7/dDWvjBg==","shasum":"03d1aad9b233364ea76a218336ed6651e2ac1848","tarball":"https://registry.npmjs.org/@a-mehrabi/aranode-amqp-client/-/aranode-amqp-client-1.0.0.tgz","fileCount":53,"unpackedSize":36703,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzGMJCRA9TVsSAnZWagAAcs4P/2iXtVYYqF9aqBsvyNMc\nmrWcUyRUnSqApqdwqbpXeQ02GAtgjqNPKjdOBp2YwPrr4dXC37/An9sfGHt/\noWCdb55Y+WKz2vCafu0MZwslQNvOSXx2wmUo1+9+dNNkR/GqQaCxj44hWLL5\n2z0FqtU/RgS+ItMVHc5n8ohia7bHMhzxA3RPw88HULKr/TdFYxc3uwZbPc/E\nz8PSya6R4kpJT0hA/BBNI+4SbV/v2dQohdhIDE+EVM7PvB2DhIMTBEn088DI\nKKzL2gkwTujfmmFBhmzLk0xX0Cq7oliM1JROmBXMunY1CCM9HqgEmYA8Xc8/\nZmW/E+oVs9KNx/BrvUHjMVXZ88XzGwFTHLODL3pWUMu32HL3d4qCZIaeu25q\no33zQER26ai12BaEox/LdhmvLvrox4R3/13A2QU8kBQCVhBOVrEG5tU9lnLb\nRipIyIQ8m46xlErblLyVVPq5bk7miIoCKh4kAHuaC/tMi/L1dphiRNesESA7\npcnNxsEalh4y0Wedm01eZZ/vXg4kMqdNazc8Ydu3tbYC5ot7B9sDBmBV8xbs\n8ObRZbNeufzu3wk3OJ54V07mv35U6VJ4bTXLCcrLH1FDKKSar3wa9SPlnbVI\noBrzu6VZyzOqGZxrwtK2VqZLDw9AtOZOYU7Ob+tfUgU8Y4fI4wOO8PVVNa/u\n31+5\r\n=ILg6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDgfKcqYF8gcnD4z9L6yrLb/JUWAWOAlq3LV67YxSXRAIgMVTYYTm0fYx+pChYRwxDYPt47LBCCJyjOLTLI36nfQI="}]},"_npmUser":{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"},"directories":{},"maintainers":[{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aranode-amqp-client_1.0.0_1640784649576_0.00048468657917988267"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-29T13:30:49.531Z","1.0.0":"2021-12-29T13:30:49.716Z","modified":"2022-04-04T10:52:22.914Z"},"maintainers":[{"name":"a-mehrabi","email":"a.mehrabi.ae@gmail.com"}],"description":"xml parser implementation for aranode flow engine.","readme":"# XML PARSER Module\n\nxml parser implementation for aranode flow engine.\n\n## Table of Contents\n\n- [XML PARSER Module](#xml-parser-module)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Usage](#usage)\n    - [xml encoder](#xml-encoder)\n    - [xml decoder](#xml-decoder)\n  - [API](#api)\n    - [xmlEncoder](#xmlencoder)\n    - [xmlDecoder](#xmldecoder)\n\n## Installation\n\nTo install this module in your aranode project,\nyou just need to add the package using following command:\n\n```bash\n$ yarn add @a-mehrabi/aranode-xml-parser\n```\n\nAfter that, when you want to use it,\nyou must include it in custom modules like the following:\n\n<sub><sup>path: .env</sub></sup>\n\n```env\nARANODE_CUSTOM_MODULES=@a-mehrabi/aranode-xml-parser\n```\n\n## Usage\n\nFor using xml encoder or decoder, you need to use encoder or decoder associated description:\n\n1. [xml encoder](#xml-encoder) flow description ([xmlEncoder](#xmlencoder))\n2. [xml decoder](#xml-decoder) flow description ([xmlDecoder](#xmlDecoder))\n\n### xml encoder\n\nxml encoder flow description enables you to define the xml encoder as a flow node, including indent, noArrayIndent config, etc.  \nxml encoder, encodes javascript literal object to xml string.\n\n```yaml\nversion: 1\nkind: flow\nname: flow-name\nentryPoint: start\n\nflow:\n  start:\n    transform:\n      path: 'dist/get-payload-transformer.js'\n    nextNode: initXmlEncoder\n\n  initXmlEncoder:\n    xmlEncoder:\n      headless: false\n    nextNode: checkPayload\n\n  checkPayload:\n    transform:\n      path: 'dist/check-payload-transformer.js'\n    terminal: true\n```\n\n### xml decoder\n\nxml decoder flow description enables you to define the xml decoder as a flow node.  \nxml decoder, decodes xml string to javascript literal object.\n\n```yaml\nversion: 1\nkind: flow\nname: flow-name\nentryPoint: start\n\nflow:\n  start:\n    transform:\n      path: 'dist/get-payload-transformer.js'\n    nextNode: initXmlDecoder\n\n  initXmlDecoder:\n    xmlDecoder:\n      explicitCharkey: false\n    nextNode: checkPayload\n\n  checkPayload:\n    transform:\n      path: 'dist/check-payload-transformer.js'\n    terminal: true\n```\n\n## API\n\n### xmlEncoder\n\nType: flow description\n\nOptions:\n\n- **attrkey** (string), optional, default = '$'\n\n  Prefix that is used to access the attributes.\n\n- **charkey** (string), optional, default = '\\_'\n\n  Prefix that is used to access the character content.\n\n- **rootName** (string), optional\n\n  Root element name to be used in case explicitRoot is false\n  or to override the root element name.\n  (default root or the root key name)\n\n- **doctype** (any), optional, default = null\n\n  Optional DTD. Eg. {'ext': 'hello.dtd'}.\n\n- **headless** (boolean), optional, default = false\n\n  Omit the XML header.\n\n- **allowSurrogateChars** (boolean), optional, default = false\n\n  Allows using characters from the Unicode surrogate blocks.\n\n- **cdata** (boolean), optional, default = false\n\n  Wrap text nodes in <![CDATA[ ... ]]> instead of escaping when necessary.\n  Does not add <![CDATA[ ... ]]> if it is not required.\n\n### xmllDecoder\n\nType: flow description\n\nOptions:\n\n- **key** (string), optional\n\n- **attrkey** (string), optional, default = '$'\n\n  Prefix that is used to access the attributes.\n\n- **charkey** (string), optional, default = '\\_'\n\n  Prefix that is used to access the character content.\n\n- **explicitCharkey** (boolean), optional, default = false\n\n- **trim** (boolean), optional, default = false\n\n  Trim the whitespace at the beginning and end of text nodes.\n\n- **normalizeTags** (boolean), optional, default = false\n\n  Normalize all tag names to lowercase.\n\n- **normalize** (boolean), optional, default = false\n\n  Trim whitespaces inside text nodes.\n\n- **explicitRoot** (boolean), optional, default = true\n\n  Set this if you want to get the root node in the resulting object.\n\n- **explicitArray** (boolean), optional, default = true\n\n  Always put child nodes in an array if true; otherwise an array is created only if there is more than one.\n\n- **ignoreAttrs** (boolean), optional, default = false\n\n  Ignore all XML attributes and only create text nodes.\n\n- **mergeAttrs** (boolean), optional, default = false\n\n  Merge attributes and child elements as properties of the parent,  \n  instead of keying attributes off a child attribute object.  \n  This option is ignored if ignoreAttrs is true.\n\n- **xmlns** (boolean), optional, default = false\n\n  Give each element a field usually called '$ns' (the first character is the same as attrkey)  \n  that contains its local name and namespace URI.\n\n- **explicitChildren** (boolean), optional, default = false\n\n  Put child elements to separate property. Doesn't work with mergeAttrs = true.  \n  If element has no children then \"children\" won't be created.\n\n- **childkey** (string), optional, default = '$$'\n\n  Prefix that is used to access child elements if explicitChildren is set to true.\n\n- **preserveChildrenOrder** (boolean), optional, default = false\n\n  Modifies the behavior of explicitChildren so that the value of the \"children\" property becomes an ordered array.  \n  When this is true, every node will also get a #name field whose value will correspond to the XML nodeName,  \n  so that you may iterate the \"children\" array and still be able to determine node names.  \n  The named (and potentially unordered) properties are also retained in this configuration at the same level as the ordered \"children\" array.\n\n- **charsAsChildren** (boolean), optional, default = false\n\n  Determines whether chars should be considered children if explicitChildren is on.\n\n- **includeWhiteChars** (boolean), optional, default = false\n\n  Determines whether whitespace-only text nodes should be included.\n\n- **async** (boolean), optional, default = false\n\n  Should the callbacks be async? This might be an incompatible change if your code depends on sync execution of callbacks.  \n  Future versions of xml2js might change this default, so the recommendation is to not depend on sync execution anyway.\n\n- **strict** (boolean), optional, default = true\n\n  Set sax-js to strict or non-strict parsing mode.  \n  Defaults to true which is highly recommended,  \n  since parsing HTML which is not well-formed XML might yield just about anything.\n\n- **chunkSize** (number), optional\n","readmeFilename":"README.md"}