{"_id":"@ayapapa-npm/contracts-js","_rev":"15-04a3b1f9f3028e6d0d67a42d1bcd9f15","name":"@ayapapa-npm/contracts-js","dist-tags":{"latest":"0.5.3"},"versions":{"0.2.0":{"name":"@ayapapa-npm/contracts-js","version":"0.2.0","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.0","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"b9ec3a69dd2281b2fa9465df986e1523751ac54d","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.0.tgz","fileCount":7,"integrity":"sha512-oJMBIGZiPqJD1eKr6LSp/eI8vh7lSZQAuc1mAdHVR2GFC7lV7MW8yV84jzAmb9k/e/1huSqVr6pFn2hRXP6lqw==","signatures":[{"sig":"MEUCIQC1Hebs6xBk8NOTLRJM6DXYb0N/btH1KwDg3hhKtDuDDwIgOAAZJe8poghefQ/BmPsOWe98TSt5Mhm+fiU+ahiMESk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39932},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"72de11bfe4187ac5d76bccbc1b77554601e46871","scripts":{"test":"vitest run","build":"tsup src/index.js --format esm,cjs --out-dir dist --clean --dts","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"Design by Contract utilities for JavaScript: preconditions, postconditions, and invariants.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.0_1785929063523_0.3277980164094445","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@ayapapa-npm/contracts-js","version":"0.2.1","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.1","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"2e712ffb71e708b8cc7f8900405085ca62d43dca","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.1.tgz","fileCount":7,"integrity":"sha512-dMqDcq3f53Wybk0QNABY4NpcrHGwLpdxuz8mqiJHHwKc0n2P875R+A+Ps3YDdTABlgly+VLgo6fRhTLSUeDRCQ==","signatures":[{"sig":"MEYCIQD0TpcB47up77GNk5fhjoSCPd8T7K0ZknzMt95h2TmCGwIhAOufDDc6xBxHeurw+thbOk9Dyp2hu4O7uxiwOBdD362v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40072},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"72de11bfe4187ac5d76bccbc1b77554601e46871","scripts":{"test":"vitest run","build":"tsup src/index.js --format esm,cjs --out-dir dist --clean --dts","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"Design by Contract utilities for JavaScript: preconditions, postconditions, and invariants.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.1_1785932555051_0.8554607569066282","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@ayapapa-npm/contracts-js","version":"0.2.2","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.2","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"90a9bac9e422209768b394db75ce5d503e2860aa","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.2.tgz","fileCount":7,"integrity":"sha512-lTTVidLh2Hb2dK/DjGhelnh5VXrsT23+TM8ifQyCNN34/klRO4Wwsvj61bb3/s1UA4fq1hWEQC5I24R2FxuYiA==","signatures":[{"sig":"MEUCIBlnprizhigy3dCowqqhBWW+EmsV6PGq0Oxbn6Q+witZAiEAw4Ct2z4fh+T+5oQdHq+AMOYw54galdUlpZyBWNuVBWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62883},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3d915b4777c777589eb7dd01df4ea6deb55d2c4e","scripts":{"test":"vitest run","build":"tsup src/index.js --format esm,cjs --out-dir dist --clean --dts","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.2_1786020488398_0.31440793564894065","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@ayapapa-npm/contracts-js","version":"0.2.3","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.3","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"446d7d0b4fecabd2e6c0d8a9bb318444252813be","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.3.tgz","fileCount":7,"integrity":"sha512-9Y4pEQIBukWxHg6RL2gASc4oDESUZafwTA4PJfB7pWv3tVOR1sWP6AVwxnpwmpMMtwQGI1Lh8aPbapDf/+R9bA==","signatures":[{"sig":"MEUCIQCOA9lxP/mT5jAfscYVC/sVD6rl9llFxHOpJWPWzV1DoAIgO3vGCO64gX8PwSl3te8wqxGAJuj73tHmw3Qy8Q3YIbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62885},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3d915b4777c777589eb7dd01df4ea6deb55d2c4e","scripts":{"test":"vitest run","build":"tsup src/index.js --format esm,cjs --out-dir dist --clean --dts","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.3_1786053798199_0.9677206963692582","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@ayapapa-npm/contracts-js","version":"0.2.4","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.4","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"3b6a8dbecedfb31ad3ed4f4a4b32a3f1db1bf0af","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.4.tgz","fileCount":7,"integrity":"sha512-4+55IImvOqPhqMBbfeIy8hupGbI7Sh/GKBTJqcyd7ZWtcdV8GxZc4yB64jckmmFefduQADoQ6PlWuHqAeQ4H5w==","signatures":[{"sig":"MEYCIQDI/WZYkjPGC/8T/954mEEDx/FckQzH1H7vG6GZd7/ULgIhALla+uOG7Y2kjvgP747XlYTFQsvJhxbyRRTY7j8gMA/k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66862},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5c55ce534ba320b2758dde52fb5b8839a6a5f61a","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","release:check":"npm run typecheck && npm run build && npm run test","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.4_1786325780263_0.3580235961336202","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@ayapapa-npm/contracts-js","version":"0.2.5","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.2.5","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"342948709c870555fb4c88b49c1a3a0c831fb50a","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.2.5.tgz","fileCount":7,"integrity":"sha512-uMt9Iw1t/6Ki4sJk7iNYu8uZvWMBGVbhTdHxth3+W8wBuWGeCMX2320BCl09NvbMCKT5g3OdL1uhfssG/JLEVQ==","signatures":[{"sig":"MEQCIEOyRnikyjZhBGz5dYvVFuX+ZHL0Ll9/6yRHRH7mm0WRAiBVFmJbOi8Z+utv5LI2H1EPjwyexkHtC1Z29E8hnJbm1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67178},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2bfabfae6b1465e03f70cbfabfdef9b869146441","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","release:check":"npm run typecheck && npm run build && npm run test","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.2.5_1786503975822_0.25658744228891117","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ayapapa-npm/contracts-js","version":"0.3.0","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.3.0","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"a1a7a313635d7c3678c517f72042781ba9ff451f","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.3.0.tgz","fileCount":7,"integrity":"sha512-6zuj4qFIW7X0mm3h8HIiEFVGuHnvW1mEJloI220m7d3YTRZEhLH8+4+sj8mYiBoFxOqz3vfO5cN1lS99TidH5A==","signatures":[{"sig":"MEUCIQDumJqVOD4KpFtp+WCFAnx3/thYbLQiEAb3vzZ3vOtFrAIgQl5LaavDrIPQo8e6raTYk5ETq62k6qedM4Ci7iJrgYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78494},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7504b8f8339a71c0a2763bb4b38ff300eb2c3bb7","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","release:check":"npm run typecheck && npm run build && npm run test","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"esbuild@0.28.1":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.10","typescript":"^5.9.3","@types/node":"^26.2.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.3.0_1786673745579_0.5604067750684543","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ayapapa-npm/contracts-js","version":"0.4.0","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.4.0","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"607db3b92b592919872ede74cfd44c253dad1004","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.4.0.tgz","fileCount":7,"integrity":"sha512-S+1MLayb2N3zuzF4F6iOnKGFJP7wyiQVXXweCzaOeiKlZMVpou7bY5qn1h6BuowP8cEicASe0JdXToIW8qFBag==","signatures":[{"sig":"MEUCIFEw7j5/QvecLxacD7GgMbWobRSgvZjFWKKS7brxHnhmAiEAyRXzWMzyTsDn5Micf9thyNmJiXWic2FRvOw+e/DUdO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84528},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c8522bb53be039a9172e93da9c75caeb0213746d","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","test:ui":"vitest --ui","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typedoc":"^0.28.20","@vitest/ui":"^4.1.11","typescript":"^5.9.3","@types/node":"^26.2.0","@vitest/coverage-v8":"^4.1.11","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.4.0_1788682482592_0.41161662180591096","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@ayapapa-npm/contracts-js","version":"0.4.1","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.4.1","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"f973f0546b82f9c6cdf6bfdaa2fcca0bd3e37907","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.4.1.tgz","fileCount":7,"integrity":"sha512-R4h9Z3X8Rn2PL3tsQ65eW/GGo6Wj+kn2n1RQtO47PFTZHwXUnoTcFXf1xt3i2alXg8dOvT6Mng34G5nsYGb4UA==","signatures":[{"sig":"MEUCIQC28rSyty12i6MBq6ibiWL/c/92vRdODgV45lGKXqs/uwIgGUQDb5EuFp3WpPyFbDK3DSJ46f5xQS1am5jKAc8PqeE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84503},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"091ca77b47b9693db9426bfc5495f3c65ad3341a","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","test:ui":"vitest --ui","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typedoc":"^0.28.20","@vitest/ui":"^4.1.11","typescript":"^5.9.3","@types/node":"^26.2.0","@vitest/coverage-v8":"^4.1.11","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.4.1_1788685435065_0.25795174726337033","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@ayapapa-npm/contracts-js","version":"0.4.2","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.4.2","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"e9e9240d6a07ce832bfd2ab151248af57c7cc9a4","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.4.2.tgz","fileCount":7,"integrity":"sha512-8X4g0iwFEJe3PTaKSfSJdV5K4neT2zaZXta2ZNHFplN/cqRim1FuFFU9tJtqFU6UmD2yWREIycPGtxvqKb2AnQ==","signatures":[{"sig":"MEYCIQC/i5qmZsleLtHQEhqWmre6gO2zvR7JiZnhW77VeVNOBgIhAI9FpLRxejWp+7xi1/3YLaXquK5yG+Tu59Md1BKczwzF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85167},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c7516c084bdd0462ec73dc6277972ca372e8786b","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run test","test:ui":"vitest --ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","prepublishOnly":"npm run check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typedoc":"^0.28.20","@vitest/ui":"^4.1.11","typescript":"^5.9.3","@types/node":"^26.2.0","@vitest/coverage-v8":"^4.1.11","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.4.2_1788688107364_0.9350645179070805","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@ayapapa-npm/contracts-js","version":"0.4.3","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.4.3","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"3b093c9650d3e4a1f9cda1730406eabc556a638d","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.4.3.tgz","fileCount":7,"integrity":"sha512-c0UNB/evKizPkgIqoynZYKpSNX1Byhc5EthS7kehY+lPd9pZyNCmcele8vy3gtxd52RBwTnv4lXOyP70HMiMlA==","signatures":[{"sig":"MEQCIDbos4AJGkzTtXuzQ3QgBgrJuDdqkA3Kkh4lE1CKBX0OAiBEYTZdOdYGSCCJnQMoYxTy3IVyCWj28MryZR98H4Ui+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85397},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8da80fcadf914f462ba192d88ee10e35165c956a","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run build:doc && npm run coverage:ui","test:ui":"vitest --ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","prepublishOnly":"npm run check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^4.1.11","typedoc":"^0.28.20","@vitest/ui":"^4.1.11","typescript":"^5.9.3","@types/node":"^26.2.0","@vitest/coverage-v8":"^4.1.11","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.4.3_1788740821057_0.00274976640160296","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@ayapapa-npm/contracts-js","version":"0.5.0","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.5.0","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"c2591738d3d3d3c0e6f58c70994311db38b98fb3","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.5.0.tgz","fileCount":7,"integrity":"sha512-Hf8VTXYFNX5W0LnI5Kuz1dpiCIDb48gW4F4DYRXRvwagMTqiRowz+hWmlI/PxK0poJfh+aDdVYCuv2ZtMsX8nQ==","signatures":[{"sig":"MEQCIHVZ84C6xQbZHT4wMbE72vn7O+83W3tuAX6ew9QrBsBfAiAaRZz9EmQ1k/1X3Gleew5P6P6ziMv18hJixNjserjbtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHuTUGcWdr7CtcXvP+1FVQxEu65irSVNLsY9Aa4XFlleAiASuBZA0fZ3439yxmfw/YFNyJoE8Wn8gsclfTtdbKRbiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85607},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6b95939676bc0043e2a92175bdf7c290abca394f","scripts":{"test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run build && npm run build:doc && npm run coverage","test:ui":"vitest --ui","check:ui":"npm run typecheck && npm run build && npm run build:doc && npm run coverage:ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","vitest":"^5.0.2","typedoc":"^0.28.20","@vitest/ui":"^5.0.2","typescript":"^5.9.3","@types/node":"^26.2.0","@vitest/coverage-v8":"^5.0.2","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.5.0_1790340275157_0.46891480543003805","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@ayapapa-npm/contracts-js","version":"0.5.1","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.5.1","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"f5cddff01df2087f236f84a0d69ea3e8c416ffdb","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.5.1.tgz","fileCount":7,"integrity":"sha512-QNC14rhsesjUO3EAO8lAhlnOyHFK/iYsu2mLx03iRVjWx+NTEcJATllpwEwgVTOAHWY9g2Oes0O8mXUbA2/Qpw==","signatures":[{"sig":"MEYCIQCi9Dayg62CVIu0IKv0lACZQIPibMn7pLI3bVVfXEyVGQIhAMNleiB67cVNj207NpCMTcMmr9c3IBVW2SzNcMO4e+tO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFam5G0PCLbEKy/tQTETM6ewWJ6A1UQAJanq2ybzOr/jAiAZMR8gw92s7KJeksyw4w03zdYlnuR3AqUEus8+WEBGzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86662},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3ad978ae461884e8eb06ece527d3717f78a5867e","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage","test:ui":"vitest --ui","check:ui":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage:ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","eslint":"^10.11.0","vitest":"^5.0.2","typedoc":"^0.28.20","@eslint/js":"^10.0.1","@vitest/ui":"^5.0.2","typescript":"^5.9.3","@types/node":"^26.2.0","typescript-eslint":"^8.70.1","@vitest/coverage-v8":"^5.0.2","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.5.1_1790524562744_0.23661766609637125","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@ayapapa-npm/contracts-js","version":"0.5.2","author":{"name":"ayapapa"},"license":"MIT","_id":"@ayapapa-npm/contracts-js@0.5.2","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"dist":{"shasum":"dd7a6eb4f14d43de3a75052fe464daac6a5011ea","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.5.2.tgz","fileCount":7,"integrity":"sha512-tZ5SUhx2JPvJB3dzRkOGAQKnOCHokyu2Ir8vFvcMIfxePlsUicd/m9BN84dtomT8T6pQZ5HPaQb5N5LO+BWQrw==","signatures":[{"sig":"MEUCIHsh+Zfk4H/lAdwMuNJF+6fO8D4Ua5NWczhiOcmUwczhAiEAkJcaL0gyl229ycLAYYRNM644aAiJ3W/YNStp+CXaZ0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDgD4aSvdDqQkjDQWxTIVIj2TFM+o3fgoiJ4YYkiA5XcQIgIi6Axs5uTikhO0iMMdOefvpfAuacl1aMLM+/+ywoxEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85962},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0f16f535a2a43bdf0c886641f4bd6083e94d64f3","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage","test:ui":"vitest --ui","check:ui":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage:ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","eslint":"^10.11.0","vitest":"^5.0.2","typedoc":"^0.28.20","@eslint/js":"^10.0.1","@vitest/ui":"^5.0.2","typescript":"^5.9.3","@types/node":"^26.6.3","typescript-eslint":"^8.70.1","@vitest/coverage-v8":"^5.0.2","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts-js_0.5.2_1790552921169_0.13342496382914293","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"_id":"@ayapapa-npm/contracts-js@0.5.3","dist":{"shasum":"9055749ac27878957b2bc86be34e491f56d69d1a","tarball":"https://registry.npmjs.org/@ayapapa-npm/contracts-js/-/contracts-js-0.5.3.tgz","fileCount":7,"integrity":"sha512-444A3A8YfieET/rkq0HFaPw3B9d+S1WQifqsGRuVU6NZrg6ggI2R0IBAN97I0aM87sF/H5mVNbyxL5p5WBWW+g==","signatures":[{"sig":"MEUCIGtXuEuaY9SuEcIFf/u1TtwHldRI9qgTUx6OYrIt8ytxAiEA24u7G+Hl1nMXsgZG8N40i/16InrjL+X54AVr4Zn7KYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDN5pxd5BmIrNZSbZ+7kgdBE95vL/TUO3ua/tRor3xhfQIhAOsN7Iht67as0faHeBWh47lAznDy3YGfwvyq79n9UySz"}],"unpackedSize":86018},"main":"./dist/index.cjs","name":"@ayapapa-npm/contracts-js","type":"module","types":"./dist/index.d.ts","author":{"name":"ayapapa"},"module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"112a5da28ccfa6fada48ec465ebc19d74b944555","license":"MIT","scripts":{"lint":"eslint .","test":"vitest run","build":"tsup src/index.ts --format esm,cjs --out-dir dist --clean --dts","check":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage","test:ui":"vitest --ui","check:ui":"npm run typecheck && npm run lint && npm run build && npm run build:doc && npm run coverage:ui","coverage":"vitest run --coverage","build:doc":"npx typedoc && node scripts/rename-docs.cjs","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --run","test:watch":"vitest","coverage:ui":"vitest run --coverage && start coverage/index.html","release:check":"npm run check","prepublishOnly":"npm run release:check"},"version":"0.5.3","_npmUser":{"name":"ayapapa-npm","email":"maas.daon@gmail.com"},"_npmVersion":"12.0.1","description":"A lightweight Design by Contract library for JavaScript.","directories":{},"maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^8.2.2","eslint":"^10.11.0","vitest":"^5.0.2","typedoc":"^0.28.20","@eslint/js":"^10.0.1","@vitest/ui":"^5.0.2","typescript":"^5.9.3","@types/node":"^26.6.3","typescript-eslint":"^8.70.1","@vitest/coverage-v8":"^5.0.2","typedoc-plugin-markdown":"^4.13.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/contracts-js_0.5.3_1790809440035_0.4774655730230821"}}},"time":{"created":"2026-08-05T11:24:23.352Z","modified":"2026-09-30T23:04:00.276Z","0.2.0":"2026-08-05T11:24:23.664Z","0.2.1":"2026-08-05T12:22:35.193Z","0.2.2":"2026-08-06T12:48:08.545Z","0.2.3":"2026-08-06T22:03:18.376Z","0.2.4":"2026-08-10T01:36:20.429Z","0.2.5":"2026-08-12T03:06:15.971Z","0.3.0":"2026-08-14T02:15:45.737Z","0.4.0":"2026-09-06T08:14:42.721Z","0.4.1":"2026-09-06T09:03:55.200Z","0.4.2":"2026-09-06T09:48:27.532Z","0.4.3":"2026-09-07T00:27:01.192Z","0.5.0":"2026-09-25T12:44:35.246Z","0.5.1":"2026-09-27T15:56:02.833Z","0.5.2":"2026-09-27T23:48:41.248Z","0.5.3":"2026-09-30T23:04:00.122Z"},"author":{"name":"ayapapa"},"license":"MIT","description":"A lightweight Design by Contract library for JavaScript.","maintainers":[{"name":"ayapapa-npm","email":"maas.daon@gmail.com"}],"readme":"[![CI](https://github.com/ayapapa/contracts-js/actions/workflows/ci.yml/badge.svg)](https://github.com/ayapapa/contracts-js/actions/workflows/ci.yml)\r\n![Coverage](https://raw.githubusercontent.com/ayapapa/contracts-js/main/badges/coverage-total.svg)\r\n![Branches](https://raw.githubusercontent.com/ayapapa/contracts-js/main/badges/coverage-branches.svg)\r\n![Functions](https://raw.githubusercontent.com/ayapapa/contracts-js/main/badges/coverage-functions.svg)\r\n![Lines](https://raw.githubusercontent.com/ayapapa/contracts-js/main/badges/coverage-lines.svg)\r\n![Statements](https://raw.githubusercontent.com/ayapapa/contracts-js/main/badges/coverage-statements.svg)\r\n\r\n## Table of contents\r\n[Overview](#overview) | [API Reference](#api-reference) | [Installation](#installation) | [Contract Types](#contract-types) | [Usage](#usage)\r\n\r\n# contracts-js\r\n## Overview\r\nA lightweight Design by Contract library for JavaScript.</br>\r\nProvides runtime contract checks based on Design by Contract principles.</br>\r\nAll check functions return the evaluated condition itself, so they can be used directly in control flow when exception throwing is suppressed.\r\n\r\n## API Reference\r\n[API document](https://github.com/ayapapa/contracts-js/blob/main/docs/api.md)<br>\r\nImplementation examples are also included.\r\n\r\n## Installation\r\n\r\n### Install from npm registry\r\nAvailable now.\r\n```bash\r\nnpm install @ayapapa-npm/contracts-js\r\n```\r\n\r\n### Install directly from GitHub Release:\r\nAvailable now.\r\nCheck for the latest version before installation: https://github.com/ayapapa/contracts-js/releases\r\n```bash\r\nnpm install https://github.com/ayapapa/contracts-js/releases/download/X.Y.Z/ayapapa-npm-contracts-js-X.Y.Z.tgz\r\n```\r\nIf you see the error:\r\n```\r\nnpm error code EALLOWREMOTE\r\nnpm error Fetching packages of type \"remote\" have been disabled\r\n```\r\nallow remote packages:\r\n\r\n```bash\r\nnpm config set allow-remote all\r\n```\r\nThen run the install command again:\r\n```bash\r\nnpm install https://github.com/ayapapa/contracts-js/releases/download/X.Y.Z/ayapapa-npm-contracts-js-X.Y.Z.tgz\r\n```\r\n\r\n## Contract Types\r\n\r\n`contracts-js` provides runtime checks based on **Design by Contract** principles.\r\n\r\nThe library provides four types of contracts:\r\n\r\n| Contract    | Purpose                | When to use                                                | Responsibility          |\r\n| ----------- | ---------------------- | ---------------------------------------------------------- | ----------------------- |\r\n| `REQUIRE`   | Precondition           | Check conditions before execution starts                   | Caller                  |\r\n| `VERIFY`    | Intermediate condition | Check assumptions or intermediate results during execution | Internal process        |\r\n| `ENSURE`    | Postcondition          | Check conditions after execution completes                 | Function                |\r\n| `INVARIANT` | State consistency      | Check conditions that must remain valid over time          | Object / Data structure |\r\n\r\n### Quick Guide\r\n\r\n#### REQUIRE - \"Can this operation start?\"\r\n\r\nUse `REQUIRE` to validate conditions that must be satisfied before calling a function.\r\n\r\nExamples:\r\n\r\n* Function arguments are valid.\r\n* Required objects exist.\r\n* Required external conditions are available.\r\n\r\n```javascript\r\nContracts.REQUIRE(\r\n  user !== null,\r\n  'User is required'\r\n);\r\n```\r\n\r\n---\r\n\r\n#### VERIFY - \"Is the current processing state valid?\"\r\n\r\nUse `VERIFY` to check intermediate assumptions or temporary states during execution.\r\n\r\nExamples:\r\n\r\n* Intermediate calculation results.\r\n* Internal processing states.\r\n* Temporary assumptions.\r\n\r\nDo not use `VERIFY` for input validation.\r\nUse `REQUIRE` for conditions required before execution.\r\n\r\n```javascript\r\nContracts.VERIFY(\r\n  result >= 0,\r\n  'Intermediate result must not be negative'\r\n);\r\n```\r\n\r\n---\r\n\r\n#### ENSURE - \"Did the operation complete correctly?\"\r\n\r\nUse `ENSURE` to verify guarantees provided by a function after execution.\r\n\r\nExamples:\r\n\r\n* Return values are valid.\r\n* State changes completed correctly.\r\n* Processing results satisfy expected conditions.\r\n\r\n```javascript\r\nContracts.ENSURE(\r\n  result !== null,\r\n  'Result must be available'\r\n);\r\n```\r\n\r\n---\r\n\r\n#### INVARIANT - \"Is the object still valid?\"\r\n\r\nUse `INVARIANT` to verify conditions that represent the internal consistency of an object or data structure.\r\n\r\nExamples:\r\n\r\n* Internal values remain consistent.\r\n* Object state rules are maintained.\r\n* Data structure integrity is protected.\r\n\r\n```javascript\r\nContracts.INVARIANT(\r\n  balance >= 0,\r\n  'Balance cannot be negative'\r\n);\r\n```\r\n\r\n## Usage\r\n\r\n```javascript\r\nimport { Contracts } from '@ayapapa-npm/contracts-js';\r\n// or:\r\n// import Contracts from '@ayapapa-npm/contracts-js';\r\n\r\n// CommonJS:\r\n// const { Contracts } = require('@ayapapa-npm/contracts-js');\r\n\r\n// Enable debug mode\r\nContracts.setConfig({ debug: true });\r\n\r\n\r\n// REQUIRE: Check a precondition\r\nfunction divide(a, b) {\r\n  Contracts.REQUIRE(\r\n    b !== 0,\r\n    'Divisor cannot be zero'\r\n  );\r\n\r\n  return a / b;\r\n}\r\n\r\n\r\n// ENSURE: Check a postcondition\r\nfunction getPositiveNumber(x) {\r\n  Contracts.REQUIRE(\r\n    x > 0,\r\n    'Input must be positive'\r\n  );\r\n\r\n  const result = x * 2;\r\n\r\n  Contracts.ENSURE(\r\n    result > 0,\r\n    'Result must be positive'\r\n  );\r\n\r\n  return result;\r\n}\r\n\r\n\r\n// INVARIANT: Check object state consistency\r\nclass BankAccount {\r\n  constructor(balance) {\r\n    this.balance = balance;\r\n  }\r\n\r\n  withdraw(amount) {\r\n    Contracts.REQUIRE(\r\n      amount >= 0,\r\n      'Amount must not be negative'\r\n    );\r\n\r\n    this.balance -= amount;\r\n\r\n    Contracts.INVARIANT(\r\n      this.balance >= 0,\r\n      'Balance cannot be negative'\r\n    );\r\n  }\r\n}\r\n\r\n\r\n// VERIFY: Check an intermediate condition\r\nfunction processAccount(account) {\r\n  const calculatedBalance = calculateBalance(account);\r\n\r\n  Contracts.VERIFY(\r\n    calculatedBalance >= 0,\r\n    'Intermediate balance is invalid'\r\n  );\r\n\r\n  return calculatedBalance;\r\n}\r\n```\r\n\r\n**XXX_DEBUG() performs the same action as XXX() in debug mode; otherwise, no action.**\r\n\r\n","readmeFilename":"README.md"}