{"_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","_rev":"13-25b602190f0dbc584b9af36c8265967c","name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.0","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.0","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"9907222d01f505b93f6c0beacb98e1a49517ad53","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.0.tgz","fileCount":9,"integrity":"sha512-1mbbJzjjaqwwTsHIjW19pALN4XtBscU7u1Rc8S276NLztLRIORlyv+mbaaZ/D2m+4fO3m8OzMdjcjVtRagYtaQ==","signatures":[{"sig":"MEUCIHMZueWj/mO2/fXl3YxtEZFwa0Kjj9JtrP4pE0jAkWbSAiEAhzxe3VKFRpqlyIL9LdfOrv/9ZW6NpHbkdfOcoFnSfDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37783},"gitHead":"96051e61aa025928b6db1118eb1c5bc339d7118d","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.0_1764958095857_0.5296615845190347","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.1","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.1","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"979ab57eae940a67028e121b03b98b43ca83f7fa","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.1.tgz","fileCount":9,"integrity":"sha512-0VMWMPHRQZ0OZGNzZI10JwKNYMe8Qp9txQSPZr+DzA+R/MyuZVsJHQ90FWKLX+rnnwPQKhSRLYDJqKHhT3hFQQ==","signatures":[{"sig":"MEUCIQC+RK4HJ43Oktd/p5uA8LczEt0abzlAB9IFmvOayW/4kwIgNukbCBfdln+ulUwbgjqZFfAPAXbQouQvgE2GBE0zfQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55657},"gitHead":"09e2667654926f36c2602c689bddb6aa65d40424","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.1_1765408783539_0.5881841886566161","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.2","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.2","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"6bfaf98a396957bd5fe190af15789de3c22b51bd","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.2.tgz","fileCount":9,"integrity":"sha512-h0VD44n/bDSITECi1QDZ/+0uTP2bTfbO7QvNNsomDUrMuTUAjebMyPFzr3X0gOI7zYfVR8XEEIYzu1LouQ9rUQ==","signatures":[{"sig":"MEQCIFD7xThoS76fMzNxWqLvkMTwdr14DmusJAMiEFEM/NyVAiBKYxg2gA9WCTa41PzbBGS5Yl4WQHayU1FsfsoiSzEpkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56619},"gitHead":"1dd9fe999aa81d96675bd009eefc42c9495198f1","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.2_1765759147472_0.4683576419670312","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.3","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.3","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"a528bb7ad048a260f7ad2c4683de449d90e2caf8","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.3.tgz","fileCount":9,"integrity":"sha512-ajkjO83FLXx0+5n3lenF6Wm60De275QRhMyuUyM3j7eBlBSwnWxkhwoKIGa7MX0zXVlIaZhMgnLnraV/0fMAlQ==","signatures":[{"sig":"MEYCIQDAezH/s7Av2J/ZriUupeqTRBuidTqwLieavGMhX4B8oAIhALvZecP+DdlUdvowvUiSkl9GU0urnFNVGfXEwzmxfh9n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57750},"gitHead":"02802b9448df8f3484a7979f6b9e7e5a74bde79b","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.3_1765931467965_0.6423464926049172","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.4","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.4","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"86d4239f2e71172cc1b9d3dc0f4a7b926ef43822","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.4.tgz","fileCount":9,"integrity":"sha512-fxDhsCWSSHEtkQN+b3U953PKUHx7FS4O/J+i5pfDCPnPVCFijbBPre7t1GiqDsqCSKrpj44YnPNi8IesPg8MYA==","signatures":[{"sig":"MEYCIQCNyBmZ6jNEcFzGLZRjDilet14iA95+PZbTG4DX+hLDrAIhALeDJXNxJBsVI0NZlZkuMMhJPiGOCutOhA7jmH1PCilW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67139},"gitHead":"929a90571fe09fd58ba3ff7859a2f5903867c46d","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.4_1766075761261_0.5908358660792412","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.5","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.5","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"9c0e5a2668e58f66c1aa0f7b3545d5514ee36bd5","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.5.tgz","fileCount":9,"integrity":"sha512-TGi9bXQxvij+9hkAF5S6okTZTEANdtPN7ngRwr4kyoepPxqvkM3Pi45uXCIBWvaHk+iGQ19Sm/4dHvxNfNNkIw==","signatures":[{"sig":"MEYCIQDlDsUDElWWM1Aq99M9ldMlz1DISs7VYXccvnxYIwFwLwIhANwfnnVpaQY+rBOJOZHDDZjajWpXH5GWAudfx37V/MTX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69079},"gitHead":"7c28a4e3fa10c16ceec341bf8fe88cfc22c5c60e","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"11.6.2","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.5_1767027977642_0.22535690317356516","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.8","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.8","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"f06c7450c11607c95adf2b42be6606f2692adadd","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.8.tgz","fileCount":9,"integrity":"sha512-rJLclyLezAiR3QNuuVhconBSDwSN6Y5dnmtxe9VCOJjA9YZa5eHdyWoUrIVBtDpjS2kt2sg143Lp/FtviHXB8g==","signatures":[{"sig":"MEUCIFJ9Kodcuwrc98u9LF7CtCt75ojt9CTrfL7UHfOTzqNrAiEAuOp2iGPHFD5X4AddqC67tWg4tHWO4AOCIimKwLIS56M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68856},"gitHead":"189aa0a5e23acfacf1df7376c170aff15c00a5cf","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.8_1770664907061_0.5410887407961236","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.9","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.9","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"846516591eb918c9247cbe8b693f3b5b4dbfb3c7","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.9.tgz","fileCount":9,"integrity":"sha512-GXWrY5fB1ycEOSdijiKcMQAIqNg1UeuMw4sP+YDQLGTLxtCo7hwYwo4TkceEjXD+UIWJN1TUu8or3+hmpgQb1Q==","signatures":[{"sig":"MEQCIFc1kuZBufyG5yT8S/SCdVKsrDiEXpj6G1ZbfBqhcC6cAiA47pCOJVvE48vNOBSgq2umVfoRaeLjn6L/klSm8SFblw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69609},"gitHead":"68f2db72061b8d096f77b29b14310a78e78e3203","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.9_1770666232263_0.43740215011335115","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.10","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.10","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"2209e4cc41adbfb47dcd55548c73f0cbce72ec5b","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.10.tgz","fileCount":9,"integrity":"sha512-XWaypoc6x624Pm4LRUr2WjEG6Qk4ageBWCAf5AXxB1K9V90J0z+5KXlUnLdz4/e9VW2kh0aOAhiLE3aKj1UlNA==","signatures":[{"sig":"MEUCIGbzb4CGKyMB+NZ/feU7cqxmsLjjMw8R0xJ6WEQhpx73AiEA5VBaeApnLmormTJMghiSPxYjYzAMXf75+1GAvt5V5x8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69616},"gitHead":"e9654d35502062f5053bf19ab5dc069fed007f66","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.10_1770669719506_0.7092434687488058","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.11","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.11","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"b5e865f17480b10e1e94ff7aa81f378726df18e6","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.11.tgz","fileCount":9,"integrity":"sha512-OnHNY3TaoSA7F+3lE0Ry13cTmlWxb4gLIF8oc+oSnwRQBo7ep+aEUq8lbDww8V5oGy0GDr8HMrKG5EZwWFsd0A==","signatures":[{"sig":"MEUCIQCA562DBsemozd+mRHsrcfWnRFqkhsGYjqo8dGX4GGB+wIgSYLZ7rqgRQBuju00C2gOYGMO4PR+We0pr3YFX9grFp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69756},"gitHead":"05303fd7df6c6103fa0a650823f4d6a1f4372c86","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.11_1771355275146_0.6001193487894405","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.12","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.12","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"50e71db89c31e1fcb7a75e0f025c0b84a14de176","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.12.tgz","fileCount":9,"integrity":"sha512-AFVmvIzLT9IjrDRkHGi2HUkBToUOVYfwMncDp6ZDg5RcahUW2KS9yus6vUfznbnMBgdesM9QdjSRLYz5vam3uQ==","signatures":[{"sig":"MEYCIQDGJUv1jzoqZ2gva5xuBpPzFZr1IrJTyupW+FmwQjsU1gIhAMZhpDbMFNCOyQw+i9GncDyGT8jsgGck0/sxzg/qWalJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70451},"gitHead":"b0d30032dc7278fef27df00631ee6aff86392e2a","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.12_1771359164267_0.5516127254483558","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.0.13","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"author":{"name":"cafeasp"},"license":"MIT","_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.0.13","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"n8n":{"nodes":["dist/nodes/NetSuite/NetSuite.node.js"],"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"fb351fe2ff6aafb186829828e9073c9bd485b7cc","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.0.13.tgz","fileCount":9,"integrity":"sha512-AnXfpZ3gHN8rIndSiXk/tXfRgEfrS0vFY8nnZBFK8aHA8LNtbPwKZU1WYVQzc7ehoFjlZDgsvQe2HLPrwZpd4A==","signatures":[{"sig":"MEYCIQC6+degTWtxbQUXNwHQNwsplbJZ2HikI8hwJZEvGzkjdQIhALqdamhxuDbc7jp1vORNDbfkwxjccuOrjHI9ms61SJez","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81963},"gitHead":"3b3110f12d8360d60715ee11bd1308901deff7d0","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"repository":{"url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git","type":"git"},"_npmVersion":"10.9.4","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.2","prettier":"^2.7.1","typescript":"^5.3.0","@types/node":"^24.10.1","n8n-workflow":"^1.0.0","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.0.13_1774021698741_0.9632745812911894","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql","version":"1.1.0","description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"license":"MIT","homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","author":{"name":"cafeasp"},"repository":{"type":"git","url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git"},"scripts":{"build":"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","prepublishOnly":"npm run build"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/NetSuiteOAuth1Api.credentials.js"],"nodes":["dist/nodes/NetSuite/NetSuite.node.js"]},"devDependencies":{"@types/node":"^24.10.1","@typescript-eslint/parser":"^5.45.0","eslint-plugin-n8n-nodes-base":"^1.11.0","gulp":"^4.0.2","n8n-workflow":"^1.0.0","prettier":"^2.7.1","typescript":"^5.3.0"},"peerDependencies":{"n8n-workflow":"*"},"_id":"@cafeasp/n8n-nodes-netsuite-restlet-suiteql@1.1.0","gitHead":"22771391899235eb977757c9850421a9e3835eea","bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-xZdTg7T13McCm9kLOREihRNJifs1676XONPDOQ7Sd1X4n4F2k06+DyvD7n/D9ZAzmS3//bvNCnijK39qMrqzeA==","shasum":"7d8fcd2602fd012cef5c857925a01a232605a869","tarball":"https://registry.npmjs.org/@cafeasp/n8n-nodes-netsuite-restlet-suiteql/-/n8n-nodes-netsuite-restlet-suiteql-1.1.0.tgz","fileCount":9,"unpackedSize":82925,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBLe3AeB1hEem2KL2/TwRUuFNHP8U52Aq4KqnfdjC5OdAiEA8qYeE7vtyCYifqPZAl3LZNd3Rxjmo6HdiW1ra1NWEHQ="}]},"_npmUser":{"name":"cafeasp","email":"vpacheco99@gmail.com"},"directories":{},"maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-netsuite-restlet-suiteql_1.1.0_1774550189239_0.08219309807036246"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-05T18:08:15.782Z","modified":"2026-03-26T18:36:29.483Z","1.0.0":"2025-12-05T18:08:16.018Z","1.0.1":"2025-12-10T23:19:43.750Z","1.0.2":"2025-12-15T00:39:07.637Z","1.0.3":"2025-12-17T00:31:08.135Z","1.0.4":"2025-12-18T16:36:01.393Z","1.0.5":"2025-12-29T17:06:17.841Z","1.0.8":"2026-02-09T19:21:47.210Z","1.0.9":"2026-02-09T19:43:52.417Z","1.0.10":"2026-02-09T20:41:59.642Z","1.0.11":"2026-02-17T19:07:55.299Z","1.0.12":"2026-02-17T20:12:44.509Z","1.0.13":"2026-03-20T15:48:18.888Z","1.1.0":"2026-03-26T18:36:29.386Z"},"bugs":{"url":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql/issues"},"author":{"name":"cafeasp"},"license":"MIT","homepage":"https://github.com/cafeasp/n8n-netsuite-restlet-suiteql","keywords":["n8n-community-node-package","n8n","netsuite","suiteql","restlet"],"repository":{"type":"git","url":"git+https://github.com/cafeasp/n8n-netsuite-restlet-suiteql.git"},"description":"n8n node for NetSuite RESTlet and SuiteQL operations with OAuth 1.0a authentication","maintainers":[{"name":"cafeasp","email":"vpacheco99@gmail.com"}],"readme":"# n8n-nodes-netsuite-restlet-suiteql\n\nThis is an n8n community node that lets you interact with NetSuite using OAuth 1.0a authentication. It supports both RESTlet operations and SuiteQL queries.\n\n[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.\n\n## Features\n\n- **OAuth 1.0a Authentication**: Secure authentication using NetSuite's OAuth 1.0a standard\n- **SuiteQL Support**: Execute SQL-like queries against your NetSuite data\n  - **Automatic Pagination**: Fetch all pages of results automatically\n  - **Configurable Limits**: Control the number of results per page\n  - **Smart OAuth Handling**: Proper signature generation for paginated requests\n- **RESTlet Operations**: Call custom NetSuite RESTlet scripts\n  - **Automatic Pagination**: Fetch all pages of results with configurable start/end indices\n  - **Flexible Configuration**: Customize field names for pagination and results\n  - **Custom Company URL**: Support for different RESTlet domains\n  - **File Upload**: Upload PDF, Excel, and CSV files to NetSuite via RESTlet\n- **Record Operations**: Full CRUD operations on NetSuite records\n  - Create records with optional **Duplicate Detection**\n  - Get records by ID\n  - Update records (PUT and PATCH)\n  - Post actions to records\n  - Transform records (e.g., Sales Order to Invoice)\n\n## Installation\n\nFollow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.\n\n### npm\n\n```bash\nnpm install n8n-nodes-netsuite-restlet-suiteql\n```\n\n### n8n\n\n1. Go to **Settings** > **Community Nodes**\n2. Select **Install**\n3. Enter `n8n-nodes-netsuite-restlet-suiteql` in the **Package Name** field\n4. Click **Install**\n\n## Configuration\n\n### Prerequisites\n\nBefore using this node, you need to set up OAuth 1.0a authentication in NetSuite:\n\n1. **Create an Integration Record**:\n   - Navigate to Setup > Integration > Manage Integrations > New\n   - Check \"Token-Based Authentication\"\n   - Save and note down the **Consumer Key** and **Consumer Secret**\n\n2. **Create an Access Token**:\n   - Navigate to Setup > Users/Roles > Access Tokens > New\n   - Select your Integration, User, and Role\n   - Save and note down the **Token ID** and **Token Secret**\n\n### Credentials\n\nWhen setting up the NetSuite OAuth1 API credentials in n8n, you'll need:\n\n- **Account ID**: Your NetSuite account ID\n- **Company URL**: Your NetSuite SuiteTalk API URL (e.g., `1234567.suitetalk.api.netsuite.com`)\n- **RESTlet Company URL** (optional): Your NetSuite RESTlet API URL (e.g., `1234567.restlets.api.netsuite.com`). Leave empty to use the Company URL above.\n- **Consumer Key**: From your Integration record\n- **Consumer Secret**: From your Integration record\n- **Token Key**: Token ID from your Access Token\n- **Token Secret**: Token Secret from your Access Token\n\n## Operations\n\n### SuiteQL\n\nExecute SQL-like queries against your NetSuite data with automatic pagination support.\n\n#### Parameters\n\n- **Query**: The SuiteQL query to execute\n- **Return All Pages**: Toggle to automatically fetch all pages of results\n  - When **enabled**: Automatically follows pagination links until all data is retrieved\n  - When **disabled**: Returns only the specified number of results\n- **Limit**: Maximum number of results per page (1-1000, only visible when \"Return All Pages\" is disabled)\n\n#### Pagination\n\nWhen \"Return All Pages\" is enabled, the node will:\n- Execute your query and retrieve the first page of results\n- Automatically detect if more data is available (via `hasMore` field)\n- Follow the `next` link in the response to fetch subsequent pages\n- Combine all items from all pages into a single result\n- Return the complete dataset with proper OAuth authentication for each request\n\nThis eliminates the need to manually handle pagination when working with large datasets.\n\n**Example Query**:\n```sql\nSELECT id, companyName, email FROM customer WHERE subsidiary = '1' LIMIT 10\n```\n\n**Example Query with Pagination**:\n```sql\nSELECT\n    Item.id,\n    Item.itemId as sku,\n    SUM(InventoryBalance.quantityAvailable) as total_quantity\nFROM\n    Item\nLEFT JOIN\n    InventoryBalance ON InventoryBalance.item = Item.id\nWHERE\n    BUILTIN.DF(Item.itemType) IN ('Assembly/Bill of Materials','Inventory Item')\n    AND Item.isinactive = 'F'\nGROUP BY\n    Item.id, Item.itemId\nORDER BY\n    Item.id ASC\n```\n*With \"Return All Pages\" enabled, this query will automatically fetch all inventory items across multiple pages.*\n\n### RESTlet Operations\n\nCall custom NetSuite RESTlet scripts with automatic pagination support and file upload capabilities.\n\n#### Call RESTlet\n\nExecute a custom RESTlet script with optional automatic pagination.\n\n#### Parameters\n\n- **Script ID**: The Script ID of your RESTlet (e.g., `customscript_my_restlet`)\n- **Deploy ID**: The Deploy ID of your RESTlet (e.g., `customdeploy_my_restlet`)\n- **Body**: JSON body to send to the RESTlet\n- **Return All**: Toggle to automatically paginate through all results\n  - When **enabled**: Additional pagination options appear\n- **Page Size**: Number of records to fetch per page (default: 1000)\n- **Start Index Field**: Field name in the request body for the start index (default: `start`)\n- **End Index Field**: Field name in the request body for the end index (default: `end`)\n- **Results Field**: Field name in the response containing the results array (default: `results`)\n\n#### Pagination\n\nWhen \"Return All\" is enabled, the node will:\n- Automatically increment the start/end index fields in your request body\n- Make multiple requests to fetch all pages of data\n- Stop when it receives fewer results than the page size (indicating the last page)\n- Combine all results into a single response with a `total` count\n\n**Example Body (without pagination)**:\n```json\n{\n  \"id\": \"19405\",\n  \"type\": \"savesearchdata\",\n  \"start\": 0,\n  \"end\": 1000\n}\n```\n\n**Example with Pagination Enabled**:\n- Set \"Return All\" to **true**\n- Set \"Page Size\" to **1000**\n- Set \"Start Index Field\" to **start**\n- Set \"End Index Field\" to **end**\n- Set \"Results Field\" to **results**\n- The node will automatically update `start` and `end` values in each request\n\nThe response will contain:\n```json\n{\n  \"results\": [...all items from all pages...],\n  \"total\": 5432\n}\n```\n\n#### Upload File\n\nUpload PDF, Excel, or CSV files to NetSuite via a RESTlet endpoint. The node automatically converts the file to base64 and determines the file type from the extension.\n\n**Parameters**:\n- **RESTlet Script ID**: The numeric Script ID of your upload RESTlet (e.g., `123`)\n- **RESTlet Deployment ID**: The numeric Deployment ID (e.g., `1`)\n- **Folder ID**: The internal ID of the destination folder in NetSuite\n- **File Name**: The name for the uploaded file (defaults to `{{ $binary.data.fileName }}`)\n\n**Supported File Types**:\n- PDF files (`.pdf`) - Automatically detected as `PDF` type\n- Excel files (`.xlsx`, `.xls`) - Automatically detected as `EXCEL` type\n- CSV files (`.csv`) - Automatically detected as `CSV` type\n\n**Request Body Sent**:\n```json\n{\n  \"postType\": \"uploadFile\",\n  \"folderId\": \"12345\",\n  \"name\": \"document.pdf\",\n  \"base64Content\": \"JVBERi0xLjQKJeLjz9MKMyAwIG9iai...\",\n  \"fileType\": \"PDF\"\n}\n```\n\n**Prerequisites**:\n- Your RESTlet must accept file upload requests with the structure above\n- The RESTlet should create a file record in NetSuite using the base64 content\n- Input data must contain binary data (use Read/Download Binary File node before this)\n\n**Example Workflow**:\n1. Use \"HTTP Request\" or \"Read Binary File\" node to get a file\n2. Connect to the NetSuite node\n3. Select Resource: **RESTlet**\n4. Select Operation: **Upload File**\n5. Configure the RESTlet IDs and folder ID\n6. The file will be uploaded automatically\n\n### Record Operations\n\n#### Create\nCreate a new record in NetSuite. Returns the newly created record's ID and location.\n\n**Duplicate Detection** (optional): Enable to check for existing duplicates before creating a record. When enabled, the node runs a SuiteQL query to look up matching field values. If a duplicate is found, the creation is skipped and a marker is output instead.\n\n- **Duplicate Detection**: Toggle on/off (default: off)\n- **SuiteQL Table Name**: The SuiteQL table to query (e.g., `transaction` for salesOrder, `entity` for customer). Note: SuiteQL table names differ from REST API record types.\n- **Duplicate Check Fields**: One or more field mappings (combined with AND logic):\n  - **NetSuite Field**: The internal field name to check (e.g., `otherrefnum`)\n  - **Match Value**: The value to match against (supports expressions, e.g., `={{ $json.poNumber }}`)\n\nWhen a duplicate is found, the node outputs:\n```json\n{\n  \"skipped\": true,\n  \"reason\": \"duplicate\",\n  \"duplicateId\": \"12345\",\n  \"recordType\": \"salesOrder\",\n  \"matchedFields\": { \"otherrefnum\": \"PO-1234\", \"entity\": \"42\" }\n}\n```\n\n**Example Body**:\n```json\n{\n  \"entity\": \"12345\",\n  \"trandate\": \"2024-12-04\",\n  \"item\": {\n    \"items\": [\n      {\n        \"item\": \"123\",\n        \"quantity\": 1,\n        \"rate\": 100\n      }\n    ]\n  }\n}\n```\n\n**Response**:\n```json\n{\n  \"id\": \"54321\",\n  \"location\": \"/services/rest/record/v1/salesOrder/54321\"\n}\n```\n\nThe node automatically extracts the record ID from the Location header returned by NetSuite.\n\n#### Get\nRetrieve a record by its internal ID.\n\n#### Update (PUT)\nReplace an entire record with new data.\n\n#### Update (PATCH)\nUpdate specific fields of a record without replacing the entire record.\n\n#### Post Action\nPost a specific action to a record.\n\n#### Transform\nTransform one record type into another (e.g., Sales Order to Invoice).\n\n**Parameters**:\n- **Record Type**: The source record type (e.g., `salesOrder`)\n- **Target Record Type**: The destination record type (e.g., `invoice`)\n- **Record ID**: The ID of the source record\n- **Body**: Optional JSON to override fields in the transformed record\n\n#### Delete\nDelete a record by internal ID.\n\n| Parameter   | Description                                    |\n|------------|------------------------------------------------|\n| Record Type | The record type (e.g., `salesOrder`, `customer`) |\n| Record ID   | The internal ID of the record to delete         |\n\n**Output:**\n```json\n{\n  \"deleted\": true,\n  \"recordType\": \"salesOrder\",\n  \"recordId\": \"12345\"\n}\n```\n\n## Resources\n\n- [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)\n- [NetSuite SuiteTalk REST Web Services](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_1540391670.html)\n- [NetSuite SuiteQL](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156257770590.html)\n- [NetSuite OAuth 1.0 Setup](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545141316.html)\n\n## Version History\n\n### 1.0.13\n- Added **Duplicate Detection** for Record > Create operation\n  - Optional SuiteQL-based pre-check before creating records\n  - Configurable field mappings with AND logic for matching\n  - Skips duplicate creation with informative output marker\n  - Input validation and SQL injection prevention\n\n### 1.0.3\n- Added file upload capability to RESTlet operations\n- Support for uploading PDF and Excel files to NetSuite\n- Automatic file type detection based on extension\n- Base64 encoding handled automatically\n\n### 1.0.0\n- Initial release\n- SuiteQL query execution with automatic pagination support\n- **Return All Pages** feature for fetching complete datasets\n- Configurable limit per page (1-1000 results)\n- RESTlet operations with automatic pagination\n  - Configurable start/end index fields\n  - Configurable results field name\n  - Custom RESTlet Company URL support\n- Full Record CRUD operations\n- OAuth 1.0a authentication with proper signature handling for paginated requests\n- Record transformation support\n\n## License\n\n[MIT](LICENSE)\n\n## Support\n\nFor issues, questions, or contributions, please visit the [GitHub repository](https://github.com/cafeasp/n8n-netsuite-restlet-suiteql).\n\n## Author\n\n**cafeasp**\n\n---\n\n**Note**: This is a community-maintained node and is not officially supported by n8n or Oracle NetSuite.\n","readmeFilename":"README.md"}