{"_id":"@burgan-tech/morph-idm-runtime","_rev":"4-df0670a3193f67e6ad436881477685d3","name":"@burgan-tech/morph-idm-runtime","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.0":{"name":"@burgan-tech/morph-idm-runtime","version":"0.0.0","keywords":["morph","idm","workflow","runtime","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/morph-idm-runtime@0.0.0","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/morph-idm#readme","bugs":{"url":"https://github.com/burgan-tech/morph-idm/issues"},"dist":{"shasum":"59b1d1fc0861429ebd6f6fe26568ef6033cbbbe2","tarball":"https://registry.npmjs.org/@burgan-tech/morph-idm-runtime/-/morph-idm-runtime-0.0.0.tgz","fileCount":206,"integrity":"sha512-kGvKjiAjCeGLLFomczQulGkUTwXWu5Ow0pAwU3UuANthcotT1MTDIDA0/pwEJUU7gRxW+XBs2DB8d88Jsi3QIw==","signatures":[{"sig":"MEUCIG33RVz0SM1wJ/iqXjCVQh4AMyq9lAYeMEOHY2lPvRu7AiEAzjbZSVwVu+YX/CEYNREkuD5doSlRT8gOD2xgcpyB5hI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2268604},"main":"index.js","type":"module","gitHead":"be28f035176d41f93ba10554f2bf896e77db9f34","_npmUser":{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"},"repository":{"url":"git+https://github.com/burgan-tech/morph-idm.git","type":"git"},"_npmVersion":"10.8.2","description":"Morph IDM Domain - Runtime Package for engine deployment","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/morph-idm-runtime_0.0.0_1767690719012_0.5012167322411056","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@burgan-tech/morph-idm-runtime","version":"0.0.1","keywords":["morph","idm","workflow","runtime","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/morph-idm-runtime@0.0.1","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/morph-idm#readme","bugs":{"url":"https://github.com/burgan-tech/morph-idm/issues"},"dist":{"shasum":"e91b50ef3f47cb847152b4f66020ac42d8c9a79f","tarball":"https://registry.npmjs.org/@burgan-tech/morph-idm-runtime/-/morph-idm-runtime-0.0.1.tgz","fileCount":206,"integrity":"sha512-RuYWUXyETzdFb7cWk/9/8iEaifUEf7vm7bDfsKad3rSap/dNUxIAV8meQQOCEDSjZOVdysI1zYCXInG2LO4hrA==","signatures":[{"sig":"MEYCIQDzbxgsc0AVvOfXEgiQWLJQcDeENbIP/rf+fp53T8gubQIhAIgIlEbDKsXNwYmX74BDHEKCx1mc4yWbK/6hK4hXW0ik","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2268609},"main":"index.js","type":"module","gitHead":"384c3087de05d4d4449b1e003b72a99472e42045","_npmUser":{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"},"repository":{"url":"git+https://github.com/burgan-tech/morph-idm.git","type":"git"},"_npmVersion":"10.8.2","description":"Morph IDM Domain - Runtime Package for engine deployment","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/morph-idm-runtime_0.0.1_1767690963780_0.8656509640383965","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@burgan-tech/morph-idm-runtime","version":"0.0.2","keywords":["morph","idm","workflow","runtime","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","_id":"@burgan-tech/morph-idm-runtime@0.0.2","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"homepage":"https://github.com/burgan-tech/morph-idm#readme","bugs":{"url":"https://github.com/burgan-tech/morph-idm/issues"},"dist":{"shasum":"a097f3c382047c41cf02f9f0143a866243073aa0","tarball":"https://registry.npmjs.org/@burgan-tech/morph-idm-runtime/-/morph-idm-runtime-0.0.2.tgz","fileCount":276,"integrity":"sha512-P9XF0xIaN3ehx+SWdGfvuIWP1HfOl0oI/RP7sW3uybmigaJZ6DJUjny9U41jltYWBcZFxZ9KsgrSoO8tfrghlg==","signatures":[{"sig":"MEUCIB8tUpUeD7YPhofPuIcCZY1N8hRH6yt5egVameNLPvzxAiEA8KuI3UwI8gXb9gpaqYMCDZMeaaFEFYSv9EWkcUavAQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2599837},"main":"index.js","type":"module","gitHead":"1b643f648249745f20192cc6b152b850d99f9863","_npmUser":{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"},"repository":{"url":"git+https://github.com/burgan-tech/morph-idm.git","type":"git"},"_npmVersion":"10.8.2","description":"Morph IDM Domain - Runtime Package for engine deployment","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/morph-idm-runtime_0.0.2_1768908659249_0.07861786974751173","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@burgan-tech/morph-idm-runtime","version":"0.0.3","description":"Morph IDM Domain - Runtime Package for engine deployment","main":"index.js","type":"module","keywords":["morph","idm","workflow","runtime","domain","burgan"],"author":{"name":"Burgan Technology"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/burgan-tech/morph-idm.git"},"bugs":{"url":"https://github.com/burgan-tech/morph-idm/issues"},"homepage":"https://github.com/burgan-tech/morph-idm#readme","publishConfig":{"access":"public"},"_id":"@burgan-tech/morph-idm-runtime@0.0.3","gitHead":"1f019b626ef685683da6a9129557bf278b477ef2","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mMuResImO3/uD0D/qNuk+qYsjj5J5NBFQjD9yQwW1IrcFbfA5ylUojxec98dGuETlZMiSbTtMhGmoAgofRqKOQ==","shasum":"6f772db30e5058a053b55935e451ff04069c6d5b","tarball":"https://registry.npmjs.org/@burgan-tech/morph-idm-runtime/-/morph-idm-runtime-0.0.3.tgz","fileCount":271,"unpackedSize":2596055,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDR637lInZpBTJCl9xqvj5MKko5Ow4KT5dqtJGoDcGMIgIgVEOSQcIZuNxV0EHPRmSJCZR9JI85hsBmtHmT9KI7tSc="}]},"_npmUser":{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"},"directories":{},"maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/morph-idm-runtime_0.0.3_1769353252561_0.359028779111217"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-06T09:11:58.893Z","modified":"2026-01-25T15:00:52.930Z","0.0.0":"2026-01-06T09:11:59.203Z","0.0.1":"2026-01-06T09:16:03.976Z","0.0.2":"2026-01-20T11:30:59.437Z","0.0.3":"2026-01-25T15:00:52.768Z"},"bugs":{"url":"https://github.com/burgan-tech/morph-idm/issues"},"author":{"name":"Burgan Technology"},"license":"MIT","homepage":"https://github.com/burgan-tech/morph-idm#readme","keywords":["morph","idm","workflow","runtime","domain","burgan"],"repository":{"type":"git","url":"git+https://github.com/burgan-tech/morph-idm.git"},"description":"Morph IDM Domain - Runtime Package for engine deployment","maintainers":[{"name":"seal707","email":"mehmet.tosun@gmail.com"},{"name":"yilmaztayfun","email":"tayfun.yilmaz2@hotmail.com"}],"readme":"# morph-idm\n\nA structured template package for vNext workflow components with domain-based architecture. This package provides a foundation for building scalable workflow systems with schemas, tasks, views, functions, and extensions.\n\n[![npm version](https://badge.fury.io/js/%40burgan-tech%2Fvnext-template.svg)](https://badge.fury.io/js/%40burgan-tech%2Fvnext-template)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## 🚀 Features\n\n- **Domain-Driven Architecture**: Organized by business domains with clear separation of concerns\n- **Component-Based Structure**: Modular design with schemas, workflows, tasks, views, functions, and extensions\n- **JSON Schema Validation**: Built-in validation for all component definitions\n- **Template System**: Ready-to-use template structure for new vNext projects\n- **Type Safety**: Structured exports with clear APIs for accessing components\n\n## 📦 Installation\n\n### Install as dependency\n```bash\nnpm install @my-organization/morph-idm\n```\n\n### Install as dev dependency\n```bash\nnpm install --save-dev @my-organization/morph-idm\n```\n\n## 🏗️ Project Structure\n\n```\nvnext-template/\n├── morph-idm/              # Domain-specific components\n│   ├── Extensions/            # Extension definitions\n│   ├── Functions/             # Function definitions\n│   ├── Schemas/              # JSON schema definitions\n│   ├── Tasks/                # Task definitions\n│   ├── Views/                # View components\n│   └── Workflows/            # Workflow definitions\n├── index.js                  # Main entry point\n├── vnext.config.json         # Domain configuration\n└── package.json              # Package metadata\n```\n\n## 📚 Usage\n\n### Basic Usage\n\n```javascript\nconst vnextTemplate = require('@my-organization/morph-idm');\n\n// Get domain configuration\nconst config = vnextTemplate.getDomainConfig();\nconsole.log('Domain config:', config);\n\n// Get all available component types\nconst availableTypes = vnextTemplate.getAvailableTypes();\nconsole.log('Available types:', availableTypes);\n// Output: ['schemas', 'workflows', 'tasks', 'views', 'functions', 'extensions']\n\n// Get domain name\nconst domainName = vnextTemplate.getDomainName();\nconsole.log('Domain name:', domainName);\n```\n\n### Component Access\n\n```javascript\n// Load specific component types\nconst schemas = vnextTemplate.getSchemas();\nconst workflows = vnextTemplate.getWorkflows();\nconst tasks = vnextTemplate.getTasks();\nconst views = vnextTemplate.getViews();\nconst functions = vnextTemplate.getFunctions();\nconst extensions = vnextTemplate.getExtensions();\n\n// Example: Working with schemas\nObject.keys(schemas).forEach(schemaName => {\n  console.log(`Schema: ${schemaName}`, schemas[schemaName]);\n});\n\n// Example: Working with workflows\nObject.keys(workflows).forEach(workflowName => {\n  console.log(`Workflow: ${workflowName}`, workflows[workflowName]);\n});\n```\n\n### Integration Example\n\n```javascript\nconst vnext = require('my-organization/morph-idm');\n\nclass WorkflowManager {\n  constructor() {\n    this.config = vnext.getDomainConfig();\n    this.schemas = vnext.getSchemas();\n    this.workflows = vnext.getWorkflows();\n  }\n  \n  validateWorkflow(workflowData) {\n    // Use loaded schemas for validation\n    // Implementation depends on your validation library\n  }\n  \n  executeWorkflow(workflowName) {\n    const workflow = this.workflows[workflowName];\n    if (!workflow) {\n      throw new Error(`Workflow ${workflowName} not found`);\n    }\n    // Execute workflow logic\n  }\n}\n\nconst manager = new WorkflowManager();\n```\n\n## 🔧 API Reference\n\n### `getDomainConfig()`\nReturns the domain configuration from `vnext.config.json`.\n\n**Returns:** `Object | null` - The configuration object or null if not found\n\n### `getSchemas()`\nLoads all JSON schema files from the Schemas directory.\n\n**Returns:** `Object` - Key-value pairs of schema names and definitions\n\n### `getWorkflows()`\nLoads all workflow definitions from the Workflows directory.\n\n**Returns:** `Object` - Key-value pairs of workflow names and definitions\n\n### `getTasks()`\nLoads all task definitions from the Tasks directory.\n\n**Returns:** `Object` - Key-value pairs of task names and definitions\n\n### `getViews()`\nLoads all view definitions from the Views directory.\n\n**Returns:** `Object` - Key-value pairs of view names and definitions\n\n### `getFunctions()`\nLoads all function definitions from the Functions directory.\n\n**Returns:** `Object` - Key-value pairs of function names and definitions\n\n### `getExtensions()`\nLoads all extension definitions from the Extensions directory.\n\n**Returns:** `Object` - Key-value pairs of extension names and definitions\n\n### `getAvailableTypes()`\nReturns an array of available component types.\n\n**Returns:** `Array<string>` - Available component types\n\n### `getDomainName()`\nReturns the name of the domain directory.\n\n**Returns:** `string | null` - Domain directory name or null if not found\n\n## 🏛️ Architecture Principles\n\n### Domain-Driven Design\n- Each domain is represented as a separate directory\n- Components are organized by type within domains\n- Clear separation between different workflow concerns\n\n### Component Types\n\n1. **Schemas**: JSON Schema definitions for data validation\n2. **Workflows**: Business process definitions and state machines\n3. **Tasks**: Individual task definitions and configurations\n4. **Views**: User interface and presentation components\n5. **Functions**: Reusable business logic functions\n6. **Extensions**: Plugin and extension definitions\n\n\nExample: `user-registration.1.0.0.json`\n\n## 🛠️ Development\n\n### Running Tests\n```bash\nnpm test\n```\n\n### Validation\n```bash\nnpm run validate\n```\n\n## 📋 Schema Validation Rules\n\nThe template follows strict schema validation rules:\n\n### Instance Base Properties\n- Schema instances MUST include: `key`, `version`, `domain`, `flow`, `flowVersion`\n- Schema instances MUST NOT include: `labels` (labels belong to business logic)\n- Optional fields: `id`, `eTag` (added by platform in production)\n\n### Reference Pattern\n- References use: `domain` + `workflow` + (`id` OR `key`) + optional `version`\n- NO `type` property in references - `workflow` field serves as type\n- Always use local file references: `reference.json#/attributes`\n\n### Standard Lifecycle Pattern\nAll lifecycle workflows must have:\n- `draft` (type: \"start\") - Initial state\n- `active` (type: \"normal\") - Active state  \n- `passive` (type: \"finish\") - Final state\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🏢 About Burgan Tech\n\nThis package is maintained by the Burgan Tech team as part of our commitment to building scalable, domain-driven workflow solutions.\n\n## 🔗 Links\n\n- [NPM Package](https://www.npmjs.com/package/@burgan-tech/vnext-template)\n- [GitHub Repository](https://github.com/burgan-tech/vnext-template)\n- [Issues](https://github.com/burgan-tech/vnext-template/issues)\n- [Documentation](https://github.com/burgan-tech/vnext-template#readme)\n\n## 📞 Support\n\nFor support and questions:\n- Create an issue on [GitHub](https://github.com/burgan-tech/vnext-template/issues)\n- Contact the development team at dev@burgan-tech.com\n\n---\n\nMade with ❤️ by the Burgan Tech team","readmeFilename":"README.md"}