{"_id":"@amerilux/netsuite-wrapper","_rev":"7-574272cf016e445dba2bc486e64b34bf","name":"@amerilux/netsuite-wrapper","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.3":{"name":"@amerilux/netsuite-wrapper","version":"0.2.3","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.2.3","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"615213c24351b1a958d603f9cba599baaef0ac32","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.2.3.tgz","fileCount":59,"integrity":"sha512-zzav+VuE0KNcFXqrmxdM7N4QN6zRlaoMCO5fzgWfkB2u7NrBOTm3jSrxtmQcDo4qjOzEO1ncq8nbl7LiYBtlvA==","signatures":[{"sig":"MEQCIFKzTs1WQN8dn3LpS/vkpytCKfEoFHMJBGWAs7OXOE6lAiBsU2bQrpLpOD6N8f5yGh8AtN7Kns/kedyywgz28Iq/Xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302239},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"e10c9fb0e00f173509f3f1eaecf9aa731b0cf647","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"10.9.7","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.2.3_1779987453839_0.36347385978261104","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@amerilux/netsuite-wrapper","version":"0.2.4","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.2.4","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"929c7a1561805cbf7ab80518dcd6b0f3cf91deac","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.2.4.tgz","fileCount":59,"integrity":"sha512-FrafsDIPbfV+5KGEYyMmS2fb90fjWroLRNvZow5bFPxOBsBMT685fe9ZomPMZcgp8MOQlltrZMbA68qaAsztbw==","signatures":[{"sig":"MEUCIHJneIvj6rElLozWH7sRGpxJYGpahT9sTTb3IlxzRrI5AiEAn+/UkWphkHl325fpMlpW+EIXWYBxaYWx/Pf42S42AIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299309},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"1aab48d84d4ffc8349a5fc6e1b2c7364f43eda4b","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"11.16.0","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.2.4_1779988574957_0.48309891940439753","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@amerilux/netsuite-wrapper","version":"0.2.5","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.2.5","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"ee2bd5284ed270dad105e6a0e4d0b0db9223877f","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.2.5.tgz","fileCount":59,"integrity":"sha512-v3fcsor4Pbrfv9TA1qlByPIrF5XUTVDVJi9bIzwzVbo7YDvcaVl0+6UcygaSKxzx4Uy5xDqWvKGQFbnkhbS+rw==","signatures":[{"sig":"MEUCIQDIN3c7SYhnRFw18IFDaZQV3So9LyJugTr0I8xIs7KmvgIgUTUDJ0Sau+1gjAPXwGwfXDIhXITSqrtrt50GDaFmv8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299310},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"e28820ff1ee4f9162cc7d59860272c3fb3b54905","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"11.17.0","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.2.5_1781543520838_0.7453126143202231","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amerilux/netsuite-wrapper","version":"0.3.0","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.3.0","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"dda2d685f1b93b04257aa6a7bc16cc47085748c7","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.3.0.tgz","fileCount":62,"integrity":"sha512-CCrpn7nseJ0S2XVWF0Gf8B83ZFWweFhzKtJmemrmxTgvILP6Odq9exb2VUiRqou/fXDzXQjOI6pvLUjnpT2Lsw==","signatures":[{"sig":"MEUCIQDx3LXtOAuVNctFoVyNwE9+w5+k/3IT2R2uhTJsmS8KaAIgW3ShqAWHjoWj8/q/uu5yAMos3NfTGbEJzXdG+6ZSXi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":308983},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"fa4cc35595d2779479b35d481b0eda331c621682","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"11.17.0","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.3.0_1781638937763_0.5607455392763239","host":"s3://npm-registry-packages-npm-production"}},"0.3.94":{"name":"@amerilux/netsuite-wrapper","version":"0.3.94","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.3.94","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"6fac5d871ba0f956fac9491d106b3343dd75852b","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.3.94.tgz","fileCount":62,"integrity":"sha512-KZqv2PHeKgnAV83ZdQfZFjtOBCL6D3frTvn702UGzb9YQLupNpFwYCJDxKZ0q2lI+vxKHedpT78rKNLH4FYtlg==","signatures":[{"sig":"MEUCIA9HeVEjMGsMsLkAE33wYeN8is7C/n9JUyMZBCkXLcp5AiEA6slkrvJ9hJfu3QdsrZL1LrkN6OXZ05htpFGZQx074sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.3.94","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326753},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"bea2e428b39daac56eb66b3f97a2d78fb7aa308d","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"11.17.0","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.3.94_1782151996717_0.054217583529093005","host":"s3://npm-registry-packages-npm-production"}},"0.3.95":{"name":"@amerilux/netsuite-wrapper","version":"0.3.95","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"license":"MIT","_id":"@amerilux/netsuite-wrapper@0.3.95","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"fdd31f57e4c639b69c5397ca226da94c5af3e138","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.3.95.tgz","fileCount":62,"integrity":"sha512-uhJE/hittS95X5WwwZhIvWmz/CewlEAGA7yqHe3iR3kYQnO3EK6+gd5MJCB2xD02vzOMvDhaUdn6Jek8rQRnwA==","signatures":[{"sig":"MEUCIQDRev4c4tNq+wNNxUl3NYG2n0DYeswjN0Q5CTGpnGxpOQIgUt68GwY7GA7LKIZ53rBWF7KzMVPDjxqLjdJNQKeCk0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.3.95","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329906},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"3648180bd08d514557f347c54b4b34bc92c30320","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"11.18.0","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"tmp":"tmp/netsuite-wrapper_0.3.95_1782751560127_0.7408763058573042","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@amerilux/netsuite-wrapper@0.4.0","bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"dist":{"shasum":"db6ef41aaf4d75de88f95d0710c8213d709bedb1","tarball":"https://registry.npmjs.org/@amerilux/netsuite-wrapper/-/netsuite-wrapper-0.4.0.tgz","fileCount":74,"integrity":"sha512-zS5dqW3J9BTyju0UmU6lTW5g5NuPUBsneIyaGLVGqliYi+hAwS+lGemIV8Ju8TmeHVzlZ+ubz1PA9dxoZeetTA==","signatures":[{"sig":"MEQCIDzRQsfWOIKfzjXaoCyJkk5A6hY3EWZrJYZEz3rfuu1CAiB3gI4YfR+SxtxFuU7FZpjnnRJ99mkfdVgcWZ6dysnPDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHOqfUafs2PEgJ0V/2ZsJQVsi57zcWBVXF8/Pemg5bbCAiAiHtt0xXr1CVTDY1IpcIdVEL295g4FglADmav5jzc8lg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amerilux%2fnetsuite-wrapper@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416438},"main":"dist/index.js","name":"@amerilux/netsuite-wrapper","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./log":{"types":"./dist/log.d.ts","default":"./dist/log.js"},"./tsc":{"default":"./builders/tsc.js"},"./url":{"types":"./dist/url.d.ts","default":"./dist/url.js"},"./task":{"types":"./dist/task.d.ts","default":"./dist/task.js"},"./vite":{"default":"./builders/vite.js"},"./https":{"types":"./dist/https.d.ts","default":"./dist/https.js"},"./query":{"types":"./dist/query.d.ts","default":"./dist/query.js"},"./record":{"types":"./dist/record.d.ts","default":"./dist/record.js"},"./rollup":{"default":"./builders/rollup.js"},"./search":{"types":"./dist/search.d.ts","default":"./dist/search.js"},"./runtime":{"types":"./dist/runtime.d.ts","default":"./dist/runtime.js"},"./webpack":{"default":"./builders/webpack.js"},"./telemetry":{"types":"./dist/telemetry.d.ts","default":"./dist/telemetry.js"},"./function-context":{"types":"./dist/function-context.d.ts","default":"./dist/function-context.js"},"./performance-tracker":{"types":"./dist/performance-tracker.d.ts","default":"./dist/performance-tracker.js"},"./instrumentation-loader":{"default":"./builders/instrumentation-loader.js"},"./webpack-instrumentation":{"default":"./builders/webpack-instrumentation.js"}},"gitHead":"d72e0d51feb1c5ac663f1621909b688639c458a8","license":"MIT","private":false,"scripts":{"test":"node --test tests/*.test.js","build":"node scripts/build.js","prepack":"npm run build && npm run build:amd-runtime","typecheck":"node scripts/build.js --noEmit","pack:dry-run":"npm pack --dry-run","packAndPublish":"npm run typecheck && npm test && npm publish --access public","build:amd-runtime":"node scripts/build.js --project tsconfig.amd.json","rewrite:amd-imports":"node cli/rewrite-amd-imports.js"},"version":"0.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cb880fdd-6643-4231-86dd-a3e2c4ba3f75"}},"homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"_npmVersion":"12.0.2","description":"Instrumented wrappers around high-value NetSuite modules.","directories":{},"maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"_nodeVersion":"22.23.2","dependencies":{"@babel/core":"^7.28.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"5.8.3","@hitc/netsuite-types":"2025.1.11"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/netsuite-wrapper_0.4.0_1789495663930_0.5731221959574953"}}},"time":{"created":"2026-05-28T16:57:33.714Z","modified":"2026-09-15T18:07:44.395Z","0.2.3":"2026-05-28T16:57:33.981Z","0.2.4":"2026-05-28T17:16:15.161Z","0.2.5":"2026-06-15T17:12:00.987Z","0.3.0":"2026-06-16T19:42:17.913Z","0.3.94":"2026-06-22T18:13:16.857Z","0.3.95":"2026-06-29T16:46:00.278Z","0.4.0":"2026-09-15T18:07:44.033Z"},"bugs":{"url":"https://github.com/AmeriLux-Dev/netsuite-wrapper/issues"},"license":"MIT","homepage":"https://github.com/AmeriLux-Dev/netsuite-wrapper#readme","keywords":["netsuite","suitescript","wrapper","instrumentation","telemetry","performance","amd"],"repository":{"url":"git+https://github.com/AmeriLux-Dev/netsuite-wrapper.git","type":"git"},"description":"Instrumented wrappers around high-value NetSuite modules.","maintainers":[{"name":"michael-young-amerilux","email":"Michael.ThomasYoung@amerilux.com"}],"readme":"# @amerilux/netsuite-wrapper\n\nInstrumented wrappers around high-value NetSuite SuiteScript modules.\n\nInstead of importing directly from `N/record`, `N/query`, or `N/search`, your project imports the wrapper modules and binds a telemetry sink once per script boundary. The wrapper produces structured events for every wrapped operation; you decide what to do with them.\n\nThe package ships build-tool integrations for **webpack**, **Rollup**, **Vite**, and plain **`tsc`** AMD emit so the rewrite from `N/*` to wrapper modules happens automatically at build time — your source code keeps using normal `N/*` imports.\n\n## Why\n\nSuiteScript's native `N/*` modules give you no visibility into how long calls take, how often they run, or which scripts triggered them. This package wraps high-traffic entry points (record load/save, query/search execution, outbound HTTPS, task lifecycle, etc.) and emits a structured event for each call. Plug those events into your own telemetry pipeline — or use the bundled `performance-tracker` integration that writes to the `customrecord_ptrk_exec_span` custom record schema.\n\nThe wrapper is intentionally generic: it owns the event shape, you own the sink.\n\n## Install\n\n```bash\nnpm install @amerilux/netsuite-wrapper\n```\n\n## Wrapped modules\n\nEach wrapper is a drop-in replacement for the corresponding `N/*` module — the public API matches the SuiteScript surface; instrumentation is layered underneath.\n\n| Wrapper entry | Replaces | Instruments |\n| --- | --- | --- |\n| `@amerilux/netsuite-wrapper/record` | `N/record` | load, save, create, delete, transform, copy, submitFields, attach, detach |\n| `@amerilux/netsuite-wrapper/query` | `N/query` | run, runPaged, runSuiteQL, runSuiteQLPaged |\n| `@amerilux/netsuite-wrapper/search` | `N/search` | create, load, lookupFields, run, runPaged, global search |\n| `@amerilux/netsuite-wrapper/https` | `N/https` | get, post, put, delete, request, requestRestlet, requestSuitelet, requestSuiteTalkRest |\n| `@amerilux/netsuite-wrapper/url` | `N/url` | format, resolveDomain, resolveRecord, resolveScript, resolveTaskLink |\n| `@amerilux/netsuite-wrapper/runtime` | `N/runtime` | getCurrentScript, getCurrentSession, getCurrentUser, isFeatureInEffect |\n| `@amerilux/netsuite-wrapper/task` | `N/task` | create, submit, addInboundDependency, checkStatus |\n| `@amerilux/netsuite-wrapper/log` | `N/log` | audit, debug, error, emergency |\n\n`https` and `url` are true wrappers (not pass-throughs) — they re-export the rest of the SuiteScript surface unchanged.\n\n## Usage shape\n\n```ts\nimport * as record from '@amerilux/netsuite-wrapper/record';\nimport { withWrapperTelemetrySink } from '@amerilux/netsuite-wrapper';\n\nwithWrapperTelemetrySink(mySink, () => {\n    const salesOrder = record.load({\n        type: record.Type.SALES_ORDER,\n        id: 123,\n    });\n});\n```\n\nThe package does not force a telemetry backend. It exposes a sink contract (see `src/telemetry.ts`) so projects can plug in their own implementation, or use the bundled `performance-tracker` integration.\n\n## Build integration\n\nSource code keeps using normal `N/*` imports. The build helpers rewrite supported `N/*` imports to wrapper modules and leave the rest external for NetSuite's runtime to resolve.\n\nPick the guide for your builder:\n\n- [Webpack setup](./docs/builders/webpack.md)\n- [Rollup setup](./docs/builders/rollup.md)\n- [Vite setup](./docs/builders/vite.md)\n- [TypeScript AMD (`tsc`) setup](./docs/builders/tsc.md)\n\nEach guide covers install, minimal config, instrumentation defaults, and the optional `netsuite-wrapper.config.js` file used for custom sink bootstrap.\n\n### Quick reference\n\n| Builder | Integration call | What you do |\n| --- | --- | --- |\n| Webpack | `applyNetSuiteWrapperWebpack(config)` | Wrap your final webpack config. |\n| Rollup | `createNetSuiteWrapperRollupPlugin()` | Add to `plugins`, keep `N/*` external. |\n| Vite | `createNetSuiteWrapperVitePlugin()` | Add to `plugins`, set entry under `build.rollupOptions.input`. |\n| `tsc` | `rewriteNetSuiteWrapperTscOutput({ outDir, rootDir })` | Emit AMD first, then run the helper. |\n\n> `netsuite-wrapper.config.js` is loaded through Node's `require(...)` during the build. Treat it as trusted project code.\n\n## Telemetry sink\n\nThe wrapper's contract is the sink interface in `src/telemetry.ts`. A sink receives structured events with module-level operation metadata (`module`, `action`, `summary`, optional `detail`) and decides what to persist or forward.\n\nThe bundled `performance-tracker` integration builds one span per tracked script run (the root) and one per wrapped `N/*` call inside it, and hands every run's spans and log lines to the registered **exporters** as one batch when the run ends. Enable it through `netsuite-wrapper.config.js`:\n\n```js\nmodule.exports = {\n    telemetryBootstrap: {\n        integration: 'performance-tracker',\n        // Every @NScriptType entry file is tracked under this scope; a @pftr:scopeKey header tag overrides it per file.\n        scopeKey: 'app:my-app',\n        // Write spans to customrecord_ptrk_exec_span, the schema the PerformanceTracker NetSuite app reads. Default true.\n        recordExport: true,\n        // Also POST each run's spans and log lines as one JSON document to an external log system.\n        httpsExport: {\n            url: 'https://logs.example.com/ingest',\n            secretId: 'custsecret_my_app_telemetry', // a NetSuite API secret; the token itself never appears in code or config\n            // authorizationHeader: 'Authorization', authorizationScheme: 'Bearer', headers: { 'X-Tenant': 'x' }, source: 'my-app',\n        },\n    },\n};\n```\n\n### Scope modes\n\nA run's scope key is looked up in `customrecord_ptrk_scope` at the start of the run (cached for thirty minutes in `N/cache`). The scope's mode is the account-side switch, changed in the PerformanceTracker app without a redeploy:\n\n- `off`: the run is not tracked. Nothing is exported, nothing is queued.\n- `boundary`: the root span and the run's log lines are exported. Wrapped `N/*` calls are not persisted. This is the production setting: one record, one request per run.\n- `diagnostic`: everything, including a span per wrapped `N/*` call.\n\nA scope key with no row runs as `boundary`.\n\n### Tracked entry points\n\nWith `scopeKey` set, every file whose header carries a supported `@NScriptType` (Restlet, Suitelet, MapReduceScript, UserEventScript) becomes a tracked script. Its exported entry functions (`export function post`, `export const onRequest = (context) => …`) run inside `runTrackedScriptEntry`, and so does an exported const initialised by a call (`export const post = defineRestlet(...)`), whose returned function is wrapped through `wrapTrackedScriptEntryFunction`.\n\n### What a log line carries\n\nEvery wrapped `log.*` call still writes to `N/log` as before (see the tag and chunking notes below). Inside a tracked run it also becomes a structured entry for exporters that accept log entries: level, title, the details as passed (not the chunked string), timestamp, execution and flow ids, script and deployment ids, the enclosing function and module, the call chain of instrumented functions (`post -> roles -> loadUser`) and the enclosing function's **arguments**, snapshotted by parameter name.\n\nArgument capture costs nothing until it is used: the build passes the parameter values to the function-context helper as references, and they are serialised only when a log call inside the function asks for them or when the function throws. The snapshot is bounded (strings cut at 200 characters, five array items, twenty keys, two levels, two thousand characters in all; a NetSuite record collapses to its type and id). A function that receives credentials or personal data opts out with `@ptrk-ignore-arguments` in the comment above it; the same tag at the top of a file opts out every function in that file.\n\nAn error thrown out of an instrumented function is recorded once, at the innermost function it left, with that function's arguments, in the root span's detail (`observedErrors`).\n\n### Exporters\n\n`recordExport` and `httpsExport` register the two bundled exporters from the generated bootstrap. A project that needs another destination, or a payload shape the `format` hook of `createHttpsExporter` cannot express through config, registers its own from a module listed in `bootstrapModules`:\n\n```js\n// telemetry-bootstrap.js, listed in netsuite-wrapper.config.js under bootstrapModules\nconst { registerTelemetryExporter } = require('@amerilux/netsuite-wrapper/telemetry-exporter');\n\nregisterTelemetryExporter({\n    name: 'my-collector',\n    acceptsLogEntries: true,\n    export(batch) {\n        // batch: { executionId, flowId, scopeKey, mode, spans, logs }\n    },\n});\n```\n\nAn exporter that throws is reported to `N/log` and never stops the others or the script. When no exporter is registered at all, the record exporter is used, which is what earlier releases did.\n\nOr plug in a custom sink:\n\n```js\nmodule.exports = {\n    telemetryBootstrap: {\n        sinkModule: './my-wrapper-sink.js',\n        sinkExport: 'createSink',\n    },\n};\n```\n\nDisable bootstrap entirely:\n\n```js\nmodule.exports = {\n    telemetryBootstrap: false,\n};\n```\n\n### Trace logging\n\nThe wrapper can emit internal `[NSW_TRACE]` diagnostics describing how each log call is routed (active execution, function context, chunking). It is **off by default**. Turn it on through `netsuite-wrapper.config.js`:\n\n```js\nmodule.exports = {\n    traceLog: true,\n};\n```\n\nWhen enabled, the builder injects a small bootstrap that calls `setTraceLogEnabled(true)` at runtime, so trace logging is active for the deployed script without any code change. You can also toggle it directly at runtime via `log.setTraceLogEnabled(true)` / `log.isTraceLogEnabled()` from `@amerilux/netsuite-wrapper/log`.\n\n### Log tracker tags and the message title\n\nEvery wrapped `log.*` call records tracker context — the active execution id and function — as tags. As of this release those tags are written to the **start of the message detail** (e.g. `[exec_…] [fn:name::module] your detail`) and the **title is left untouched**. Earlier releases prefixed the title instead; consumers that parsed the tags out of the log title must read them from the detail. Short messages carry the tags inline; chunked messages repeat the tags at the start of every chunk (after the chunk marker) so each chunk stays attributable.\n\n### Chunk logging\n\nNetSuite truncates a log detail at ~4000 characters, so by default the wrapper splits long details into multiple entries, each prefixed with a `[[NSW_CHUNK|…]]` marker that downstream viewers use to re-assemble the original message. Some users would rather not see that marker text. The behaviour is configurable through `netsuite-wrapper.config.js`:\n\n```js\nmodule.exports = {\n    chunkLogging: 'group', // default\n};\n```\n\n- `group` (default): split long details and add the `[[NSW_CHUNK|…]]` marker so viewers can re-assemble them.\n- `silent`: still split long details across entries, but omit the marker (no extra text; entries are not re-assembled).\n- `off`: never split — emit the detail in a single call and let NetSuite truncate it.\n\nFor any non-`group` mode the builder injects a bootstrap that calls `setChunkLogMode('silent' | 'off')` at runtime. You can also set it directly via `log.setChunkLogMode('off')` / `log.getChunkLogMode()` from `@amerilux/netsuite-wrapper/log`.\n\n## Local consumer test flow\n\nYou can test the package from a consumer project with a local file dependency before publishing:\n\n```json\n\"@amerilux/netsuite-wrapper\": \"file:../netsuite-wrapper\"\n```\n\nThen install and build the consumer normally. This validates that:\n\n- the package export surface resolves from a consumer project\n- the build helpers redirect supported `N/*` imports into the wrapper package\n- the wrapper package leaves its own internal `N/*` imports external for NetSuite runtime resolution\n\nWhen ready to move off the local test, replace the `file:` dependency with the published npm version.\n\n## Compatibility boundary\n\nThe wrapper package is intentionally generic.\n\n- The wrapper owns module-level operation metadata (`module`, `action`, `summary`, `detail`).\n- Consumers such as PerformanceTracker own the adapter that converts wrapper events into their own telemetry model.\n- Sink-side concerns (storage, scope policy, cache policy, custom-record schema) live in the adapter, not in the wrapper.\n\nThe long-term contract is the sink interface in `src/telemetry.ts`, not any specific consumer implementation.\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}