{"_id":"@axel-hq/fddtsc","_rev":"5-a1ada65e513bee029cec2b297963dcc9","name":"@axel-hq/fddtsc","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.0":{"name":"@axel-hq/fddtsc","version":"0.0.0","license":"Unlicense","author":{"name":"A. S. Pando","url":"https://github.com/AS-Pando"},"type":"module","bin":{"fddtsc":"fddtsc.js"},"dependencies":{"typescript":"^4.9.4"},"devDependencies":{"@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.30.5","@typescript-eslint/parser":"^5.30.5","eslint":"^8.22.0"},"engines":{"node":">=16"},"gitHead":"2fab929c891fc042537c0326464f8052fd67d1c0","description":"*\\[f\\]oun\\[d\\]ation \\[d\\]eclaration \\[t\\]ype\\[s\\]cript \\[c\\]ompiler*","_id":"@axel-hq/fddtsc@0.0.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Ec8ineutc5hZcXSHsXExIXH+fH4OF5IHU1ieuTnsj1Uw0HhpXXEhe/VvZbQOkBx81Jfe1r04ItSz80zLyjWXSA==","shasum":"6f79e3962b076236e403dc73e8bf97b5021fe4f9","tarball":"https://registry.npmjs.org/@axel-hq/fddtsc/-/fddtsc-0.0.0.tgz","fileCount":4,"unpackedSize":5974,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDGWVSAd5Nvf4FPLLtYi5yYQk53oQKGO2h1RFNBWjKB3AiBrNF4hpS60vNLTHbLl/NHkGIgRXy3l5CYYG2nx8rcQ7w=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjo7CaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLJQ//TVUhOy9S6hIU1ge86yRvFGgqLx6V/no1sfsjfWahmG775u8V\r\nreZ8sjbFjSlSnk4uqZMTzJkBb/qz3VsSohMMbJjfXKwT6O83PNx7zAB4lt7H\r\nVb2h1L3bsDv9TK8/J7yYbuR3lWy33HKK7ZLzbRE3V0rxxjqI6o01SDEQXCBL\r\nwrXAQ2fKPG5jfEtpYhK2uNdwQqP16B5ifourIoyp8UjI4iF0brdfY7sy7vWx\r\nzj+S4ySZmiJiU0jdBORewSBEv709w7m2oqZzs0gPpCDvSvQt9Wml8oeXq4Xl\r\nrVYaS0VbTDe+KDrqZL5YopxZ4WmnJbNpixTLe+KNMh5Vmx65eMdWDdfGrjNG\r\nnhGGDkYm1Y353EQVeEIoGC5YGz7FMq7LXD6pysaGVPmGyzFiK5+t9O8/kvXH\r\nQPV56CoMzIvkpJ6ivtb+LggBqbJ9bqajJt2/v14mtT0hwrFO/3nah71Ky2+v\r\ntxqO3+f3i5Ov1Xrpg5PpIpNtX4hl0NpHVsmdtF1okUfAQFPuLSsgr6fY0B4L\r\nrfuKJfh+udmnUeBvFNGBNRPxB6DIOu7J5v3oBMEYBxglfAFmU2UQa2nr2mV9\r\n6doPpG0tpo4gRv/OGw4mvkS6NJBzMUSH5i+yHVmPM0fEv7BG63oXwQbtct1o\r\nNkhR1oRxOdZ6Dfy0fLlhay9UZGmjoeG6WNM=\r\n=r5NZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"as-pando","email":"cole@axel.dev"},"directories":{},"maintainers":[{"name":"rhiz0","email":"marcus@axel.dev"},{"name":"as-pando","email":"cole@axel.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fddtsc_0.0.0_1671671962402_0.20337046748299303"},"_hasShrinkwrap":false},"0.1.0":{"name":"@axel-hq/fddtsc","version":"0.1.0","license":"Unlicense","author":{"name":"A. S. Pando","url":"https://github.com/AS-Pando"},"type":"module","bin":{"fddtsc":"fddtsc.js"},"dependencies":{"typescript":"^4.9.4"},"devDependencies":{"@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.30.5","@typescript-eslint/parser":"^5.30.5","eslint":"^8.22.0"},"engines":{"node":">=16"},"gitHead":"3bcb44a0fb06b7a7189d3174af442daaf989acb7","description":"*FounDatsion Declaration TypeScript Compiler*","_id":"@axel-hq/fddtsc@0.1.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-aPrmOldbE72+DCyVTf2dxXgN/ac3LUJ4SM0J9fmBk2uyj5c7gbaX5P3U5Arp4wus6/VGaQhzGVypMLVI57Joqg==","shasum":"c23d17d1966af457b96e3bca8ff29de767185f0e","tarball":"https://registry.npmjs.org/@axel-hq/fddtsc/-/fddtsc-0.1.0.tgz","fileCount":4,"unpackedSize":9812,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvb7F4qFoX+OheWAIvUY77Mx2eGZxneP1TE0hG/w1kYQIhAPdAaLZmz026SPAfPIOtKuIbfSlLLSnwHTagUooZtupb"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpNp6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreAA/+PTd0Fu3Dzem5lUhDY7ezUsyUzYz1vZvnT5EuSrc/BeuqZMmf\r\n5ZwxFKeEkb/DOtifpl7tNlD82BQ60CnGIbZMBOJAGMp7cCvU3pUgHCvO70PW\r\nMiJ2dekChi7ls+3QhRiSLWdY0rIUeXn53wjdDYNswdMZzroNoLSfG2C9Dfxf\r\ngtwgS9s6OUZLjUY1Rmzeh2cnjSjqkfx/+92eiHz6T6O0+k4OuZ/OX7AdYXvv\r\n4iOigP0+Bd3EAPMaxdQ0GllObvxlz9NLd5Cp/rCcYhdruWu3H+C5JgXsdzle\r\nNTI8ZxBL09wwQmuPAJZPLEUwWtzwbdTnwnctKyP+BndANmntSKBk84wHemqh\r\nA3bzMSsRaLz4Esx9DjwiyuHmnMa0T3Kmjwf7cxzrlnjEehELW3iGbaDn39sN\r\nqWW9w1adZmbNmlNVArGYtC1D5qpfJMHaLv2VgM2TgP3p4RuCnJ1Q0YVPsVGB\r\njdSbYBY8SZ2OkGM+SYVRwS94/2s6OJFW+G8vwQLxp7BVBs7KOVFYcYXZYWGW\r\nHaievnT2DWHo81AxoL7CEqPsDMgQgK3w7IP+EeVwripFgfYJ43neUrNvzLqg\r\na/fV8xxzmhSzLIHq/M0tzjr0/C7Tu0p5RFDapdBi9Rql/y5fmdbhg94Fqr5Y\r\nZhPP3xwP/mEQrfdedl43af93iP/MytiPRpI=\r\n=dO4D\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"as-pando","email":"cole@axel.dev"},"directories":{},"maintainers":[{"name":"rhiz0","email":"marcus@axel.dev"},{"name":"as-pando","email":"cole@axel.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fddtsc_0.1.0_1671748218085_0.944816738150549"},"_hasShrinkwrap":false},"0.1.1":{"name":"@axel-hq/fddtsc","version":"0.1.1","license":"Unlicense","author":{"name":"A. S. Pando","url":"https://github.com/AS-Pando"},"contributors":[],"type":"module","bin":{"fddtsc":"fddtsc.js"},"dependencies":{"typescript":"^4.9.4"},"devDependencies":{"@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.30.5","@typescript-eslint/parser":"^5.30.5","eslint":"^8.22.0"},"engines":{"node":">=16"},"gitHead":"a53277e88700401c424e32a5177fd5abab095124","description":"*FounDatsion Declaration TypeScript Compiler*","_id":"@axel-hq/fddtsc@0.1.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-O/WTXjyoKNNixqut16nlwc101s8kJcG3tqoT137iEbRHxXXMTCRdUfzdlvm7+kOja61amhcoGGTI8JWarkry9A==","shasum":"92e3b1ba3d13ff2758901364589ec439138f17ff","tarball":"https://registry.npmjs.org/@axel-hq/fddtsc/-/fddtsc-0.1.1.tgz","fileCount":4,"unpackedSize":10134,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6wFHdapRafJG4nBjXGE/9bKxupwoZPVZtYX+aSJ/HjgIgOj6yD0wfa6nFXhByaYJGGhU8Pi2oqKZHDEuG121KFsI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpcBzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdxRAAib8+a3ZqSZWXFzQIsOMpfw1XYMYtvgaWwZYf4L5N70thg+ww\r\neDgn3mjv5rlE5W2AyBjOjwzFnE6TZq9BlBLDimovQanV9LL+xN5wpRSSNACs\r\ntuIoZ3/soDzeYOUxMNGR5NUFogfQ1FG8F9Hz3CyewK6+Bibh8IenZJZ7xBsU\r\nDBsb+dV9X5TMC2Xn5HztAE1sw7D90Odd3TcKKRbtOTrwmIyEXlvjSWfbaNfA\r\npXAl62HnJBj1JI/zf252mTzybZEeaDg50ZvPQgjTEbgd6kZUjJYc1q6kdk+i\r\nkBbkHbYen++IjM24Rom0oibdF0jZ2YhhS29lAEKuMuMoxvJCKjpzcj6GBdKQ\r\nbCu+vOz4uAmwIPAc6GLtHJqibDg/10dsnR833h9vpmCNd4Etvj9HMX41W5mn\r\nS2x/skWM2CS74os5g9N/WX8dUMTefWfUmjW7RCaQ/1y0dw0TpEbOodgaYqsq\r\nv6sv9/TOuMMzZumoOnS0FybXRiOzCZwETarBTJb3QU3qqEVAVxOQ6BKycDAg\r\nobBNQ2J3gSb+ESPCeSlBt9L+E0gID5oSkbrE66MyjtG340VL/EXvJfylaEPt\r\nue8vn+7nXBtUG5DHJmt17CWDyYt8fCjmodmNsT+sWGz3xYfjUJDu1dDsh9Yh\r\nKKpRvez4y7f5Imc469LcgG2sSqLzltzzKqM=\r\n=7TNa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"as-pando","email":"cole@axel.dev"},"directories":{},"maintainers":[{"name":"rhiz0","email":"marcus@axel.dev"},{"name":"as-pando","email":"cole@axel.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fddtsc_0.1.1_1671807091380_0.08254624595056614"},"_hasShrinkwrap":false},"0.2.0":{"name":"@axel-hq/fddtsc","version":"0.2.0","license":"Unlicense","author":{"name":"A. S. Pando","url":"https://github.com/AS-Pando"},"contributors":[],"type":"module","bin":{"fddtsc":"fddtsc.js"},"dependencies":{"typescript":"^4.9.4"},"devDependencies":{"@types/node":"^18.11.17","@typescript-eslint/eslint-plugin":"^5.30.5","@typescript-eslint/parser":"^5.30.5","esbuild":"0.16.12","eslint":"^8.22.0"},"engines":{"node":">=16"},"gitHead":"d9a80dc98a99d3370777ec57c521b160da9ee74a","description":"<i><u>f</u>oun<u>d</u>atsion <u>d</u>eclaration <u>t</u>ype<u>s</u>cript file <u>c</u>ompiler</i>","_id":"@axel-hq/fddtsc@0.2.0","_nodeVersion":"18.12.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-sDs3EnxS2cF3ygIPHNCjGu8Qj4cbsraU46HR72KqLYC+H7vevA2XsjckvfPqssSscngYVcgloYXtxPHSR9c9dQ==","shasum":"0693333a12bfcb129a1fca562a819d977b0e1d61","tarball":"https://registry.npmjs.org/@axel-hq/fddtsc/-/fddtsc-0.2.0.tgz","fileCount":4,"unpackedSize":8719,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ4wa2nI8s4AIsLnHx3nK9hpSdJpla8+7yNDS/btqxMQIgM48ECLJHIGyl/KsFhZmRlpbJ0XlGnQihPaZQCqR4OL8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrjEIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmox3Q/8CCyxEwsRxDSYB+mYFQX4XKJAAk+uZ+12RpzzmxWfkzNq18Mx\r\nnLYbcI2WZDdWbKnKRsnqUlC/3h39FGp2jsyp3GrJKd4wFfxVxcHG4m24RzhR\r\nqNcyvYvIXoqldF6bo5fc8mal8bF9xM2Uctr72I2EX8OZ3DRIP7vxJNyBGJ+B\r\nG2FkbC6bxSmFP87iUW+XN67mSVWF0NZT9nelJZHD7pETTuiNfDI2wXXflFw8\r\nW+ECnXs3iWRHg61VjgQEssCqYAYHuTQxt5m733OKzKTWAkQXOeBl/XySLipq\r\nwqClH4zmrwHVkV1x+yqMTHU5nLXZrk6iIfO8d7YLcDvAOzDNw+8iVdZPlBRS\r\nF/kIzS0WghOaHnkc+DAjYErmtCaCpjR1J2LQHzljJ1NmvXRebKA7hWT7XjYz\r\ncQj0BdRJymYy718inp1qSUsuPdCJwXt0bh3ZhRZHj+d6SOIhn6/XIbE3ANna\r\nQVlvpmLWrffPHYqdEvfwjBYCQbBPIyyRZfgYSkLlDdXzRnxlZiPkvCGMzJqU\r\nthJGhJQwnn3qXh9qklGwcUOBf2s8pMKTm5f/dp2OHw+eUh5zhmjB69myz4Jf\r\nsJ2NNEj+nJlwdu7mo1x9LRfBnj/rHLtwtMYx4aioD3YuSX4FZ9u+F6DcReYZ\r\ntQkZVaPly2rxJqUylI+HW5CdtaU7SBoze3o=\r\n=0EeY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"as-pando","email":"cole@axel.dev"},"directories":{},"maintainers":[{"name":"rhiz0","email":"marcus@axel.dev"},{"name":"as-pando","email":"cole@axel.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fddtsc_0.2.0_1672360200221_0.3202532622912404"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-22T01:19:22.337Z","0.0.0":"2022-12-22T01:19:22.603Z","modified":"2023-01-11T18:37:27.896Z","0.1.0":"2022-12-22T22:30:18.284Z","0.1.1":"2022-12-23T14:51:31.623Z","0.2.0":"2022-12-30T00:30:00.370Z"},"maintainers":[{"email":"jay@axel.dev","name":"jayzxel"},{"email":"marcus@axel.dev","name":"rhiz0"}],"description":"<i><u>f</u>oun<u>d</u>atsion <u>d</u>eclaration <u>t</u>ype<u>s</u>cript file <u>c</u>ompiler</i>","author":{"name":"A. S. Pando","url":"https://github.com/AS-Pando"},"license":"Unlicense","readme":"# fddtsc\n\n<i><u>f</u>oun<u>d</u>atsion <u>d</u>eclaration <u>t</u>ype<u>s</u>cript file <u>c</u>ompiler</i>\n\n## usage\n\n<pre><code style=\"color: khaki\">@axel-hq</code><code>/</code><code style=\"color: violet\">fddtsc</code><code>: foundatsion's d.ts generator\n\n<code style=\"color: violet\">fddtsc</code> [</code><code style=\"color: skyblue\">flag</code><code> [</code><code style=\"color: turquoise\">arg</code><code>], ...]\n\n</code><code style=\"color: skyblue\">-help, -h</code><code>\n   Print this message.\n\n</code><code style=\"color: skyblue\">--project, -p</code><code> (</code><code style=\"color: turquoise\">path</code><code>)\n   Use a different tsconfig.json file.\n   Either a directory containing tsconfig.json or a file.\n\n</code><code style=\"color: skyblue\">--outDir</code><code> (</code><code style=\"color: turquoise\">path</code><code>)\n   Specify an output folder for all emitted files.\n   Note that declarationDir overrides this.\n\n</code><code style=\"color: skyblue\">--declarationDir</code><code> (</code><code style=\"color: turquoise\">path</code><code>)\n   Specify the output directory for generated declaration files.\n</code></pre>\n\n## ffaq (fake frequently asked questions)\n\n<details open>\n   <summary>Who is this for?</summary>\n   Anyone that uses\n   <a href=\"https://www.npmjs.com/package/@axel-hq/foundatsion\">@axel-hq/foundatsion</a>\n   who plans to publish a library that would expose newtypes through d.ts files.\n</details>\n\n<details open>\n   <summary>What does it do?</summary>\n   Imagine you wanted to expose a method like <code>add1(a: F.uint): F.uint)`</code>.\n   Without some special compiler magic, you'd have to create a wrapped <code>add1</code>\n   which took numbers instead of foundatsion types; foundatsion types are hard\n   to consume and create for non-foundatsion users.\n\n   This, here, is the compiler magic that makes newtypes disappear within d.ts\n   files.\n</details>\n\n## transform calls //!\n\nLeading comments (comments directly above a type) trigger type transforms.\n\n- `foundatsion::newtype`: every reference to this type is replaced with `unknown`.\n- `foundatsion::unwrap`: every reference to this type is replaced with it's first type argument.\n- `foundatsion::bake`: this type's simplification is baked into the output.\n\n```ts\n// @file example.ts\n\n//! foundatsion::unwrap\ntype bar<baz> = never;\ntype reverse_string<s extends string> =\n   s extends `${infer head}${infer tail}`\n      ? `${reverse_string<tail>}${head}`\n      : \"\";\n\nexport type so = bar<\"shouldn't this be never?\">;\n//! foundatsion::bake\nexport type baked = reverse_string<\"Hello, World!\">;\n```\n\n```ts\n// @file example.d.ts\nexport type so = \"shouldn't this be never?\";\nexport type baked = \"!dlroW ,olleH\";\n```\n\n<sub>for <a href=\"https://github.com/axel-hq/fddtsc/blob/3bcb44a0fb06b7a7189d3174af442daaf989acb7/fddtsc.ts#L156\">Reasons We Do Not Fully Understand</a>, neither newtype nor unwrap work all\nthe time<sub>\n\n## for developers\n\n1. `make install`\n2. `make build`\n3. `make install` (again to install what you just built into the test)\n4. `make test`\n","readmeFilename":"README.md","contributors":[]}