{"_id":"@burgan-tech/vnext-discovery-reference","_rev":"8-ed3db932049325edb79c3e4320029960","name":"@burgan-tech/vnext-discovery-reference","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.0":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.0","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.0","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"771b12302816ee9fd012b1aa6827cd89baf8b857","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.0.tgz","fileCount":5,"integrity":"sha512-KNKBcewCmn7qXOZ2hdUtQpBb6eHjptNaOiq6vFgl9HiewHGMTJq2n7swIvGUC8lYS/mZWr6U2t61GNfGqOVyyg==","signatures":[{"sig":"MEYCIQDMxQwdw5AMUHEBeIF3CkWFwAifcmaP5EioX8BJw1EIQgIhALgOzia1unxaA88hpm6J3QQRUPpc/51SAvnzFcpmwwhC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12478},"main":"index.js","type":"module","gitHead":"28f3b719bc517b4b283b2ca432587f9058beb5c7","_npmUser":{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"10.8.2","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.0_1767294388241_0.36662402825275286","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.1","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.1","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"27840f3c910ea1b75e2487d436390e00f2f72dc6","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.1.tgz","fileCount":5,"integrity":"sha512-tNdH+ROwW5h6VhGtLZt0cb2Rp4l74FaNTFzNKQPhCLW/pH1HfsTiCus1t5ajJM36aJv6U8h0tk+YQMlRWbgklQ==","signatures":[{"sig":"MEUCIGOBnhuzIRdCOgLgtAorrLaWeygZlw6we59xOaVt04HnAiEA1JXcllhDF3lFbBKLlUqDSjL4IZ5YyjtFWK6PthfqFII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12479},"main":"index.js","type":"module","gitHead":"7ee66a345e2590b6bf0ad33539f58e9c81c5d817","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.9.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.1_1774421228401_0.25889041717924877","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.2","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.2","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"a002b889da261e3ea1cd4ef376c02923b831ce8f","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.2.tgz","fileCount":5,"integrity":"sha512-s7JfFeI6wNk85oIc6QpoRl9MjQPWNPRQZenKJ5VSfvPKcejPy/YErA/jPIKLgJfwAe1GBbIAKIAa6OBG3cr0jg==","signatures":[{"sig":"MEQCIAlKQWB/aXDgJxJdzSxpMAqr9fW84EGko4QGF2JH3z0fAiBvVdPw9/TLyuUCSJs/ItXa/cA+yspq7uiF9ffgz5bEuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12838},"main":"index.js","type":"module","gitHead":"38073c54461cc01e5ece5c00ac0faa4f75772d29","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.13.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.2_1781212831504_0.6657273966512853","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.3","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.3","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"9fbdad29f521b390279c9b65a84d94b2a6ba5ab5","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.3.tgz","fileCount":5,"integrity":"sha512-TJQ077xuwU56aOnTLuhcNAVEZI0kiTTGd1p7Kcjr7X26WtO+m5uVNdfX2PCPXHMJSHDoe9Mm0RhUF7mCXHVEsQ==","signatures":[{"sig":"MEUCIHKXon92r3GhSRiQRkxqhhY9tFAJrcKSrvzu83fAIyWMAiEAik2Ln9G5TdgUS5V3H+7inUzujc/yfHzz/CymDCsOWVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12838},"main":"index.js","type":"module","gitHead":"2883d2149fd5cfce60615e9d2c3e1ff63e961bc2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.13.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.3_1782730802854_0.08257371889110332","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.4","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.4","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"1c2ec9fad33c486cf15b660804e1e1f5185272f4","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.4.tgz","fileCount":5,"integrity":"sha512-0oDluuDErEXU30J0Qk10CxtHF0g0fmUDtaKOmOmI6kMsunYQLtvon4ozBOVyb7Jz8a9i1O/Ys2R9JvNhayKEYg==","signatures":[{"sig":"MEUCIQDYDGa7CjezLk2CdPsvKOqQTT+eItvAuGfGsoP6rOIhfwIgbcdj48xiyo6+fpLCHDKXsOVXrTRjjM4Bsww7YgERKRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12838},"main":"index.js","type":"module","gitHead":"fbf6ffcf039d6ad4eb6c2de9608ed9d3ce9b97f8","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.16.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.4_1786120407982_0.45214164830182035","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.5","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.5","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"cabfbbfd9e1843ecd9ade6719a08cc7c1d58fb44","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.5.tgz","fileCount":5,"integrity":"sha512-XKJ4Enmn0Wc8UmcnlIWIWQtzLe4NFgUbRifv9P6JZ7TQHLFnx1S4rVcDSNxBpvEtJKO9xnmgo829WXe2s63dPw==","signatures":[{"sig":"MEYCIQC9xO/dq3Hfdv8pyhsOKHJup5X+sEidp8nhX3IAvGgRhgIhAKA4oaJsbj7nCeke3s9SHC1DrrxQ3mtZpLpoBdI79Vxz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12874},"main":"index.js","type":"module","gitHead":"4964d37fd739db83c853678352f82ff323056ea2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.17.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.5_1787817090048_0.27337133311123285","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@burgan-tech/vnext-discovery-reference","version":"0.0.6","keywords":["vnext","workflow","reference","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/vnext-discovery-reference@0.0.6","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"50aa50c6ff454eff09644fae8b8976e4cffc5ef0","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.6.tgz","fileCount":5,"integrity":"sha512-RoZhtCd4fyzcdiKCncBigaLcMfQlHOIx4WfIzq/h9N0B8zHuJcEvJo449ex+e8ERH9qhgv7H0I7BlDMSy+Abkw==","signatures":[{"sig":"MEQCICydEodFJoAQFHW0RzfXCY1gqxrd5Vs/vq0TFVPiYj7oAiBf/yomUNmzgCHp7vvilMcewE88vVF3Uis2r9qFo8zNrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12874},"main":"index.js","type":"module","gitHead":"8718752190f9bb56288c1b255e0a2deb11bd5209","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.17.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vnext-discovery-reference_0.0.6_1788218173786_0.9032987920356865","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"_id":"@burgan-tech/vnext-discovery-reference@0.0.7","bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"dist":{"shasum":"f8ecfd17eaf17f478348413759d99e7f20b40fd0","tarball":"https://registry.npmjs.org/@burgan-tech/vnext-discovery-reference/-/vnext-discovery-reference-0.0.7.tgz","fileCount":5,"integrity":"sha512-lp9DEOjQ8inxs6D4l6J2ggDv5FS3R03rUlCsM4beJgB1O9T76AxlpVg/MSKZSKsdflNpVUfIadTaUI38BQIkEw==","signatures":[{"sig":"MEUCIChuViD058/FVBlyK3p5NfGrk/wdwFlf5y3KIJyKCw0jAiEAySUsdYH8PtOghmU8wFsHceJpj/5EhuH9EB8VGJrOxhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDKEmTKntkmBiRWQDzc6mTlt3/qU3IIKaQ/nx3OhhSbcwIgcF0Up+h9kq4wFE0oUSZ+1NCCwKywGDtCgWRY4uAlm2g="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@burgan-tech%2fvnext-discovery-reference@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16462},"main":"index.js","name":"@burgan-tech/vnext-discovery-reference","type":"module","author":{"name":"Burgan Technology"},"gitHead":"ec04c7ff996866f9ae0a6d230abbe0cdcbf95fb6","license":"MIT","version":"0.0.7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9394a108-7fa0-4051-acdd-3e442c28ddd2"}},"homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","keywords":["vnext","workflow","reference","domain","burgan"],"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"_npmVersion":"11.19.0","description":"vNext Service Discovery - Reference Package for cross-domain usage","directories":{},"maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vnext-discovery-reference_0.0.7_1789626973006_0.8173441585826651"}}},"time":{"created":"2026-01-01T19:06:27.971Z","modified":"2026-09-17T06:36:13.473Z","0.0.0":"2026-01-01T19:06:28.411Z","0.0.1":"2026-03-25T06:47:08.543Z","0.0.2":"2026-06-11T21:20:31.658Z","0.0.3":"2026-06-29T11:00:02.993Z","0.0.4":"2026-08-07T16:33:28.118Z","0.0.5":"2026-08-27T07:51:30.178Z","0.0.6":"2026-08-31T23:16:13.936Z","0.0.7":"2026-09-17T06:36:13.084Z"},"bugs":{"url":"https://github.com/burgan-tech/vnext-domain-discovery/issues"},"author":{"name":"Burgan Technology"},"license":"MIT","homepage":"https://github.com/burgan-tech/vnext-domain-discovery#readme","keywords":["vnext","workflow","reference","domain","burgan"],"repository":{"url":"git+https://github.com/burgan-tech/vnext-domain-discovery.git","type":"git"},"description":"vNext Service Discovery - Reference Package for cross-domain usage","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"readme":"# vNext Domain Discovery\n\nA structured template package for vNext workflow components with domain-based architecture.\n\n## 📦 Installation\n\nCreate a new project with your domain name:\n\n```bash\nnpx @burgan-tech/vnext-template <domain-name>\n```\n\n### Example\n\n```bash\nnpx @burgan-tech/vnext-template user-management\n```\n\nThis will create a new directory with your domain name, copy all template files, replace `discovery` instances, and install dependencies automatically.\n\n### Install specific version\n\n```bash\nnpx @burgan-tech/vnext-template@<version> <domain-name>\n```\n\nExample:\n\n```bash\nnpx @burgan-tech/vnext-template@1.0.0 user-management\n```\n\n### Alternative: Install as dependency\n\n```bash\nnpm install @burgan-tech/vnext-template\nnpm run setup <domain-name>\n```\n\nOr install specific version:\n\n```bash\nnpm install @burgan-tech/vnext-template@<version>\nnpm run setup <domain-name>\n```\n\nOr use environment variable:\n\n```bash\nDOMAIN_NAME=user-management npm install @burgan-tech/vnext-template@<version>\n```\n\n## 🚀 Usage\n\nAfter installation, your project structure will be:\n\n```\n<domain-name>/\n├── Extensions/\n├── Functions/\n├── Schemas/\n├── Tasks/\n├── Views/\n├── Mappings/\n└── Workflows/\n```\n\n### Access components in code\n\n```javascript\nconst vnextTemplate = require('@burgan-tech/vnext-template');\n\n// Get domain configuration\nconst config = vnextTemplate.getDomainConfig();\n\n// Get paths configuration\nconst paths = vnextTemplate.getPathsConfig();\n\n// Get all schemas\nconst schemas = vnextTemplate.getSchemas();\n\n// Get all workflows\nconst workflows = vnextTemplate.getWorkflows();\n\n// Get all tasks\nconst tasks = vnextTemplate.getTasks();\n\n// Get all mappings\nconst mappings = vnextTemplate.getMappings();\n\n// Get component path for a specific type\nconst schemasPath = vnextTemplate.getComponentPath('schemas');\n```\n\n### Available methods\n\n| Method | Description |\n|--------|-------------|\n| `getDomainConfig()` | Get domain configuration from vnext.config.json |\n| `getPathsConfig()` | Get paths configuration with defaults |\n| `getSchemas()` | Get all schemas |\n| `getWorkflows()` | Get all workflows |\n| `getTasks()` | Get all tasks |\n| `getViews()` | Get all views |\n| `getFunctions()` | Get all functions |\n| `getExtensions()` | Get all extensions |\n| `getMappings()` | Get all mappings |\n| `getDomainName()` | Get domain directory name |\n| `getAvailableTypes()` | Get list of available component types |\n| `getComponentPath(type)` | Get full path for a component type |\n\n## ⚙️ Configuration\n\nThe `vnext.config.json` file allows you to customize paths and exports:\n\n```json\n{\n  \"domain\": \"my-domain\",\n  \"paths\": {\n    \"componentsRoot\": \"my-domain\",\n    \"schemas\": \"Schemas\",\n    \"workflows\": \"Workflows\",\n    \"tasks\": \"Tasks\",\n    \"views\": \"Views\",\n    \"functions\": \"Functions\",\n    \"extensions\": \"Extensions\",\n    \"mappings\": \"Mappings\"\n  },\n  \"exports\": {\n    \"schemas\": [\"schema1.json\", \"schema2.json\"],\n    \"workflows\": [\"workflow1.json\"],\n    \"tasks\": [],\n    \"views\": [],\n    \"functions\": [],\n    \"extensions\": [],\n    \"mappings\": []\n  }\n}\n```\n\n### Path Configuration\n\nYou can customize component directory names:\n\n```json\n{\n  \"paths\": {\n    \"componentsRoot\": \"src\",\n    \"workflows\": \"Flows\",\n    \"schemas\": \"Models\"\n  }\n}\n```\n\n## ✅ Validation\n\nValidate your project structure and schemas:\n\n```bash\nnpm run validate\n```\n\nThis will check:\n- Package.json structure and content\n- Main entry point functionality\n- vnext.config.json validation\n- Domain directory structure\n- JSON file syntax validation\n- Schema validation using @burgan-tech/vnext-schema\n- Module functionality\n- Semantic versioning compliance\n\n### Validation Output\n\nThe validation provides detailed output with:\n- ✅ Passed validations\n- ❌ Failed validations with file paths and line numbers\n- 📊 Summary statistics\n- 📋 Failed files summary for easy navigation\n\n## 🏗️ Build\n\nBuild your domain package for deployment or cross-domain usage:\n\n```bash\n# Runtime build (default) - Complete domain structure\nnpm run build\n\n# Reference build - Only exported components\nnpm run build:reference\n\n# Runtime build explicitly\nnpm run build:runtime\n```\n\n### Build Options\n\n```bash\nnpm run build -- [options]\n\nOptions:\n  -o, --output <dir>     Output directory (default: dist)\n  -t, --type <type>      Build type: reference or runtime (default: runtime)\n  --skip-validation      Skip validation during build\n  -h, --help             Show help message\n```\n\n### Build Types\n\n| Type | Description | Use Case |\n|------|-------------|----------|\n| `runtime` | Complete domain structure with all files | Engine deployment |\n| `reference` | Only exported components from vnext.config.json | Cross-domain usage |\n\n### Examples\n\n```bash\n# Build to custom directory\nnpm run build -- -o my-build\n\n# Reference build to custom directory\nnpm run build -- -t reference -o packages/ref\n\n# Skip validation for faster builds\nnpm run build -- --skip-validation\n```\n\n### Build Output Structure\n\n**Runtime Build:**\n```\ndist/\n├── <domain>/\n│   ├── Extensions/\n│   ├── Functions/\n│   ├── Schemas/\n│   ├── Tasks/\n│   ├── Views/\n│   ├── Mappings/\n│   └── Workflows/\n├── vnext.config.json\n├── package.json\n├── README.md\n└── LICENSE\n```\n\n**Reference Build:**\n```\ndist/\n├── <domain>/\n│   ├── Extensions/     # Only exported files\n│   ├── Functions/      # Only exported files\n│   ├── Schemas/        # Only exported files\n│   ├── Tasks/          # Only exported files\n│   ├── Views/          # Only exported files\n│   ├── Mappings/       # Only exported files\n│   └── Workflows/      # Only exported files\n├── vnext.config.json\n├── package.json\n├── README.md\n└── LICENSE\n```\n\n## 🔎 Discovery Endpoints\n\nThe `discovery` domain exposes two domain-scoped (`scope: \"D\"`) read functions over the `domain`\nlifecycle workflow. Both are served through the runtime's read-through **function cache**, so a\ncache hit never touches the instance store.\n\n| Endpoint | Function | Returns |\n|---|---|---|\n| `GET /api/v1/discovery/functions/domain-lookup?key={domainName}` | `domain-lookup` | One domain: `{ \"data\": { domainName, baseUrl, appId, healthUrl }, \"eTag\": \"...\" }`, or **404** when the domain is not registered |\n| `GET /api/v1/discovery/functions/domain-list` | `domain-list` | Every active domain: `{ \"items\": [ { domainName, baseUrl, appId, healthUrl } ] }` — **200 with an empty array** when none are registered |\n\n`domain-lookup` is what the runtime itself calls to resolve a single domain endpoint\n(`ServiceDiscoveryOptions.DiscoveryEndpointTemplate`). `domain-list` is the enumeration\ncounterpart for callers that need the whole registry in one round trip.\n\n### Cache and invalidation\n\n| | `domain-lookup` | `domain-list` |\n|---|---|---|\n| Cache key | `keyExpression`: `\"discovery:domain:\" + key` | static `key`: `discovery:domains:active` |\n| TTL | 86400s | 86400s |\n| Evicted by | `invalidate-domain-cache` | `invalidate-domain-list-cache` |\n\nBoth eviction tasks are wired into the `domain` workflow's `start-domain` **and** `update`\ntransitions, so registering or updating any domain drops the stale entries immediately rather than\nwaiting out the TTL. They share `order: 1`, so the runtime executes them in parallel, and both carry\n`errorBoundary` action `3` (Ignore) — a failed eviction must never fail a domain registration.\n\nKey formats live in one place, `Mappings/src/DomainCacheKey.csx`: `DomainCacheKey.For(domainName)`\nfor the per-domain key and `DomainCacheKey.ListKey` for the list key. The read side of\n`domain-lookup` mirrors that format in a Dynamic Expresso expression, which **cannot** call the\nhelper — if the two ever diverge, the cache is silently never invalidated. Change them in the same\ncommit.\n\n> **Editing the `.csx` files:** every mapping is stored twice — as a file under `src/` and as\n> base64 in the component JSON's `code` field. The runtime executes the **base64**, and `npm run\n> validate` does not compare the two. Always re-encode the `code` field in the same commit as the\n> `.csx` edit, and remember that `domain-workflow.json` embeds each workflow mapping **twice**\n> (once per transition).\n\n## 📜 Available Scripts\n\n| Script | Description |\n|--------|-------------|\n| `npm run validate` | Validate project structure and schemas |\n| `npm run build` | Build runtime package to dist/ |\n| `npm run build:runtime` | Build runtime package explicitly |\n| `npm run build:reference` | Build reference package with exports only |\n| `npm run setup <name>` | Setup domain with given name |\n| `npm run sync-schema` | Sync schema version from dependencies |\n| `npm test` | Run tests |\n\n## 📄 License\n\nMIT\n","readmeFilename":"README.md"}