{"_id":"@atlz253/frontier","_rev":"18-7cd21c09d923df3d551bf8e4a2319a46","name":"@atlz253/frontier","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.0":{"name":"@atlz253/frontier","version":"0.0.0","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.0","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"4e9d89132c398d9db88c925bc2c3fa237b457b59","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.0.tgz","fileCount":8,"integrity":"sha512-l169qK2fM13L3vzulULj6KH/O9de4/OWx5m440LyL3BmkBq5/cF8yDJSC2ypXyYS71wM+nteKxSaoS4V5f7Thg==","signatures":[{"sig":"MEUCIQDIVR5T2eYkfZ8HWb7pfCzDc7Y6gUwHCNJo3T3E68FeuAIgQU/clEi5vPS96LYKdqApIGEIi6f/zFOIkjv7rlTv/1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15876},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"1f3cbc238904f7649e8ec22658956699fc3273f1","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.0_1753625333713_0.5948157244604175","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@atlz253/frontier","version":"0.0.2","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.2","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"dd6ba5d77a5697d62619e04110cae9c1482780bb","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.2.tgz","fileCount":8,"integrity":"sha512-VXtC7/gdwCC73Jks8BsRVqvyAFiWnHLVLVBRo6P8EtmfvS/XdjuNYv3mIBa/GuHLO5/lqQiZxKblcPUSgE9sYA==","signatures":[{"sig":"MEUCIQDl5c9IA4C/Zb/hgitGJammZ01mglX6D+cmvDW3sKa+4AIgNl9jbo+9QnvdK08IkziiOGstDTXdCVEPGKaH2ANqgRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16503},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"3e13d3eab58bddae0a98ac8cadc8174c8a1bb523","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.2_1753649724972_0.20601657176794963","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@atlz253/frontier","version":"0.0.3","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.3","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"4946fa23af8bafcf67a7d39c89a87bf9e3fb3e6d","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.3.tgz","fileCount":8,"integrity":"sha512-YlF0XiAHpE+V548lcNct23TLRdW/+IgEdO0e8pKdVPCRXDv45q9nL1ERUIGuyrUb1xps72O/7plq4G2Irc8ybA==","signatures":[{"sig":"MEUCIQDHG/vUr+ltHg1kW8qPxtijAtBdT2WIB8btOBr03hZx6AIgUL6EjpzjoCNieLI2lnevUMCLr5Usk8SPWjCZIpMxJNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17800},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"571d12e12b1dc83d4138675012e3d3372bf7dc70","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.3_1753731489461_0.9530955504361147","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@atlz253/frontier","version":"0.0.4","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.4","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"106b010a17e88d9362616c87e0fed703d7cc0214","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.4.tgz","fileCount":8,"integrity":"sha512-AgVvx1Fvrfk9pSahr8L1G+1ND/lYnIJmGeMGDtoYL5C03uTfZPz7SNcVYAqULXzGtBn3OjGtMDC1EcUnA2Xn8w==","signatures":[{"sig":"MEUCIQCMLw9p1LI9cp21dBrIea28+iW7RgbWm1+QEagRB29ZXQIgLJPHh0WupxpdKsInuUjAFnw+wKIZA0jewzxlzbywmPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20105},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"8ca975fb85b8a30b46dd43f62af48ce0481be237","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.4_1753736620994_0.4030506867355488","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@atlz253/frontier","version":"0.0.5","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.5","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"60ce44881e9c6d61ea11184ab442701aa822e9af","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.5.tgz","fileCount":8,"integrity":"sha512-XEJ4b1N0UViM4VxCSZ7q2wH2fys2oz8A3ikLDwSeBnb2wHS049C/rJ/rtjb2mkUs/L2EqZlnd6jaw0hTtt61Gw==","signatures":[{"sig":"MEQCICfrjZcTOTMhHPVfNAgBo58jZgyk8VAL5EA34AY40WX7AiAlztpgm6IVPgMWwINHw5cPTfKl+w/U3hgG8y5+5LIdbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21010},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"a2455cb9a1aa3ab4f709d4f12cc924ef5b039cc2","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.5_1756752464206_0.1338089359512582","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@atlz253/frontier","version":"0.0.6","keywords":["modular-monolith","browser","nodejs"],"author":{"name":"Fedor Alekseev"},"license":"MIT","_id":"@atlz253/frontier@0.0.6","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"homepage":"https://github.com/atlz253/frontier#readme","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"dist":{"shasum":"7668808b780335510e04fdd3f8d743da12a9a735","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.6.tgz","fileCount":8,"integrity":"sha512-wTux4umwENbx0W0VTN0LxumvSJ8WyBdrmEJaplxdEQAICo3Lj/R17bKu4WjcnOVth8Q1Lin9XGMmYhNmqpJsoQ==","signatures":[{"sig":"MEUCIQDp4C5B9drT28EaIl0twwks6Z9KZ0HVvTVOOBscMPusZQIgf2K0xvJ2OjDTfWwUpOgFvVCT7J2ugN2p+pr+fCE2qmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21187},"main":"src/index.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"gitHead":"156ef194a2ea2fbf0dbdc841f0bee42c381c1ea6","scripts":{"test":"vitest","build":"tsup"},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"repository":{"url":"git+https://github.com/atlz253/frontier.git","type":"git"},"_npmVersion":"10.9.2","description":"The library helps build modular monolith","directories":{},"_nodeVersion":"22.16.0","dependencies":{"lodash":"^4.17.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/lodash":"^4.17.20"},"_npmOperationalInternal":{"tmp":"tmp/frontier_0.0.6_1756753809931_0.9444775514509118","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@atlz253/frontier","version":"0.0.7","main":"src/index.ts","license":"MIT","author":{"name":"Fedor Alekseev"},"repository":{"type":"git","url":"git+https://github.com/atlz253/frontier.git"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","test":"vitest"},"devDependencies":{"@types/lodash":"^4.17.20","tsup":"^8.5.0","typescript":"^5.8.3","vitest":"^3.2.4"},"dependencies":{"lodash":"^4.17.21"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.mjs"}},"keywords":["modular-monolith","browser","nodejs"],"_id":"@atlz253/frontier@0.0.7","gitHead":"260c7dd8948afe708d79153e064052ff4d31e3fc","description":"The library helps build modular monolith","bugs":{"url":"https://github.com/atlz253/frontier/issues"},"homepage":"https://github.com/atlz253/frontier#readme","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-s0hXPN47azfA29AR4DXEfdIuS6YN3Rm3oVoFU3caP8PyCjcXo8w91FM0Cxep5Ck/uM9ygVxb8+IVyY9ZR1fdIg==","shasum":"514bf9fd7c958cf6bbc7f26cfc3b11738983db5e","tarball":"https://registry.npmjs.org/@atlz253/frontier/-/frontier-0.0.7.tgz","fileCount":8,"unpackedSize":22290,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPq3f4rkhuTEqWtjhDZ0hDgAo2FJ2Ptxpmbp3weK/ligIhAP9KvHyd/c6xmU+yjB5lATRfeqtIhJtoQm/GE/RqGa75"}]},"_npmUser":{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"},"directories":{},"maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/frontier_0.0.7_1757938162767_0.14044000266277412"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-27T13:42:51.356Z","modified":"2025-09-15T12:09:23.119Z","1.0.0":"2025-07-27T13:34:22.001Z","1.0.1":"2025-07-27T13:42:51.681Z","1.0.2":"2025-07-27T13:44:29.765Z","2.0.0":"2025-07-27T14:05:28.752Z","0.0.0":"2025-07-27T14:08:53.871Z","0.0.1":"2025-07-27T14:17:35.663Z","0.0.2":"2025-07-27T20:55:25.195Z","0.0.3":"2025-07-28T19:38:09.652Z","0.0.4":"2025-07-28T21:03:41.200Z","0.0.5":"2025-09-01T18:47:44.389Z","0.0.6":"2025-09-01T19:10:10.122Z","0.0.7":"2025-09-15T12:09:22.931Z"},"bugs":{"url":"https://github.com/atlz253/frontier/issues"},"author":{"name":"Fedor Alekseev"},"license":"MIT","homepage":"https://github.com/atlz253/frontier#readme","keywords":["modular-monolith","browser","nodejs"],"repository":{"type":"git","url":"git+https://github.com/atlz253/frontier.git"},"description":"The library helps build modular monolith","maintainers":[{"name":"atlz253","email":"f.alexeeff2010@yandex.ru"}],"readme":"# Frontier\r\n\r\nThe library helps build modular monolith\r\n\r\n## Build configuration\r\n\r\nThe Builder builds modules one at a time, passing arguments and dependencies to the builder function\r\n\r\n```JavaScript\r\nimport { Builder, defineModule, classBuilder } from \"@atlz253/frontier\";\r\nimport { initMain } from \"./src/main/index.js\";\r\nimport { Orders } from \"./src/orders/index.js\";\r\nimport { Cart, CloudCart } from \"./src/cart/index.js\";\r\n\r\nconst modules = new Builder().build({\r\n  modules: {\r\n    main: defineModule({\r\n      builder: initMain, // initMain({ logger: true, debug: false, dependencies: {orders: Orders, cart: Cart}})\r\n      arguments: {\r\n        logger: true,\r\n        debug: false\r\n      },\r\n      dependencies: [\"orders\", \"cart\"]\r\n    }),\r\n    orders: defineModule({\r\n      builder: classBuilder(Orders), // new Orders({db: {...}})\r\n      arguments: {\r\n        db: {\r\n          host: \"localhost\",\r\n          username: \"root\",\r\n          password: \"12345\",\r\n          database: \"orders\",\r\n        }\r\n      },\r\n    }),\r\n    cart: defineModule({\r\n      builder: classBuilder(CloudCart), // new CloudCart({dependencies: {fallback: Cart}})\r\n      dependencies: {\r\n        fallback: \"cartFallback\"\r\n      }\r\n    }),\r\n    cartFallback: defineModule({\r\n      builder: classBuilder(Cart), // new Cart({dependencies: {orders: Orders}})\r\n      dependencies: [\"orders\"]\r\n    })\r\n  }\r\n})\r\n\r\nmodules.get(\"main\").start();\r\n```\r\n\r\n### Config overrides\r\n\r\nIt is possible to transfer several configurations at once, single configuration with overwritten values will be formed based on them\r\n\r\n```JavaScript\r\n// several configurations\r\nnew Builder.build(\r\n  {\r\n    modules: {\r\n      a: defineModule({\r\n        builder: builder1,\r\n        arguments: { foo: \"bar\", bar: \"baz\", o: {a: \"a\", b: \"b\"} },\r\n        dependencies: [\"b\", \"c\"],\r\n      }),\r\n    },\r\n  },\r\n  {\r\n    modules: {\r\n      a: defineModule({\r\n        builder: builder2,\r\n        arguments: { foo: \"zoo\", dee: \"gee\", o: {b: \"o\", c: \"c\"} },\r\n        dependencies: [\"e\", \"f\"],\r\n      }),\r\n    },\r\n  }\r\n)\r\n// equivalent to\r\nnew Builder.build(\r\n  modules: {\r\n    a: {\r\n      builder: builder2,\r\n      arguments: { foo: \"zoo\", bar: \"baz\", dee: \"gee\", o: {a: \"a\", b: \"o\", c: \"c\"} },\r\n      dependencies: [\"e\", \"f\"],\r\n    },\r\n  },\r\n)\r\n```\r\n","readmeFilename":"README.md"}