{"_id":"@crshanks/generator-nrsynthetics-workspace","_rev":"8-cb024512cd86012ea3f7f1b55aba8544","name":"@crshanks/generator-nrsynthetics-workspace","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.11":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.1.11","keywords":["new relic","synthetics","yeoman-generator"],"author":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace","name":"Benedicto Tan","email":"ben.tan.dev@gmail.com"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.1.11","maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"homepage":"https://github.com/crshanks","bugs":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace/issues"},"dist":{"shasum":"c6d1fb262cac9539e33541620b1012816324620a","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.1.11.tgz","fileCount":22,"integrity":"sha512-IznJTynrW5GgBUvCDqKHSb3LUSCrv7th63vN1sE85f3hcb3QapzEj1A0TdfinCJQKfWctJYgXXQOMj5zZ8fG6A==","signatures":[{"sig":"MEYCIQCOaJdW/KLaGL4fm3yvFA9fq0CI+41kpEorqGN5km4PCAIhANFY2aZJVoypkrny3HA7qCx2OMmvkGUznuhSze5n8Vvi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82784},"main":"generators/index.js","engines":{"npm":">= 4.0.0"},"gitHead":"be5224069267d8dc1d2a8874ac63f1db121dcd6f","scripts":{"test":"jest","pretest":"eslint ."},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"repository":{"url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git","type":"git"},"_npmVersion":"8.6.0","description":"Generate local workspace for creating/testing NR Synthetics ScriptedBrowse and API Tests.","directories":{},"_nodeVersion":"18.0.0","dependencies":{"chalk":"^4.1.0","yosay":"^2.0.1","yeoman-generator":"^2.0.1"},"eslintConfig":{"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"extends":["xo","prettier"],"plugins":["prettier"]},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^3.0.9","eslint":"^6.6.0","prettier":"^1.19.1","lint-staged":"^9.4.3","yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint-config-xo":"^0.27.2","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/generator-nrsynthetics-workspace_0.1.11_1707141487318_0.21628938271801212","host":"s3://npm-registry-packages"}},"0.1.13":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.1.13","keywords":["new relic","synthetics","yeoman-generator"],"author":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace","name":"Benedicto Tan","email":"ben.tan.dev@gmail.com"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.1.13","maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"homepage":"https://github.com/crshanks","bugs":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace/issues"},"dist":{"shasum":"ff8fc83e93f0cb1e36a79e6eeea163941bba0828","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.1.13.tgz","fileCount":22,"integrity":"sha512-ujSOVMr3nG3tMgBzly5KmD+v89KUyC87l7e/v3A9sHWE/CzZaWMB+UP0VRCzTS4w2A5tGuvclenH3mPj7MxKuw==","signatures":[{"sig":"MEYCIQDKbP8BUAJ84GHUpvjeY8jqXXP78N4R9QTIUsPpzq+PUQIhAM1AXTyovthNEskZKF0SdvrfTEioTaswQt+hmw+VZMLm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82783},"main":"generators/index.js","engines":{"npm":">= 4.0.0"},"gitHead":"aae00443b8aeec26f5dfb6b26e49010a059c1b99","scripts":{"test":"jest","pretest":"eslint ."},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"repository":{"url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git","type":"git"},"_npmVersion":"8.6.0","description":"Generate local workspace for creating/testing NR Synthetics ScriptedBrowse and API Tests.","directories":{},"_nodeVersion":"18.0.0","dependencies":{"chalk":"^4.1.0","yosay":"^2.0.1","yeoman-generator":"^2.0.1"},"eslintConfig":{"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"extends":["xo","prettier"],"plugins":["prettier"]},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^3.0.9","eslint":"^6.6.0","prettier":"^1.19.1","lint-staged":"^9.4.3","yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint-config-xo":"^0.27.2","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/generator-nrsynthetics-workspace_0.1.13_1707143952030_0.7715082711056966","host":"s3://npm-registry-packages"}},"0.1.14":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.1.14","keywords":["new relic","synthetics","yeoman-generator"],"author":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace","name":"Benedicto Tan","email":"ben.tan.dev@gmail.com"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.1.14","maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"homepage":"https://github.com/crshanks","bugs":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace/issues"},"dist":{"shasum":"25986ab41d5b86a1b1960b06ee9905a67e0ed1de","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.1.14.tgz","fileCount":24,"integrity":"sha512-/OnuUP6QQjUgO7hJEovhemsgQSAnXCa92CpPb0MueH9MnWpdb6HQddSl5R5wxN58mvksHBhGTe6YFHg8EYwNdA==","signatures":[{"sig":"MEUCIDiYdJVElIc+euF4CSL8ecwrcXhrW40FlU5nciVfpwEbAiEA77lqismgAsu14uOMc5k3TAc8hl1ul5E6NZ0RbAJKTVE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88449},"main":"generators/index.js","engines":{"npm":">= 4.0.0"},"gitHead":"3341b0d4a28b69c0c5a4f856c246c953fc4233ee","scripts":{"test":"jest","pretest":"eslint ."},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"repository":{"url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git","type":"git"},"_npmVersion":"8.6.0","description":"Generate local workspace for creating/testing NR Synthetics ScriptedBrowse and API Tests.","directories":{},"_nodeVersion":"18.0.0","dependencies":{"chalk":"^4.1.0","yosay":"^2.0.1","yeoman-generator":"^2.0.1"},"eslintConfig":{"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"extends":["xo","prettier"],"plugins":["prettier"]},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^3.0.9","eslint":"^6.6.0","prettier":"^1.19.1","lint-staged":"^9.4.3","yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint-config-xo":"^0.27.2","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/generator-nrsynthetics-workspace_0.1.14_1707307602273_0.4136306508061145","host":"s3://npm-registry-packages"}},"0.1.15":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.1.15","keywords":["new relic","synthetics","yeoman-generator"],"author":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace","name":"Benedicto Tan","email":"ben.tan.dev@gmail.com"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.1.15","maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"homepage":"https://github.com/crshanks","bugs":{"url":"https://github.com/tanben/generator-nrsynthetics-workspace/issues"},"dist":{"shasum":"2e2e0e68e05079f3150486e9bc1b9b4ed99fbe93","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.1.15.tgz","fileCount":24,"integrity":"sha512-E4sY9Nf3RrO9+E0GUmhQgfGXGCowUMoDtTZqQ/SkWo1JfV9xReXnpLVizOzNnrQM/M0SUFkpvMybrb72mqrNdA==","signatures":[{"sig":"MEUCIQDjXy6B2Mb96yFpIOOWDah9Nc8OwMzCuTZIEux6GQYHOwIgevaUxQyjJieEbJCasMrQnZocpSq0URenr/UMyPND+dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88558},"main":"generators/index.js","engines":{"npm":">= 4.0.0"},"gitHead":"223d74c7b5bf1a74080a2728e637784ce41cc7d4","scripts":{"test":"jest","pretest":"eslint ."},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"repository":{"url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git","type":"git"},"_npmVersion":"10.9.2","description":"Generate local workspace for creating/testing NR Synthetics ScriptedBrowse and API Tests.","directories":{},"_nodeVersion":"23.9.0","dependencies":{"chalk":"^4.1.0","yosay":"^2.0.1","yeoman-generator":"^2.0.1"},"eslintConfig":{"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"extends":["xo","prettier"],"plugins":["prettier"]},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^3.0.9","eslint":"^6.6.0","prettier":"^1.19.1","lint-staged":"^9.4.3","yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint-config-xo":"^0.27.2","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/generator-nrsynthetics-workspace_0.1.15_1746696974220_0.4532617073996943","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.2.0","keywords":["new relic","synthetics","yeoman-generator"],"author":{"url":"https://github.com/crshanks","name":"Craig Shanks"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.2.0","maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"contributors":[{"url":"https://github.com/tanben/generator-nrsynthetics-workspace","name":"Benedicto Tan","email":"ben.tan.dev@gmail.com"}],"homepage":"https://github.com/crshanks/generator-nrsynthetics-workspace","bugs":{"url":"https://github.com/crshanks/generator-nrsynthetics-workspace/issues"},"dist":{"shasum":"a7525134f243445a8929aabe3bdee80330895de2","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.2.0.tgz","fileCount":23,"integrity":"sha512-itTMJTnRMu+sNVHal4mlcGglil/6Al9Uk97AGjbAOlW6vCyxiVAJdT3jL/ErBllAJIyRJbudE9+mVZ/MgTMJqQ==","signatures":[{"sig":"MEUCIFnmPY9BXRxkmDztf1cWiAW88z29S7qkLWrCHZ5C8C06AiEA75FjLWxyeae46dg5wfN8rnMFETPlpLOMJ/ZXmGM0Al8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88737},"main":"generators/index.js","engines":{"npm":">= 4.0.0"},"gitHead":"6484688b076fddfdab14c69cd45c258d17bebfc5","scripts":{"test":"jest","pretest":"eslint ."},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"repository":{"url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git","type":"git"},"_npmVersion":"11.4.2","description":"Generate local workspace for creating/testing NR Synthetics Scripted Browser and API Tests.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"chalk":"^4.1.0","yosay":"^2.0.1","yeoman-generator":"^2.0.1"},"eslintConfig":{"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"extends":["xo","prettier"],"plugins":["prettier"]},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.1.0","husky":"^3.0.9","eslint":"^6.6.0","prettier":"^1.19.1","lint-staged":"^9.4.3","yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint-config-xo":"^0.27.2","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/generator-nrsynthetics-workspace_0.2.0_1782995288730_0.150913352204173","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@crshanks/generator-nrsynthetics-workspace","version":"0.2.1","description":"Generate local workspace for creating/testing NR Synthetics Scripted Browser and API Tests.","homepage":"https://github.com/crshanks/generator-nrsynthetics-workspace","author":{"name":"Craig Shanks","url":"https://github.com/crshanks"},"contributors":[{"name":"Benedicto Tan","email":"ben.tan.dev@gmail.com","url":"https://github.com/tanben/generator-nrsynthetics-workspace"}],"repository":{"type":"git","url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"bugs":{"url":"https://github.com/crshanks/generator-nrsynthetics-workspace/issues"},"main":"generators/index.js","keywords":["new relic","synthetics","yeoman-generator"],"devDependencies":{"yeoman-test":"^1.7.0","yeoman-assert":"^3.1.0","eslint":"^6.6.0","prettier":"^1.19.1","husky":"^3.0.9","lint-staged":"^9.4.3","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1","eslint-config-xo":"^0.27.2","jest":"^26.1.0"},"engines":{"npm":">= 4.0.0"},"dependencies":{"yeoman-generator":"^2.0.1","chalk":"^4.1.0","yosay":"^2.0.1"},"eslintConfig":{"extends":["xo","prettier"],"env":{"jest":true,"node":true},"rules":{"prettier/prettier":"error"},"plugins":["prettier"]},"scripts":{"pretest":"eslint .","test":"jest"},"license":"Apache-2.0","_id":"@crshanks/generator-nrsynthetics-workspace@0.2.1","gitHead":"8e329ea25e4d280768a8fdfbb2477d8d609c5509","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-VUHEIP225EiCgiDw/FHWGeVslg3WYNa97WbmgmbqJ6kDQXNiFBvia6jaXhj5fO2lD8ocIL//gcQWbz98G1V7iQ==","shasum":"39cab5e26c6639173f992c280b0a7f000c1d6d7b","tarball":"https://registry.npmjs.org/@crshanks/generator-nrsynthetics-workspace/-/generator-nrsynthetics-workspace-0.2.1.tgz","fileCount":23,"unpackedSize":89342,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC5q3ORPWXOIoBlRde45BNSDwoAeycy1UmYmFtoAzyCHwIgFSczlLt0x2D8liLyYacfAEhAR2rtbAvSzzqbh1uYugc="}]},"_npmUser":{"name":"crshanks","email":"craig@shanks.io"},"directories":{},"maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/generator-nrsynthetics-workspace_0.2.1_1783066746162_0.7653644948512837"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-05T13:58:07.230Z","modified":"2026-07-03T08:19:06.394Z","0.1.11":"2024-02-05T13:58:07.488Z","0.1.12":"2024-02-05T14:11:46.075Z","0.1.13":"2024-02-05T14:39:12.180Z","0.1.14":"2024-02-07T12:06:42.460Z","0.1.15":"2025-05-08T09:36:14.404Z","0.2.0":"2026-07-02T12:28:08.922Z","0.2.1":"2026-07-03T08:19:06.300Z"},"bugs":{"url":"https://github.com/crshanks/generator-nrsynthetics-workspace/issues"},"author":{"name":"Craig Shanks","url":"https://github.com/crshanks"},"license":"Apache-2.0","homepage":"https://github.com/crshanks/generator-nrsynthetics-workspace","keywords":["new relic","synthetics","yeoman-generator"],"repository":{"type":"git","url":"git://github.com/crshanks/generator-nrsynthetics-workspace.git"},"description":"Generate local workspace for creating/testing NR Synthetics Scripted Browser and API Tests.","contributors":[{"name":"Benedicto Tan","email":"ben.tan.dev@gmail.com","url":"https://github.com/tanben/generator-nrsynthetics-workspace"}],"maintainers":[{"name":"crshanks","email":"craig@shanks.io"}],"readme":"# New Relic Synthetics Workspace Generator\n\n[![NPM](https://img.shields.io/badge/dynamic/json?color=orange&label=NPM&query=engines.npm&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcrshanks%2Fgenerator-nrsynthetics-workspace%2Fmain%2Fpackage.json)]() [![GitVersion](https://img.shields.io/badge/Git%20CLI-%3E2.25.1-orange)]()  [![Version](https://img.shields.io/badge/dynamic/json?color=brightgreen&label=Version&query=version&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcrshanks%2Fgenerator-nrsynthetics-workspace%2Fmain%2Fpackage.json)](https://github.com/crshanks/generator-nrsynthetics-workspace)   [![SynthTemplateVersion](https://img.shields.io/badge/dynamic/json?color=blue&label=SyntheticsTemplate&query=version&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcrshanks%2Fgenerator-nrsynthetics-workspace%2Fmain%2Fgenerators%2Fapp%2Ftemplates%2F_package.json\n)](https://github.com/crshanks/generator-nrsynthetics-workspace/blob/main/generators/app/templates/_package.json)  [![License](https://img.shields.io/badge/dynamic/json?label=License&query=license&url=https%3A%2F%2Fraw.githubusercontent.com%2Fcrshanks%2Fgenerator-nrsynthetics-workspace%2Fmain%2Fpackage.json)](https://github.com/crshanks/generator-nrsynthetics-workspace)\n\n\n\n> Forked from [tanben/generator-nrsynthetics-workspace](https://github.com/tanben/generator-nrsynthetics-workspace) by Benedicto Tan. This fork keeps the generated workspace aligned with New Relic's current Node 22 Synthetics runtime.\n\n### Generate New Relic Synthetics workspace for development and testing of:\n* Synthetics Scripted Browser\n* Synthetics API test\n\n## Requirements\n* [Node.js/NPM](https://www.npmjs.com/get-npm) (Node 22+, matching New Relic's current Synthetics runtime)\n* [Chrome Browser](https://www.google.com/chrome/)\n* [Git CLI](https://git-scm.com/downloads) (optional, for local repo)\n\n## Installation\n\nFirst, install [Yeoman](http://yeoman.io) and generator-nrsynthetics-workspace using [npm](https://www.npmjs.com/).\n\n```bash\nnpm install -g yo\nnpm install -g @crshanks/generator-nrsynthetics-workspace\n```\n\nThen generate your new project:\n\n```bash\n\nyo @crshanks/nrsynthetics-workspace\n\n```\n\n\n## Generating a NR Synthetics workspace\n\n1. Run `yo @crshanks/nrsynthetics-workspace` from commandline\n\n2. Select `Yes` (default) when prompted `? Enable Download/Upload of Synthetics scripts to your account?`\n\n3. Enter your User API Key when prompted, if you answered `Yes` from step-1.\n\n```\nThis generator can also be run with: yo @crshanks/nrsynthetics-workspace\n\n\n     _-----_     ╭──────────────────────────╮\n    |       |    │      Welcome to the      │\n    |--(o)--|    │   bedazzling Synthetics  │\n   `---------´   │        generator!        │\n    ( _´U`_ )    ╰──────────────────────────╯\n    /___A___\\   /\n     |  ~  |\n   __'.___.'__\n ´   `  |° ´ Y `\n\n? Enable Download/Upload of Synthetics scripts to your account? Yes\n? Enter your user Api Key NRAK-XXXXXXXXXXXXXXXXXXXXXXXXXXX\n? Initialize local Git repo? Yes\n\n```\nA workspace is created called `synthetics-local`, the user key will be stored in `.nrconfig.json`.\n\nNote: A local repo is setup for you, which would allow you to track and manage your local changes. To configure your local Git repo see [Customizing Git Configuration](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration).\n\n\n#### Files\n```\n./synthetics-local\n|\n|── .vscode\n|    ├── launch.json\n|\n├── apps\n│   ├── deleteScripts.js\n│   ├── downloadConfig.js\n│   ├── downloadScripts.js\n│   ├── listLocalScripts.js\n│   └── updateSettings.js\n│   └── uploadLocalScripts.js\n│   └── uploadScripts.js\n|\n├── examples\n│   ├── apiTest.js\n│   └── scriptedBrowser.js\n├── lib\n│   ├── simulator.js  // mock New Relic Synthetics implicit objects\n|\n├── LICENSE\n├── monitors            // created after downloading a monitor\n│   ├── nr-monitor.json // holds the account monitor configurations\n│   └── scriptedBrowser-test1.js // downloaded script\n|\n├── package.json\n└── package-lock.json\n\n```\n#### Verify local repo\n\n```\n$ git status\nOn branch main\n\nNo commits yet\n\nUntracked files:\n  (use \"git add <file>...\" to include in what will be committed)\n\t.editorconfig\n\t.gitignore\n\t.vscode/\n\tLICENSE\n\tREADME.md\n\tapps/\n\texamples/\n\tlib/\n\tmonitors/\n\tpackage-lock.json\n\tpackage.json\n```\n**Note:** The user key is stored in `.nrconfig.json` and is not committed, see `.gitignore`\n\n\n## Download / Upload & Manage monitor\n**Note:**  This option is only available if you opted  `Yes`  to **Enable Download/Upload of Synthetics scripts.**\n\n\n1. Change directory into `synthetics-local` .\n2. Download monitor by running this command: `npm run download`; to upload `npm run upload`. You can also run any of the following commands:\n- To create a monitor: `npm run create`\n- To delete a monitor: `npm run delete`\n- To update a monitor's settings: `npm run update:settings`\n3. You will be presented with a list for Scripted Browser and API test.\n   You can select single or multiple monitors or select `ALL`.\n\n```\n> npm run download\n\nUsing apiKey: \"XXXX-XXXXXXXXXXXXXXXXXXXXXXXXX\"\n? Select Monitors (Press <space> to select, <a> to toggle all, <i> to invert selection)\n❯ ◯ ALL\n   = Scripted Browsers =\n  ◯ scriptedBrowser-test1\n  ◯ scriptedBrowser-test2\n   = API Tests =\n  ◯ apiTest-test1\n  ◯ apiTest-test2\n\n```\nFiles are downloaded to `./monitors` directory which also includes the Synthetics monitor configurations for your account, these are saved in `nr-monitor.json`.\n\n**NOTE:**  Do not rename the monitor file name(s) or update the configuration file.\n\n\n## Running  script locally\n\n1. Add this to the top of your script, the library mimics the Synthetics API and implements most common commands in Synthetics.\n\n> It's important that `global._isApiTest` is set to `false`, for scripted browser tests.\n\n```\n\n    if (typeof $env === \"undefined\" || $env === null) {\n      global._isApiTest = true;  // false, for Scripted Browser\n      require(\"../lib/simulator\");\n    }\n```\n2. Execute the script by hitting *F5* from VScode or open a terminal, run `node <filename>.js` in the `./monitors`  directory.\n```\nmonitors>  node <filename>.js\n```\n\n## Running Examples\n### API Test\nOpen the file examples/apiTest.js and `F5` to execute.\n\nGo to troubleshooting section if you received an error:\n> Can't find Node.js binary \"node\": path does not exist. Make sure Node.js is installed and in your PATH, or set the \"runtimeExecutable\" in your launch.json\n\n```\n$ node examples/apiTest.js\nResponse body: { widgetType: 'gear', widgetCount: 10 }\nmain(): Script execution completed\n\n```\n### Scripted Browser\nOpen the file examples/apiTest.js and `F5` to execute.\n\nGo to troubleshooting section if you received an error:\n> Can't find Node.js binary \"node\": path does not exist. Make sure Node.js is installed and in your PATH, or set the \"runtimeExecutable\" in your launch.json\n\n```\n$ node examples/scriptedBrowser.js\n\n```\nBrowser opens\n![image](./images/scriptedBrowser.png)\n\n> **Note (Windows):** After a scripted browser run completes, Chrome may print\n> harmless log lines to the terminal (e.g. `PHONE_REGISTRATION_ERROR`,\n> `USB: ... Element not found`, `Created TensorFlow Lite XNNPACK delegate`).\n> These come from the Chrome process shutting down, not from your script, and\n> can be ignored — the run has already finished successfully.\n\n\n## Troubleshooting\n### Error Message\n\n#### TypeError: $browser.get is not a function. When running scripted browsers.\n> Make sure that you've set:  `global._isApiTest = false`\n\n#### Can't find Node.js binary \"node\": path does not exist. Make sure Node.js is installed and in your PATH, or set the \"runtimeExecutable\" in your launch.json\n\n> Edit the file `.vscode/launch.json` , and add the \"runtimeExecutable\" property with the Node path:\n```\n      \"runtimeExecutable\": \"<Node binary absolute path>\",\n```\nExample:\n```\n  {\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"name\": \"Launch Program\",\n      \"skipFiles\": [\"<node_internals>/**\"],\n      \"runtimeExecutable\": \"/Users/<you>/.nvm/versions/node/v22.0.0/bin/node\",\n      \"program\": \"${file}\"\n    }\n  ]\n}\n```\n\n## Acknowledgements\n\nThis project is a fork of [generator-nrsynthetics-workspace](https://github.com/tanben/generator-nrsynthetics-workspace), originally created by **Benedicto Tan**. This fork keeps the generated workspace aligned with New Relic's current Node 22 Synthetics runtime. Many thanks to Ben for the original work.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}