{"_id":"@brabander/nswag","_rev":"12-7eaba7618c1655a02a3e0a3c5e8ffdf5","name":"@brabander/nswag","dist-tags":{"latest":"0.5.1"},"versions":{"0.0.11":{"name":"@brabander/nswag","version":"0.0.11","_id":"@brabander/nswag@0.0.11","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"f9f149785ab3b97e9d5fe47e90c11a1f90fa588a","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.0.11.tgz","fileCount":26,"integrity":"sha512-kD8vsH7q1a3Ql8xdg6LoB3Ek/7/zDDdG67dBw+2t09CEUK50lXapCaOi3ZzY/lM9RQI4kOfqQ9Bh54W6XYER7g==","signatures":[{"sig":"MEYCIQCHR/QrAIakoY7wzd80i7wu8OnLqCSds4C6um05mfcyYwIhAKIm7vr29rQIWjV1juA7M9eEcp8wz9pYdJgueW8ntqqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75815},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"51e6e8736688bacbb30d7cf7cd761b496cc734b1","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"leondebrabander","email":"ljdebrabander@gmail.com"},"_npmVersion":"12.0.1","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.0.11_1785754257542_0.2592408052843689","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@brabander/nswag","version":"0.0.12","_id":"@brabander/nswag@0.0.12","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"25adc5cf0caf936a499377cba801d3254538627f","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.0.12.tgz","fileCount":26,"integrity":"sha512-NB26zS5wihguEe5Db27UCalG3JQt0Fw9atJMGjlPEqpUzGSbhOWDPdt6ZHgrBm2Efim3oaxcUPrtBgCSrUiA9g==","signatures":[{"sig":"MEUCIEPEj7/XznHTD8HtZxZ9ubTCU1hqQmSxRzo7oWZ0S3rSAiEAqwJgMXLFufv/SHTLyKRvvCRc69kmZHBIuhGOXSVSy2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75966},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"7d12bc4e19dbb77d515f7d51c7af83dab903aad9","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.0.12_1785843763569_0.18761274911246417","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@brabander/nswag","version":"0.1.0","_id":"@brabander/nswag@0.1.0","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"7d99f3e151ca17b081ba3ebd1c565f1dffb74732","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.1.0.tgz","fileCount":26,"integrity":"sha512-vU6Pw34M9DRQ8RnJ8/OYOOLghEH/0/VZ9v8S3MG4yFJtWtGkvfvs94ScKZ+3J6tJzIHlRKNl7U58T4VVoKtOHw==","signatures":[{"sig":"MEUCIQCNutcw+tijptRRLKTAiwzxAqGh8afa7phsR3WHwcl5XQIgZ9yFi1a0c4l/BjXqrVaewfxb/0j1xEXWfWNrQtYika0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75965},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"70b018787b369708df770ae58b4fc94159e1163c","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"leondebrabander","email":"ljdebrabander@gmail.com"},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.1","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.1.0_1785875867557_0.9020542837950885","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@brabander/nswag","version":"0.1.1","_id":"@brabander/nswag@0.1.1","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"0325c6eb90a7d7e191e24c544151627394b35998","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.1.1.tgz","fileCount":26,"integrity":"sha512-GuPvuoNWlHi0htVEeDmVxI+YmmdziMCDSgp9QlgafYWzhDB8b/UYvq2zafgXS4eowOQkgs1T+1PnKssVcFDPmQ==","signatures":[{"sig":"MEYCIQDLn/cYLnqXlSADKq5VPaCr5L1Z1ZBREcRRHHtNSO371wIhAO21C9D9dZdg2ddDJiY8bCIp3bT90TLkO7PgFI053L8j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75965},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"a20921d9b26e638b5537d1480927aef5b5475566","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.1.1_1786105341408_0.9091513546022243","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@brabander/nswag","version":"0.1.2","_id":"@brabander/nswag@0.1.2","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"d29413ed163cd2c535bbf93806675299dedef888","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.1.2.tgz","fileCount":26,"integrity":"sha512-Y5NnlZP+1ozR+HLYkay7YjFvEO68CUDNZ9DE1iV9hfL0sbyfu4xgHRtQXyXstjPsUL9w+sDas6LBrs/9o49s/A==","signatures":[{"sig":"MEQCIBAaZ73LBoG3Or4twrlaxVy70YAHLxqEug8IbUnUxGkOAiB1GVd8HYQketOATUzeCCtzq6vAXKA5f59c5+opUyvvtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75965},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"e3e89ad287266643836ba1dd8edd071f79799521","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"leondebrabander","email":"ljdebrabander@gmail.com"},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.1","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.1.2_1786202183621_0.066815106169968","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@brabander/nswag","version":"0.2.0","_id":"@brabander/nswag@0.2.0","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"f1d5816dfea1f887735bbdea26b19bb85fe0b561","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.2.0.tgz","fileCount":26,"integrity":"sha512-JnjbTvW3W1c8Cc+CkYCz4jF1Eik0O//ylF3i8ElfsnGmr5Dg0ub2ZTCZ4++nE9Laoty4CkCCSLudCiF2HUY8Gw==","signatures":[{"sig":"MEQCIGAQaR0jpEiLssehPsmm3YUthl5TQ8lyhduFWDY9pATsAiBCYKKdH5A9qKYHOEzsQ4oz1ZjmPIbV9dw6fAG2TaoUbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75965},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"c25691f161579053bd31f699db7eca0544d6f3ea","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.2.0_1786215111690_0.7679530539308488","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@brabander/nswag","version":"0.2.1","_id":"@brabander/nswag@0.2.1","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"404f49339ea8d1f5449f04f1baa733e426af1377","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.2.1.tgz","fileCount":26,"integrity":"sha512-0AsQ+/lj0jfnkXpkAxoARGIGZdDnV8LBnBB+YnLKgt7KtxuCl2jQ3lW4k39uyEHaYKKx7IBXj1rNuDOqaLJRXQ==","signatures":[{"sig":"MEQCIDO3w0h+ij+WBqGVHm4d7K8ThothTCYR7ljzKWxBvA5KAiBq/gHslw7bkd+h0EtiZNuI2s91cQt+/h5W3KfJfPB0bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75965},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"41861bddb645f36b98f46f5c64e0359165d1fc57","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.2.1_1786276035512_0.9273737390598884","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@brabander/nswag","version":"0.2.2","_id":"@brabander/nswag@0.2.2","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"f7e9b05bae6969c2da22b50567b2242a7564da0b","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.2.2.tgz","fileCount":26,"integrity":"sha512-WkEkTiqxO9H+6gsqvVEu4+VSk7AEEDNSg0Hij2stwOb92vPWpY/Yz67fHwpB/M/O1//4uk4WL+ENLB+Cd1vwPw==","signatures":[{"sig":"MEYCIQDWUnnf0qKlhMVp5cxcixWeoTMZFJO+OYqs+SXaYIfpvQIhAJh2M+NTdBBpI/rByN40psYhrbWVE3u4tI/hsio4MFHc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76002},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"151df7ee40ce960b23c5804bcd47376e92c8856f","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1","@brabander/config-eslint":"*"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.2.2_1786364331684_0.23014379959696996","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@brabander/nswag","version":"0.2.3","_id":"@brabander/nswag@0.2.3","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"a7102248fcd49592d3f84edb7321bbff04f5a91e","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.2.3.tgz","fileCount":26,"integrity":"sha512-b0KZ4HioGq7RK7INFyKBHGF57Fw7knI7cOQr5luB110SCF+z8F2BscK8HaSIxQQqbGmqBLAsDe8iaSrW1LoVpA==","signatures":[{"sig":"MEQCIF29h9eeCOF0vwo7DeTUIZu1CGAU+ZU5v8XebDmdCaLgAiA08LYDUSRLq5GZkU/MRJ9/iN4JstCZM1iv6wL3m4YJiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76002},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"cd6f01e8c479c86505846604fda462e42beb1fd3","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1","@brabander/config-eslint":"*"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.2.3_1786366884160_0.8322812559886539","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@brabander/nswag","version":"0.4.0","_id":"@brabander/nswag@0.4.0","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"ef60b1af97ca25126e920af2c2acbdc32c112efb","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.4.0.tgz","fileCount":26,"integrity":"sha512-Wh+a97dIZErHYMLF8GbKEONHJW1rnWjFI1UnKu5DSwNn9Hebpz60z12mVrIN3l6+k5yxdp7B2AScSsZqrHfQxg==","signatures":[{"sig":"MEQCIDdFjsoWCuPcH18fXEMTLSb+RO5WBguDaRGsJjpjeFOCAiBO0l/T1bzrXlHGoHUzMLnA9GI+3XYPWI/7CwzCfFHDMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76002},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"74d74ea3d83b101d314d21c8ab618c6ae5c27da0","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1","@brabander/config-eslint":"*"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.4.0_1786371663703_0.21145667288711079","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@brabander/nswag","version":"0.5.0","_id":"@brabander/nswag@0.5.0","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"nx":{"tags":["type:adapter","scope:shared"]},"dist":{"shasum":"96b96230a1f9cfd4108f6ce751d27baa36d1290c","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.5.0.tgz","fileCount":26,"integrity":"sha512-8YiR5g/5oK+E21Rt4BJIocLR545CCsuCu3JS058TS3iO66aZvj7bIN7TOdB9iYDUtBsb2DjuVK1nDXrr3lcDjg==","signatures":[{"sig":"MEYCIQDXYoEfju5LA8dD7Z4TDlrmh114K2sPDQt6A/R8G659xAIhAIDNuN10y37EMQHydKWPbnkQcVX5m/zyvWuPKIjJ4z7e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76002},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","brabander-workspace":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"0e1009ff5dfb37bbb5b5fdecc81c1df555c67130","scripts":{"generate":"nswag run nswag.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"repository":{"url":"git+https://github.com/ljdebrabander/brabander-workspace.git","type":"git","directory":"packages/nswag"},"_npmVersion":"12.0.2","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"axios":"^1.18.1","tslib":"^2.3.0","@brabander/core":"*","@brabander/result":"*","@brabander/http-client":"*","@brabander/http-client-axios":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nswag":"^14.7.1","@brabander/config-eslint":"*"},"_npmOperationalInternal":{"tmp":"tmp/nswag_0.5.0_1786443827789_0.13254757867599398","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@brabander/nswag","version":"0.5.1","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"brabander-workspace":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/ljdebrabander/brabander-workspace.git","directory":"packages/nswag"},"scripts":{"generate":"nswag run nswag.json"},"dependencies":{"@brabander/http-client":"*","@brabander/http-client-axios":"*","@brabander/result":"*","axios":"^1.18.1","tslib":"^2.3.0"},"devDependencies":{"nswag":"^14.7.1","@brabander/config-eslint":"*"},"nx":{"tags":["type:adapter","scope:shared"]},"gitHead":"08c6c3ad05dc4dbf7f96275707440c50ff156b81","_id":"@brabander/nswag@0.5.1","description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-cMXpVYhi3tXsGMRtI6hgE3SjrqCcM+Kze4vHrxPg6lCcknuwjV424lBiIeR8pKvhk7/+sngR3AOr+Gvx6jXFag==","shasum":"74b51ce75eface34c0b0de21e0dafb1961b23557","tarball":"https://registry.npmjs.org/@brabander/nswag/-/nswag-0.5.1.tgz","fileCount":23,"unpackedSize":34676,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD89QBI6WHuUsfk0sw/d0gjjzRwbQJwynDcXgUZJcDPjgIhANlOHsMZ86TWxUZxOVDORk9vTkPqS1hdYCWCT3jSU+P+"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cef1131b-cfc5-4364-9862-849aa64844ca"}},"directories":{},"maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nswag_0.5.1_1786651044178_0.19407567551887062"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T10:50:57.336Z","modified":"2026-08-13T19:57:24.548Z","0.0.11":"2026-08-03T10:50:57.670Z","0.0.12":"2026-08-04T11:42:43.693Z","0.1.0":"2026-08-04T20:37:47.706Z","0.1.1":"2026-08-07T12:22:21.551Z","0.1.2":"2026-08-08T15:16:23.783Z","0.2.0":"2026-08-08T18:51:51.830Z","0.2.1":"2026-08-09T11:47:15.673Z","0.2.2":"2026-08-10T12:18:51.867Z","0.2.3":"2026-08-10T13:01:24.291Z","0.4.0":"2026-08-10T14:21:03.882Z","0.5.0":"2026-08-11T10:23:47.937Z","0.5.1":"2026-08-13T19:57:24.332Z"},"bugs":{"url":"https://github.com/ljdebrabander/brabander-workspace/issues"},"homepage":"https://github.com/ljdebrabander/brabander-workspace#readme","repository":{"type":"git","url":"git+https://github.com/ljdebrabander/brabander-workspace.git","directory":"packages/nswag"},"description":"`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.","maintainers":[{"name":"leondebrabander","email":"ljdebrabander@gmail.com"}],"readme":"# nswag\n\n`@brabander/nswag` (`type:adapter`, `scope:shared`) bevat de initiële NSwag-opzet voor het genereren van een TypeScript API-client uit een OpenAPI/Swagger-specificatie.\n\n## Inhoud\n\n- `nswag.json` — de NSwag-configuratie: genereert een TypeScript-client met het `Axios`-template, DTO's als `classes` (niet interfaces), optionele parameters en `?`-properties. Client-splitsing gebeurt per resource via `operationGenerationMode: MultipleClientsFromOperationId` (operationId's volgen de vorm `Resource_Actie`, bv. `Products_GetAll`). Gebruikt een `clientBaseClass` (`ApiServiceBase`) en een `templateDirectory` met custom Liquid-templates (zie hieronder) om duplicatie in de gegenereerde clients te verkleinen. De document-`url` en `output` zijn `$(DocumentUrl)`/`$(Output)`-variabelen (met fallback via `defaultVariables` naar de fixture hieronder) zodat andere apps dit **ene** config-bestand hergebruiken via `nswag run nswag.json /variables:...` in plaats van hun eigen `nswag.json` te dupliceren — zie \"Gebruik door consumerende apps\" hieronder.\n- `swagger.json` — een voorbeeld-OpenAPI 3.0-specificatie met 20 endpoints verdeeld over drie resources (`Products`, `Customers`, `Orders`), inclusief search/list (`GET` met query-parameters), `GET` by id, `POST`, `PUT`, `PATCH` en `DELETE`. Dient uitsluitend als fixture om de generatie/templates van dit package te testen — dit is **niet** de plek voor de spec van een echte applicatie, zie \"Gebruik door consumerende apps\" hieronder.\n- `src/lib/api-service-base.ts` — handgeschreven `ApiServiceBase` met `httpGet/httpPost/httpPut/httpPatch/httpDelete`, gebouwd op `@brabander/http-client-axios`. Gegenereerde clientclasses erven hiervan i.p.v. zelf axios-request/response-boilerplate te dupliceren. Bevat ook `handleResult`/`toResult`: één centrale plek die een `httpX(...)`-call, een verwachte succes-statuscode en optionele `parseValue`/`parseError`-functies omzet naar een `Result<T, E | Error>` (uit `@brabander/result`) — HTTP-foutstatussen worden naar de bijpassende `Result`-variant gemapt, en transportfouten (netwerk, timeout, abort) of een gooiende parser worden opgevangen en ook als `Result.error(...)` teruggegeven. De Promise die een gegenereerde methode teruggeeft reject dus nooit meer. Als er geen `AxiosInstance` wordt meegegeven aan de constructor, maakt `ApiServiceBase` er zelf één aan met default `Content-Type`/`Accept: application/json`-headers — zo hoeft geen enkele gegenereerde operation deze headers nog zelf te emitten (zie ook de kanttekening hieronder).\n- `templates/` — custom Liquid-templates die NSwag's ingebouwde `AxiosClient.liquid`/`Client.RequestUrl.liquid`/`File.Header.liquid` overriden (via `templateDirectory` in `nswag.json`). Elke operation bouwt de request-URL/headers zoals voorheen, maar roept nu in één keer `this.handleResult(this.httpX(...), successStatus, parseValue, parseError)` aan op `ApiServiceBase` en geeft `Promise<Result<T, E | Error>>` terug — er wordt geen aparte `processX`-methode meer gegenereerd en er wordt niet meer gegooid bij een foutstatus. Omdat `AxiosClient.liquid` NSwag's ingebouwde `Client.ProcessResponse.*`-templates niet meer aanroept, worden die eenvoudigweg niet meer gerenderd (geen aparte override nodig). NSwag's eigen `File.liquid`/`File.Utilities.liquid` (niet overridden) genereren nog altijd een ongebruikte `ApiException`-class en `throwException`/`isAxiosError`-functies als eenmalige footer; dat is onschadelijke restcode (`noUnusedLocals: false` in `tsconfig.lib.json` tolereert dit al) en wordt niet apart weggewerkt. `templates/Class.liquid` overridet daarnaast NJsonSchema's ingebouwde DTO-template zodat gegenereerde classes `BaseDto` + `@date`/`@dto`/`@array` gebruiken — zie de aparte sectie hieronder. `templates/Client.RequestUrl.liquid` bouwt querystrings op via `@brabander/http-client`'s `QueryStringBuilder` (`addString`/`addNumber`/`addBoolean`/`addDate`, hun `...When`-varianten, `addStringArray`/`addNumberArray`/`addDateArray`, `addObjectArray`) i.p.v. inline string-concatenatie per parameter — zie de kanttekening hieronder over het encoding-verschil met de oude aanpak.\n- `src/lib/dto/base-dto.ts` + `src/lib/dto/decorators/` — handgeschreven `BaseDto<T>` en de `@date`/`@dto`/`@array`-decorators die DTO-classes gebruiken om duplicatie in constructor/init/fromJS-boilerplate te verkleinen. Zie de aparte sectie hieronder.\n- `src/generated/` — waar `nx run nswag:generate` (zonder `/variables:`-overrides) de fixture-client (`ProductsClient`, `CustomersClient`, `OrdersClient` + DTO-classes) uit `swagger.json` neerzet. Dit is een **gitignored build-artefact**, niet gecommit en niet geëxporteerd via `src/index.ts` — niets in dit package of elders in de workspace gebruikt deze fixture-classes. Het dient uitsluitend als lokale smoke-test: draai `nx run nswag:generate` na een wijziging aan `swagger.json` of de templates om te controleren dat de generatie nog slaagt en er valide TypeScript uitkomt.\n\n### Kanttekeningen bij de custom templates\n\n- `ApiServiceBase`'s methodes heten bewust `httpGet`/`httpPost`/`httpPut`/`httpPatch`/`httpDelete` i.p.v. `get`/`post`/`put`/`patch`/`delete`: OpenAPI-operations heten vaak letterlijk zo (bv. een `Delete`- of `Patch`-operation), en zo'n gegenereerde methode zou een gelijknamige base-class-methode stilzwijgend overriden i.p.v. hem aan te roepen — TypeScript ving dit gelukkig af als compile-error (`TS2416`) tijdens het testen van deze templates, maar de `http`-prefix voorkomt de botsing structureel.\n- Alleen JSON-request-bodies worden ondersteund (`operation.HasContent`) — form-data/multipart/urlencoded bodies en file upload/download (`IsFile`) worden niet door deze fork afgehandeld; `swagger.json` heeft hier vandaag geen operations van.\n- `UseTransformOptionsMethod`/`UseTransformResultMethod`-hooks worden niet ondersteund door deze fork; geef in plaats daarvan een geconfigureerde `AxiosInstance` mee aan de constructor voor interceptor-achtige aanpassingen. Standaard `Content-Type`/`Accept: application/json`-headers zitten sinds kort op die (automatisch aangemaakte) `AxiosInstance` i.p.v. per-operation in `AxiosClient.liquid` — geef zelf een `AxiosInstance` mee als je andere default-headers nodig hebt; die is dan zelf verantwoordelijk voor headers (geen automatische merge).\n- Querystrings worden opgebouwd via `@brabander/http-client`'s `QueryStringBuilder`, die intern `URLSearchParams` gebruikt. Dat encodeert een spatie als `+`, terwijl de oude inline `encodeURIComponent`-aanpak een spatie als `%20` encodeerde — een wire-format-verandering. Nog niet geverifieerd tegen een echte backend; controleer bij het aansluiten van de echte spec of `+` in een querystring als spatie geïnterpreteerd wordt (bv. ASP.NET Core model binding), en pas zo nodig de builder aan om spaties expliciet als `%20` te coderen.\n- Gebruik de `extensionCode`-instelling niet om de `ApiServiceBase`-import toe te voegen: in NSwag 14.7.1 lekt daarbij een fragment van een absoluut pad aan het eind van het gegenereerde bestand (geïsoleerd gereproduceerd met alléén `extensionCode` gezet, los van `templateDirectory`/`clientBaseClass`/`useAbortSignal`). De import wordt in plaats daarvan toegevoegd via een override van `File.Header.liquid` (die nu ook de `Result`-import bevat).\n- Documenteer wijzigingen aan de templates hier in plaats van in de `.liquid`-bestanden zelf — een eerdere `{% comment %}`-poging werd voor de zekerheid verwijderd tijdens het isoleren van de `extensionCode`-bug hierboven en niet teruggezet.\n- **Error-response pattern (Result i.p.v. throw):** de nieuwe templatelogica gaat ervan uit dat elke operation hooguit één success-response en hooguit één getypeerde non-success-response heeft (vandaag altijd waar: elke operation in `swagger.json` heeft precies één 2xx-status, en foutresponses zijn altijd `400` of `404`, getypeerd als `ProblemDetails`). Bij meerdere getypeerde succes- of foutresponses per operation pakt de template alleen de eerste; dat is een bewuste vereenvoudiging, geen bug — pas de template aan als de spec dit ooit nodig heeft.\n- **Bewuste gedragswijziging:** een HTTP-status die niet in de spec van die specifieke operation voorkomt, maar wel op de lijst `400`/`401`/`403`/`404`/`409` staat, wordt nu een getypeerd `Result`-foutobject i.p.v. een `throw`. Dat is kleiner/eenvoudiger dan het oude exacte-match-of-throw-gedrag, maar wel een contractwijziging waar consumers van de client rekening mee moeten houden.\n- **Optionele, niet-nullable query-parameters gooien niet meer bij `null`:** NSwag's standaardgedrag was om voor een optionele query-parameter die volgens de spec niet nullable is (bv. `search` in `getAll`) toch een `if (x === null) throw ...`-guard te genereren vóór de `qs_.addString(...)`-call. Overbodig, want `QueryStringBuilder.add()` (aangeroepen door `addString`/`addNumber`/`addBoolean`/`addDate`) skipt `null`/`undefined` sowieso al stilzwijgend via `isDefined` (`@brabander/core`). `Client.RequestUrl.liquid` gebruikt voor zulke optionele parameters nu i.p.v. de throw+plain-add de `...When`-variant met `isDefined` als predicate (bv. `qs_.addStringWhen(isDefined, \"search\", search)`), en de bijbehorende parameter-types in `AxiosClient.liquid` zijn aangepast van `T | undefined` naar `Nullable<T>` zodat de signature het (al bestaande) runtime-gedrag eerlijk weergeeft. `QueryStringBuilder`'s `addStringWhen`/`addNumberWhen`/`addBooleanWhen`/`addDateWhen` namen daarvoor een plain `boolean` als eerste argument; dat is een `predicate: (value) => boolean`-callback geworden, zodat `isDefined` er direct in past.\n\n## `BaseDto` en mapping-decorators\n\nElke NSwag-gegenereerde DTO-class herhaalde vroeger dezelfde boilerplate: een `constructor`, een `init(_data)` die per property handmatig `new Date(...)` of `X.fromJS(item)` deed, een static `fromJS`, en een `toJSON`. `src/lib/dto/base-dto.ts` en `src/lib/dto/decorators/` vervangen dat door een `BaseDto`-basisclass plus drie **property**-decorators die metadata registreren, en één generieke `init()` op `BaseDto` die die metadata gebruikt om de ruwe constructor-data te mappen:\n\n```ts\nexport class Order extends BaseDto {\n  constructor(data?: IOrder) {\n    super(data);\n  }\n\n  id!: string;\n  customerId!: string;\n  @date() createdAt?: Date;\n  @array(() => OrderItem) items!: OrderItem[];\n}\nexport type IOrder = PublicProperties<Omit<Order, 'init'>>;\n```\n\n- Gewone properties (`id`, `customerId`) hebben **geen** decorator en **geen** `declare` nodig — gewoon een normale `!`/`?`-veld-declaratie.\n- **`@date()`** — maakt er bij constructie daadwerkelijk een `new Date(...)` van.\n- **`@dto(() => Ctor)`** — maakt er daadwerkelijk een `new Ctor(...)` van (voor een geneste DTO-class).\n- **`@array(() => Ctor)`** — mapt elk element van een array via `mapModel` naar `new Ctor(item)` (of laat een element dat al een `Ctor`-instance is ongemoeid). Alléén bedoeld voor arrays van geneste DTO-classes, niet voor `Date[]`/primitieven — zie \"Bekende beperkingen\" hieronder.\n- **`static fromJS(data)`** — blijft bestaan (`return new ClassName(data)`) omdat de (ongewijzigde) `AxiosClient.liquid`/`Client.RequestUrl.liquid`-templates dit aanroepen om response-data te parsen.\n- **`I{ClassName}`** wordt niet meer apart door NJsonSchema gegenereerd, maar afgeleid van de class zelf via `PublicProperties<Omit<{ClassName}, 'init'>>` (een utility type uit `src/lib/dto/metadata.ts`) — de publieke properties van het model zíjn het interface-type, zonder aparte generatie die uit de pas kan lopen.\n- Geen `toJSON` meer nodig: properties zijn gewone (enumerable) class fields, dus `JSON.stringify(instance)` serialiseert ze al correct — geneste Dto-instances en `Date` (die zelf al een ingebouwde `toJSON` heeft) recursief inbegrepen.\n\n### Waarom dit werkt: `experimentalDecorators` + `useDefineForClassFields: false`\n\n`@date`/`@dto`/`@array` zijn **legacy TypeScript property-decorators** (`(target, propertyKey) => void`), niet de nieuwe TC39 stage-3 decorators. Ze schrijven metadata (welke properties getransformeerd moeten worden, en hoe) op de class-prototype onder een niet-geëxporteerde `Symbol`, gemerged per class zodat overerving automatisch werkt. `BaseDto.init(data)` leest die metadata terug en past de transformatie generiek toe.\n\nDit vereist `packages/nswag/tsconfig.lib.json`/`tsconfig.spec.json`: `\"experimentalDecorators\": true` (voor de decorator-syntax zelf) **én** `\"useDefineForClassFields\": false`. Dat laatste is essentieel en niet optioneel: het root-`tsconfig.base.json` heeft `target: \"es2022\"`, en bij `useDefineForClassFields` op de (impliciete) default `true` initialiseert élk class-field van een subclass zich opnieuw naar `undefined` zodra `super(data)` terugkeert — dat overschrijft alles wat `BaseDto`'s `init()` (aangeroepen vanuit de `BaseDto`-constructor, dus vóór die subclass-veld-initialisatie) net heeft toegekend. Empirisch geverifieerd tijdens de implementatie: zonder `useDefineForClassFields: false` werden zelfs de gedecoreerde properties stilzwijgend `undefined`.\n\n**Bekende beperkingen:**\n\n- `@dto`/`@array` verwachten een **thunk** (`() => Ctor`), niet de class-referentie direct — zo kan een Dto-class verwijzen naar een andere Dto-class die pas later in hetzelfde gegenereerde bestand gedeclareerd wordt, zonder een temporal-dead-zone-fout (de thunk wordt pas op constructie-tijd aangeroepen, niet bij class-declaratie).\n- `@array(Ctor)` roept intern `new Ctor()` (zonder argumenten) aan en checkt daarna `instanceof BaseDto` om te weten of `.init(...)` aangeroepen moet worden — dit werkt dus alléén voor arrays van andere `BaseDto`-subclasses, niet voor `Date[]` of arrays van primitieven (die hebben ook geen decorator nodig, ze worden gewoon 1-op-1 gekopieerd).\n- **Vitest/Vite in deze workspace (rolldown + oxc) kan legacy decorator-syntax nog niet parsen** — zelfs `class Foo { @bar() x; }` los van alle eigen logica geeft een `SyntaxError`. `tsc` (de daadwerkelijke compiler, gebruikt voor `nx build`) compileert dezelfde code wél probleemloos. `vitest.config.mts` van dit package bevat daarom een lokale Vite-plugin die dit package's `.ts`-bestanden eerst via `@swc/core` (al een workspace-devDependency) transformeert, met dezelfde `experimentalDecorators`/`useDefineForClassFields`-instellingen als de tsconfig's — zie de comment daar. Zodra oxc/rolldown dit zelf ondersteunt, kan die plugin weer weg.\n\n### `templates/Class.liquid` — scope van de override\n\nDeze template overridet NJsonSchema's ingebouwde DTO-generatie (niet NSwag's eigen client-templates) zodat platte/datum-/array-/geneste-object-properties bovenstaande vorm krijgen. **Alleen** deze gevallen worden gemodelleerd; voor elke class die overerving, discriminators, dictionaries of abstracte classes gebruikt (of `generateCloneMethod` aanstaat), valt de template terug op NJsonSchema's originele, volledige generatie — als letterlijk ingesloten kopie van de upstream `Class.liquid` (NJsonSchema's eigen `{% template %}`-tag blijkt alleen te werken als het **hele** bestand vervangt, niet genest in een `{% if %}`, dus een echte kopie was de enige werkende optie). Een indexer-property (`[key: string]: any`) triggert deze fallback bewust _niet_ — zie de code-comment in het template voor waarom. De huidige `swagger.json`-fixture gebruikt geen van de fallback-triggerende features, dus die tak is verified-to-parse maar niet in de praktijk doorlopen; controleer dit lokaal (regenereren + inspecteren) voordat een consumerende app een spec aanlevert die er wel gebruik van maakt.\n\n- `nswag.json` heeft `\"convertConstructorInterfaceData\": true` nodig — zonder die instelling rapporteert NJsonSchema voor **elke** property (ook geneste objecten/arrays) `SupportsConstructorConversion: false`, waardoor het template nooit `@dto`/`@array` zou toevoegen.\n\nDit alles is **echt gevalideerd** in een sandbox met .NET 8 SDK (via Ubuntu's eigen `apt`-repository, niet via het door het netwerkbeleid geblokkeerde `dotnet.microsoft.com`): `nx run nswag:generate` → `nx run nswag:build` → `nx test nswag` liepen allen succesvol door, en een los smoke-testje bevestigde dat `new Product(data).createdAt` en `new Order(data).items[0]` daadwerkelijk `instanceof Date`/`instanceof OrderItem` zijn.\n\n## Client genereren\n\nVereist een lokaal geïnstalleerde [.NET SDK](https://dotnet.microsoft.com/download) (NSwag draait als .NET-tool onder water, ook via de npm-wrapper). Installeer eerst de dependencies (`@brabander/result` is een nieuwe dependency van dit package) voordat je regenereert:\n\n```sh\nnpm ci\nnx run nswag:generate\n# of rechtstreeks:\nnpx nswag run nswag.json\n```\n\n## Gebruik door consumerende apps\n\n`@brabander/nswag` is de gedeelde, herbruikbare basis: **één** `nswag.json` (deze, in dit package) met de Liquid-templates in `templates/` en de handgeschreven runtime (`ApiServiceBase`, `BaseDto`, de `@date`/`@dto`/`@array`-decorators, `PublicProperties`). Een applicatie die een eigen backend-spec heeft, roept dit ene config-bestand rechtstreeks aan en overschrijft alleen de paden die per app verschillen — er komt **geen eigen `nswag.json` per app** bij. De gegenereerde client hoort wél in de app zelf te wonen, niet in dit package.\n\nDit werkt via NSwag's eigen variabelen-mechanisme: `documentGenerator.fromDocument.url` en `codeGenerators.openApiToTypeScriptClient.output` zijn in dit `nswag.json` `$(DocumentUrl)`/`$(Output)`-placeholders, met fallback-waarden in `\"defaultVariables\"` die dit package's eigen `swagger.json`-fixture genereren. Een consumerende app overschrijft ze via `nswag run <pad-naar-dit-nswag.json> /variables:DocumentUrl=...,Output=...`.\n\n**Belangrijk:** alle relatieve paden in dit `nswag.json` (inclusief `$(DocumentUrl)`/`$(Output)`/`templateDirectory`) worden door NSwag opgelost **relatief aan de map van dit config-bestand** (`packages/nswag`), ongeacht vanuit welke working directory de CLI wordt aangeroepen — dus ook een override-waarde die vanuit een andere app komt, wordt geschreven als een pad relatief aan `packages/nswag`. `templateDirectory` staat vast op `\"templates\"` (relatief aan dit package) en hoeft nooit overschreven te worden — templates leven altijd hier, ongeacht welke app genereert.\n\n`apps/school` is het referentievoorbeeld:\n\n- `apps/school/src/app/client/openapi.yaml` — de OpenAPI-spec van de school-backend.\n- `apps/school/package.json` — `\"generate\": \"nswag run ../../packages/nswag/nswag.json /variables:DocumentUrl=../../apps/school/src/app/client/openapi.yaml,Output=../../apps/school/src/app/client/generated/api-client.ts\"` (beide paden relatief aan `packages/nswag`, zie hierboven) — zo werkt `nx run school:generate`. Heeft ook `@brabander/nswag` (voor `ApiServiceBase`/`BaseDto`/decorators), `axios` (zelfde `^1.18.1`-range als dit package, om npm-hoisting van axios-types consistent te houden) en `nswag` (de CLI) als dependency.\n- `apps/school/tsconfig.app.json`/`tsconfig.spec.json` — hebben dezelfde `experimentalDecorators: true`/`useDefineForClassFields: false` nodig als dit package (zie \"Waarom dit werkt\" hierboven).\n\nBelangrijk voor herbruikbaarheid: `templates/File.Header.liquid` importeert `ApiServiceBase`/`BaseDto`/de decorators/`PublicProperties` via `'@brabander/nswag'` (pakket-naam), niet via relatieve paden — zo werkt dezelfde `templateDirectory` voor elke consumerende app, ongeacht waar de gegenereerde output terechtkomt.\n\nEen nieuwe app die dit patroon wil volgen: voeg alleen een `\"generate\"`-script toe dat `packages/nswag/nswag.json` aanroept met eigen `DocumentUrl`/`Output`-variabelen (paden relatief aan `packages/nswag`), en zorg dat `@brabander/nswag` + `axios` (zelfde range) als dependency zijn opgenomen. Geen nieuw config-bestand nodig.\n\nThis library was generated with [Nx](https://nx.dev).\n\n## Building\n\nRun `nx build nswag` to build the library.\n\n## Running unit tests\n\nRun `nx test nswag` to execute the unit tests via [Vitest](https://vitest.dev/).\n","readmeFilename":"README.md"}