{"_id":"@aopslabs/xf-dm-kits","_rev":"3-096fd47ee502589ed5f6147c97ae4c76","name":"@aopslabs/xf-dm-kits","dist-tags":{"latest":"0.2.2"},"versions":{"0.2.0":{"name":"@aopslabs/xf-dm-kits","version":"0.2.0","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/xf-dm-kits@0.2.0","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/xf-packages#readme","bugs":{"url":"https://github.com/eeemzs/xf-packages/issues"},"dist":{"shasum":"e6e7c803f9f16378de7546c63e2199f59a63ce7f","tarball":"https://registry.npmjs.org/@aopslabs/xf-dm-kits/-/xf-dm-kits-0.2.0.tgz","fileCount":56,"integrity":"sha512-rOanBf1Vr0wX8/Ky+gQwWVyXn4H4ekTctYgBSv1F8VMeCQlC1A+XB8lMUNw8dUdNVKka3Y8iyVjA55k7mYxpbQ==","signatures":[{"sig":"MEQCIDkC6zYHkxLk5ro/D9jEBXt4uP4tXKHi7NSCH2fCUbuzAiBMi740ZSU28SrZyOhrtWGp7h0Dlj3ePQ+D0rrleoxTGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63657},"main":"dist/index.js","type":"module","_from":"file:S:/dev-js2/tmp/xf-public-b4-dm-20260804-r1/aopslabs-xf-dm-kits-0.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"}},"private":false,"scripts":{"build":"tsc -p tsconfig.lib.json","clean":"rimraf dist"},"_npmUser":{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"},"_resolved":"S:\\dev-js2\\tmp\\xf-public-b4-dm-20260804-r1\\aopslabs-xf-dm-kits-0.2.0.tgz","_integrity":"sha512-rOanBf1Vr0wX8/Ky+gQwWVyXn4H4ekTctYgBSv1F8VMeCQlC1A+XB8lMUNw8dUdNVKka3Y8iyVjA55k7mYxpbQ==","repository":{"url":"git+https://github.com/eeemzs/xf-packages.git","type":"git"},"_npmVersion":"11.6.4","description":"Typed service-provider utilities for composing repositories, services, caches, metrics, and resilience policies.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^4.4.3","tslib":"^2.3.0","effect":"3.20.0","@aopslabs/xf-db":"^0.2.0","@aopslabs/xf-dm":"^0.2.0","@aopslabs/xf-core":"^0.2.0","@aopslabs/xf-logger":"^0.2.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/xf-dm-kits_0.2.0_1785862013922_0.25656991240034777","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aopslabs/xf-dm-kits","version":"0.2.1","license":"SEE LICENSE IN LICENSE","_id":"@aopslabs/xf-dm-kits@0.2.1","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"homepage":"https://github.com/eeemzs/tsapps#readme","bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"dist":{"shasum":"402ec6934ffe5af08603b065e107dc4a5ec3a0f8","tarball":"https://registry.npmjs.org/@aopslabs/xf-dm-kits/-/xf-dm-kits-0.2.1.tgz","fileCount":56,"integrity":"sha512-EnjmpMqtXlIECPZVOp3fsriyjpKCgQylrUyGH79KhNsMLxfoGWmW10iZUGKWfu6Q8+NlTYbKbFZ2z1/rA0rsgg==","signatures":[{"sig":"MEQCIElLJQO17dNiS35S+9pR8/o56D/MiR4gY7qbglKkgdRSAiBgOyuN3WN4XLhQuvJLFhRBGYfdQRjBp1SHdadBZ9ycFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65724},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-candidates/aopslabs-xf-dm-kits-0.2.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./*":{"types":"./dist/*.d.ts","import":"./dist/*.js"}},"private":false,"scripts":{"lint":"eslint . --max-warnings=0","build":"tsc -p tsconfig.lib.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"vitest run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d04aaf17-38f9-4d14-92e9-3c38f6292e85"}},"_resolved":"/home/runner/work/_temp/release-candidates/aopslabs-xf-dm-kits-0.2.1.tgz","_integrity":"sha512-EnjmpMqtXlIECPZVOp3fsriyjpKCgQylrUyGH79KhNsMLxfoGWmW10iZUGKWfu6Q8+NlTYbKbFZ2z1/rA0rsgg==","repository":{"url":"git+https://github.com/eeemzs/tsapps.git","type":"git","directory":"packages/xf-packages/xf-dm-kits"},"_npmVersion":"11.9.0","description":"Typed service-provider utilities for composing repositories, services, caches, metrics, and resilience policies.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","tslib":"^2.3.0","effect":"3.20.0","@aopslabs/xf-db":"^0.2.1","@aopslabs/xf-dm":"^0.2.1","@aopslabs/xf-core":"^0.2.1","@aopslabs/xf-logger":"^0.2.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.5","vitest":"4.0.18","typescript":"5.9.3","@types/node":"25.3.0","@aopslabs/eslint-config":"0.0.0","@aopslabs/typescript-config":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/xf-dm-kits_0.2.1_1788791331325_0.5009075119526198","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aopslabs/xf-dm-kits","version":"0.2.2","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./*":{"import":"./dist/*.js","types":"./dist/*.d.ts"}},"dependencies":{"effect":"3.20.0","tslib":"^2.3.0","zod":"4.4.3","@aopslabs/xf-dm":"^0.2.2","@aopslabs/xf-logger":"^0.2.2","@aopslabs/xf-core":"^0.2.1","@aopslabs/xf-db":"^0.2.2"},"devDependencies":{"@types/node":"25.3.0","eslint":"9.39.5","typescript":"5.9.3","vitest":"4.0.18","@aopslabs/eslint-config":"0.0.0","@aopslabs/typescript-config":"0.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"private":false,"repository":{"type":"git","url":"git+https://github.com/eeemzs/tsapps.git","directory":"packages/xf-packages/xf-dm-kits"},"license":"SEE LICENSE IN LICENSE","scripts":{"build":"tsc -p tsconfig.lib.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","test:unit":"vitest run","lint":"eslint . --max-warnings=0"},"_id":"@aopslabs/xf-dm-kits@0.2.2","description":"Typed service-provider utilities for composing repositories, services, caches, metrics, and resilience policies.","bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"homepage":"https://github.com/eeemzs/tsapps#readme","_integrity":"sha512-XR7wcAfbkTkiF8qVrAyMZwjhPpPgeVmO7ewuCao7ygwdnjZ2NMAH94DPzz7NPzZ9yvmFJtpMWUjIjrkMbneN4g==","_resolved":"/home/runner/work/_temp/release-candidates/aopslabs-xf-dm-kits-0.2.2.tgz","_from":"file:/home/runner/work/_temp/release-candidates/aopslabs-xf-dm-kits-0.2.2.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-XR7wcAfbkTkiF8qVrAyMZwjhPpPgeVmO7ewuCao7ygwdnjZ2NMAH94DPzz7NPzZ9yvmFJtpMWUjIjrkMbneN4g==","shasum":"ae65ce6afd9feb84a4f6ff2e61c0e64c8edcccc7","tarball":"https://registry.npmjs.org/@aopslabs/xf-dm-kits/-/xf-dm-kits-0.2.2.tgz","fileCount":56,"unpackedSize":67534,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFxDd2bGJ3xPEdQQF86C4vcCb5TWqx1VNFRpfiz6S4TQIhAJBu/PSZrhMlKWXteGMMwuyg/Q04EWIiBSHcjssqMQVn"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d04aaf17-38f9-4d14-92e9-3c38f6292e85"}},"directories":{},"maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xf-dm-kits_0.2.2_1789257787995_0.7763317881780296"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T16:46:53.727Z","modified":"2026-09-13T00:03:08.369Z","0.2.0":"2026-08-04T16:46:54.087Z","0.2.1":"2026-09-07T14:28:51.473Z","0.2.2":"2026-09-13T00:03:08.148Z"},"bugs":{"url":"https://github.com/eeemzs/tsapps/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/eeemzs/tsapps#readme","repository":{"type":"git","url":"git+https://github.com/eeemzs/tsapps.git","directory":"packages/xf-packages/xf-dm-kits"},"description":"Typed service-provider utilities for composing repositories, services, caches, metrics, and resilience policies.","maintainers":[{"name":"mzsonmez","email":"mzsonmez2@hotmail.com"}],"readme":"# @aopslabs/xf-dm-kits\n\nTyped service-provider utilities for composing repositories, services, caches, metrics, and resilience policies.\n\n## Installation\n\n```bash\nnpm install @aopslabs/xf-dm-kits\n```\n\n## Basic usage\n\n```typescript\nimport { createFacade, createProvider } from '@aopslabs/xf-dm-kits';\n\nconst provider = createProvider({\n  name: 'customer-services',\n  getContext: async overrides => ({ tenantId: 'default', ...overrides }),\n  resolveConfig: context => ({ tenantId: context.tenantId }),\n  computeConfigKey: config => config.tenantId,\n  repositories: {\n    customers: async config => createCustomerRepository(config)\n  },\n  services: {\n    customers: async (_context, _services, repositories) =>\n      createCustomerService(repositories.customers)\n  }\n});\n\nconst services = createFacade(provider);\nconst customerService = await services.get('customers');\n```\n\n## Included utilities\n\n| Area | Exports |\n| --- | --- |\n| Providers | `createProvider`, repository and service factories, context overrides, runtime statistics |\n| Facades | `createFacade` with cached or fresh service creation |\n| Caching | `ServiceCache`, cache keys, global singleton helpers |\n| Metrics | No-op, counter, logger, and multi-collector implementations |\n| Resilience | Retry, timeout, and circuit-breaker helpers |\n| Configuration | Environment parsing and typed configuration managers |\n\nRepository instances and service instances can be cached independently. `getService` uses the configured cache key, while `createService` creates a fresh instance. Cache and registry state can be cleared explicitly through the provider or facade.\n\n## License\n\nCopyright (c) 2026 Mehmet Zeki Sönmez.\n\nLicensed under the [**PolyForm Strict License 1.0.0**](https://polyformproject.org/licenses/strict/1.0.0). The license permits noncommercial use and does not grant permission to modify or redistribute the package.\n","readmeFilename":"README.md"}