{"_id":"@brokenrubik/n8n-nodes-ns","_rev":"18-b4afcd68be5a2677af1cedc3e9d53873","name":"@brokenrubik/n8n-nodes-ns","dist-tags":{"latest":"1.18.0"},"versions":{"1.0.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.0.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.0.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"84140ccfe21b6e020d7cefaeebd66e1436e167be","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.0.0.tgz","fileCount":65,"integrity":"sha512-w3ZFAWijHQ88RTfzF6No51UBKxSKVCdRWcTs9XRtirU8eAMh6ePVhil/bDmA7FwurCyw7ZnyZ/OdP0BB2vZrbQ==","signatures":[{"sig":"MEQCIEl4jNP8Nky/lWdNm7Cwxy3aC7pf8eTf9OcIVoXHnWcMAiAEQ9AVS9ywFs7bBUflYkbumvsAQt4qDtkfUW7O4FIYCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159025},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"d579c145a505d3add238895ba855c04861f200da","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.0.0_1761588442393_0.7074896635234764","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.1.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.1.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"de869665e9bb65a7b119ac481a29d6d1b1ff40f7","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.1.0.tgz","fileCount":65,"integrity":"sha512-V2MHN8/OSWfSqQ72xeuKlOyVEA5M+n1bZ2/Jx1ircjFP5Hch1pOyehYXrTBYQdylK3aNc6IPb1egjHur7GOf/w==","signatures":[{"sig":"MEUCIGttl5gTqv3C7Y9LLutwHM95qCPQ7ou4DQ6qlsBLKEF2AiEAqG53wZX9jOxGHJkY+vKYxbbUp+tMArN2pdOXbGsu1+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160487},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"604d34e41c915788d524b10bc23b5ef98ee1a1ff","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.8.2","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"20.18.1","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.1.0_1762200234354_0.7837521938680174","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.2.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.2.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"eca500009c16b346ae32e5cdc762708a5a4ad34f","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.2.0.tgz","fileCount":65,"integrity":"sha512-+jbSTAK0jLtKTsxoXTTsgTK9S0ZzaHZR4DT7m7v5yF5z/tLpyF7SCMdkH+Rm6eo4NVh28uycgSOFA8qPmR4ACQ==","signatures":[{"sig":"MEQCICrkkFUyqU2TDkUAe9YnHIXFHMaQDSMIby7BbB6de3WcAiBU+rhe+v8nQy0feqOH30z3h52PmDUUCCOedP+TYd5DtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158731},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"4e1c2e546b44932ff6aec659b4a36364c2ffb155","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.8.2","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"20.18.1","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.2.0_1762281324155_0.7691829258307366","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.2.1","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.2.1","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"ef8659a5b423222b0b19021533ff0992969d17eb","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.2.1.tgz","fileCount":65,"integrity":"sha512-6vhPJ+vqOFybclHrOpP0NMjkrntIKx3Eh0oFzCTdXesez0Y2BdNQvnG2MehtBjMZtW/l/8FdXRlCL3pT4R3RXA==","signatures":[{"sig":"MEQCIEZiyTeY3ArwXDxKAfeAlCl7P9s4buSmf1k8efDVMCF0AiAwyAULqAINiGbj2YgQQ+dx0p4CMYR8jrhK3vmWG3MGWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158755},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"a7234d382dae1ec4fdc6f97d64ca106c9c59048d","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.8.2","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"20.18.1","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.2.1_1762281522076_0.9690058464359159","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.3.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.3.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"b480db1d55af8aade92684583aa1e5de0719f928","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.3.0.tgz","fileCount":68,"integrity":"sha512-I4s8RHp1xV2mm3z/pRtqTjeA49rD0aal5erW/kv79V4Xqbib4Fo2LhvOaWINvP70pmiopXWSGh2sizTalwtQfQ==","signatures":[{"sig":"MEUCIHhcFVVcf8kiWkDva2mqAWjKTgKk0o1FfMLs5pbW7/fHAiEA5IenOjA2tzFMq5ptMFZR/L131+dNv1hj/M+5QRA6xek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168227},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"ae7b4ae7d5785ae2d120f7459e230b66f37eb989","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.8.2","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"20.18.1","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.3.0_1763399553660_0.7539203730301112","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.5.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.5.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"64a02bfda215910c98a86496d6088d8920a196b9","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.5.0.tgz","fileCount":77,"integrity":"sha512-ddaWnPIsKEMGh2Bwa2Svua3asKA0VwbT7ubAQMFF7O7Z8+AVxqNXMNtrfXnGqWTbMtvQ8IQJLLlg5+8X/ctenw==","signatures":[{"sig":"MEUCIQCDsu2OQeBvdSRV1a1OhGpOb+AJRMFYmBO7leIhUOA1ogIgRQWRqt4y/hX4Pt3lNV885HGXK3mFHRH2lD8SsAdAUPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210428},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"f577c411630de88730d2ce19a51398d5b5220e43","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.5.0_1767899970371_0.5798455339464577","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.5.2","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.5.2","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"c3a1144cc486f10daa7ada08b5b264fa844e2993","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.5.2.tgz","fileCount":77,"integrity":"sha512-lZOj/Z0Szg/nnAXJJXgx3tkj9GKwbyPmlnNai07mvChNeQRiW3LKX3BgZJB7hDLJZoQXP+Uc3yxYULngaS7GvQ==","signatures":[{"sig":"MEUCIQC/ySpEsx8xQMeGtyaVYQS1V7sTosok5n3VgJfNP7Q6EgIgVnWdsWSb+0peQrcBRoMjHFFj2XmjOwaJIJDYaiv1VTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212051},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"e63a093ece79a7a081bc8623d7a5f357f6a6343d","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.5.2_1767905080647_0.04619976653104274","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.7.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.7.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"a6e4421b25451fc1b366b778a94be8f284ff4111","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.7.0.tgz","fileCount":77,"integrity":"sha512-SgE5Qsr0jyxB81mV364HzVkc4b0Aw1XSTn19cgxlhuwvoTzMnG7ZouBWE1brOkSQUk4sNTqf7192SLYYKVQm6A==","signatures":[{"sig":"MEUCIH09/Tpq82k0JPKGoAAS3xohDt8jfEcCFks17gDYS5pNAiEA5rrkiB8YirwXb7G56lUOkHycfCmVUg9DQsr0qEiK+Gw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212750},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"69dc4c917dafb34076030b95fcb4768adb6b99b0","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.7.0_1769176924385_0.47881495956854336","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.9.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.9.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"71629e8d59a9bc809d1670999ef392b664449782","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.9.0.tgz","fileCount":77,"integrity":"sha512-4zeXFFZngoYVeDi5ZvTr2VapP9YgYGBOivx4HKBtL7jOe3Z8wjI9bwUJ//Kusb2kJg1oRtOuCz8a8D/KiIvRAQ==","signatures":[{"sig":"MEQCIDZArSIq49iL1rOqj2fpn2mcOai7gaaEHAjWg+qsYAiwAiBXQzDn91RmxshDbfq83eAs9wLCF1UnLmrwakXV/dIEfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214474},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"7b89516d6ebc50ba58806c91824f97a806a690b5","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.9.0_1771864614579_0.8265824618624904","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.10.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.10.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"301d8f43bccb4f8be3da7824969d08f1244226f2","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.10.0.tgz","fileCount":77,"integrity":"sha512-PWDOZasjemA2JBixyYn6K1qSY4W3GLScg/mJ+4o7k2nOjl/V5Qr8lBn7Ms1Ec0wRrCYAALjdd6yx8nvqQlUopw==","signatures":[{"sig":"MEUCIQDlkO7RstSdlKXUR/i8LnvzC5yoECT10sPC8dsmXCuNLgIgDrF83bo9tv725jg2yIPDi0DGKuTj6uSjyMt9dLiV4FM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212087},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"1e45721d6191cd625fd230fe088d9bf7ae9b8b46","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.10.0_1771865310296_0.6308093347986203","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.12.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.12.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"fbe248eec7b1118de9e944bccda5956bb3346cec","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.12.0.tgz","fileCount":80,"integrity":"sha512-mGtMM4brFzORNUucf/lvUBEOCwCS66EKQM5hswjglZ55pDLA+9XbP+cA3sEqTmjYs7XEDu8G/mh1JOJHz74WcA==","signatures":[{"sig":"MEUCIAn5JTgf1TdrlZbwjvoDzMKqy3uaiv9ba9cuV1LeLqRhAiEAkfvaqas4Y6o54pdWQskQsir2H+AfOIeQVK5wTKh3l5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219762},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"1406ede56d441150ef6b5e54881bf71a1c224383","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.9.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.12.0_1772221431926_0.09388929034856486","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.13.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.13.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"f042c068f327e737d6494dcb17806a7b89d74544","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.13.0.tgz","fileCount":80,"integrity":"sha512-iDIUqJvsxO/eoiJJ2ZTVWTfcUDGIrAs+U0AZUWvjONTJ0qrjVNJ/zqY/lIzIf7UHdujre2FJNo2jjNU+UYuQ/A==","signatures":[{"sig":"MEYCIQCD9GMmYVURmr373eCjpIoijRfpNdxQfYaZI9DUUzvR0QIhAJJDK9zPEqqGOe7MJ15lQ2geFCJgcGmU1ieFlxep4638","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218611},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"50bef01a1030691d87b90de7ef66b937174efdfe","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.9.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.13.0_1772222921163_0.24995600912896698","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.13.1","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.13.1","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"7557488eb697d9bf764f1ec911961f7f85bca3e1","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.13.1.tgz","fileCount":80,"integrity":"sha512-WfQz46Ejg2glFlhio+kY1+N9/r3P9AfDGhH9Pda+tsjLknPWeRn3WwiBvgHAq4o3qzGteR7BhY5NAndLjtMi9A==","signatures":[{"sig":"MEUCIQDvnFTq1MqGBuuZNE84PRUYNRQWTSy6zzDMyZdrGfuzCQIgHcCLpwPNcPNn3aRcwaT5+mhnP2R2PxdUfEWnAql2YYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222885},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"25b35ec4ef19211b81b5ce300c9bc50b82a56a68","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.9.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.13.1_1772321422954_0.4854883761423685","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.14.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.14.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"87ba34b36d1ceb983005cc549096c18fe8701638","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.14.0.tgz","fileCount":83,"integrity":"sha512-9R1pyULwC73o3j1pxzUQ+C09THfcfnqecLJscqklzCGoWLxiM/CuLOzTpObtLstL5J47b0Mhggmm09s4xO8KFQ==","signatures":[{"sig":"MEUCIQCm9m+xjZQ6GxBuk+Zf49FfQDXSE+xqc65kJBcVVtfylQIgAYEifjp9u1Mj6RehLjgwUmd5fjZcvjsjBq3XVRBzctw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234919},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"71bd51494b0322b6001c19553c6f12a5fbf49c57","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.9.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.14.0_1772336472336_0.2826076106632831","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.14.1","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.14.1","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"7043d0043b9b94fdf9a82a63aa6ca34ddd9876be","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.14.1.tgz","fileCount":83,"integrity":"sha512-VfiZfAPABuAl7WzLdcOWwkGluJAmKt+gOAyMA2jPTIYCpgp2RRk0VIBZFDHhpusHJoWj3uPO4vJJ2RtOuBNl3Q==","signatures":[{"sig":"MEQCIF6BQyreoHSPmVxDPtO7b581HGmOXKVKQLsTuV/TQVjHAiBGNtmMpKyBSO3q0D7hEqsRkfLv++mTZEpFjC0J8UQBLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235346},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"ad9475aa5bbe4cd557088373e2f7b811629ebb87","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.9.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.14.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.14.1_1772336815851_0.2944657162824198","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.15.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.15.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"91a7714766a90c9388f9c0a0959e73fc4fb1ff51","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.15.0.tgz","fileCount":86,"integrity":"sha512-T9jMpU+uxX/B4axL4qTQcsyalq3MzhQ+6kW6oU9PT2wsYI4CzeH23FjWfszw6bM8H9f3izZhPC/ZL/+O2V0Cnw==","signatures":[{"sig":"MEUCIQDpyZo92CHx5PDO/I/cH+bF70rhWsj/ofo0aWkM29ZiLQIgSFZyp9rgjxOUdWcGUY6D8F+r9eAJ/OtkEUi0mKE7tsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242395},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"d91cc00d83ed03b90af71dda663ae20467f49159","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"10.9.3","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"22.20.0","dependencies":{"node-fetch":"^2.7.0","jsonwebtoken":"^9.0.2","@types/node-fetch":"^2.6.12","@types/jsonwebtoken":"^9.0.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","prettier":"^3.5.3","typescript":"^5.8.2","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.15.0_1778096193910_0.5172652026178031","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@brokenrubik/n8n-nodes-ns","version":"1.17.0","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","_id":"@brokenrubik/n8n-nodes-ns@1.17.0","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"e13596d4420a4ed4bfa2bfc7bf6c916cc9a83327","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.17.0.tgz","fileCount":77,"integrity":"sha512-Jj8dpaSXO8XNhc54e3yZFu6f9cRXIuqJg+fhF0QovUAmehWZUXVBH1Xm7kJImub/ZEwfPHiyUrlyPoGx6Y8pLg==","signatures":[{"sig":"MEUCIBiJb3nD6kSDKBwDJJj210xMwVJ/hPUZClCAZ4qGc6xQAiEAhGSjcMMAVBvQ6LhHlSx1hr1dLqln/kt3vKSWZyBC2X0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182124},"main":"index.js","engines":{"node":">=20.15"},"gitHead":"244c4a25a4934e3c13fe3e9f57e9fb5ffd4319c8","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","test":"vitest run","build":"npx rimraf dist && tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepare":"npm run build","test:watch":"vitest","publish:major":"npm version major && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:patch":"npm version patch && git push && git push --tags && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"repository":{"url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git","type":"git"},"_npmVersion":"11.16.0","description":"n8n node for NetSuite SuiteTalk REST API integration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@brokenrubik/netsuite-sdk":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^8.57.0","vitest":"^3.0.0","prettier":"^3.5.3","typescript":"^5.8.2","@types/node":"^20.0.0","n8n-workflow":"^1.82.0","@typescript-eslint/parser":"~8.32.0","eslint-plugin-n8n-nodes-base":"^1.16.3"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-ns_1.17.0_1783445728937_0.5507771197792526","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@brokenrubik/n8n-nodes-ns","publishConfig":{"access":"public"},"version":"1.18.0","description":"n8n node for NetSuite SuiteTalk REST API integration","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"license":"MIT","homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"repository":{"type":"git","url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git"},"engines":{"node":">=20.15"},"main":"index.js","scripts":{"build":"npx rimraf dist && tsc && gulp build:icons","dev":"tsc --watch","format":"prettier nodes credentials --write","lint":"eslint nodes credentials package.json","lintfix":"eslint nodes credentials package.json --fix","test":"vitest run","test:watch":"vitest","publish:patch":"npm version patch && git push && git push --tags && npm publish","publish:minor":"npm version minor && git push && git push --tags && npm publish","publish:major":"npm version major && git push && git push --tags && npm publish","prepublishOnly":"npm run build","prepare":"npm run build"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/NetSuiteApi.credentials.js"],"nodes":["dist/nodes/NetSuite/NetSuite.node.js"]},"devDependencies":{"@types/node":"^20.0.0","@typescript-eslint/parser":"~8.32.0","eslint":"^8.57.0","eslint-plugin-n8n-nodes-base":"^1.16.3","gulp":"^5.0.0","n8n-workflow":"^1.82.0","prettier":"^3.5.3","typescript":"^5.8.2","vitest":"^3.0.0"},"dependencies":{"@brokenrubik/netsuite-sdk":"^0.6.0"},"peerDependencies":{"n8n-workflow":"*"},"gitHead":"d7f249477bca72d48f7bdd160222d92e9acfadbc","_id":"@brokenrubik/n8n-nodes-ns@1.18.0","bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-OE/qWqXqTuNA6D0tZjdclpdxQR7Sk9gucV12LYJqOK+dLxXzHD6bSNzInRX4eNim3NgVUP62TTnX1nb0x8Yj8g==","shasum":"da0cea1354faa1cf2f8e6e4225796c7708afea08","tarball":"https://registry.npmjs.org/@brokenrubik/n8n-nodes-ns/-/n8n-nodes-ns-1.18.0.tgz","fileCount":95,"unpackedSize":217516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDRRi6oAMvTXZYX+Bwr+VDrGK9W3Fkoj+SYvW6ad88alQIhAKH3P/RTV1FGK3yopBb8CQdqO8tsnvTfUgGAbvgzTaq/"}]},"_npmUser":{"name":"brokenrubik","email":"team@brokenrubik.co"},"directories":{},"maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-ns_1.18.0_1788447826117_0.14465496184184556"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-27T18:07:22.285Z","modified":"2026-09-03T15:03:46.483Z","1.0.0":"2025-10-27T18:07:22.594Z","1.1.0":"2025-11-03T20:03:54.550Z","1.2.0":"2025-11-04T18:35:24.360Z","1.2.1":"2025-11-04T18:38:42.340Z","1.3.0":"2025-11-17T17:12:33.882Z","1.5.0":"2026-01-08T19:19:30.532Z","1.5.2":"2026-01-08T20:44:40.815Z","1.7.0":"2026-01-23T14:02:04.528Z","1.9.0":"2026-02-23T16:36:54.771Z","1.10.0":"2026-02-23T16:48:30.434Z","1.12.0":"2026-02-27T19:43:52.091Z","1.13.0":"2026-02-27T20:08:41.328Z","1.13.1":"2026-02-28T23:30:23.125Z","1.14.0":"2026-03-01T03:41:12.502Z","1.14.1":"2026-03-01T03:46:56.018Z","1.15.0":"2026-05-06T19:36:34.059Z","1.17.0":"2026-07-07T17:35:29.071Z","1.18.0":"2026-09-03T15:03:46.304Z"},"bugs":{"url":"https://github.com/BrokenRubik/n8n-netsuite-node/issues"},"author":{"name":"BrokenRubik","email":"joaquin@brokenrubik.com"},"license":"MIT","homepage":"https://github.com/BrokenRubik/n8n-netsuite-node","keywords":["n8n-community-node-package","netsuite","suitetalk","n8n"],"repository":{"type":"git","url":"git+https://github.com/BrokenRubik/n8n-netsuite-node.git"},"description":"n8n node for NetSuite SuiteTalk REST API integration","maintainers":[{"name":"brokenrubik","email":"team@brokenrubik.co"}],"readme":"# n8n-node-netsuite\n\nA comprehensive n8n node for NetSuite integration, providing full access to NetSuite's SuiteTalk REST API with OAuth 2.0 M2M authentication.\n\n**npm package**: `@brokenrubik/n8n-nodes-ns`\n\n## Features\n\n### Secure Authentication\n\n- OAuth 2.0 Machine-to-Machine (M2M) authentication\n- JWT token-based authentication with PS256 algorithm\n- Automatic token caching and refresh (with 1-minute safety margin)\n- Certificate-based security\n\n### Operations (15 total)\n\n- **List Records**: Retrieve multiple records with pagination support\n- **Get Record**: Fetch individual records by ID (with optional sub-resource expansion)\n- **Get Metadata**: Fetch record type metadata in JSON, OpenAPI 3.0, or JSON Schema formats\n- **Insert Record**: Create new records (supports `replace` for sublist handling)\n- **Update Record**: Modify existing records (supports `replace` and `replaceSelectedFields`)\n- **Upsert Record**: Create-or-update a record by external ID\n- **Remove Record**: Delete records\n- **Batch Insert / Update / Upsert / Remove / Get Records**: Process all input items in NetSuite asynchronous batch jobs (up to 100 records per job, one API job instead of one request per item)\n- **Execute SuiteQL**: Run SQL-like queries with automatic offset-based pagination\n- **Call RESTlet**: Call custom RESTlet scripts deployed in NetSuite\n- **Raw API Request**: Direct access to any NetSuite REST endpoint\n\n### Reliability\n\n- **Automatic Retry**: Exponential backoff for rate limit (429) and temporary errors (502, 503, 504)\n- **Configurable Retries**: Default 5 retries, configurable 0-10 via node options\n- **Backoff Strategy**: Starts at 1s, doubles each attempt, max 60s, with ±10% jitter\n- **Network Error Recovery**: Retries on ECONNRESET, ETIMEDOUT, and connection errors\n- **500 errors are NOT retried** (per NetSuite docs, these require contacting support)\n\n### Developer-Friendly\n\n- **Modular Architecture**: Each operation is a separate module\n- **Structured Logging**: Workflow-aware logging with `NetSuiteLogger` (workflow ID, node ID, execution ID)\n- **Comprehensive Error Handling**: NetSuite-specific error parsing with `o:errorDetails` extraction\n- **TypeScript Support**: Full type safety and IntelliSense\n- **Custom Record Support**: Use any custom record type via script ID\n\n## Prerequisites\n\n### System Requirements\n\n- Node.js >= 20.15 and npm\n- n8n installed globally: `npm install n8n -g`\n\n### NetSuite Requirements\n\n- NetSuite account with REST API access\n- OAuth 2.0 Application configured in NetSuite\n- Certificate and private key for M2M authentication\n- Appropriate permissions for the operations you want to perform\n\n## Installation\n\n### From npm\n\n```bash\nnpm install @brokenrubik/n8n-nodes-ns\n```\n\n### For Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/BrokenRubik/n8n-netsuite-node\ncd n8n-netsuite-node\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Link for local development\nnpm link\n\n# Restart n8n to load the new node: https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/\n```\n\n## Setup Instructions\n\n### Step 1: Create NetSuite Integration Record\n\n1. **Navigate to Integration Setup**:\n   - Log into your NetSuite account\n   - Go to **Setup > Integration > Manage Integrations > New**\n\n2. **Configure Integration**:\n   - Enter a **Name** for your integration (e.g., \"n8n NetSuite Integration\")\n   - Set **State** to \"Enabled\"\n   - Under **Client Credentials (M2M)**, check **\"Client Credentials (Machine To Machine) Grant\"**\n   - Leave all other checkboxes unchecked\n   - Click **Save**\n\n3. **Copy Integration Client ID**:\n   - **Important**: After saving, immediately copy the **Integration Client ID**\n   - This ID will disappear if you close the tab or navigate away\n   - Store it securely as you'll need it for the n8n credentials\n\n### Step 2: Generate Certificate and Private Key\n\n1. **Create Certificate Pair**:\n   - Open a terminal/command prompt\n   - Generate a private key and certificate using OpenSSL:\n\n   ```bash\n   openssl req -x509 -newkey rsa:3072 -keyout n8n_key.pem -out n8n_cert.pem -days 365 -nodes\n   ```\n\n2. **Alternative: Using NetSuite's Guide**:\n   - Follow NetSuite's official certificate generation guide: [Creating Certificates for OAuth 2.0](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_162686838198.html)\n\n### Step 3: Upload Certificate to NetSuite\n\n1. **Navigate to Certificate Setup**:\n   - Go to **Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup**\n\n2. **Upload Certificate**:\n   - Click **\"New\"** to create a new certificate entry\n   - Enter a **Name** for the certificate (e.g., \"n8n Integration Certificate\")\n   - Upload the **certificate file** (`n8n_cert.pem`) - not the private key\n   - Click **Save**\n\n3. **Copy Certificate ID**:\n   - After saving, copy the generated **Certificate ID**\n   - You'll need this for the n8n credentials\n\n### Step 4: Set Up n8n Credentials\n\n1. **Open n8n**:\n   - Navigate to **Credentials** in n8n\n   - Click **\"Add Credential\"**\n   - Select **\"NetSuite API\"**\n\n2. **Enter Credential Information**:\n   - **Account ID**: Your NetSuite account ID (e.g., \"1234567\" or \"1234567_SB1\" for sandbox)\n   - **Integration Client ID**: The ID copied from Step 1\n   - **Certificate ID (M2M)**: The ID copied from Step 3\n   - **PEM Content**: Copy and paste the entire content of your private key file (`n8n_key.pem`)\n\n3. **PEM Content Format**:\n\n   ```\n   -----BEGIN PRIVATE KEY-----\n   MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC...\n   ... (your private key content) ...\n   -----END PRIVATE KEY-----\n   ```\n\n### Step 5: Test the Connection\n\n1. **Create a Test Workflow**:\n   - Create a new workflow in n8n\n   - Add a **NetSuite SuiteTalk** node\n   - Configure it to list a simple record type (e.g., Customer)\n   - Execute the workflow to verify the connection\n\n## Usage Examples\n\n### List Sales Orders\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | List Records |\n| Record Type | Sales Order |\n| Query | `status IS SalesOrd:F` |\n| Return All | false |\n| Limit | 100 |\n\nThe `Query` field maps to NetSuite's `q` filter parameter. NetSuite uses the syntax `field OPERATOR value` (e.g., `status IS SalesOrd:F`, `email IS \"john@example.com\"`).\n\n### Get a Record with Sub-Resources\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Get Record |\n| Record Type | Sales Order |\n| ID | `12345` |\n| Expand Sub-Resources | true |\n| Restrict Returned Fields | `item,entity` |\n\nThe `ID` field accepts internal IDs. Prefix with `eid:` to use external IDs (e.g., `eid:MY_EXT_ID`).\n\n### Create Customer Record\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Insert Record |\n| Record Type | Customer |\n\nThe input data from the previous node is used as the request body:\n\n```json\n{\n  \"companyName\": \"Acme Corp\",\n  \"email\": \"contact@acme.com\",\n  \"phone\": \"+1-555-0123\"\n}\n```\n\nReturns `{ success: true, id: \"<new-record-id>\", location: \"<api-url>\", recordType: \"customer\" }`.\n\n### Execute SuiteQL Query\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Execute SuiteQL |\n| Query | `SELECT id, companyname, email FROM customer WHERE datecreated >= '2024-01-01'` |\n| Return All | true |\n\nSuiteQL uses SQL-like syntax with NetSuite's database column names (lowercase). When `Return All` is enabled, the node automatically paginates through all results using offset-based pagination (up to 1000 rows per page).\n\n### Get Metadata Catalog\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Get Metadata |\n| Metadata Format | JSON (Record Type List) |\n| Record Types | `customer,salesOrder,invoice` |\n\nAvailable formats:\n- **JSON**: Lists available record types\n- **OpenAPI 3.0 (Swagger)**: Full API specification\n- **JSON Schema**: Record structure descriptions\n\nLeave `Record Types` empty to return all (can be slow for accounts with many customizations).\n\n### Raw API Request\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Raw Request |\n| HTTP Method | GET |\n| Path | `services/rest/record/v1/customer/123` |\n| Full Response | true |\n\nThe `Path` is appended to `https://<account>.suitetalk.api.netsuite.com/`. You can also paste a full URL and the node will extract the path automatically. For methods other than GET/HEAD/OPTIONS, input data from the previous node is sent as the request body.\n\n### Call a RESTlet\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Call RESTlet |\n| HTTP Method | POST |\n| Script ID | `customscript_my_restlet` |\n| Deploy ID | `1` |\n\nThe input data from the previous node is sent as the request body for POST/PUT/PATCH/DELETE methods. You can also add query parameters via the \"Query Parameters\" collection. For GET requests, no body is sent.\n\n### Batch Operations\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | Batch Insert Records |\n| Record Type | Customer |\n\nBatch operations submit **all input items together** as NetSuite asynchronous batch jobs instead of one request per item. Inputs larger than 100 items are split into multiple jobs of up to 100.\n\n**By default the write batches are fire-and-forget**: the node submits the jobs and outputs one item per job — `{ submitted: true, jobId, location, itemCount }` — without polling NetSuite. Enable **Wait For Results** to poll until each job completes and output one result per input item (linked via `pairedItem`). You can check a submitted job later with Raw Request: `GET services/rest/async/v1/job/{jobId}`.\n\nPer operation:\n\n- **Batch Insert Records**: Each input item's JSON is one record body. With Wait For Results, outputs `{ success, id, location }` per item.\n- **Batch Update Records** / **Batch Remove Records** / **Batch Get Records**: The `ID (Per Item)` field is evaluated once per input item — use an expression like `{{ $json.id }}` so each item supplies its own ID. Prefix with `eid:` for external IDs; internal and external IDs can be mixed.\n- **Batch Upsert Records**: The `External ID (Per Item)` field is evaluated once per input item (e.g. `{{ $json.externalId }}`) and written into the record body.\n- **Batch Get Records**: **Always waits** — the results are the whole point of a get. Outputs the record body per item (supports `Expand Sub-Resources` and `Restrict Returned Fields`).\n\nWhen waiting, per-item failures do **not** fail the node — failed items output `{ success: false, error }` (or `{ error }` for Batch Get), so partial success is visible per item.\n\nBatch Options:\n\n- **Parallel Processing**: Let NetSuite process items in parallel instead of sequentially. Only for independent records.\n- **Idempotency Key**: Unique key (e.g. a UUID) to guard against duplicate submissions. On a duplicate, the node re-attaches to the previously submitted job. Jobs after the first 100 items reuse the key with `-2`, `-3`, ... suffixes.\n- **Poll Interval (Milliseconds)**: Delay between job status checks while waiting (default 5000). Increase it for large batches to reduce the request load on NetSuite.\n- **Timeout (Seconds)**: Maximum wait per batch job (default 300). Poll Interval and Timeout only apply when waiting for results.\n\n### Using Custom Records\n\n| Parameter | Value |\n|-----------|-------|\n| Operation | List Records |\n| Record Type | Custom Record |\n| Custom Record Script ID | `customrecord_my_record` |\n| Return All | true |\n\nSelect **Custom Record** as the Record Type, then enter the script ID (usually starts with `customrecord`).\n\n## Architecture\n\n### Modular Design\n\n- **Main Node** (`NetSuite.node.ts`): Orchestrates operations via switch statement (~160 lines)\n- **SDK** ([`@brokenrubik/netsuite-sdk`](https://www.npmjs.com/package/@brokenrubik/netsuite-sdk)): OAuth 2.0 M2M auth, token caching, retry-wrapped HTTP requests, error parsing\n- **Client Factory** (`utils/client-factory.ts`): One SDK client per execution, memoized by retry setting, so all items share the OAuth token cache\n- **Operation Modules** (`operations/`): One file per operation, consistent `INetSuiteOperationOptions` interface\n- **Type System** (`types/`): Auth, response, operation, and logger types\n- **Utilities** (`utils/`): Client factory, helpers, structured logger\n\n### Error Handling\n\n- Follows NetSuite's official error format (`o:errorDetails` array)\n- Extracts error codes, paths, and details from responses\n- Provides specific guidance per HTTP status code\n- Supports graceful degradation with \"Continue on Fail\"\n\n### SuiteQL Pagination\n\nSuiteQL uses **offset-based pagination** (not response link-based). Each page requests up to 1000 rows. The loop advances the offset by the number of items returned and stops when fewer items than requested come back. This avoids infinite loops caused by unreliable `hasMore`/`nextUrl` fields in SuiteQL POST responses.\n\n## Development\n\n### Project Structure\n\n```\nnodes/NetSuite/\n  types/              # TypeScript type definitions\n  utils/              # Client factory, logger, helpers\n  operations/         # 15 operation modules (one per operation)\n  NetSuite.node.ts    # Main node class (orchestrator)\n  NetSuite.node.options.ts # Node UI configuration\ncredentials/\n  NetSuiteApi.credentials.ts # n8n credential definition\ntest/                 # Vitest suite (operations, node routing, client factory)\n```\n\nAuth, HTTP transport, retries, and error parsing live in\n[`@brokenrubik/netsuite-sdk`](https://github.com/BrokenRubik/netsuite-sdk).\n\n### Common Commands\n\n| Command | Description |\n|---------|-------------|\n| `npm run build` | Build the project (compiles TypeScript and copies icons) |\n| `npm run dev` | Watch mode for development |\n| `npm test` | Run the vitest suite |\n| `npm run lint` | Run ESLint |\n| `npm run lintfix` | Auto-fix lint errors |\n| `npm run format` | Format code with Prettier |\n\n### Adding New Operations\n\n1. Create operation file in `operations/` directory\n2. Export function from `operations/index.ts`\n3. Add case to switch statement in `NetSuite.node.ts`\n4. Add UI configuration to `NetSuite.node.options.ts`\n\n## Troubleshooting\n\n### Debug Logging\n\n- **Legacy debug output**: `NODE_DEBUG=n8n-nodes-netsuite` (uses Node.js `util.debuglog`)\n- **Structured logger**: `NetSuiteLogger` outputs structured messages via `console.*` at all levels (debug, info, warn, audit, error) with workflow context automatically included\n\n### Common Issues\n\n- **401 Unauthorized**: Check that your Integration Client ID, Certificate ID, and PEM content are correct. Ensure the certificate hasn't expired.\n- **403 Forbidden**: Verify the role assigned to the integration has permissions for the record type and operation.\n- **429 Too Many Requests**: The node retries automatically with exponential backoff. If persistent, reduce concurrency or increase retry count.\n- **500 Internal Server Error**: Not retried. Check NetSuite's audit trail or contact NetSuite support.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}