@atomic-ehr/codegen 0.0.1-canary.20251001124254.ddbda7d → 0.0.1-canary.20251002074252.e71a294
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +34 -34
- package/dist/typeschema/core/binding.d.ts +7 -7
- package/dist/typeschema/core/binding.js +10 -14
- package/dist/typeschema/core/field-builder.d.ts +5 -8
- package/dist/typeschema/core/field-builder.js +42 -56
- package/dist/typeschema/core/identifier.d.ts +3 -3
- package/dist/typeschema/core/nested-types.d.ts +1 -1
- package/dist/typeschema/core/nested-types.js +4 -6
- package/dist/typeschema/core/transformer.js +18 -10
- package/dist/typeschema/register.d.ts +2 -0
- package/dist/typeschema/register.js +9 -0
- package/dist/typeschema/types.d.ts +3 -3
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as T6}from"node:module";var N6=Object.create;var{getPrototypeOf:I6,defineProperty:q0,getOwnPropertyNames:e2,getOwnPropertyDescriptor:w6}=Object,D1=Object.prototype.hasOwnProperty;var x0=(D,F,u)=>{u=D!=null?N6(I6(D)):{};let E=F||!D||!D.__esModule?q0(u,"default",{value:D,enumerable:!0}):u;for(let B of e2(D))if(!D1.call(E,B))q0(E,B,{get:()=>D[B],enumerable:!0});return E},a2=new WeakMap,VF=(D)=>{var F=a2.get(D),u;if(F)return F;if(F=q0({},"__esModule",{value:!0}),D&&typeof D==="object"||typeof D==="function")e2(D).map((E)=>!D1.call(F,E)&&q0(F,E,{get:()=>D[E],enumerable:!(u=w6(D,E))||u.enumerable}));return a2.set(D,F),F},RF=(D,F)=>()=>(F||D((F={exports:{}}).exports,F),F.exports);var UF=(D,F)=>{for(var u in F)q0(D,u,{get:F[u],enumerable:!0,configurable:!0,set:(E)=>F[u]=()=>E})};var F1=(D,F)=>()=>(D&&(F=D(D=0)),F);var jF=T6(import.meta.url);var z1=RF((zE,Q1)=>{Q1.exports=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g}});var f1=RF((aE,v1)=>{v1.exports=function(F){if(F===void 0)F=2;if(F>=Error.stackTraceLimit)throw TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+F+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var u=Error.prepareStackTrace;Error.prepareStackTrace=function(B,C){return C};var E=Error().stack;if(Error.prepareStackTrace=u,E!==null&&typeof E==="object")return E[F]?E[F].getFileName():void 0}});var u2=RF((_C,F2)=>{var t0=process||{},j3=t0.argv||[],i0=t0.env||{},h8=!(!!i0.NO_COLOR||j3.includes("--no-color"))&&(!!i0.FORCE_COLOR||j3.includes("--color")||t0.platform==="win32"||(t0.stdout||{}).isTTY&&i0.TERM!=="dumb"||!!i0.CI),d8=(D,F,u=D)=>(E)=>{let B=""+E,C=B.indexOf(F,D.length);return~C?D+p8(B,F,u,C)+F:D+B+F},p8=(D,F,u,E)=>{let B="",C=0;do B+=D.substring(C,E)+u,C=E+F.length,E=D.indexOf(F,C);while(~E);return B+D.substring(C)},L3=(D=h8)=>{let F=D?d8:()=>String;return{isColorSupported:D,reset:F("\x1B[0m","\x1B[0m"),bold:F("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:F("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:F("\x1B[3m","\x1B[23m"),underline:F("\x1B[4m","\x1B[24m"),inverse:F("\x1B[7m","\x1B[27m"),hidden:F("\x1B[8m","\x1B[28m"),strikethrough:F("\x1B[9m","\x1B[29m"),black:F("\x1B[30m","\x1B[39m"),red:F("\x1B[31m","\x1B[39m"),green:F("\x1B[32m","\x1B[39m"),yellow:F("\x1B[33m","\x1B[39m"),blue:F("\x1B[34m","\x1B[39m"),magenta:F("\x1B[35m","\x1B[39m"),cyan:F("\x1B[36m","\x1B[39m"),white:F("\x1B[37m","\x1B[39m"),gray:F("\x1B[90m","\x1B[39m"),bgBlack:F("\x1B[40m","\x1B[49m"),bgRed:F("\x1B[41m","\x1B[49m"),bgGreen:F("\x1B[42m","\x1B[49m"),bgYellow:F("\x1B[43m","\x1B[49m"),bgBlue:F("\x1B[44m","\x1B[49m"),bgMagenta:F("\x1B[45m","\x1B[49m"),bgCyan:F("\x1B[46m","\x1B[49m"),bgWhite:F("\x1B[47m","\x1B[49m"),blackBright:F("\x1B[90m","\x1B[39m"),redBright:F("\x1B[91m","\x1B[39m"),greenBright:F("\x1B[92m","\x1B[39m"),yellowBright:F("\x1B[93m","\x1B[39m"),blueBright:F("\x1B[94m","\x1B[39m"),magentaBright:F("\x1B[95m","\x1B[39m"),cyanBright:F("\x1B[96m","\x1B[39m"),whiteBright:F("\x1B[97m","\x1B[39m"),bgBlackBright:F("\x1B[100m","\x1B[49m"),bgRedBright:F("\x1B[101m","\x1B[49m"),bgGreenBright:F("\x1B[102m","\x1B[49m"),bgYellowBright:F("\x1B[103m","\x1B[49m"),bgBlueBright:F("\x1B[104m","\x1B[49m"),bgMagentaBright:F("\x1B[105m","\x1B[49m"),bgCyanBright:F("\x1B[106m","\x1B[49m"),bgWhiteBright:F("\x1B[107m","\x1B[49m")}};F2.exports=L3();F2.exports.createColors=L3});var LD,k2,GF,X0,y2,h2;var b0=F1(()=>{LD=class LD extends Error{phase;context;timestamp;errorId;constructor(D,F,u){super(D);this.phase=F;this.context=u;if(this.name=this.constructor.name,this.timestamp=new Date,this.errorId=this.generateErrorId(),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}generateErrorId(){return`${this.constructor.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}getDetailedMessage(){let D=[`❌ ${this.constructor.name}: ${this.message}`,` Error ID: ${this.errorId}`,` Phase: ${this.phase}`,` Time: ${this.timestamp.toISOString()}`];if(this.context&&Object.keys(this.context).length>0)D.push(""),D.push("\uD83D\uDCCD Context:"),Object.entries(this.context).forEach(([F,u])=>{D.push(` ${F}: ${this.formatContextValue(u)}`)});return D.join(`
|
|
3
|
-
`)}formatContextValue(D){if(D===null||D===void 0)return String(D);if(typeof D==="string")return`"${D}"`;if(typeof D==="object")try{return JSON.stringify(D,null,2)}catch{return"[Object]"}return String(D)}getSeverity(){return"error"}isRecoverable(){return!1}getDocumentationLinks(){return["https://github.com/atomic-ehr/codegen/docs/troubleshooting.md",`https://github.com/atomic-ehr/codegen/docs/errors/${this.constructor.name}.md`]}};
|
|
4
|
-
`)[this.debugInfo.lineNumber-1];if(u)D.push(` Code: ${u.trim()}`)}}return D.push("\uD83D\uDD27 Template debugging steps:"),D.push(" • Enable template debugging: { debug: true }"),D.push(" • Verify template file exists and has correct syntax"),D.push(" • Check template variable names match context keys"),D.push(" • Ensure template engine is properly configured"),D}findSimilarTemplates(D,F){return F.filter((u)=>{let E=this.levenshteinDistance(D.toLowerCase(),u.toLowerCase());return E<=2&&E>0}).slice(0,3).sort((u,E)=>this.levenshteinDistance(D.toLowerCase(),u.toLowerCase())-this.levenshteinDistance(D.toLowerCase(),E.toLowerCase()))}levenshteinDistance(D,F){let u=Array(F.length+1).fill(null).map(()=>Array(D.length+1).fill(0));for(let E=0;E<=D.length;E++)u[0][E]=E;for(let E=0;E<=F.length;E++)u[E][0]=E;for(let E=1;E<=F.length;E++)for(let B=1;B<=D.length;B++){let C=D[B-1]===F[E-1]?0:1;u[E][B]=Math.min(u[E]?.[B-1]+1,u[E-1]?.[B]+1,u[E-1]?.[B-1]+C)}return u[F.length]?.[D.length]}isRecoverable(){return!0}};X0=class X0 extends
|
|
2
|
+
import{createRequire as T6}from"node:module";var L6=Object.create;var{getPrototypeOf:I6,defineProperty:q0,getOwnPropertyNames:F1,getOwnPropertyDescriptor:w6}=Object,u1=Object.prototype.hasOwnProperty;var x0=(D,F,u)=>{u=D!=null?L6(I6(D)):{};let E=F||!D||!D.__esModule?q0(u,"default",{value:D,enumerable:!0}):u;for(let B of F1(D))if(!u1.call(E,B))q0(E,B,{get:()=>D[B],enumerable:!0});return E},D1=new WeakMap,KF=(D)=>{var F=D1.get(D),u;if(F)return F;if(F=q0({},"__esModule",{value:!0}),D&&typeof D==="object"||typeof D==="function")F1(D).map((E)=>!u1.call(F,E)&&q0(F,E,{get:()=>D[E],enumerable:!(u=w6(D,E))||u.enumerable}));return D1.set(D,F),F},RF=(D,F)=>()=>(F||D((F={exports:{}}).exports,F),F.exports);var UF=(D,F)=>{for(var u in F)q0(D,u,{get:F[u],enumerable:!0,configurable:!0,set:(E)=>F[u]=()=>E})};var E1=(D,F)=>()=>(D&&(F=D(D=0)),F);var jF=T6(import.meta.url);var O1=RF((zE,Y1)=>{Y1.exports=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g}});var y1=RF((aE,k1)=>{k1.exports=function(F){if(F===void 0)F=2;if(F>=Error.stackTraceLimit)throw TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+F+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var u=Error.prepareStackTrace;Error.prepareStackTrace=function(B,C){return C};var E=Error().stack;if(Error.prepareStackTrace=u,E!==null&&typeof E==="object")return E[F]?E[F].getFileName():void 0}});var u2=RF((_C,F2)=>{var t0=process||{},L3=t0.argv||[],i0=t0.env||{},h8=!(!!i0.NO_COLOR||L3.includes("--no-color"))&&(!!i0.FORCE_COLOR||L3.includes("--color")||t0.platform==="win32"||(t0.stdout||{}).isTTY&&i0.TERM!=="dumb"||!!i0.CI),d8=(D,F,u=D)=>(E)=>{let B=""+E,C=B.indexOf(F,D.length);return~C?D+p8(B,F,u,C)+F:D+B+F},p8=(D,F,u,E)=>{let B="",C=0;do B+=D.substring(C,E)+u,C=E+F.length,E=D.indexOf(F,C);while(~E);return B+D.substring(C)},I3=(D=h8)=>{let F=D?d8:()=>String;return{isColorSupported:D,reset:F("\x1B[0m","\x1B[0m"),bold:F("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:F("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:F("\x1B[3m","\x1B[23m"),underline:F("\x1B[4m","\x1B[24m"),inverse:F("\x1B[7m","\x1B[27m"),hidden:F("\x1B[8m","\x1B[28m"),strikethrough:F("\x1B[9m","\x1B[29m"),black:F("\x1B[30m","\x1B[39m"),red:F("\x1B[31m","\x1B[39m"),green:F("\x1B[32m","\x1B[39m"),yellow:F("\x1B[33m","\x1B[39m"),blue:F("\x1B[34m","\x1B[39m"),magenta:F("\x1B[35m","\x1B[39m"),cyan:F("\x1B[36m","\x1B[39m"),white:F("\x1B[37m","\x1B[39m"),gray:F("\x1B[90m","\x1B[39m"),bgBlack:F("\x1B[40m","\x1B[49m"),bgRed:F("\x1B[41m","\x1B[49m"),bgGreen:F("\x1B[42m","\x1B[49m"),bgYellow:F("\x1B[43m","\x1B[49m"),bgBlue:F("\x1B[44m","\x1B[49m"),bgMagenta:F("\x1B[45m","\x1B[49m"),bgCyan:F("\x1B[46m","\x1B[49m"),bgWhite:F("\x1B[47m","\x1B[49m"),blackBright:F("\x1B[90m","\x1B[39m"),redBright:F("\x1B[91m","\x1B[39m"),greenBright:F("\x1B[92m","\x1B[39m"),yellowBright:F("\x1B[93m","\x1B[39m"),blueBright:F("\x1B[94m","\x1B[39m"),magentaBright:F("\x1B[95m","\x1B[39m"),cyanBright:F("\x1B[96m","\x1B[39m"),whiteBright:F("\x1B[97m","\x1B[39m"),bgBlackBright:F("\x1B[100m","\x1B[49m"),bgRedBright:F("\x1B[101m","\x1B[49m"),bgGreenBright:F("\x1B[102m","\x1B[49m"),bgYellowBright:F("\x1B[103m","\x1B[49m"),bgBlueBright:F("\x1B[104m","\x1B[49m"),bgMagentaBright:F("\x1B[105m","\x1B[49m"),bgCyanBright:F("\x1B[106m","\x1B[49m"),bgWhiteBright:F("\x1B[107m","\x1B[49m")}};F2.exports=I3();F2.exports.createColors=I3});var ND,h2,GF,X0,d2,p2;var b0=E1(()=>{ND=class ND extends Error{phase;context;timestamp;errorId;constructor(D,F,u){super(D);this.phase=F;this.context=u;if(this.name=this.constructor.name,this.timestamp=new Date,this.errorId=this.generateErrorId(),Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}generateErrorId(){return`${this.constructor.name}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}getDetailedMessage(){let D=[`❌ ${this.constructor.name}: ${this.message}`,` Error ID: ${this.errorId}`,` Phase: ${this.phase}`,` Time: ${this.timestamp.toISOString()}`];if(this.context&&Object.keys(this.context).length>0)D.push(""),D.push("\uD83D\uDCCD Context:"),Object.entries(this.context).forEach(([F,u])=>{D.push(` ${F}: ${this.formatContextValue(u)}`)});return D.join(`
|
|
3
|
+
`)}formatContextValue(D){if(D===null||D===void 0)return String(D);if(typeof D==="string")return`"${D}"`;if(typeof D==="object")try{return JSON.stringify(D,null,2)}catch{return"[Object]"}return String(D)}getSeverity(){return"error"}isRecoverable(){return!1}getDocumentationLinks(){return["https://github.com/atomic-ehr/codegen/docs/troubleshooting.md",`https://github.com/atomic-ehr/codegen/docs/errors/${this.constructor.name}.md`]}};h2=class h2 extends ND{schema;validationErrors;userContext;constructor(D,F,u,E){super(D,"validation",{schemaName:F.identifier?.name||"unknown",schemaKind:F.identifier?.kind||"unknown",schemaPackage:F.identifier?.package||"unknown",validationErrors:u,userContext:E});this.schema=F;this.validationErrors=u;this.userContext=E}getSuggestions(){let D=[];D.push("Verify the schema follows the TypeSchema specification"),D.push("Check that all required fields are present and properly typed");for(let F of this.validationErrors){if(F.includes("identifier.name"))D.push("✨ Add a valid identifier.name field to your schema"),D.push('\uD83D\uDCA1 Example: identifier: { name: "Patient", kind: "resource" }');if(F.includes("identifier.kind"))D.push('\uD83C\uDFAF Set identifier.kind to: "resource", "complex-type", "profile", or "primitive-type"'),D.push("\uD83D\uDCDA Check FHIR specification for the correct kind value");if(F.includes("circular"))D.push("\uD83D\uDD04 Remove circular references between schemas"),D.push("\uD83D\uDCA1 Use forward declarations for recursive types"),D.push("\uD83D\uDD0D Look for schemas that reference each other in a loop");if(F.includes("fields"))D.push("\uD83D\uDCDD Check that all fields have proper type definitions"),D.push("\uD83D\uDD27 Ensure field types reference valid TypeSchema identifiers")}if(this.userContext?.isBeginnerMode){if(D.push(""),D.push("\uD83C\uDF93 Beginner Tips:"),D.push("\uD83D\uDCD6 Start with the Quick Start guide: docs/getting-started/quick-start.md"),D.push("\uD83D\uDD0D Use --verbose flag for detailed error information"),D.push("\uD83E\uDDEA Test with a simple schema first to verify your setup"),this.userContext.previousSuccessfulSchemas?.length)D.push(`✅ Compare with your working schema: ${this.userContext.previousSuccessfulSchemas[0]}`)}if(!this.userContext?.isBeginnerMode)D.push(""),D.push("\uD83D\uDD27 Advanced Debugging:"),D.push("\uD83D\uDD75️ Enable schema validation debugging"),D.push("\uD83D\uDCCA Check schema statistics and complexity metrics"),D.push("⚡ Consider schema preprocessing if dealing with complex inheritance");return D}isRecoverable(){return this.validationErrors.every((D)=>!D.includes("circular")&&!D.includes("corruption"))}};GF=class GF extends ND{templateName;templateContext;debugInfo;constructor(D,F,u,E){super(D,"generation",{templateName:F,contextKeys:Object.keys(u),availableTemplates:E?.availableTemplates?.length||0,debugInfo:E});this.templateName=F;this.templateContext=u;this.debugInfo=E}getSuggestions(){let D=[];if(this.debugInfo?.availableTemplates?.length){if(!this.debugInfo.availableTemplates.includes(this.templateName)){D.push(`❌ Template '${this.templateName}' not found`),D.push("\uD83D\uDCC2 Available templates:"),this.debugInfo.availableTemplates.forEach((u)=>{D.push(` • ${u}`)});let F=this.findSimilarTemplates(this.templateName,this.debugInfo.availableTemplates);if(F.length>0)D.push("\uD83E\uDD14 Did you mean:"),F.forEach((u)=>{D.push(` • ${u}`)})}}if(this.debugInfo?.missingVariables?.length){D.push("\uD83D\uDCDD Missing template variables:"),this.debugInfo.missingVariables.forEach((u)=>{D.push(` • ${u}`)}),D.push("\uD83D\uDCA1 Add these variables to your template context");let F=Object.keys(this.templateContext);this.debugInfo.missingVariables.forEach((u)=>{let E=F.filter((B)=>this.levenshteinDistance(u.toLowerCase(),B.toLowerCase())<=2);if(E.length>0)D.push(` Similar to: ${E.join(", ")}`)})}if(this.debugInfo?.lineNumber){if(D.push(`\uD83D\uDC1B Check template syntax around line ${this.debugInfo.lineNumber}`),this.debugInfo.columnNumber)D.push(` Column: ${this.debugInfo.columnNumber}`);if(this.debugInfo.templateSource){let u=this.debugInfo.templateSource.split(`
|
|
4
|
+
`)[this.debugInfo.lineNumber-1];if(u)D.push(` Code: ${u.trim()}`)}}return D.push("\uD83D\uDD27 Template debugging steps:"),D.push(" • Enable template debugging: { debug: true }"),D.push(" • Verify template file exists and has correct syntax"),D.push(" • Check template variable names match context keys"),D.push(" • Ensure template engine is properly configured"),D}findSimilarTemplates(D,F){return F.filter((u)=>{let E=this.levenshteinDistance(D.toLowerCase(),u.toLowerCase());return E<=2&&E>0}).slice(0,3).sort((u,E)=>this.levenshteinDistance(D.toLowerCase(),u.toLowerCase())-this.levenshteinDistance(D.toLowerCase(),E.toLowerCase()))}levenshteinDistance(D,F){let u=Array(F.length+1).fill(null).map(()=>Array(D.length+1).fill(0));for(let E=0;E<=D.length;E++)u[0][E]=E;for(let E=0;E<=F.length;E++)u[E][0]=E;for(let E=1;E<=F.length;E++)for(let B=1;B<=D.length;B++){let C=D[B-1]===F[E-1]?0:1;u[E][B]=Math.min(u[E]?.[B-1]+1,u[E-1]?.[B]+1,u[E-1]?.[B-1]+C)}return u[F.length]?.[D.length]}isRecoverable(){return!0}};X0=class X0 extends ND{operation;filePath;originalError;recoveryOptions;constructor(D,F,u,E,B){super(D,"writing",{operation:F,filePath:u,originalErrorMessage:E?.message,originalErrorCode:E?.code,recoveryOptions:B});this.operation=F;this.filePath=u;this.originalError=E;this.recoveryOptions=B}getSuggestions(){let D=[],F=this.originalError?.code;switch(this.operation){case"create":case"write":if(D.push("\uD83D\uDCC1 File writing troubleshooting:"),D.push(" • Check if the output directory exists"),D.push(" • Verify write permissions for the target directory"),D.push(" • Ensure no other process has the file locked"),this.filePath.includes(" "))D.push(" • File path contains spaces - check path escaping");if(this.recoveryOptions?.alternativePaths?.length)D.push("\uD83D\uDD04 Alternative output directories:"),this.recoveryOptions.alternativePaths.forEach((u)=>{D.push(` • ${u}`)});break;case"read":D.push("\uD83D\uDCD6 File reading troubleshooting:"),D.push(" • Verify the file exists at the specified path"),D.push(" • Check file read permissions"),D.push(" • Ensure file is not corrupted");break;case"delete":D.push("\uD83D\uDDD1️ File deletion troubleshooting:"),D.push(" • Check if file is locked by another process"),D.push(" • Verify delete permissions for the directory"),D.push(" • Ensure file exists before attempting deletion");break}switch(F){case"EACCES":if(D.push("\uD83D\uDD10 Permission Error:"),D.push(" • Current user lacks necessary file permissions"),this.recoveryOptions?.permissionFix)D.push(` • Fix command: ${this.recoveryOptions.permissionFix}`);else D.push(` • Try: chmod 755 "${this.filePath}"`);D.push(" • Consider running with elevated permissions"),D.push(" • Check directory ownership and permissions");break;case"ENOSPC":if(D.push("\uD83D\uDCBE Disk Space Error:"),D.push(" • Insufficient disk space available"),D.push(" • Free up disk space and retry"),D.push(" • Consider using a different output directory"),this.recoveryOptions?.diskSpaceRequired){let u=Math.ceil(this.recoveryOptions.diskSpaceRequired/1024/1024);D.push(` • Required space: ~${u}MB`)}break;case"ENOENT":D.push("\uD83D\uDCC2 File Not Found:"),D.push(" • File or directory does not exist"),D.push(" • Check the file path for typos"),D.push(" • Ensure parent directories exist"),D.push(` • Create directory: mkdir -p "$(dirname "${this.filePath}")"`);break;case"EMFILE":case"ENFILE":D.push("\uD83D\uDCCA Too Many Open Files:"),D.push(" • System has reached file handle limit"),D.push(" • Close unused files and retry"),D.push(" • Consider processing files in smaller batches");break}if(this.recoveryOptions?.canRetry)D.push(""),D.push("\uD83D\uDD04 Recovery Options:"),D.push(" • This operation can be retried safely"),D.push(" • Fix the underlying issue and run again");return D.push(""),D.push("\uD83D\uDD0D General Debugging:"),D.push(" • Check system logs for more details"),D.push(" • Verify disk health if errors persist"),D.push(" • Test with a simpler file path"),D}isRecoverable(){return this.recoveryOptions?.canRetry||!1}getRecoveryActions(){let D=[];switch(this.originalError?.code){case"EACCES":D.push({action:"Fix file permissions",command:`chmod 755 "${this.filePath}"`,automatic:!1,riskLevel:"medium"});break;case"ENOENT":D.push({action:"Create missing directory",command:`mkdir -p "$(dirname "${this.filePath}")"`,automatic:!0,riskLevel:"low"});break;case"ENOSPC":D.push({action:"Free up disk space",automatic:!1,riskLevel:"low"});break}return D}};d2=class d2 extends ND{configKey;providedValue;expectedValue;validOptions;constructor(D,F,u,E,B){super(D,"initialization",{configKey:F,providedValue:u,providedType:typeof u,expectedValue:E,validOptions:B});this.configKey=F;this.providedValue=u;this.expectedValue=E;this.validOptions=B}getSuggestions(){let D=[];if(D.push(`⚙️ Configuration error for '${this.configKey}'`),D.push(` Provided: ${JSON.stringify(this.providedValue)} (${typeof this.providedValue})`),this.expectedValue)D.push(` Expected: ${this.expectedValue}`);if(this.validOptions?.length)D.push(" Valid options:"),this.validOptions.forEach((F)=>{D.push(` • ${JSON.stringify(F)}`)});switch(D.push(""),D.push("\uD83D\uDD27 Configuration fixes:"),D.push(` • Check the '${this.configKey}' value in your configuration`),D.push(" • Refer to the configuration documentation"),D.push(" • Use TypeScript for better config validation"),D.push(" • Check for typos in configuration keys"),this.configKey){case"outputDir":D.push(" • Ensure the output directory path exists"),D.push(" • Use absolute paths for better reliability");break;case"logger":D.push(" • Provide a valid logger instance"),D.push(" • Use createLogger() from utils/codegen-logger");break;case"validation":D.push(' • Set to true, false, or "strict"');break}return D}isRecoverable(){return!0}};p2=class p2 extends ND{errors;constructor(D,F){super(D,"generation",{errorCount:F.length,errorTypes:[...new Set(F.map((u)=>u.constructor.name))],phases:[...new Set(F.map((u)=>u.phase))]});this.errors=F}getSuggestions(){let D=this.errors.flatMap((C)=>C.getSuggestions()),F=[...new Set(D)],u=[];u.push(`\uD83D\uDCCA Batch operation failed with ${this.errors.length} errors:`);let E=new Map;this.errors.forEach((C)=>{let $=C.constructor.name;if(!E.has($))E.set($,[]);E.get($)?.push(C)}),u.push(""),u.push("\uD83D\uDD0D Error breakdown:");for(let[C,$]of E)u.push(` • ${C}: ${$.length} occurrences`);u.push("\uD83D\uDCA1 Most relevant suggestions:");let B=F.slice(0,8).map((C)=>` ${C}`);return u.push(...B),u}getErrorBreakdown(){let D=[];return this.errors.forEach((F,u)=>{if(D.push(`${u+1}. ${F.constructor.name}: ${F.message}`),F.context?.schemaName)D.push(` Schema: ${F.context.schemaName}`);if(F.context?.filename)D.push(` File: ${F.context.filename}`);D.push("")}),D.join(`
|
|
5
5
|
`)}isRecoverable(){return this.errors.some((D)=>D.isRecoverable())}getRecoverableErrors(){return this.errors.filter((D)=>D.isRecoverable())}getNonRecoverableErrors(){return this.errors.filter((D)=>!D.isRecoverable())}}});var J6={};UF(J6,{FileBuilder:()=>O6});class O6{config;content="";imports=new Map;exports=new Set;metadata=new Map;beforeSaveHooks=[];afterSaveHooks=[];errorHooks=[];options={template:void 0,importStrategy:"auto",validation:"strict",prettify:!0,formatting:{indentSize:2,useTabs:!1,maxLineLength:100},encoding:"utf-8"};constructor(D){this.config=D}withContent(D){return this.content=typeof D==="string"?D:D(),this}withTemplate(D,F){if(!this.config.templateEngine)throw new GF(`Template engine is required for template rendering. Template: '${D}'`,D,F);this.options.template=D;try{this.content=this.config.templateEngine.render(D,{...F,imports:this.imports,exports:this.exports,filename:this.config.filename})}catch(u){throw new GF(`Failed to render template '${D}'`,D,F,{availableTemplates:this.config.templateEngine.getAvailableTemplates?.()||[]})}return this}appendContent(D){return this.content+=D,this}prependContent(D){return this.content=D+this.content,this}withImports(D){this.imports.clear();for(let[F,u]of D)this.imports.set(F,u);return this}addImport(D,F){return this.imports.set(D,F),this}addImports(D,F){for(let u of D)this.imports.set(u,F);return this}withExports(D){this.exports.clear();for(let F of D)this.exports.add(F);return this}addExport(D){return this.exports.add(D),this}addExports(D){for(let F of D)this.exports.add(F);return this}withMetadata(D,F){return this.metadata.set(D,F),this}withOptions(D){return this.options={...this.options,...D},this}onBeforeSave(D){return this.beforeSaveHooks.push(D),this}onAfterSave(D){return this.afterSaveHooks.push(D),this}onError(D){return this.errorHooks.push(D),this}build(){let D=this.buildFinalContent();return{filename:this.config.filename,content:D,imports:new Map(this.imports),exports:new Set(this.exports),metadata:Object.fromEntries(this.metadata),templateName:this.options.template}}async save(){let D=this.build();try{for(let E of this.beforeSaveHooks)await E(D);if(this.options.validation!=="none")await this.validateContent(D.content);let F=await this.config.fileManager.writeFile(this.config.filename,D.content,{encoding:this.options.encoding}),u={size:F.size,generationTime:0,writeTime:F.writeTime};for(let E of this.afterSaveHooks)await E(F.path,u);return this.config.logger.debug(`Saved ${this.config.filename} successfully`),F.path}catch(F){for(let u of this.errorHooks)try{await u(F instanceof Error?F:Error(String(F)),D)}catch(E){this.config.logger.warn(`Error hook failed: ${E instanceof Error?E.message:String(E)}`)}throw F}}buildFinalContent(){let D=[];if(this.imports.size>0&&this.options.importStrategy!=="none")D.push(this.generateImportStatements()),D.push("");if(this.content)D.push(this.content);if(this.exports.size>0&&!this.content.includes("export"))D.push(""),D.push(this.generateExportStatements());let F=D.join(`
|
|
6
6
|
`);if(this.options.prettify)F=this.prettifyContent(F);return F}generateImportStatements(){let D=[],F=new Map;for(let[u,E]of this.imports){let B=this.options.importStrategy==="auto"?this.config.fileManager.getRelativeImportPath(this.config.filename,E):E;if(!F.has(B))F.set(B,[]);F.get(B)?.push(u)}for(let[u,E]of F)if(E.length===1)D.push(`import type { ${E[0]} } from '${u}';`);else{let B=E.sort();if(B.length<=3)D.push(`import type { ${B.join(", ")} } from '${u}';`);else{D.push("import type {");let C="\t";B.forEach(($,X)=>{let Q=X===B.length-1;D.push(`${C}${$}${Q?"":","}`)}),D.push(`} from '${u}';`)}}return D.join(`
|
|
7
7
|
`)}generateExportStatements(){return Array.from(this.exports).sort().map((F)=>`export { ${F} };`).join(`
|
|
8
8
|
`)}prettifyContent(D){return D.replace(/\n{3,}/g,`
|
|
9
9
|
|
|
10
|
-
`).replace(/\t/g,this.options.formatting?.useTabs?"\t":" ".repeat(this.options.formatting?.indentSize||2)).trim()}async validateContent(D){if(this.options.validation==="none")return;let F=[],u=(D.match(/\{/g)||[]).length,E=(D.match(/\}/g)||[]).length;if(u!==E)F.push(`Unmatched braces: ${u} open, ${E} close`);let B=(D.match(/\(/g)||[]).length,C=(D.match(/\)/g)||[]).length;if(B!==C)F.push(`Unmatched parentheses: ${B} open, ${C} close`);if(this.config.filename.endsWith(".ts")||this.config.filename.endsWith(".tsx")){if(D.includes("interface")&&!D.match(/interface\s+\w+\s*\{/))F.push("Invalid interface syntax detected")}if(F.length>0&&this.options.validation==="strict")throw new X0(`Content validation failed for ${this.config.filename}: ${F.join(", ")}`,"write",this.config.filename);else if(F.length>0)this.config.logger.warn(`Validation issues in ${this.config.filename}: ${F.join(", ")}`)}getContent(){return this.content}getImports(){return new Map(this.imports)}getExports(){return new Set(this.exports)}}var W6=
|
|
10
|
+
`).replace(/\t/g,this.options.formatting?.useTabs?"\t":" ".repeat(this.options.formatting?.indentSize||2)).trim()}async validateContent(D){if(this.options.validation==="none")return;let F=[],u=(D.match(/\{/g)||[]).length,E=(D.match(/\}/g)||[]).length;if(u!==E)F.push(`Unmatched braces: ${u} open, ${E} close`);let B=(D.match(/\(/g)||[]).length,C=(D.match(/\)/g)||[]).length;if(B!==C)F.push(`Unmatched parentheses: ${B} open, ${C} close`);if(this.config.filename.endsWith(".ts")||this.config.filename.endsWith(".tsx")){if(D.includes("interface")&&!D.match(/interface\s+\w+\s*\{/))F.push("Invalid interface syntax detected")}if(F.length>0&&this.options.validation==="strict")throw new X0(`Content validation failed for ${this.config.filename}: ${F.join(", ")}`,"write",this.config.filename);else if(F.length>0)this.config.logger.warn(`Validation issues in ${this.config.filename}: ${F.join(", ")}`)}getContent(){return this.content}getImports(){return new Map(this.imports)}getExports(){return new Set(this.exports)}}var W6=E1(()=>{b0()});var A6={};UF(A6,{DirectoryBuilder:()=>i2});class i2{config;files=new Map;subdirectories=new Map;indexBuilder;shouldClean=!1;constructor(D){this.config=D}withSubdirectory(D){let F=`${this.config.path}/${D}`,u=new i2({path:F,fileManager:this.config.fileManager,logger:this.config.logger.child(`Dir:${D}`)});return this.subdirectories.set(D,u),u}withFiles(D){for(let[F,u]of Object.entries(D))this.files.set(F,u);return this}withFile(D,F){return this.files.set(D,F),this}withIndex(D){return this.indexBuilder=D,this}clean(){return this.shouldClean=!0,this}async ensure(){return await this.config.fileManager.ensureDirectory(this.config.path),this}async save(){let D=[];if(this.shouldClean)await this.config.fileManager.cleanDirectory(this.config.path);await this.ensure();let F=Array.from(this.files.entries()).map(async([u,E])=>{try{let B=await E.save();return D.push(B),B}catch(B){throw this.config.logger.error(`Failed to save file ${u}:`,B instanceof Error?B:void 0),B}});await Promise.all(F);for(let[u,E]of this.subdirectories)try{let B=await E.save();D.push(...B)}catch(B){throw this.config.logger.error(`Failed to save subdirectory ${u}:`,B instanceof Error?B:void 0),B}if(this.indexBuilder)try{let u=await this.indexBuilder.save();D.push(u)}catch(u){throw this.config.logger.error("Failed to save index file:",u instanceof Error?u:void 0),u}return this.config.logger.info(`Saved directory ${this.config.path} with ${D.length} files`),D}getFileList(){let D=[];for(let F of this.files.keys())D.push(`${this.config.path}/${F}`);for(let[F,u]of this.subdirectories){let E=u.getFileList();D.push(...E)}if(this.indexBuilder)D.push(`${this.config.path}/index.ts`);return D.sort()}getStats(){let D=this.files.size;for(let F of this.subdirectories.values())D+=F.getStats().totalFiles;if(this.indexBuilder)D+=1;return{fileCount:this.files.size,subdirectoryCount:this.subdirectories.size,hasIndex:!!this.indexBuilder,totalFiles:D}}async wouldOverwrite(){let D=[];for(let F of this.files.keys()){let u=`${this.config.path}/${F}`;if(await this.config.fileManager.wouldOverwrite(u))D.push(u)}for(let F of this.subdirectories.values()){let u=await F.wouldOverwrite();D.push(...u)}if(this.indexBuilder){let F=`${this.config.path}/index.ts`;if(await this.config.fileManager.wouldOverwrite(F))D.push(F)}return D}getPath(){return this.config.path}getFiles(){return new Map(this.files)}getSubdirectories(){return new Map(this.subdirectories)}getIndexBuilder(){return this.indexBuilder}}var H6={};UF(H6,{IndexBuilder:()=>G6});class G6{config;exports=new Map;namespaces=new Map;reExports=new Map;header="";footer="";groupingFunction;sortFunction;constructor(D){this.config=D}withExports(D,F){for(let u of D)this.exports.set(u,F);return this}withExport(D,F){return this.exports.set(D,F),this}withNamespaces(D){for(let[F,u]of Object.entries(D))this.namespaces.set(F,u);return this}withNamespace(D,F){return this.namespaces.set(D,F),this}withReExports(D){for(let F of D)this.reExports.set(F,F);return this}withReExport(D){return this.reExports.set(D,D),this}withHeader(D){return this.header=D,this}withFooter(D){return this.footer=D,this}groupBy(D){return this.groupingFunction=D,this}sortBy(D){return this.sortFunction=D,this}async autoDiscover(D){return this.config.logger.debug(`Auto-discovering exports in ${this.config.directory}`),this.config.logger.warn("Auto-discovery not yet implemented - manually add exports"),this}async save(){let D=this.generateContent(),F=`${this.config.directory}/index.ts`,u=await this.config.fileManager.writeFile(F,D);return this.config.logger.debug(`Generated index file: ${F}`),u.path}build(){return this.generateContent()}generateContent(){let D=[];if(this.header)D.push(this.header),D.push("");if(this.reExports.size>0){D.push("// Re-exports");for(let u of this.reExports.values())D.push(`export * from './${u}';`);D.push("")}if(this.exports.size>0){if(this.groupingFunction)this.generateGroupedExports(D);else this.generateSimpleExports(D);D.push("")}if(this.namespaces.size>0){D.push("// Namespace exports");let u=Array.from(this.namespaces.entries()).sort();for(let[E,B]of u)D.push(`export * as ${E} from './${B}';`);D.push("")}if(this.footer)D.push(this.footer);return`${D.join(`
|
|
11
11
|
`).replace(/\n{3,}/g,`
|
|
12
12
|
|
|
13
13
|
`).trim()}
|
|
14
|
-
`}generateSimpleExports(D){D.push("// Exports");let F=Array.from(this.exports.entries());if(this.sortFunction)F=F.sort(this.sortFunction);else F=F.sort(([E],[B])=>E.localeCompare(B));let u=new Map;for(let[E,B]of F){if(!u.has(B))u.set(B,[]);u.get(B)?.push(E)}for(let[E,B]of u){let C=B.sort();if(C.length===1)D.push(`export type { ${C[0]} } from './${E}';`);else if(C.length<=3)D.push(`export type { ${C.join(", ")} } from './${E}';`);else D.push("export type {"),C.forEach(($,X)=>{let Q=X===C.length-1;D.push(` ${$}${Q?"":","}`)}),D.push(`} from './${E}';`)}}generateGroupedExports(D){if(!this.groupingFunction)return;let F=new Map;for(let[E,B]of this.exports){let C=this.groupingFunction(E);if(!F.has(C))F.set(C,new Map);let $=F.get(C);if(!$.has(B))$.set(B,[]);$.get(B)?.push(E)}let u=Array.from(F.entries()).sort();for(let[E,B]of u){D.push(`// ${E}`);for(let[C,$]of B){let X=$.sort();if(X.length===1)D.push(`export type { ${X[0]} } from './${C}';`);else D.push(`export type { ${X.join(", ")} } from './${C}';`)}D.push("")}}getExports(){return new Map(this.exports)}getNamespaces(){return new Map(this.namespaces)}getReExports(){return new Map(this.reExports)}}import{notStrictEqual as O8,strictEqual as J8}from"assert";var b6={right:S6,center:v6};class
|
|
14
|
+
`}generateSimpleExports(D){D.push("// Exports");let F=Array.from(this.exports.entries());if(this.sortFunction)F=F.sort(this.sortFunction);else F=F.sort(([E],[B])=>E.localeCompare(B));let u=new Map;for(let[E,B]of F){if(!u.has(B))u.set(B,[]);u.get(B)?.push(E)}for(let[E,B]of u){let C=B.sort();if(C.length===1)D.push(`export type { ${C[0]} } from './${E}';`);else if(C.length<=3)D.push(`export type { ${C.join(", ")} } from './${E}';`);else D.push("export type {"),C.forEach(($,X)=>{let Q=X===C.length-1;D.push(` ${$}${Q?"":","}`)}),D.push(`} from './${E}';`)}}generateGroupedExports(D){if(!this.groupingFunction)return;let F=new Map;for(let[E,B]of this.exports){let C=this.groupingFunction(E);if(!F.has(C))F.set(C,new Map);let $=F.get(C);if(!$.has(B))$.set(B,[]);$.get(B)?.push(E)}let u=Array.from(F.entries()).sort();for(let[E,B]of u){D.push(`// ${E}`);for(let[C,$]of B){let X=$.sort();if(X.length===1)D.push(`export type { ${X[0]} } from './${C}';`);else D.push(`export type { ${X.join(", ")} } from './${C}';`)}D.push("")}}getExports(){return new Map(this.exports)}getNamespaces(){return new Map(this.namespaces)}getReExports(){return new Map(this.reExports)}}import{notStrictEqual as O8,strictEqual as J8}from"assert";var b6={right:S6,center:v6};class C1{constructor(D){var F;this.width=D.width,this.wrap=(F=D.wrap)!==null&&F!==void 0?F:!0,this.rows=[]}span(...D){let F=this.div(...D);F.span=!0}resetOutput(){this.rows=[]}div(...D){if(D.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...D)&&typeof D[0]==="string")return this.applyLayoutDSL(D[0]);let F=D.map((u)=>{if(typeof u==="string")return this.colFromString(u);return u});return this.rows.push(F),F}shouldApplyLayoutDSL(...D){return D.length===1&&typeof D[0]==="string"&&/[\t\n]/.test(D[0])}applyLayoutDSL(D){let F=D.split(`
|
|
15
15
|
`).map((E)=>E.split("\t")),u=0;return F.forEach((E)=>{if(E.length>1&&WD.stringWidth(E[0])>u)u=Math.min(Math.floor(this.width*0.5),WD.stringWidth(E[0]))}),F.forEach((E)=>{this.div(...E.map((B,C)=>{return{text:B.trim(),padding:this.measurePadding(B),width:C===0&&E.length>1?u:void 0}}))}),this.rows[this.rows.length-1]}colFromString(D){return{text:D,padding:this.measurePadding(D)}}measurePadding(D){let F=WD.stripAnsi(D);return[0,F.match(/\s*$/)[0].length,0,F.match(/^\s*/)[0].length]}toString(){let D=[];return this.rows.forEach((F)=>{this.rowToString(F,D)}),D.filter((F)=>!F.hidden).map((F)=>F.text).join(`
|
|
16
|
-
`)}rowToString(D,F){return this.rasterize(D).forEach((u,E)=>{let B="";u.forEach((C,$)=>{let{width:X}=D[$],Q=this.negatePadding(D[$]),z=C;if(Q>WD.stringWidth(C))z+=" ".repeat(Q-WD.stringWidth(C));if(D[$].align&&D[$].align!=="left"&&this.wrap){let W=b6[D[$].align];if(z=W(z,Q),WD.stringWidth(z)<Q)z+=" ".repeat((X||0)-WD.stringWidth(z)-1)}let
|
|
16
|
+
`)}rowToString(D,F){return this.rasterize(D).forEach((u,E)=>{let B="";u.forEach((C,$)=>{let{width:X}=D[$],Q=this.negatePadding(D[$]),z=C;if(Q>WD.stringWidth(C))z+=" ".repeat(Q-WD.stringWidth(C));if(D[$].align&&D[$].align!=="left"&&this.wrap){let W=b6[D[$].align];if(z=W(z,Q),WD.stringWidth(z)<Q)z+=" ".repeat((X||0)-WD.stringWidth(z)-1)}let O=D[$].padding||[0,0,0,0];if(O[3])B+=" ".repeat(O[3]);if(B+=B1(D[$],z,"| "),B+=z,B+=B1(D[$],z," |"),O[1])B+=" ".repeat(O[1]);if(E===0&&F.length>0)B=this.renderInline(B,F[F.length-1])}),F.push({text:B.replace(/ +$/,""),span:D.span})}),F}renderInline(D,F){let u=D.match(/^ */),E=u?u[0].length:0,B=F.text,C=WD.stringWidth(B.trimRight());if(!F.span)return D;if(!this.wrap)return F.hidden=!0,B+D;if(E<C)return D;return F.hidden=!0,B.trimRight()+" ".repeat(E-C)+D.trimLeft()}rasterize(D){let F=[],u=this.columnWidths(D),E;return D.forEach((B,C)=>{if(B.width=u[C],this.wrap)E=WD.wrap(B.text,this.negatePadding(B),{hard:!0}).split(`
|
|
17
17
|
`);else E=B.text.split(`
|
|
18
|
-
`);if(B.border)E.unshift("."+"-".repeat(this.negatePadding(B)+2)+"."),E.push("'"+"-".repeat(this.negatePadding(B)+2)+"'");if(B.padding)E.unshift(...Array(B.padding[0]||0).fill("")),E.push(...Array(B.padding[2]||0).fill(""));E.forEach(($,X)=>{if(!F[X])F.push([]);let Q=F[X];for(let z=0;z<C;z++)if(Q[z]===void 0)Q.push("");Q.push($)})}),F}negatePadding(D){let F=D.width||0;if(D.padding)F-=(D.padding[3]||0)+(D.padding[1]||0);if(D.border)F-=4;return F}columnWidths(D){if(!this.wrap)return D.map((C)=>{return C.width||WD.stringWidth(C.text)});let F=D.length,u=this.width,E=D.map((C)=>{if(C.width)return F--,u-=C.width,C.width;return}),B=F?Math.floor(u/F):0;return E.map((C,$)=>{if(C===void 0)return Math.max(B,x6(D[$]));return C})}}function u1(D,F,u){if(D.border){if(/[.']-+[.']/.test(F))return"";if(F.trim().length!==0)return u;return" "}return""}function x6(D){let F=D.padding||[],u=1+(F[3]||0)+(F[1]||0);if(D.border)return u+4;return u}function P6(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function S6(D,F){D=D.trim();let u=WD.stringWidth(D);if(u<F)return" ".repeat(F-u)+D;return D}function v6(D,F){D=D.trim();let u=WD.stringWidth(D);if(u>=F)return D;return" ".repeat(F-u>>1)+D}var WD;function B1(D,F){return WD=F,new E1({width:(D===null||D===void 0?void 0:D.width)||P6(),wrap:D===null||D===void 0?void 0:D.wrap})}function LF({onlyFirst:D=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}var f6=LF();function mD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(f6,"")}function C1(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function $1(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function X1(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D===94192||D===94193||D>=94208&&D<=100343||D>=100352&&D<=101589||D>=101631&&D<=101640||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128727||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129673||D>=129679&&D<=129734||D>=129742&&D<=129756||D>=129759&&D<=129769||D>=129776&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function k6(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function Z1(D,{ambiguousAsWide:F=!1}={}){if(k6(D),$1(D)||X1(D)||F&&C1(D))return 2;return 1}var Y1=x0(z1(),1),y6=new Intl.Segmenter,h6=/^\p{Default_Ignorable_Code_Point}$/u;function RD(D,F={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:u=!0,countAnsiEscapeCodes:E=!1}=F;if(!E)D=mD(D);if(D.length===0)return 0;let B=0,C={ambiguousAsWide:!u};for(let{segment:$}of y6.segment(D)){let X=$.codePointAt(0);if(X<=31||X>=127&&X<=159)continue;if(X>=8203&&X<=8207||X===65279)continue;if(X>=768&&X<=879||X>=6832&&X<=6911||X>=7616&&X<=7679||X>=8400&&X<=8447||X>=65056&&X<=65071)continue;if(X>=55296&&X<=57343)continue;if(X>=65024&&X<=65039)continue;if(h6.test($))continue;if(Y1.default().test($)){B+=2;continue}B+=Z1(X,C)}return B}var O1=(D=0)=>(F)=>`\x1B[${F+D}m`,J1=(D=0)=>(F)=>`\x1B[${38+D};5;${F}m`,W1=(D=0)=>(F,u,E)=>`\x1B[${38+D};2;${F};${u};${E}m`,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},WE=Object.keys(r.modifier),d6=Object.keys(r.color),p6=Object.keys(r.bgColor),AE=[...d6,...p6];function g6(){let D=new Map;for(let[F,u]of Object.entries(r)){for(let[E,B]of Object.entries(u))r[E]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},u[E]=r[E],D.set(B[0],B[1]);Object.defineProperty(r,F,{value:u,enumerable:!1})}return Object.defineProperty(r,"codes",{value:D,enumerable:!1}),r.color.close="\x1B[39m",r.bgColor.close="\x1B[49m",r.color.ansi=O1(),r.color.ansi256=J1(),r.color.ansi16m=W1(),r.bgColor.ansi=O1(10),r.bgColor.ansi256=J1(10),r.bgColor.ansi16m=W1(10),Object.defineProperties(r,{rgbToAnsi256:{value:(F,u,E)=>{if(F===u&&u===E){if(F<8)return 16;if(F>248)return 231;return Math.round((F-8)/247*24)+232}return 16+36*Math.round(F/255*5)+6*Math.round(u/255*5)+Math.round(E/255*5)},enumerable:!1},hexToRgb:{value:(F)=>{let u=/[a-f\d]{6}|[a-f\d]{3}/i.exec(F.toString(16));if(!u)return[0,0,0];let[E]=u;if(E.length===3)E=[...E].map((C)=>C+C).join("");let B=Number.parseInt(E,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(F)=>r.rgbToAnsi256(...r.hexToRgb(F)),enumerable:!1},ansi256ToAnsi:{value:(F)=>{if(F<8)return 30+F;if(F<16)return 90+(F-8);let u,E,B;if(F>=232)u=((F-232)*10+8)/255,E=u,B=u;else{F-=16;let X=F%36;u=Math.floor(F/36)/5,E=Math.floor(X/6)/5,B=X%6/5}let C=Math.max(u,E,B)*2;if(C===0)return 30;let $=30+(Math.round(B)<<2|Math.round(E)<<1|Math.round(u));if(C===2)$+=60;return $},enumerable:!1},rgbToAnsi:{value:(F,u,E)=>r.ansi256ToAnsi(r.rgbToAnsi256(F,u,E)),enumerable:!1},hexToAnsi:{value:(F)=>r.ansi256ToAnsi(r.hexToAnsi256(F)),enumerable:!1}}),r}var m6=g6(),A1=m6;var S0=new Set(["\x1B",""]),c6=39,IF="\x07",q1="[",l6="]",_1="m",P0=`${l6}8;;`,G1=(D)=>`${S0.values().next().value}${q1}${D}${_1}`,H1=(D)=>`${S0.values().next().value}${P0}${D}${IF}`,o6=(D)=>D.split(" ").map((F)=>RD(F)),NF=(D,F,u)=>{let E=[...F],B=!1,C=!1,$=RD(mD(D.at(-1)));for(let[X,Q]of E.entries()){let z=RD(Q);if($+z<=u)D[D.length-1]+=Q;else D.push(Q),$=0;if(S0.has(Q))B=!0,C=E.slice(X+1,X+1+P0.length).join("")===P0;if(B){if(C){if(Q===IF)B=!1,C=!1}else if(Q===_1)B=!1;continue}if($+=z,$===u&&X<E.length-1)D.push(""),$=0}if(!$&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},n6=(D)=>{let F=D.split(" "),u=F.length;while(u>0){if(RD(F[u-1])>0)break;u--}if(u===F.length)return D;return F.slice(0,u).join(" ")+F.slice(u).join("")},i6=(D,F,u={})=>{if(u.trim!==!1&&D.trim()==="")return"";let E="",B,C,$=o6(D),X=[""];for(let[W,Y]of D.split(" ").entries()){if(u.trim!==!1)X[X.length-1]=X.at(-1).trimStart();let H=RD(X.at(-1));if(W!==0){if(H>=F&&(u.wordWrap===!1||u.trim===!1))X.push(""),H=0;if(H>0||u.trim===!1)X[X.length-1]+=" ",H++}if(u.hard&&$[W]>F){let _=F-H,q=1+Math.floor(($[W]-_-1)/F);if(Math.floor(($[W]-1)/F)<q)X.push("");NF(X,Y,F);continue}if(H+$[W]>F&&H>0&&$[W]>0){if(u.wordWrap===!1&&H<F){NF(X,Y,F);continue}X.push("")}if(H+$[W]>F&&u.wordWrap===!1){NF(X,Y,F);continue}X[X.length-1]+=Y}if(u.trim!==!1)X=X.map((W)=>n6(W));let Q=X.join(`
|
|
19
|
-
`),z=[...Q],
|
|
20
|
-
`){if(C)E+=
|
|
21
|
-
`){if(B&&
|
|
18
|
+
`);if(B.border)E.unshift("."+"-".repeat(this.negatePadding(B)+2)+"."),E.push("'"+"-".repeat(this.negatePadding(B)+2)+"'");if(B.padding)E.unshift(...Array(B.padding[0]||0).fill("")),E.push(...Array(B.padding[2]||0).fill(""));E.forEach(($,X)=>{if(!F[X])F.push([]);let Q=F[X];for(let z=0;z<C;z++)if(Q[z]===void 0)Q.push("");Q.push($)})}),F}negatePadding(D){let F=D.width||0;if(D.padding)F-=(D.padding[3]||0)+(D.padding[1]||0);if(D.border)F-=4;return F}columnWidths(D){if(!this.wrap)return D.map((C)=>{return C.width||WD.stringWidth(C.text)});let F=D.length,u=this.width,E=D.map((C)=>{if(C.width)return F--,u-=C.width,C.width;return}),B=F?Math.floor(u/F):0;return E.map((C,$)=>{if(C===void 0)return Math.max(B,x6(D[$]));return C})}}function B1(D,F,u){if(D.border){if(/[.']-+[.']/.test(F))return"";if(F.trim().length!==0)return u;return" "}return""}function x6(D){let F=D.padding||[],u=1+(F[3]||0)+(F[1]||0);if(D.border)return u+4;return u}function P6(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function S6(D,F){D=D.trim();let u=WD.stringWidth(D);if(u<F)return" ".repeat(F-u)+D;return D}function v6(D,F){D=D.trim();let u=WD.stringWidth(D);if(u>=F)return D;return" ".repeat(F-u>>1)+D}var WD;function $1(D,F){return WD=F,new C1({width:(D===null||D===void 0?void 0:D.width)||P6(),wrap:D===null||D===void 0?void 0:D.wrap})}function NF({onlyFirst:D=!1}={}){let u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(u,D?void 0:"g")}var f6=NF();function mD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(f6,"")}function X1(D){return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109}function Z1(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function Q1(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D===94192||D===94193||D>=94208&&D<=100343||D>=100352&&D<=101589||D>=101631&&D<=101640||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128727||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129673||D>=129679&&D<=129734||D>=129742&&D<=129756||D>=129759&&D<=129769||D>=129776&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function k6(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function z1(D,{ambiguousAsWide:F=!1}={}){if(k6(D),Z1(D)||Q1(D)||F&&X1(D))return 2;return 1}var J1=x0(O1(),1),y6=new Intl.Segmenter,h6=/^\p{Default_Ignorable_Code_Point}$/u;function RD(D,F={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:u=!0,countAnsiEscapeCodes:E=!1}=F;if(!E)D=mD(D);if(D.length===0)return 0;let B=0,C={ambiguousAsWide:!u};for(let{segment:$}of y6.segment(D)){let X=$.codePointAt(0);if(X<=31||X>=127&&X<=159)continue;if(X>=8203&&X<=8207||X===65279)continue;if(X>=768&&X<=879||X>=6832&&X<=6911||X>=7616&&X<=7679||X>=8400&&X<=8447||X>=65056&&X<=65071)continue;if(X>=55296&&X<=57343)continue;if(X>=65024&&X<=65039)continue;if(h6.test($))continue;if(J1.default().test($)){B+=2;continue}B+=z1(X,C)}return B}var W1=(D=0)=>(F)=>`\x1B[${F+D}m`,A1=(D=0)=>(F)=>`\x1B[${38+D};5;${F}m`,G1=(D=0)=>(F,u,E)=>`\x1B[${38+D};2;${F};${u};${E}m`,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},WE=Object.keys(r.modifier),d6=Object.keys(r.color),p6=Object.keys(r.bgColor),AE=[...d6,...p6];function g6(){let D=new Map;for(let[F,u]of Object.entries(r)){for(let[E,B]of Object.entries(u))r[E]={open:`\x1B[${B[0]}m`,close:`\x1B[${B[1]}m`},u[E]=r[E],D.set(B[0],B[1]);Object.defineProperty(r,F,{value:u,enumerable:!1})}return Object.defineProperty(r,"codes",{value:D,enumerable:!1}),r.color.close="\x1B[39m",r.bgColor.close="\x1B[49m",r.color.ansi=W1(),r.color.ansi256=A1(),r.color.ansi16m=G1(),r.bgColor.ansi=W1(10),r.bgColor.ansi256=A1(10),r.bgColor.ansi16m=G1(10),Object.defineProperties(r,{rgbToAnsi256:{value:(F,u,E)=>{if(F===u&&u===E){if(F<8)return 16;if(F>248)return 231;return Math.round((F-8)/247*24)+232}return 16+36*Math.round(F/255*5)+6*Math.round(u/255*5)+Math.round(E/255*5)},enumerable:!1},hexToRgb:{value:(F)=>{let u=/[a-f\d]{6}|[a-f\d]{3}/i.exec(F.toString(16));if(!u)return[0,0,0];let[E]=u;if(E.length===3)E=[...E].map((C)=>C+C).join("");let B=Number.parseInt(E,16);return[B>>16&255,B>>8&255,B&255]},enumerable:!1},hexToAnsi256:{value:(F)=>r.rgbToAnsi256(...r.hexToRgb(F)),enumerable:!1},ansi256ToAnsi:{value:(F)=>{if(F<8)return 30+F;if(F<16)return 90+(F-8);let u,E,B;if(F>=232)u=((F-232)*10+8)/255,E=u,B=u;else{F-=16;let X=F%36;u=Math.floor(F/36)/5,E=Math.floor(X/6)/5,B=X%6/5}let C=Math.max(u,E,B)*2;if(C===0)return 30;let $=30+(Math.round(B)<<2|Math.round(E)<<1|Math.round(u));if(C===2)$+=60;return $},enumerable:!1},rgbToAnsi:{value:(F,u,E)=>r.ansi256ToAnsi(r.rgbToAnsi256(F,u,E)),enumerable:!1},hexToAnsi:{value:(F)=>r.ansi256ToAnsi(r.hexToAnsi256(F)),enumerable:!1}}),r}var m6=g6(),H1=m6;var S0=new Set(["\x1B",""]),c6=39,IF="\x07",M1="[",l6="]",V1="m",P0=`${l6}8;;`,q1=(D)=>`${S0.values().next().value}${M1}${D}${V1}`,_1=(D)=>`${S0.values().next().value}${P0}${D}${IF}`,o6=(D)=>D.split(" ").map((F)=>RD(F)),LF=(D,F,u)=>{let E=[...F],B=!1,C=!1,$=RD(mD(D.at(-1)));for(let[X,Q]of E.entries()){let z=RD(Q);if($+z<=u)D[D.length-1]+=Q;else D.push(Q),$=0;if(S0.has(Q))B=!0,C=E.slice(X+1,X+1+P0.length).join("")===P0;if(B){if(C){if(Q===IF)B=!1,C=!1}else if(Q===V1)B=!1;continue}if($+=z,$===u&&X<E.length-1)D.push(""),$=0}if(!$&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},n6=(D)=>{let F=D.split(" "),u=F.length;while(u>0){if(RD(F[u-1])>0)break;u--}if(u===F.length)return D;return F.slice(0,u).join(" ")+F.slice(u).join("")},i6=(D,F,u={})=>{if(u.trim!==!1&&D.trim()==="")return"";let E="",B,C,$=o6(D),X=[""];for(let[W,J]of D.split(" ").entries()){if(u.trim!==!1)X[X.length-1]=X.at(-1).trimStart();let A=RD(X.at(-1));if(W!==0){if(A>=F&&(u.wordWrap===!1||u.trim===!1))X.push(""),A=0;if(A>0||u.trim===!1)X[X.length-1]+=" ",A++}if(u.hard&&$[W]>F){let _=F-A,q=1+Math.floor(($[W]-_-1)/F);if(Math.floor(($[W]-1)/F)<q)X.push("");LF(X,J,F);continue}if(A+$[W]>F&&A>0&&$[W]>0){if(u.wordWrap===!1&&A<F){LF(X,J,F);continue}X.push("")}if(A+$[W]>F&&u.wordWrap===!1){LF(X,J,F);continue}X[X.length-1]+=J}if(u.trim!==!1)X=X.map((W)=>n6(W));let Q=X.join(`
|
|
19
|
+
`),z=[...Q],O=0;for(let[W,J]of z.entries()){if(E+=J,S0.has(J)){let{groups:_}=new RegExp(`(?:\\${M1}(?<code>\\d+)m|\\${P0}(?<uri>.*)${IF})`).exec(Q.slice(O))||{groups:{}};if(_.code!==void 0){let q=Number.parseFloat(_.code);B=q===c6?void 0:q}else if(_.uri!==void 0)C=_.uri.length===0?void 0:_.uri}let A=H1.codes.get(Number(B));if(z[W+1]===`
|
|
20
|
+
`){if(C)E+=_1("");if(B&&A)E+=q1(A)}else if(J===`
|
|
21
|
+
`){if(B&&A)E+=q1(B);if(C)E+=_1(C)}O+=J.length}return E};function wF(D,F,u){return String(D).normalize().replaceAll(`\r
|
|
22
22
|
`,`
|
|
23
23
|
`).split(`
|
|
24
24
|
`).map((E)=>i6(E,F,u)).join(`
|
|
25
|
-
`)}function TF(D){return B1(D,{stringWidth:RD,stripAnsi:mD,wrap:wF})}import{dirname as M1,resolve as K1}from"path";import{readdirSync as t6,statSync as s6}from"fs";function bF(D,F){let u=K1(".",D),E;if(!s6(u).isDirectory())u=M1(u);while(!0){if(E=F(u,t6(u)),E)return K1(u,E);if(u=M1(E=u),E===u)break}}import{inspect as W8}from"util";import{fileURLToPath as y1}from"url";import{format as e6}from"util";import{normalize as D8,resolve as F8}from"path";function cD(D){if(!(D!==D.toLowerCase()&&D!==D.toUpperCase()))D=D.toLowerCase();if(D.indexOf("-")===-1&&D.indexOf("_")===-1)return D;else{let u="",E=!1,B=D.match(/^-+/);for(let C=B?B[0].length:0;C<D.length;C++){let $=D.charAt(C);if(E)E=!1,$=$.toUpperCase();if(C!==0&&($==="-"||$==="_"))E=!0;else if($!=="-"&&$!=="_")u+=$}return u}}function v0(D,F){let u=D.toLowerCase();F=F||"-";let E="";for(let B=0;B<D.length;B++){let C=u.charAt(B),$=D.charAt(B);if(C!==$&&B>0)E+=`${F}${u.charAt(B)}`;else E+=$}return E}function f0(D){if(D===null||D===void 0)return!1;if(typeof D==="number")return!0;if(/^0x[0-9a-f]+$/i.test(D))return!0;if(/^0[^.]/.test(D))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(D)}function V1(D){if(Array.isArray(D))return D.map(($)=>typeof $!=="string"?$+"":$);D=D.trim();let F=0,u=null,E=null,B=null,C=[];for(let $=0;$<D.length;$++){if(u=E,E=D.charAt($),E===" "&&!B){if(u!==" ")F++;continue}if(E===B)B=null;else if((E==="'"||E==='"')&&!B)B=E;if(!C[F])C[F]="";C[F]+=E}return C}var qD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(qD||(qD={}));var xD;class PF{constructor(D){xD=D}parse(D,F){let u=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},F),E=V1(D),B=typeof D==="string",C=r6(Object.assign(Object.create(null),u.alias)),$=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},u.configuration),X=Object.assign(Object.create(null),u.default),Q=u.configObjects||[],z=u.envPrefix,J=$["populate--"],W=J?"--":"_",Y=Object.create(null),H=Object.create(null),_=u.__||xD.format,q={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},P=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,c=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(u.array||[]).filter(Boolean).forEach(function(O){let G=typeof O==="object"?O.key:O,K=Object.keys(O).map(function(M){return{boolean:"bools",string:"strings",number:"numbers"}[M]}).filter(Boolean).pop();if(K)q[K][G]=!0;q.arrays[G]=!0,q.keys.push(G)}),[].concat(u.boolean||[]).filter(Boolean).forEach(function(O){q.bools[O]=!0,q.keys.push(O)}),[].concat(u.string||[]).filter(Boolean).forEach(function(O){q.strings[O]=!0,q.keys.push(O)}),[].concat(u.number||[]).filter(Boolean).forEach(function(O){q.numbers[O]=!0,q.keys.push(O)}),[].concat(u.count||[]).filter(Boolean).forEach(function(O){q.counts[O]=!0,q.keys.push(O)}),[].concat(u.normalize||[]).filter(Boolean).forEach(function(O){q.normalize[O]=!0,q.keys.push(O)}),typeof u.narg==="object")Object.entries(u.narg).forEach(([O,G])=>{if(typeof G==="number")q.nargs[O]=G,q.keys.push(O)});if(typeof u.coerce==="object")Object.entries(u.coerce).forEach(([O,G])=>{if(typeof G==="function")q.coercions[O]=G,q.keys.push(O)});if(typeof u.config<"u"){if(Array.isArray(u.config)||typeof u.config==="string")[].concat(u.config).filter(Boolean).forEach(function(O){q.configs[O]=!0});else if(typeof u.config==="object")Object.entries(u.config).forEach(([O,G])=>{if(typeof G==="boolean"||typeof G==="function")q.configs[O]=G})}H0(u.key,C,u.default,q.arrays),Object.keys(X).forEach(function(O){(q.aliases[O]||[]).forEach(function(G){X[G]=X[O]})});let p=null;KF();let QD=[],d=Object.assign(Object.create(null),{_:[]}),U={};for(let O=0;O<E.length;O++){let G=E[O],K=G.replace(/^-{3,}/,"---"),M,A,w,R,x,XD;if(G!=="--"&&/^-/.test(G)&&i(G))j(G);else if(K.match(/^---+(=|$)/)){j(G);continue}else if(G.match(/^--.+=/)||!$["short-option-groups"]&&G.match(/^-.+=/)){if(R=G.match(/^--?([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)if(v(R[1],q.arrays))O=l(O,R[1],E,R[2]);else if(v(R[1],q.nargs)!==!1)O=S(O,R[1],E,R[2]);else g(R[1],R[2],!0)}else if(G.match(c)&&$["boolean-negation"]){if(R=G.match(c),R!==null&&Array.isArray(R)&&R.length>=2)A=R[1],g(A,v(A,q.arrays)?[!1]:!1)}else if(G.match(/^--.+/)||!$["short-option-groups"]&&G.match(/^-[^-]+/)){if(R=G.match(/^--?(.+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(A=R[1],v(A,q.arrays))O=l(O,A,E);else if(v(A,q.nargs)!==!1)O=S(O,A,E);else if(x=E[O+1],x!==void 0&&(!x.match(/^-/)||x.match(P))&&!v(A,q.bools)&&!v(A,q.counts))g(A,x),O++;else if(/^(true|false)$/.test(x))g(A,x),O++;else g(A,m(A))}else if(G.match(/^-.\..+=/)){if(R=G.match(/^-([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)g(R[1],R[2])}else if(G.match(/^-.\..+/)&&!G.match(P)){if(x=E[O+1],R=G.match(/^-(.\..+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(A=R[1],x!==void 0&&!x.match(/^-/)&&!v(A,q.bools)&&!v(A,q.counts))g(A,x),O++;else g(A,m(A))}else if(G.match(/^-[^-]+/)&&!G.match(P)){w=G.slice(1,-1).split(""),M=!1;for(let YD=0;YD<w.length;YD++){if(x=G.slice(YD+2),w[YD+1]&&w[YD+1]==="="){if(XD=G.slice(YD+3),A=w[YD],v(A,q.arrays))O=l(O,A,E,XD);else if(v(A,q.nargs)!==!1)O=S(O,A,E,XD);else g(A,XD);M=!0;break}if(x==="-"){g(w[YD],x);continue}if(/[A-Za-z]/.test(w[YD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(x)&&v(x,q.bools)===!1){g(w[YD],x),M=!0;break}if(w[YD+1]&&w[YD+1].match(/\W/)){g(w[YD],x),M=!0;break}else g(w[YD],m(w[YD]))}if(A=G.slice(-1)[0],!M&&A!=="-")if(v(A,q.arrays))O=l(O,A,E);else if(v(A,q.nargs)!==!1)O=S(O,A,E);else if(x=E[O+1],x!==void 0&&(!/^(-|--)[^-]/.test(x)||x.match(P))&&!v(A,q.bools)&&!v(A,q.counts))g(A,x),O++;else if(/^(true|false)$/.test(x))g(A,x),O++;else g(A,m(A))}else if(G.match(/^-[0-9]$/)&&G.match(P)&&v(G.slice(1),q.bools))A=G.slice(1),g(A,m(A));else if(G==="--"){QD=E.slice(O+1);break}else if($["halt-at-non-option"]){QD=E.slice(O);break}else j(G)}if(uD(d,!0),uD(d,!1),T(d),n(),PD(d,q.aliases,X,!0),o(d),$["set-placeholder-key"])ED(d);if(Object.keys(q.counts).forEach(function(O){if(!t(d,O.split(".")))g(O,0)}),J&&QD.length)d[W]=[];if(QD.forEach(function(O){d[W].push(O)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(d).filter((O)=>O!=="--"&&O.includes("-")).forEach((O)=>{delete d[O]});if($["strip-aliased"])[].concat(...Object.keys(C).map((O)=>C[O])).forEach((O)=>{if($["camel-case-expansion"]&&O.includes("-"))delete d[O.split(".").map((G)=>cD(G)).join(".")];delete d[O]});function j(O){let G=V("_",O);if(typeof G==="string"||typeof G==="number")d._.push(G)}function S(O,G,K,M){let A,w=v(G,q.nargs);if(w=typeof w!=="number"||isNaN(w)?1:w,w===0){if(!CD(M))p=Error(_("Argument unexpected for: %s",G));return g(G,m(G)),O}let R=CD(M)?0:1;if($["nargs-eats-options"]){if(K.length-(O+1)+R<w)p=Error(_("Not enough arguments following: %s",G));R=w}else{for(A=O+1;A<K.length;A++)if(!K[A].match(/^-[^0-9]/)||K[A].match(P)||i(K[A]))R++;else break;if(R<w)p=Error(_("Not enough arguments following: %s",G))}let x=Math.min(R,w);if(!CD(M)&&x>0)g(G,M),x--;for(A=O+1;A<x+O+1;A++)g(G,K[A]);return O+x}function l(O,G,K,M){let A=[],w=M||K[O+1],R=v(G,q.nargs);if(v(G,q.bools)&&!/^(true|false)$/.test(w))A.push(!0);else if(CD(w)||CD(M)&&/^-/.test(w)&&!P.test(w)&&!i(w)){if(X[G]!==void 0){let x=X[G];A=Array.isArray(x)?x:[x]}}else{if(!CD(M))A.push(L(G,M,!0));for(let x=O+1;x<K.length;x++){if(!$["greedy-arrays"]&&A.length>0||R&&typeof R==="number"&&A.length>=R)break;if(w=K[x],/^-/.test(w)&&!P.test(w)&&!i(w))break;O=x,A.push(L(G,w,B))}}if(typeof R==="number"&&(R&&A.length<R||isNaN(R)&&A.length===0))p=Error(_("Not enough arguments following: %s",G));return g(G,A),O}function g(O,G,K=B){if(/-/.test(O)&&$["camel-case-expansion"]){let w=O.split(".").map(function(R){return cD(R)}).join(".");ND(O,w)}let M=L(O,G,K),A=O.split(".");if(bD(d,A,M),q.aliases[O])q.aliases[O].forEach(function(w){let R=w.split(".");bD(d,R,M)});if(A.length>1&&$["dot-notation"])(q.aliases[A[0]]||[]).forEach(function(w){let R=w.split("."),x=[].concat(A);if(x.shift(),R=R.concat(x),!(q.aliases[O]||[]).includes(R.join(".")))bD(d,R,M)});if(v(O,q.normalize)&&!v(O,q.arrays))[O].concat(q.aliases[O]||[]).forEach(function(R){Object.defineProperty(U,R,{enumerable:!0,get(){return G},set(x){G=typeof x==="string"?xD.normalize(x):x}})})}function ND(O,G){if(!(q.aliases[O]&&q.aliases[O].length))q.aliases[O]=[G],Y[G]=!0;if(!(q.aliases[G]&&q.aliases[G].length))ND(G,O)}function L(O,G,K){if(K)G=a6(G);if(v(O,q.bools)||v(O,q.counts)){if(typeof G==="string")G=G==="true"}let M=Array.isArray(G)?G.map(function(A){return V(O,A)}):V(O,G);if(v(O,q.counts)&&(CD(M)||typeof M==="boolean"))M=xF();if(v(O,q.normalize)&&v(O,q.arrays))if(Array.isArray(G))M=G.map((A)=>{return xD.normalize(A)});else M=xD.normalize(G);return M}function V(O,G){if(!$["parse-positional-numbers"]&&O==="_")return G;if(!v(O,q.strings)&&!v(O,q.bools)&&!Array.isArray(G)){if(f0(G)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${G}`)))||!CD(G)&&v(O,q.numbers))G=Number(G)}return G}function T(O){let G=Object.create(null);PD(G,q.aliases,X),Object.keys(q.configs).forEach(function(K){let M=O[K]||G[K];if(M)try{let A=null,w=xD.resolve(xD.cwd(),M),R=q.configs[K];if(typeof R==="function"){try{A=R(w)}catch(x){A=x}if(A instanceof Error){p=A;return}}else A=xD.require(w);y(A)}catch(A){if(A.name==="PermissionDenied")p=A;else if(O[K])p=Error(_("Invalid JSON config file: %s",M))}})}function y(O,G){Object.keys(O).forEach(function(K){let M=O[K],A=G?G+"."+K:K;if(typeof M==="object"&&M!==null&&!Array.isArray(M)&&$["dot-notation"])y(M,A);else if(!t(d,A.split("."))||v(A,q.arrays)&&$["combine-arrays"])g(A,M)})}function n(){if(typeof Q<"u")Q.forEach(function(O){y(O)})}function uD(O,G){if(typeof z>"u")return;let K=typeof z==="string"?z:"",M=xD.env();Object.keys(M).forEach(function(A){if(K===""||A.lastIndexOf(K,0)===0){let w=A.split("__").map(function(R,x){if(x===0)R=R.substring(K.length);return cD(R)});if((G&&q.configs[w.join(".")]||!G)&&!t(O,w))g(w.join("."),M[A])}})}function o(O){let G,K=new Set;Object.keys(O).forEach(function(M){if(!K.has(M)){if(G=v(M,q.coercions),typeof G==="function")try{let A=V(M,G(O[M]));[].concat(q.aliases[M]||[],M).forEach((w)=>{K.add(w),O[w]=A})}catch(A){p=A}}})}function ED(O){return q.keys.forEach((G)=>{if(~G.indexOf("."))return;if(typeof O[G]>"u")O[G]=void 0}),O}function PD(O,G,K,M=!1){Object.keys(K).forEach(function(A){if(!t(O,A.split("."))){if(bD(O,A.split("."),K[A]),M)H[A]=!0;(G[A]||[]).forEach(function(w){if(t(O,w.split(".")))return;bD(O,w.split("."),K[A])})}})}function t(O,G){let K=O;if(!$["dot-notation"])G=[G.join(".")];G.slice(0,-1).forEach(function(A){K=K[A]||{}});let M=G[G.length-1];if(typeof K!=="object")return!1;else return M in K}function bD(O,G,K){let M=O;if(!$["dot-notation"])G=[G.join(".")];G.slice(0,-1).forEach(function(XD){if(XD=R1(XD),typeof M==="object"&&M[XD]===void 0)M[XD]={};if(typeof M[XD]!=="object"||Array.isArray(M[XD])){if(Array.isArray(M[XD]))M[XD].push({});else M[XD]=[M[XD],{}];M=M[XD][M[XD].length-1]}else M=M[XD]});let A=R1(G[G.length-1]),w=v(G.join("."),q.arrays),R=Array.isArray(K),x=$["duplicate-arguments-array"];if(!x&&v(A,q.nargs)){if(x=!0,!CD(M[A])&&q.nargs[A]===1||Array.isArray(M[A])&&M[A].length===q.nargs[A])M[A]=void 0}if(K===xF())M[A]=xF(M[A]);else if(Array.isArray(M[A]))if(x&&w&&R)M[A]=$["flatten-duplicate-arrays"]?M[A].concat(K):(Array.isArray(M[A][0])?M[A]:[M[A]]).concat([K]);else if(!x&&Boolean(w)===Boolean(R))M[A]=K;else M[A]=M[A].concat([K]);else if(M[A]===void 0&&w)M[A]=R?K:[K];else if(x&&!(M[A]===void 0||v(A,q.counts)||v(A,q.bools)))M[A]=[M[A],K];else M[A]=K}function H0(...O){O.forEach(function(G){Object.keys(G||{}).forEach(function(K){if(q.aliases[K])return;q.aliases[K]=[].concat(C[K]||[]),q.aliases[K].concat(K).forEach(function(M){if(/-/.test(M)&&$["camel-case-expansion"]){let A=cD(M);if(A!==K&&q.aliases[K].indexOf(A)===-1)q.aliases[K].push(A),Y[A]=!0}}),q.aliases[K].concat(K).forEach(function(M){if(M.length>1&&/[A-Z]/.test(M)&&$["camel-case-expansion"]){let A=v0(M,"-");if(A!==K&&q.aliases[K].indexOf(A)===-1)q.aliases[K].push(A),Y[A]=!0}}),q.aliases[K].forEach(function(M){q.aliases[M]=[K].concat(q.aliases[K].filter(function(A){return M!==A}))})})})}function v(O,G){let K=[].concat(q.aliases[O]||[],O),M=Object.keys(G),A=K.find((w)=>M.includes(w));return A?G[A]:!1}function Q0(O){let G=Object.keys(q);return[].concat(G.map((M)=>q[M])).some(function(M){return Array.isArray(M)?M.includes(O):M[O]})}function r2(O,...G){return[].concat(...G).some(function(M){let A=O.match(M);return A&&Q0(A[1])})}function f(O){if(O.match(P)||!O.match(/^-[^-]+/))return!1;let G=!0,K,M=O.slice(1).split("");for(let A=0;A<M.length;A++){if(K=O.slice(A+2),!Q0(M[A])){G=!1;break}if(M[A+1]&&M[A+1]==="="||K==="-"||/[A-Za-z]/.test(M[A])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(K)||M[A+1]&&M[A+1].match(/\W/))break}return G}function i(O){return $["unknown-options-as-args"]&&BD(O)}function BD(O){if(O=O.replace(/^-{3,}/,"--"),O.match(P))return!1;if(f(O))return!1;return!r2(O,/^-+([^=]+?)=[\s\S]*$/,c,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function m(O){if(!v(O,q.bools)&&!v(O,q.counts)&&`${O}`in X)return X[O];else return zD(e(O))}function zD(O){return{[qD.BOOLEAN]:!0,[qD.STRING]:"",[qD.NUMBER]:void 0,[qD.ARRAY]:[]}[O]}function e(O){let G=qD.BOOLEAN;if(v(O,q.strings))G=qD.STRING;else if(v(O,q.numbers))G=qD.NUMBER;else if(v(O,q.bools))G=qD.BOOLEAN;else if(v(O,q.arrays))G=qD.ARRAY;return G}function CD(O){return O===void 0}function KF(){Object.keys(q.counts).find((O)=>{if(v(O,q.arrays))return p=Error(_("Invalid configuration: %s, opts.count excludes opts.array.",O)),!0;else if(v(O,q.nargs))return p=Error(_("Invalid configuration: %s, opts.count excludes opts.narg.",O)),!0;return!1})}return{aliases:Object.assign({},q.aliases),argv:Object.assign(U,d),configuration:$,defaulted:Object.assign({},H),error:p,newAliases:Object.assign({},Y)}}}function r6(D){let F=[],u=Object.create(null),E=!0;Object.keys(D).forEach(function(B){F.push([].concat(D[B],B))});while(E){E=!1;for(let B=0;B<F.length;B++)for(let C=B+1;C<F.length;C++)if(F[B].filter(function(X){return F[C].indexOf(X)!==-1}).length){F[B]=F[B].concat(F[C]),F.splice(C,1),E=!0;break}}return F.forEach(function(B){B=B.filter(function($,X,Q){return Q.indexOf($)===X});let C=B.pop();if(C!==void 0&&typeof C==="string")u[C]=B}),u}function xF(D){return D!==void 0?D+1:1}function R1(D){if(D==="__proto__")return"___proto___";return D}function a6(D){return typeof D==="string"&&(D[0]==="'"||D[0]==='"')&&D[D.length-1]===D[0]?D.substring(1,D.length-1):D}import{readFileSync as u8}from"fs";import{createRequire as U1}from"node:module";var SF,vF,fF,j1=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,L1=(vF=(SF=process===null||process===void 0?void 0:process.versions)===null||SF===void 0?void 0:SF.node)!==null&&vF!==void 0?vF:(fF=process===null||process===void 0?void 0:process.version)===null||fF===void 0?void 0:fF.slice(1);if(L1){if(Number(L1.match(/^([^.]+)/)[1])<j1)throw Error(`yargs parser supports a minimum Node.js version of ${j1}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var E8=process?process.env:{},N1=U1?U1(import.meta.url):void 0,I1=new PF({cwd:process.cwd,env:()=>{return E8},format:e6,normalize:D8,resolve:F8,require:(D)=>{if(typeof N1<"u")return N1(D);else if(D.match(/\.json$/))return JSON.parse(u8(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),_0=function(F,u){return I1.parse(F.slice(),u).argv};_0.detailed=function(D,F){return I1.parse(D.slice(),F)};_0.camelCase=cD;_0.decamelize=v0;_0.looksLikeNumber=f0;var kF=_0;import{basename as A8,dirname as G8,extname as H8,relative as q8,resolve as k1,join as _8}from"path";function w1(){if(B8())return 0;return 1}function B8(){return C8()&&!process.defaultApp}function C8(){return!!process.versions.electron}function yF(D){return D.slice(w1()+1)}function T1(){return process.argv[w1()]}import{readFileSync as $8,statSync as X8,writeFile as Z8}from"fs";import{format as Q8}from"util";import{resolve as z8}from"path";var b1={fs:{readFileSync:$8,writeFile:Z8},format:Q8,resolve:z8,exists:(D)=>{try{return X8(D).isFile()}catch(F){return!1}}};var UD;class x1{constructor(D){D=D||{},this.directory=D.directory||"./locales",this.updateFiles=typeof D.updateFiles==="boolean"?D.updateFiles:!0,this.locale=D.locale||"en",this.fallbackToLanguage=typeof D.fallbackToLanguage==="boolean"?D.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...D){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let F=D.shift(),u=function(){};if(typeof D[D.length-1]==="function")u=D.pop();if(u=u||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][F]&&this.updateFiles)this.cache[this.locale][F]=F,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:u});else u();return UD.format.apply(UD.format,[this.cache[this.locale][F]||F].concat(D))}__n(){let D=Array.prototype.slice.call(arguments),F=D.shift(),u=D.shift(),E=D.shift(),B=function(){};if(typeof D[D.length-1]==="function")B=D.pop();if(!this.cache[this.locale])this._readLocaleFile();let C=E===1?F:u;if(this.cache[this.locale][F])C=this.cache[this.locale][F][E===1?"one":"other"];if(!this.cache[this.locale][F]&&this.updateFiles)this.cache[this.locale][F]={one:F,other:u},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:B});else B();let $=[C];if(~C.indexOf("%d"))$.push(E);return UD.format.apply(UD.format,$.concat(D))}setLocale(D){this.locale=D}getLocale(){return this.locale}updateLocale(D){if(!this.cache[this.locale])this._readLocaleFile();for(let F in D)if(Object.prototype.hasOwnProperty.call(D,F))this.cache[this.locale][F]=D[F]}_taggedLiteral(D,...F){let u="";return D.forEach(function(E,B){let C=F[B+1];if(u+=E,typeof C<"u")u+="%s"}),this.__.apply(this,[u].concat([].slice.call(F,1)))}_enqueueWrite(D){if(this.writeQueue.push(D),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let D=this,F=this.writeQueue[0],u=F.directory,E=F.locale,B=F.cb,C=this._resolveLocaleFile(u,E),$=JSON.stringify(this.cache[E],null,2);UD.fs.writeFile(C,$,"utf-8",function(X){if(D.writeQueue.shift(),D.writeQueue.length>0)D._processWriteQueue();B(X)})}_readLocaleFile(){let D={},F=this._resolveLocaleFile(this.directory,this.locale);try{if(UD.fs.readFileSync)D=JSON.parse(UD.fs.readFileSync(F,"utf-8"))}catch(u){if(u instanceof SyntaxError)u.message="syntax error in "+F;if(u.code==="ENOENT")D={};else throw u}this.cache[this.locale]=D}_resolveLocaleFile(D,F){let u=UD.resolve(D,"./",F+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(u)&&~F.lastIndexOf("_")){let E=UD.resolve(D,"./",F.split("_")[0]+".json");if(this._fileExistsSync(E))u=E}return u}_fileExistsSync(D){return UD.exists(D)}}function P1(D,F){UD=F;let u=new x1(D);return{__:u.__.bind(u),__n:u.__n.bind(u),setLocale:u.setLocale.bind(u),getLocale:u.getLocale.bind(u),updateLocale:u.updateLocale.bind(u),locale:u.locale}}var Y8=(D)=>{return P1(D,b1)},S1=Y8;var h1=x0(f1(),1);import{createRequire as M8}from"node:module";import{readFileSync as K8,readdirSync as V8}from"node:fs";var hF=y1(import.meta.url),R8=hF.substring(0,hF.lastIndexOf("node_modules")),U8=M8(import.meta.url),dF={assert:{notStrictEqual:O8,strictEqual:J8},cliui:TF,findUp:bF,getEnv:(D)=>{return process.env[D]},inspect:W8,getProcessArgvBin:T1,mainFilename:R8||process.cwd(),Parser:kF,path:{basename:A8,dirname:G8,extname:H8,relative:q8,resolve:k1,join:_8},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(D,F)=>process.emitWarning(D,F),execPath:()=>process.execPath,exit:(D)=>{process.exit(D)},nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:K8,readdirSync:V8,require:U8,getCallerFile:()=>{let D=h1.default(3);return D.match(/^file:\/\//)?y1(D):D},stringWidth:RD,y18n:S1({directory:k1(hF,"../../../locales"),updateFiles:!1})};function OD(D,F,u,E){u.assert.notStrictEqual(D,F,E)}function pF(D,F){F.assert.strictEqual(typeof D,"string")}function z0(D){return Object.keys(D)}function s(D){return!!D&&!!D.then&&typeof D.then==="function"}class DD extends Error{constructor(D){super(D||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,DD)}}function SD(D){let u=D.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),E=/\.*[\][<>]/g,B=u.shift();if(!B)throw Error(`No command found in: ${D}`);let C={cmd:B.replace(E,""),demanded:[],optional:[]};return u.forEach(($,X)=>{let Q=!1;if($=$.replace(/\s/g,""),/\.+[\]>]/.test($)&&X===u.length-1)Q=!0;if(/^\[/.test($))C.optional.push({cmd:$.replace(E,"").split("|"),variadic:Q});else C.demanded.push({cmd:$.replace(E,"").split("|"),variadic:Q})}),C}var j8=["first","second","third","fourth","fifth","sixth"];function N(D,F,u){function E(){return typeof D==="object"?[{demanded:[],optional:[]},D,F]:[SD(`cmd ${D}`),F,u]}try{let B=0,[C,$,X]=E(),Q=[].slice.call($);while(Q.length&&Q[Q.length-1]===void 0)Q.pop();let z=X||Q.length;if(z<C.demanded.length)throw new DD(`Not enough arguments provided. Expected ${C.demanded.length} but received ${Q.length}.`);let J=C.demanded.length+C.optional.length;if(z>J)throw new DD(`Too many arguments provided. Expected max ${J} but received ${z}.`);C.demanded.forEach((W)=>{let Y=Q.shift(),H=d1(Y);if(W.cmd.filter((q)=>q===H||q==="*").length===0)p1(H,W.cmd,B);B+=1}),C.optional.forEach((W)=>{if(Q.length===0)return;let Y=Q.shift(),H=d1(Y);if(W.cmd.filter((q)=>q===H||q==="*").length===0)p1(H,W.cmd,B);B+=1})}catch(B){console.warn(B.stack)}}function d1(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function p1(D,F,u){throw new DD(`Invalid ${j8[u]||"manyith"} argument. Expected ${F.join(" or ")} but received ${D}.`)}class gF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,F,u=!0,E=!1){if(N("<array|function> [boolean] [boolean] [boolean]",[D,F,u],arguments.length),Array.isArray(D)){for(let B=0;B<D.length;B++){if(typeof D[B]!=="function")throw Error("middleware must be a function");let C=D[B];C.applyBeforeValidation=F,C.global=u}Array.prototype.push.apply(this.globalMiddleware,D)}else if(typeof D==="function"){let B=D;B.applyBeforeValidation=F,B.global=u,B.mutates=E,this.globalMiddleware.push(D)}return this.yargs}addCoerceMiddleware(D,F){let u=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((E)=>{let B=[...u[F]||[],F];if(!E.option)return!0;else return!B.includes(E.option)}),D.option=F,this.addMiddleware(D,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let D=this.frozens.pop();if(D!==void 0)this.globalMiddleware=D}reset(){this.globalMiddleware=this.globalMiddleware.filter((D)=>D.global)}}function g1(D){if(!D)return[];return D.map((F)=>{return F.applyBeforeValidation=!1,F})}function lD(D,F,u,E){return u.reduce((B,C)=>{if(C.applyBeforeValidation!==E)return B;if(C.mutates){if(C.applied)return B;C.applied=!0}if(s(B))return B.then(($)=>Promise.all([$,C($,F)])).then(([$,X])=>Object.assign($,X));else{let $=C(B,F);return s($)?$.then((X)=>Object.assign(B,X)):Object.assign(B,$)}},D)}function oD(D,F,u=(E)=>{throw E}){try{let E=L8(D)?D():D;return s(E)?E.then((B)=>F(B)):F(E)}catch(E){return u(E)}}function L8(D){return typeof D==="function"}var Y0=/(^\*)|(^\$0)/;class c1{constructor(D,F,u,E){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=E,this.usage=D,this.globalMiddleware=u,this.validation=F}addDirectory(D,F,u,E){E=E||{},this.requireCache.add(u);let B=this.shim.path.resolve(this.shim.path.dirname(u),D),C=this.shim.readdirSync(B,{recursive:E.recurse?!0:!1});if(!Array.isArray(E.extensions))E.extensions=["js"];let $=typeof E.visit==="function"?E.visit:(X)=>X;for(let X of C){let Q=X.toString();if(E.exclude){let J=!1;if(typeof E.exclude==="function")J=E.exclude(Q);else J=E.exclude.test(Q);if(J)continue}if(E.include){let J=!1;if(typeof E.include==="function")J=E.include(Q);else J=E.include.test(Q);if(!J)continue}let z=!1;for(let J of E.extensions)if(Q.endsWith(J))z=!0;if(z){let J=this.shim.path.join(B,Q),W=F(J),Y=Object.create(null,Object.getOwnPropertyDescriptors({...W}));if($(Y,J,Q)){if(this.requireCache.has(J))continue;else this.requireCache.add(J);if(!Y.command)Y.command=this.shim.path.basename(J,this.shim.path.extname(J));this.addHandler(Y)}}}}addHandler(D,F,u,E,B,C){let $=[],X=g1(B);if(E=E||(()=>{}),Array.isArray(D))if(N8(D))[D,...$]=D;else for(let Q of D)this.addHandler(Q);else if(w8(D)){let Q=Array.isArray(D.command)||typeof D.command==="string"?D.command:null;if(Q===null)throw Error(`No command name given for module: ${this.shim.inspect(D)}`);if(D.aliases)Q=[].concat(Q).concat(D.aliases);this.addHandler(Q,this.extractDesc(D),D.builder,D.handler,D.middlewares,D.deprecated);return}else if(m1(u)){this.addHandler([D].concat($),F,u.builder,u.handler,u.middlewares,u.deprecated);return}if(typeof D==="string"){let Q=SD(D);$=$.map((W)=>SD(W).cmd);let z=!1,J=[Q.cmd].concat($).filter((W)=>{if(Y0.test(W))return z=!0,!1;return!0});if(J.length===0&&z)J.push("$0");if(z)Q.cmd=J[0],$=J.slice(1),D=D.replace(Y0,Q.cmd);if($.forEach((W)=>{this.aliasMap[W]=Q.cmd}),F!==!1)this.usage.command(D,F,z,$,C);if(this.handlers[Q.cmd]={original:D,description:F,handler:E,builder:u||{},middlewares:X,deprecated:C,demanded:Q.demanded,optional:Q.optional},z)this.defaultCommand=this.handlers[Q.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(D,F,u,E,B,C){let $=this.handlers[D]||this.handlers[this.aliasMap[D]]||this.defaultCommand,X=F.getInternalMethods().getContext(),Q=X.commands.slice(),z=!D;if(D)X.commands.push(D),X.fullCommands.push($.original);let J=this.applyBuilderUpdateUsageAndParse(z,$,F,u.aliases,Q,E,B,C);return s(J)?J.then((W)=>this.applyMiddlewareAndGetResult(z,$,W.innerArgv,X,B,W.aliases,F)):this.applyMiddlewareAndGetResult(z,$,J.innerArgv,X,B,J.aliases,F)}applyBuilderUpdateUsageAndParse(D,F,u,E,B,C,$,X){let Q=F.builder,z=u;if(k0(Q)){u.getInternalMethods().getUsageInstance().freeze();let J=Q(u.getInternalMethods().reset(E),X);if(s(J))return J.then((W)=>{return z=o1(W)?W:u,this.parseAndUpdateUsage(D,F,z,B,C,$)})}else if(I8(Q))u.getInternalMethods().getUsageInstance().freeze(),z=u.getInternalMethods().reset(E),Object.keys(F.builder).forEach((J)=>{z.option(J,Q[J])});return this.parseAndUpdateUsage(D,F,z,B,C,$)}parseAndUpdateUsage(D,F,u,E,B,C){if(D)u.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(u))u.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(E,F),F.description);let $=u.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,B,C);return s($)?$.then((X)=>({aliases:u.parsed.aliases,innerArgv:X})):{aliases:u.parsed.aliases,innerArgv:$}}shouldUpdateUsage(D){return!D.getInternalMethods().getUsageInstance().getUsageDisabled()&&D.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(D,F){let u=Y0.test(F.original)?F.original.replace(Y0,"").trim():F.original,E=D.filter((B)=>{return!Y0.test(B)});return E.push(u),`$0 ${E.join(" ")}`}handleValidationAndGetResult(D,F,u,E,B,C,$,X){if(!C.getInternalMethods().getHasOutput()){let Q=C.getInternalMethods().runValidation(B,X,C.parsed.error,D);u=oD(u,(z)=>{return Q(z),z})}if(F.handler&&!C.getInternalMethods().getHasOutput()){C.getInternalMethods().setHasOutput();let Q=!!C.getOptions().configuration["populate--"];if(C.getInternalMethods().postProcess(u,Q,!1,!1),u=lD(u,C,$,!1),u=oD(u,(z)=>{let J=F.handler(z);return s(J)?J.then(()=>z):z}),!D)C.getInternalMethods().getUsageInstance().cacheHelpMessage();if(s(u)&&!C.getInternalMethods().hasParseCallback())u.catch((z)=>{try{C.getInternalMethods().getUsageInstance().fail(null,z)}catch(J){}})}if(!D)E.commands.pop(),E.fullCommands.pop();return u}applyMiddlewareAndGetResult(D,F,u,E,B,C,$){let X={};if(B)return u;if(!$.getInternalMethods().getHasOutput())X=this.populatePositionals(F,u,E,$);let Q=this.globalMiddleware.getMiddleware().slice(0).concat(F.middlewares),z=lD(u,$,Q,!0);return s(z)?z.then((J)=>this.handleValidationAndGetResult(D,F,J,E,C,$,Q,X)):this.handleValidationAndGetResult(D,F,z,E,C,$,Q,X)}populatePositionals(D,F,u,E){F._=F._.slice(u.commands.length);let B=D.demanded.slice(0),C=D.optional.slice(0),$={};this.validation.positionalCount(B.length,F._.length);while(B.length){let X=B.shift();this.populatePositional(X,F,$)}while(C.length){let X=C.shift();this.populatePositional(X,F,$)}return F._=u.commands.concat(F._.map((X)=>""+X)),this.postProcessPositionals(F,$,this.cmdToParseOptions(D.original),E),$}populatePositional(D,F,u){let E=D.cmd[0];if(D.variadic)u[E]=F._.splice(0).map(String);else if(F._.length)u[E]=[String(F._.shift())]}cmdToParseOptions(D){let F={array:[],default:{},alias:{},demand:{}},u=SD(D);return u.demanded.forEach((E)=>{let[B,...C]=E.cmd;if(E.variadic)F.array.push(B),F.default[B]=[];F.alias[B]=C,F.demand[B]=!0}),u.optional.forEach((E)=>{let[B,...C]=E.cmd;if(E.variadic)F.array.push(B),F.default[B]=[];F.alias[B]=C}),F}postProcessPositionals(D,F,u,E){let B=Object.assign({},E.getOptions());B.default=Object.assign(u.default,B.default);for(let Q of Object.keys(u.alias))B.alias[Q]=(B.alias[Q]||[]).concat(u.alias[Q]);B.array=B.array.concat(u.array),B.config={};let C=[];if(Object.keys(F).forEach((Q)=>{F[Q].map((z)=>{if(B.configuration["unknown-options-as-args"])B.key[Q]=!0;C.push(`--${Q}`),C.push(z)})}),!C.length)return;let $=Object.assign({},B.configuration,{"populate--":!1}),X=this.shim.Parser.detailed(C,Object.assign({},B,{configuration:$}));if(X.error)E.getInternalMethods().getUsageInstance().fail(X.error.message,X.error);else{let Q=Object.keys(F);Object.keys(F).forEach((z)=>{Q.push(...X.aliases[z])}),Object.keys(X.argv).forEach((z)=>{if(Q.includes(z)){if(!F[z])F[z]=X.argv[z];if(!this.isInConfigs(E,z)&&!this.isDefaulted(E,z)&&Object.prototype.hasOwnProperty.call(D,z)&&Object.prototype.hasOwnProperty.call(X.argv,z)&&(Array.isArray(D[z])||Array.isArray(X.argv[z])))D[z]=[].concat(D[z],X.argv[z]);else D[z]=X.argv[z]}})}}isDefaulted(D,F){let{default:u}=D.getOptions();return Object.prototype.hasOwnProperty.call(u,F)||Object.prototype.hasOwnProperty.call(u,this.shim.Parser.camelCase(F))}isInConfigs(D,F){let{configObjects:u}=D.getOptions();return u.some((E)=>Object.prototype.hasOwnProperty.call(E,F))||u.some((E)=>Object.prototype.hasOwnProperty.call(E,this.shim.Parser.camelCase(F)))}runDefaultBuilderOn(D){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(D)){let u=Y0.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");D.getInternalMethods().getUsageInstance().usage(u,this.defaultCommand.description)}let F=this.defaultCommand.builder;if(k0(F))return F(D,!0);else if(!m1(F))Object.keys(F).forEach((u)=>{D.option(u,F[u])});return}extractDesc({describe:D,description:F,desc:u}){for(let E of[D,F,u]){if(typeof E==="string"||E===!1)return E;OD(E,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let D=this.frozens.pop();OD(D,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=D}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function l1(D,F,u,E){return new c1(D,F,u,E)}function m1(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function N8(D){return D.every((F)=>typeof F==="string")}function k0(D){return typeof D==="function"}function I8(D){return typeof D==="object"}function w8(D){return typeof D==="object"&&!Array.isArray(D)}function vD(D={},F=()=>!0){let u={};return z0(D).forEach((E)=>{if(F(E,D[E]))u[E]=D[E]}),u}function fD(D){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((F)=>{let u=F;if(u._handle&&u.isTTY&&typeof u._handle.setBlocking==="function")u._handle.setBlocking(D)})}function T8(D){return typeof D==="boolean"}function i1(D,F){let u=F.y18n.__,E={},B=[];E.failFn=function(V){B.push(V)};let C=null,$=null,X=!0;E.showHelpOnFail=function(V=!0,T){let[y,n]=typeof V==="string"?[!0,V]:[V,T];if(D.getInternalMethods().isGlobalContext())$=n;return C=n,X=y,E};let Q=!1;E.fail=function(V,T){let y=D.getInternalMethods().getLoggerInstance();if(B.length)for(let n=B.length-1;n>=0;--n){let uD=B[n];if(T8(uD)){if(T)throw T;else if(V)throw Error(V)}else uD(V,T,E)}else{if(D.getExitProcess())fD(!0);if(!Q){if(Q=!0,X)D.showHelp("error"),y.error();if(V||T)y.error(V||T);let n=C||$;if(n){if(V||T)y.error("");y.error(n)}}if(T=T||new DD(V),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,T);else throw T}};let z=[],J=!1;E.usage=(L,V)=>{if(L===null)return J=!0,z=[],E;return J=!1,z.push([L,V||""]),E},E.getUsage=()=>{return z},E.getUsageDisabled=()=>{return J},E.getPositionalGroupName=()=>{return u("Positionals:")};let W=[];E.example=(L,V)=>{W.push([L,V||""])};let Y=[];E.command=function(V,T,y,n,uD=!1){if(y)Y=Y.map((o)=>{return o[2]=!1,o});Y.push([V,T||"",y,n,uD])},E.getCommands=()=>Y;let H={};E.describe=function(V,T){if(Array.isArray(V))V.forEach((y)=>{E.describe(y,T)});else if(typeof V==="object")Object.keys(V).forEach((y)=>{E.describe(y,V[y])});else H[V]=T},E.getDescriptions=()=>H;let _=[];E.epilog=(L)=>{_.push(L)};let q=!1,P;E.wrap=(L)=>{q=!0,P=L},E.getWrap=()=>{if(F.getEnv("YARGS_DISABLE_WRAP"))return null;if(!q)P=l(),q=!0;return P};let c="__yargsString__:";E.deferY18nLookup=(L)=>c+L,E.help=function(){if(d)return d;QD();let V=D.customScriptName?D.$0:F.path.basename(D.$0),T=D.getDemandedOptions(),y=D.getDemandedCommands(),n=D.getDeprecatedOptions(),uD=D.getGroups(),o=D.getOptions(),ED=[];ED=ED.concat(Object.keys(H)),ED=ED.concat(Object.keys(T)),ED=ED.concat(Object.keys(y)),ED=ED.concat(Object.keys(o.default)),ED=ED.filter(j),ED=Object.keys(ED.reduce((f,i)=>{if(i!=="_")f[i]=!0;return f},{}));let PD=E.getWrap(),t=F.cliui({width:PD,wrap:!!PD});if(!J){if(z.length)z.forEach((f)=>{if(t.div({text:`${f[0].replace(/\$0/g,V)}`}),f[1])t.div({text:`${f[1]}`,padding:[1,0,0,0]})}),t.div();else if(Y.length){let f=null;if(y._)f=`${V} <${u("command")}>
|
|
26
|
-
`;else f=`${
|
|
27
|
-
`;t.div(`${f}`)}}if(
|
|
25
|
+
`)}function TF(D){return $1(D,{stringWidth:RD,stripAnsi:mD,wrap:wF})}import{dirname as K1,resolve as R1}from"path";import{readdirSync as t6,statSync as s6}from"fs";function bF(D,F){let u=R1(".",D),E;if(!s6(u).isDirectory())u=K1(u);while(!0){if(E=F(u,t6(u)),E)return R1(u,E);if(u=K1(E=u),E===u)break}}import{inspect as W8}from"util";import{fileURLToPath as d1}from"url";import{format as e6}from"util";import{normalize as D8,resolve as F8}from"path";function cD(D){if(!(D!==D.toLowerCase()&&D!==D.toUpperCase()))D=D.toLowerCase();if(D.indexOf("-")===-1&&D.indexOf("_")===-1)return D;else{let u="",E=!1,B=D.match(/^-+/);for(let C=B?B[0].length:0;C<D.length;C++){let $=D.charAt(C);if(E)E=!1,$=$.toUpperCase();if(C!==0&&($==="-"||$==="_"))E=!0;else if($!=="-"&&$!=="_")u+=$}return u}}function v0(D,F){let u=D.toLowerCase();F=F||"-";let E="";for(let B=0;B<D.length;B++){let C=u.charAt(B),$=D.charAt(B);if(C!==$&&B>0)E+=`${F}${u.charAt(B)}`;else E+=$}return E}function f0(D){if(D===null||D===void 0)return!1;if(typeof D==="number")return!0;if(/^0x[0-9a-f]+$/i.test(D))return!0;if(/^0[^.]/.test(D))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(D)}function U1(D){if(Array.isArray(D))return D.map(($)=>typeof $!=="string"?$+"":$);D=D.trim();let F=0,u=null,E=null,B=null,C=[];for(let $=0;$<D.length;$++){if(u=E,E=D.charAt($),E===" "&&!B){if(u!==" ")F++;continue}if(E===B)B=null;else if((E==="'"||E==='"')&&!B)B=E;if(!C[F])C[F]="";C[F]+=E}return C}var qD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(qD||(qD={}));var xD;class PF{constructor(D){xD=D}parse(D,F){let u=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},F),E=U1(D),B=typeof D==="string",C=r6(Object.assign(Object.create(null),u.alias)),$=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},u.configuration),X=Object.assign(Object.create(null),u.default),Q=u.configObjects||[],z=u.envPrefix,O=$["populate--"],W=O?"--":"_",J=Object.create(null),A=Object.create(null),_=u.__||xD.format,q={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},P=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,c=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(u.array||[]).filter(Boolean).forEach(function(Y){let H=typeof Y==="object"?Y.key:Y,V=Object.keys(Y).map(function(M){return{boolean:"bools",string:"strings",number:"numbers"}[M]}).filter(Boolean).pop();if(V)q[V][H]=!0;q.arrays[H]=!0,q.keys.push(H)}),[].concat(u.boolean||[]).filter(Boolean).forEach(function(Y){q.bools[Y]=!0,q.keys.push(Y)}),[].concat(u.string||[]).filter(Boolean).forEach(function(Y){q.strings[Y]=!0,q.keys.push(Y)}),[].concat(u.number||[]).filter(Boolean).forEach(function(Y){q.numbers[Y]=!0,q.keys.push(Y)}),[].concat(u.count||[]).filter(Boolean).forEach(function(Y){q.counts[Y]=!0,q.keys.push(Y)}),[].concat(u.normalize||[]).filter(Boolean).forEach(function(Y){q.normalize[Y]=!0,q.keys.push(Y)}),typeof u.narg==="object")Object.entries(u.narg).forEach(([Y,H])=>{if(typeof H==="number")q.nargs[Y]=H,q.keys.push(Y)});if(typeof u.coerce==="object")Object.entries(u.coerce).forEach(([Y,H])=>{if(typeof H==="function")q.coercions[Y]=H,q.keys.push(Y)});if(typeof u.config<"u"){if(Array.isArray(u.config)||typeof u.config==="string")[].concat(u.config).filter(Boolean).forEach(function(Y){q.configs[Y]=!0});else if(typeof u.config==="object")Object.entries(u.config).forEach(([Y,H])=>{if(typeof H==="boolean"||typeof H==="function")q.configs[Y]=H})}H0(u.key,C,u.default,q.arrays),Object.keys(X).forEach(function(Y){(q.aliases[Y]||[]).forEach(function(H){X[H]=X[Y]})});let p=null;VF();let QD=[],d=Object.assign(Object.create(null),{_:[]}),U={};for(let Y=0;Y<E.length;Y++){let H=E[Y],V=H.replace(/^-{3,}/,"---"),M,G,w,R,x,XD;if(H!=="--"&&/^-/.test(H)&&i(H))j(H);else if(V.match(/^---+(=|$)/)){j(H);continue}else if(H.match(/^--.+=/)||!$["short-option-groups"]&&H.match(/^-.+=/)){if(R=H.match(/^--?([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)if(v(R[1],q.arrays))Y=l(Y,R[1],E,R[2]);else if(v(R[1],q.nargs)!==!1)Y=S(Y,R[1],E,R[2]);else g(R[1],R[2],!0)}else if(H.match(c)&&$["boolean-negation"]){if(R=H.match(c),R!==null&&Array.isArray(R)&&R.length>=2)G=R[1],g(G,v(G,q.arrays)?[!1]:!1)}else if(H.match(/^--.+/)||!$["short-option-groups"]&&H.match(/^-[^-]+/)){if(R=H.match(/^--?(.+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(G=R[1],v(G,q.arrays))Y=l(Y,G,E);else if(v(G,q.nargs)!==!1)Y=S(Y,G,E);else if(x=E[Y+1],x!==void 0&&(!x.match(/^-/)||x.match(P))&&!v(G,q.bools)&&!v(G,q.counts))g(G,x),Y++;else if(/^(true|false)$/.test(x))g(G,x),Y++;else g(G,m(G))}else if(H.match(/^-.\..+=/)){if(R=H.match(/^-([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)g(R[1],R[2])}else if(H.match(/^-.\..+/)&&!H.match(P)){if(x=E[Y+1],R=H.match(/^-(.\..+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(G=R[1],x!==void 0&&!x.match(/^-/)&&!v(G,q.bools)&&!v(G,q.counts))g(G,x),Y++;else g(G,m(G))}else if(H.match(/^-[^-]+/)&&!H.match(P)){w=H.slice(1,-1).split(""),M=!1;for(let YD=0;YD<w.length;YD++){if(x=H.slice(YD+2),w[YD+1]&&w[YD+1]==="="){if(XD=H.slice(YD+3),G=w[YD],v(G,q.arrays))Y=l(Y,G,E,XD);else if(v(G,q.nargs)!==!1)Y=S(Y,G,E,XD);else g(G,XD);M=!0;break}if(x==="-"){g(w[YD],x);continue}if(/[A-Za-z]/.test(w[YD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(x)&&v(x,q.bools)===!1){g(w[YD],x),M=!0;break}if(w[YD+1]&&w[YD+1].match(/\W/)){g(w[YD],x),M=!0;break}else g(w[YD],m(w[YD]))}if(G=H.slice(-1)[0],!M&&G!=="-")if(v(G,q.arrays))Y=l(Y,G,E);else if(v(G,q.nargs)!==!1)Y=S(Y,G,E);else if(x=E[Y+1],x!==void 0&&(!/^(-|--)[^-]/.test(x)||x.match(P))&&!v(G,q.bools)&&!v(G,q.counts))g(G,x),Y++;else if(/^(true|false)$/.test(x))g(G,x),Y++;else g(G,m(G))}else if(H.match(/^-[0-9]$/)&&H.match(P)&&v(H.slice(1),q.bools))G=H.slice(1),g(G,m(G));else if(H==="--"){QD=E.slice(Y+1);break}else if($["halt-at-non-option"]){QD=E.slice(Y);break}else j(H)}if(uD(d,!0),uD(d,!1),T(d),n(),PD(d,q.aliases,X,!0),o(d),$["set-placeholder-key"])ED(d);if(Object.keys(q.counts).forEach(function(Y){if(!t(d,Y.split(".")))g(Y,0)}),O&&QD.length)d[W]=[];if(QD.forEach(function(Y){d[W].push(Y)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(d).filter((Y)=>Y!=="--"&&Y.includes("-")).forEach((Y)=>{delete d[Y]});if($["strip-aliased"])[].concat(...Object.keys(C).map((Y)=>C[Y])).forEach((Y)=>{if($["camel-case-expansion"]&&Y.includes("-"))delete d[Y.split(".").map((H)=>cD(H)).join(".")];delete d[Y]});function j(Y){let H=K("_",Y);if(typeof H==="string"||typeof H==="number")d._.push(H)}function S(Y,H,V,M){let G,w=v(H,q.nargs);if(w=typeof w!=="number"||isNaN(w)?1:w,w===0){if(!CD(M))p=Error(_("Argument unexpected for: %s",H));return g(H,m(H)),Y}let R=CD(M)?0:1;if($["nargs-eats-options"]){if(V.length-(Y+1)+R<w)p=Error(_("Not enough arguments following: %s",H));R=w}else{for(G=Y+1;G<V.length;G++)if(!V[G].match(/^-[^0-9]/)||V[G].match(P)||i(V[G]))R++;else break;if(R<w)p=Error(_("Not enough arguments following: %s",H))}let x=Math.min(R,w);if(!CD(M)&&x>0)g(H,M),x--;for(G=Y+1;G<x+Y+1;G++)g(H,V[G]);return Y+x}function l(Y,H,V,M){let G=[],w=M||V[Y+1],R=v(H,q.nargs);if(v(H,q.bools)&&!/^(true|false)$/.test(w))G.push(!0);else if(CD(w)||CD(M)&&/^-/.test(w)&&!P.test(w)&&!i(w)){if(X[H]!==void 0){let x=X[H];G=Array.isArray(x)?x:[x]}}else{if(!CD(M))G.push(N(H,M,!0));for(let x=Y+1;x<V.length;x++){if(!$["greedy-arrays"]&&G.length>0||R&&typeof R==="number"&&G.length>=R)break;if(w=V[x],/^-/.test(w)&&!P.test(w)&&!i(w))break;Y=x,G.push(N(H,w,B))}}if(typeof R==="number"&&(R&&G.length<R||isNaN(R)&&G.length===0))p=Error(_("Not enough arguments following: %s",H));return g(H,G),Y}function g(Y,H,V=B){if(/-/.test(Y)&&$["camel-case-expansion"]){let w=Y.split(".").map(function(R){return cD(R)}).join(".");LD(Y,w)}let M=N(Y,H,V),G=Y.split(".");if(bD(d,G,M),q.aliases[Y])q.aliases[Y].forEach(function(w){let R=w.split(".");bD(d,R,M)});if(G.length>1&&$["dot-notation"])(q.aliases[G[0]]||[]).forEach(function(w){let R=w.split("."),x=[].concat(G);if(x.shift(),R=R.concat(x),!(q.aliases[Y]||[]).includes(R.join(".")))bD(d,R,M)});if(v(Y,q.normalize)&&!v(Y,q.arrays))[Y].concat(q.aliases[Y]||[]).forEach(function(R){Object.defineProperty(U,R,{enumerable:!0,get(){return H},set(x){H=typeof x==="string"?xD.normalize(x):x}})})}function LD(Y,H){if(!(q.aliases[Y]&&q.aliases[Y].length))q.aliases[Y]=[H],J[H]=!0;if(!(q.aliases[H]&&q.aliases[H].length))LD(H,Y)}function N(Y,H,V){if(V)H=a6(H);if(v(Y,q.bools)||v(Y,q.counts)){if(typeof H==="string")H=H==="true"}let M=Array.isArray(H)?H.map(function(G){return K(Y,G)}):K(Y,H);if(v(Y,q.counts)&&(CD(M)||typeof M==="boolean"))M=xF();if(v(Y,q.normalize)&&v(Y,q.arrays))if(Array.isArray(H))M=H.map((G)=>{return xD.normalize(G)});else M=xD.normalize(H);return M}function K(Y,H){if(!$["parse-positional-numbers"]&&Y==="_")return H;if(!v(Y,q.strings)&&!v(Y,q.bools)&&!Array.isArray(H)){if(f0(H)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${H}`)))||!CD(H)&&v(Y,q.numbers))H=Number(H)}return H}function T(Y){let H=Object.create(null);PD(H,q.aliases,X),Object.keys(q.configs).forEach(function(V){let M=Y[V]||H[V];if(M)try{let G=null,w=xD.resolve(xD.cwd(),M),R=q.configs[V];if(typeof R==="function"){try{G=R(w)}catch(x){G=x}if(G instanceof Error){p=G;return}}else G=xD.require(w);y(G)}catch(G){if(G.name==="PermissionDenied")p=G;else if(Y[V])p=Error(_("Invalid JSON config file: %s",M))}})}function y(Y,H){Object.keys(Y).forEach(function(V){let M=Y[V],G=H?H+"."+V:V;if(typeof M==="object"&&M!==null&&!Array.isArray(M)&&$["dot-notation"])y(M,G);else if(!t(d,G.split("."))||v(G,q.arrays)&&$["combine-arrays"])g(G,M)})}function n(){if(typeof Q<"u")Q.forEach(function(Y){y(Y)})}function uD(Y,H){if(typeof z>"u")return;let V=typeof z==="string"?z:"",M=xD.env();Object.keys(M).forEach(function(G){if(V===""||G.lastIndexOf(V,0)===0){let w=G.split("__").map(function(R,x){if(x===0)R=R.substring(V.length);return cD(R)});if((H&&q.configs[w.join(".")]||!H)&&!t(Y,w))g(w.join("."),M[G])}})}function o(Y){let H,V=new Set;Object.keys(Y).forEach(function(M){if(!V.has(M)){if(H=v(M,q.coercions),typeof H==="function")try{let G=K(M,H(Y[M]));[].concat(q.aliases[M]||[],M).forEach((w)=>{V.add(w),Y[w]=G})}catch(G){p=G}}})}function ED(Y){return q.keys.forEach((H)=>{if(~H.indexOf("."))return;if(typeof Y[H]>"u")Y[H]=void 0}),Y}function PD(Y,H,V,M=!1){Object.keys(V).forEach(function(G){if(!t(Y,G.split("."))){if(bD(Y,G.split("."),V[G]),M)A[G]=!0;(H[G]||[]).forEach(function(w){if(t(Y,w.split(".")))return;bD(Y,w.split("."),V[G])})}})}function t(Y,H){let V=Y;if(!$["dot-notation"])H=[H.join(".")];H.slice(0,-1).forEach(function(G){V=V[G]||{}});let M=H[H.length-1];if(typeof V!=="object")return!1;else return M in V}function bD(Y,H,V){let M=Y;if(!$["dot-notation"])H=[H.join(".")];H.slice(0,-1).forEach(function(XD){if(XD=j1(XD),typeof M==="object"&&M[XD]===void 0)M[XD]={};if(typeof M[XD]!=="object"||Array.isArray(M[XD])){if(Array.isArray(M[XD]))M[XD].push({});else M[XD]=[M[XD],{}];M=M[XD][M[XD].length-1]}else M=M[XD]});let G=j1(H[H.length-1]),w=v(H.join("."),q.arrays),R=Array.isArray(V),x=$["duplicate-arguments-array"];if(!x&&v(G,q.nargs)){if(x=!0,!CD(M[G])&&q.nargs[G]===1||Array.isArray(M[G])&&M[G].length===q.nargs[G])M[G]=void 0}if(V===xF())M[G]=xF(M[G]);else if(Array.isArray(M[G]))if(x&&w&&R)M[G]=$["flatten-duplicate-arrays"]?M[G].concat(V):(Array.isArray(M[G][0])?M[G]:[M[G]]).concat([V]);else if(!x&&Boolean(w)===Boolean(R))M[G]=V;else M[G]=M[G].concat([V]);else if(M[G]===void 0&&w)M[G]=R?V:[V];else if(x&&!(M[G]===void 0||v(G,q.counts)||v(G,q.bools)))M[G]=[M[G],V];else M[G]=V}function H0(...Y){Y.forEach(function(H){Object.keys(H||{}).forEach(function(V){if(q.aliases[V])return;q.aliases[V]=[].concat(C[V]||[]),q.aliases[V].concat(V).forEach(function(M){if(/-/.test(M)&&$["camel-case-expansion"]){let G=cD(M);if(G!==V&&q.aliases[V].indexOf(G)===-1)q.aliases[V].push(G),J[G]=!0}}),q.aliases[V].concat(V).forEach(function(M){if(M.length>1&&/[A-Z]/.test(M)&&$["camel-case-expansion"]){let G=v0(M,"-");if(G!==V&&q.aliases[V].indexOf(G)===-1)q.aliases[V].push(G),J[G]=!0}}),q.aliases[V].forEach(function(M){q.aliases[M]=[V].concat(q.aliases[V].filter(function(G){return M!==G}))})})})}function v(Y,H){let V=[].concat(q.aliases[Y]||[],Y),M=Object.keys(H),G=V.find((w)=>M.includes(w));return G?H[G]:!1}function Q0(Y){let H=Object.keys(q);return[].concat(H.map((M)=>q[M])).some(function(M){return Array.isArray(M)?M.includes(Y):M[Y]})}function e2(Y,...H){return[].concat(...H).some(function(M){let G=Y.match(M);return G&&Q0(G[1])})}function f(Y){if(Y.match(P)||!Y.match(/^-[^-]+/))return!1;let H=!0,V,M=Y.slice(1).split("");for(let G=0;G<M.length;G++){if(V=Y.slice(G+2),!Q0(M[G])){H=!1;break}if(M[G+1]&&M[G+1]==="="||V==="-"||/[A-Za-z]/.test(M[G])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(V)||M[G+1]&&M[G+1].match(/\W/))break}return H}function i(Y){return $["unknown-options-as-args"]&&BD(Y)}function BD(Y){if(Y=Y.replace(/^-{3,}/,"--"),Y.match(P))return!1;if(f(Y))return!1;return!e2(Y,/^-+([^=]+?)=[\s\S]*$/,c,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function m(Y){if(!v(Y,q.bools)&&!v(Y,q.counts)&&`${Y}`in X)return X[Y];else return zD(e(Y))}function zD(Y){return{[qD.BOOLEAN]:!0,[qD.STRING]:"",[qD.NUMBER]:void 0,[qD.ARRAY]:[]}[Y]}function e(Y){let H=qD.BOOLEAN;if(v(Y,q.strings))H=qD.STRING;else if(v(Y,q.numbers))H=qD.NUMBER;else if(v(Y,q.bools))H=qD.BOOLEAN;else if(v(Y,q.arrays))H=qD.ARRAY;return H}function CD(Y){return Y===void 0}function VF(){Object.keys(q.counts).find((Y)=>{if(v(Y,q.arrays))return p=Error(_("Invalid configuration: %s, opts.count excludes opts.array.",Y)),!0;else if(v(Y,q.nargs))return p=Error(_("Invalid configuration: %s, opts.count excludes opts.narg.",Y)),!0;return!1})}return{aliases:Object.assign({},q.aliases),argv:Object.assign(U,d),configuration:$,defaulted:Object.assign({},A),error:p,newAliases:Object.assign({},J)}}}function r6(D){let F=[],u=Object.create(null),E=!0;Object.keys(D).forEach(function(B){F.push([].concat(D[B],B))});while(E){E=!1;for(let B=0;B<F.length;B++)for(let C=B+1;C<F.length;C++)if(F[B].filter(function(X){return F[C].indexOf(X)!==-1}).length){F[B]=F[B].concat(F[C]),F.splice(C,1),E=!0;break}}return F.forEach(function(B){B=B.filter(function($,X,Q){return Q.indexOf($)===X});let C=B.pop();if(C!==void 0&&typeof C==="string")u[C]=B}),u}function xF(D){return D!==void 0?D+1:1}function j1(D){if(D==="__proto__")return"___proto___";return D}function a6(D){return typeof D==="string"&&(D[0]==="'"||D[0]==='"')&&D[D.length-1]===D[0]?D.substring(1,D.length-1):D}import{readFileSync as u8}from"fs";import{createRequire as N1}from"node:module";var SF,vF,fF,L1=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,I1=(vF=(SF=process===null||process===void 0?void 0:process.versions)===null||SF===void 0?void 0:SF.node)!==null&&vF!==void 0?vF:(fF=process===null||process===void 0?void 0:process.version)===null||fF===void 0?void 0:fF.slice(1);if(I1){if(Number(I1.match(/^([^.]+)/)[1])<L1)throw Error(`yargs parser supports a minimum Node.js version of ${L1}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var E8=process?process.env:{},w1=N1?N1(import.meta.url):void 0,T1=new PF({cwd:process.cwd,env:()=>{return E8},format:e6,normalize:D8,resolve:F8,require:(D)=>{if(typeof w1<"u")return w1(D);else if(D.match(/\.json$/))return JSON.parse(u8(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),_0=function(F,u){return T1.parse(F.slice(),u).argv};_0.detailed=function(D,F){return T1.parse(D.slice(),F)};_0.camelCase=cD;_0.decamelize=v0;_0.looksLikeNumber=f0;var kF=_0;import{basename as A8,dirname as G8,extname as H8,relative as q8,resolve as h1,join as _8}from"path";function b1(){if(B8())return 0;return 1}function B8(){return C8()&&!process.defaultApp}function C8(){return!!process.versions.electron}function yF(D){return D.slice(b1()+1)}function x1(){return process.argv[b1()]}import{readFileSync as $8,statSync as X8,writeFile as Z8}from"fs";import{format as Q8}from"util";import{resolve as z8}from"path";var P1={fs:{readFileSync:$8,writeFile:Z8},format:Q8,resolve:z8,exists:(D)=>{try{return X8(D).isFile()}catch(F){return!1}}};var UD;class S1{constructor(D){D=D||{},this.directory=D.directory||"./locales",this.updateFiles=typeof D.updateFiles==="boolean"?D.updateFiles:!0,this.locale=D.locale||"en",this.fallbackToLanguage=typeof D.fallbackToLanguage==="boolean"?D.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...D){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let F=D.shift(),u=function(){};if(typeof D[D.length-1]==="function")u=D.pop();if(u=u||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][F]&&this.updateFiles)this.cache[this.locale][F]=F,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:u});else u();return UD.format.apply(UD.format,[this.cache[this.locale][F]||F].concat(D))}__n(){let D=Array.prototype.slice.call(arguments),F=D.shift(),u=D.shift(),E=D.shift(),B=function(){};if(typeof D[D.length-1]==="function")B=D.pop();if(!this.cache[this.locale])this._readLocaleFile();let C=E===1?F:u;if(this.cache[this.locale][F])C=this.cache[this.locale][F][E===1?"one":"other"];if(!this.cache[this.locale][F]&&this.updateFiles)this.cache[this.locale][F]={one:F,other:u},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:B});else B();let $=[C];if(~C.indexOf("%d"))$.push(E);return UD.format.apply(UD.format,$.concat(D))}setLocale(D){this.locale=D}getLocale(){return this.locale}updateLocale(D){if(!this.cache[this.locale])this._readLocaleFile();for(let F in D)if(Object.prototype.hasOwnProperty.call(D,F))this.cache[this.locale][F]=D[F]}_taggedLiteral(D,...F){let u="";return D.forEach(function(E,B){let C=F[B+1];if(u+=E,typeof C<"u")u+="%s"}),this.__.apply(this,[u].concat([].slice.call(F,1)))}_enqueueWrite(D){if(this.writeQueue.push(D),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let D=this,F=this.writeQueue[0],u=F.directory,E=F.locale,B=F.cb,C=this._resolveLocaleFile(u,E),$=JSON.stringify(this.cache[E],null,2);UD.fs.writeFile(C,$,"utf-8",function(X){if(D.writeQueue.shift(),D.writeQueue.length>0)D._processWriteQueue();B(X)})}_readLocaleFile(){let D={},F=this._resolveLocaleFile(this.directory,this.locale);try{if(UD.fs.readFileSync)D=JSON.parse(UD.fs.readFileSync(F,"utf-8"))}catch(u){if(u instanceof SyntaxError)u.message="syntax error in "+F;if(u.code==="ENOENT")D={};else throw u}this.cache[this.locale]=D}_resolveLocaleFile(D,F){let u=UD.resolve(D,"./",F+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(u)&&~F.lastIndexOf("_")){let E=UD.resolve(D,"./",F.split("_")[0]+".json");if(this._fileExistsSync(E))u=E}return u}_fileExistsSync(D){return UD.exists(D)}}function v1(D,F){UD=F;let u=new S1(D);return{__:u.__.bind(u),__n:u.__n.bind(u),setLocale:u.setLocale.bind(u),getLocale:u.getLocale.bind(u),updateLocale:u.updateLocale.bind(u),locale:u.locale}}var Y8=(D)=>{return v1(D,P1)},f1=Y8;var p1=x0(y1(),1);import{createRequire as M8}from"node:module";import{readFileSync as V8,readdirSync as K8}from"node:fs";var hF=d1(import.meta.url),R8=hF.substring(0,hF.lastIndexOf("node_modules")),U8=M8(import.meta.url),dF={assert:{notStrictEqual:O8,strictEqual:J8},cliui:TF,findUp:bF,getEnv:(D)=>{return process.env[D]},inspect:W8,getProcessArgvBin:x1,mainFilename:R8||process.cwd(),Parser:kF,path:{basename:A8,dirname:G8,extname:H8,relative:q8,resolve:h1,join:_8},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(D,F)=>process.emitWarning(D,F),execPath:()=>process.execPath,exit:(D)=>{process.exit(D)},nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:V8,readdirSync:K8,require:U8,getCallerFile:()=>{let D=p1.default(3);return D.match(/^file:\/\//)?d1(D):D},stringWidth:RD,y18n:f1({directory:h1(hF,"../../../locales"),updateFiles:!1})};function OD(D,F,u,E){u.assert.notStrictEqual(D,F,E)}function pF(D,F){F.assert.strictEqual(typeof D,"string")}function z0(D){return Object.keys(D)}function s(D){return!!D&&!!D.then&&typeof D.then==="function"}class DD extends Error{constructor(D){super(D||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,DD)}}function SD(D){let u=D.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),E=/\.*[\][<>]/g,B=u.shift();if(!B)throw Error(`No command found in: ${D}`);let C={cmd:B.replace(E,""),demanded:[],optional:[]};return u.forEach(($,X)=>{let Q=!1;if($=$.replace(/\s/g,""),/\.+[\]>]/.test($)&&X===u.length-1)Q=!0;if(/^\[/.test($))C.optional.push({cmd:$.replace(E,"").split("|"),variadic:Q});else C.demanded.push({cmd:$.replace(E,"").split("|"),variadic:Q})}),C}var j8=["first","second","third","fourth","fifth","sixth"];function L(D,F,u){function E(){return typeof D==="object"?[{demanded:[],optional:[]},D,F]:[SD(`cmd ${D}`),F,u]}try{let B=0,[C,$,X]=E(),Q=[].slice.call($);while(Q.length&&Q[Q.length-1]===void 0)Q.pop();let z=X||Q.length;if(z<C.demanded.length)throw new DD(`Not enough arguments provided. Expected ${C.demanded.length} but received ${Q.length}.`);let O=C.demanded.length+C.optional.length;if(z>O)throw new DD(`Too many arguments provided. Expected max ${O} but received ${z}.`);C.demanded.forEach((W)=>{let J=Q.shift(),A=g1(J);if(W.cmd.filter((q)=>q===A||q==="*").length===0)m1(A,W.cmd,B);B+=1}),C.optional.forEach((W)=>{if(Q.length===0)return;let J=Q.shift(),A=g1(J);if(W.cmd.filter((q)=>q===A||q==="*").length===0)m1(A,W.cmd,B);B+=1})}catch(B){console.warn(B.stack)}}function g1(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function m1(D,F,u){throw new DD(`Invalid ${j8[u]||"manyith"} argument. Expected ${F.join(" or ")} but received ${D}.`)}class gF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,F,u=!0,E=!1){if(L("<array|function> [boolean] [boolean] [boolean]",[D,F,u],arguments.length),Array.isArray(D)){for(let B=0;B<D.length;B++){if(typeof D[B]!=="function")throw Error("middleware must be a function");let C=D[B];C.applyBeforeValidation=F,C.global=u}Array.prototype.push.apply(this.globalMiddleware,D)}else if(typeof D==="function"){let B=D;B.applyBeforeValidation=F,B.global=u,B.mutates=E,this.globalMiddleware.push(D)}return this.yargs}addCoerceMiddleware(D,F){let u=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((E)=>{let B=[...u[F]||[],F];if(!E.option)return!0;else return!B.includes(E.option)}),D.option=F,this.addMiddleware(D,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let D=this.frozens.pop();if(D!==void 0)this.globalMiddleware=D}reset(){this.globalMiddleware=this.globalMiddleware.filter((D)=>D.global)}}function c1(D){if(!D)return[];return D.map((F)=>{return F.applyBeforeValidation=!1,F})}function lD(D,F,u,E){return u.reduce((B,C)=>{if(C.applyBeforeValidation!==E)return B;if(C.mutates){if(C.applied)return B;C.applied=!0}if(s(B))return B.then(($)=>Promise.all([$,C($,F)])).then(([$,X])=>Object.assign($,X));else{let $=C(B,F);return s($)?$.then((X)=>Object.assign(B,X)):Object.assign(B,$)}},D)}function oD(D,F,u=(E)=>{throw E}){try{let E=N8(D)?D():D;return s(E)?E.then((B)=>F(B)):F(E)}catch(E){return u(E)}}function N8(D){return typeof D==="function"}var Y0=/(^\*)|(^\$0)/;class o1{constructor(D,F,u,E){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=E,this.usage=D,this.globalMiddleware=u,this.validation=F}addDirectory(D,F,u,E){E=E||{},this.requireCache.add(u);let B=this.shim.path.resolve(this.shim.path.dirname(u),D),C=this.shim.readdirSync(B,{recursive:E.recurse?!0:!1});if(!Array.isArray(E.extensions))E.extensions=["js"];let $=typeof E.visit==="function"?E.visit:(X)=>X;for(let X of C){let Q=X.toString();if(E.exclude){let O=!1;if(typeof E.exclude==="function")O=E.exclude(Q);else O=E.exclude.test(Q);if(O)continue}if(E.include){let O=!1;if(typeof E.include==="function")O=E.include(Q);else O=E.include.test(Q);if(!O)continue}let z=!1;for(let O of E.extensions)if(Q.endsWith(O))z=!0;if(z){let O=this.shim.path.join(B,Q),W=F(O),J=Object.create(null,Object.getOwnPropertyDescriptors({...W}));if($(J,O,Q)){if(this.requireCache.has(O))continue;else this.requireCache.add(O);if(!J.command)J.command=this.shim.path.basename(O,this.shim.path.extname(O));this.addHandler(J)}}}}addHandler(D,F,u,E,B,C){let $=[],X=c1(B);if(E=E||(()=>{}),Array.isArray(D))if(L8(D))[D,...$]=D;else for(let Q of D)this.addHandler(Q);else if(w8(D)){let Q=Array.isArray(D.command)||typeof D.command==="string"?D.command:null;if(Q===null)throw Error(`No command name given for module: ${this.shim.inspect(D)}`);if(D.aliases)Q=[].concat(Q).concat(D.aliases);this.addHandler(Q,this.extractDesc(D),D.builder,D.handler,D.middlewares,D.deprecated);return}else if(l1(u)){this.addHandler([D].concat($),F,u.builder,u.handler,u.middlewares,u.deprecated);return}if(typeof D==="string"){let Q=SD(D);$=$.map((W)=>SD(W).cmd);let z=!1,O=[Q.cmd].concat($).filter((W)=>{if(Y0.test(W))return z=!0,!1;return!0});if(O.length===0&&z)O.push("$0");if(z)Q.cmd=O[0],$=O.slice(1),D=D.replace(Y0,Q.cmd);if($.forEach((W)=>{this.aliasMap[W]=Q.cmd}),F!==!1)this.usage.command(D,F,z,$,C);if(this.handlers[Q.cmd]={original:D,description:F,handler:E,builder:u||{},middlewares:X,deprecated:C,demanded:Q.demanded,optional:Q.optional},z)this.defaultCommand=this.handlers[Q.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(D,F,u,E,B,C){let $=this.handlers[D]||this.handlers[this.aliasMap[D]]||this.defaultCommand,X=F.getInternalMethods().getContext(),Q=X.commands.slice(),z=!D;if(D)X.commands.push(D),X.fullCommands.push($.original);let O=this.applyBuilderUpdateUsageAndParse(z,$,F,u.aliases,Q,E,B,C);return s(O)?O.then((W)=>this.applyMiddlewareAndGetResult(z,$,W.innerArgv,X,B,W.aliases,F)):this.applyMiddlewareAndGetResult(z,$,O.innerArgv,X,B,O.aliases,F)}applyBuilderUpdateUsageAndParse(D,F,u,E,B,C,$,X){let Q=F.builder,z=u;if(k0(Q)){u.getInternalMethods().getUsageInstance().freeze();let O=Q(u.getInternalMethods().reset(E),X);if(s(O))return O.then((W)=>{return z=i1(W)?W:u,this.parseAndUpdateUsage(D,F,z,B,C,$)})}else if(I8(Q))u.getInternalMethods().getUsageInstance().freeze(),z=u.getInternalMethods().reset(E),Object.keys(F.builder).forEach((O)=>{z.option(O,Q[O])});return this.parseAndUpdateUsage(D,F,z,B,C,$)}parseAndUpdateUsage(D,F,u,E,B,C){if(D)u.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(u))u.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(E,F),F.description);let $=u.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,B,C);return s($)?$.then((X)=>({aliases:u.parsed.aliases,innerArgv:X})):{aliases:u.parsed.aliases,innerArgv:$}}shouldUpdateUsage(D){return!D.getInternalMethods().getUsageInstance().getUsageDisabled()&&D.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(D,F){let u=Y0.test(F.original)?F.original.replace(Y0,"").trim():F.original,E=D.filter((B)=>{return!Y0.test(B)});return E.push(u),`$0 ${E.join(" ")}`}handleValidationAndGetResult(D,F,u,E,B,C,$,X){if(!C.getInternalMethods().getHasOutput()){let Q=C.getInternalMethods().runValidation(B,X,C.parsed.error,D);u=oD(u,(z)=>{return Q(z),z})}if(F.handler&&!C.getInternalMethods().getHasOutput()){C.getInternalMethods().setHasOutput();let Q=!!C.getOptions().configuration["populate--"];if(C.getInternalMethods().postProcess(u,Q,!1,!1),u=lD(u,C,$,!1),u=oD(u,(z)=>{let O=F.handler(z);return s(O)?O.then(()=>z):z}),!D)C.getInternalMethods().getUsageInstance().cacheHelpMessage();if(s(u)&&!C.getInternalMethods().hasParseCallback())u.catch((z)=>{try{C.getInternalMethods().getUsageInstance().fail(null,z)}catch(O){}})}if(!D)E.commands.pop(),E.fullCommands.pop();return u}applyMiddlewareAndGetResult(D,F,u,E,B,C,$){let X={};if(B)return u;if(!$.getInternalMethods().getHasOutput())X=this.populatePositionals(F,u,E,$);let Q=this.globalMiddleware.getMiddleware().slice(0).concat(F.middlewares),z=lD(u,$,Q,!0);return s(z)?z.then((O)=>this.handleValidationAndGetResult(D,F,O,E,C,$,Q,X)):this.handleValidationAndGetResult(D,F,z,E,C,$,Q,X)}populatePositionals(D,F,u,E){F._=F._.slice(u.commands.length);let B=D.demanded.slice(0),C=D.optional.slice(0),$={};this.validation.positionalCount(B.length,F._.length);while(B.length){let X=B.shift();this.populatePositional(X,F,$)}while(C.length){let X=C.shift();this.populatePositional(X,F,$)}return F._=u.commands.concat(F._.map((X)=>""+X)),this.postProcessPositionals(F,$,this.cmdToParseOptions(D.original),E),$}populatePositional(D,F,u){let E=D.cmd[0];if(D.variadic)u[E]=F._.splice(0).map(String);else if(F._.length)u[E]=[String(F._.shift())]}cmdToParseOptions(D){let F={array:[],default:{},alias:{},demand:{}},u=SD(D);return u.demanded.forEach((E)=>{let[B,...C]=E.cmd;if(E.variadic)F.array.push(B),F.default[B]=[];F.alias[B]=C,F.demand[B]=!0}),u.optional.forEach((E)=>{let[B,...C]=E.cmd;if(E.variadic)F.array.push(B),F.default[B]=[];F.alias[B]=C}),F}postProcessPositionals(D,F,u,E){let B=Object.assign({},E.getOptions());B.default=Object.assign(u.default,B.default);for(let Q of Object.keys(u.alias))B.alias[Q]=(B.alias[Q]||[]).concat(u.alias[Q]);B.array=B.array.concat(u.array),B.config={};let C=[];if(Object.keys(F).forEach((Q)=>{F[Q].map((z)=>{if(B.configuration["unknown-options-as-args"])B.key[Q]=!0;C.push(`--${Q}`),C.push(z)})}),!C.length)return;let $=Object.assign({},B.configuration,{"populate--":!1}),X=this.shim.Parser.detailed(C,Object.assign({},B,{configuration:$}));if(X.error)E.getInternalMethods().getUsageInstance().fail(X.error.message,X.error);else{let Q=Object.keys(F);Object.keys(F).forEach((z)=>{Q.push(...X.aliases[z])}),Object.keys(X.argv).forEach((z)=>{if(Q.includes(z)){if(!F[z])F[z]=X.argv[z];if(!this.isInConfigs(E,z)&&!this.isDefaulted(E,z)&&Object.prototype.hasOwnProperty.call(D,z)&&Object.prototype.hasOwnProperty.call(X.argv,z)&&(Array.isArray(D[z])||Array.isArray(X.argv[z])))D[z]=[].concat(D[z],X.argv[z]);else D[z]=X.argv[z]}})}}isDefaulted(D,F){let{default:u}=D.getOptions();return Object.prototype.hasOwnProperty.call(u,F)||Object.prototype.hasOwnProperty.call(u,this.shim.Parser.camelCase(F))}isInConfigs(D,F){let{configObjects:u}=D.getOptions();return u.some((E)=>Object.prototype.hasOwnProperty.call(E,F))||u.some((E)=>Object.prototype.hasOwnProperty.call(E,this.shim.Parser.camelCase(F)))}runDefaultBuilderOn(D){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(D)){let u=Y0.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");D.getInternalMethods().getUsageInstance().usage(u,this.defaultCommand.description)}let F=this.defaultCommand.builder;if(k0(F))return F(D,!0);else if(!l1(F))Object.keys(F).forEach((u)=>{D.option(u,F[u])});return}extractDesc({describe:D,description:F,desc:u}){for(let E of[D,F,u]){if(typeof E==="string"||E===!1)return E;OD(E,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let D=this.frozens.pop();OD(D,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=D}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function n1(D,F,u,E){return new o1(D,F,u,E)}function l1(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function L8(D){return D.every((F)=>typeof F==="string")}function k0(D){return typeof D==="function"}function I8(D){return typeof D==="object"}function w8(D){return typeof D==="object"&&!Array.isArray(D)}function vD(D={},F=()=>!0){let u={};return z0(D).forEach((E)=>{if(F(E,D[E]))u[E]=D[E]}),u}function fD(D){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((F)=>{let u=F;if(u._handle&&u.isTTY&&typeof u._handle.setBlocking==="function")u._handle.setBlocking(D)})}function T8(D){return typeof D==="boolean"}function s1(D,F){let u=F.y18n.__,E={},B=[];E.failFn=function(K){B.push(K)};let C=null,$=null,X=!0;E.showHelpOnFail=function(K=!0,T){let[y,n]=typeof K==="string"?[!0,K]:[K,T];if(D.getInternalMethods().isGlobalContext())$=n;return C=n,X=y,E};let Q=!1;E.fail=function(K,T){let y=D.getInternalMethods().getLoggerInstance();if(B.length)for(let n=B.length-1;n>=0;--n){let uD=B[n];if(T8(uD)){if(T)throw T;else if(K)throw Error(K)}else uD(K,T,E)}else{if(D.getExitProcess())fD(!0);if(!Q){if(Q=!0,X)D.showHelp("error"),y.error();if(K||T)y.error(K||T);let n=C||$;if(n){if(K||T)y.error("");y.error(n)}}if(T=T||new DD(K),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,T);else throw T}};let z=[],O=!1;E.usage=(N,K)=>{if(N===null)return O=!0,z=[],E;return O=!1,z.push([N,K||""]),E},E.getUsage=()=>{return z},E.getUsageDisabled=()=>{return O},E.getPositionalGroupName=()=>{return u("Positionals:")};let W=[];E.example=(N,K)=>{W.push([N,K||""])};let J=[];E.command=function(K,T,y,n,uD=!1){if(y)J=J.map((o)=>{return o[2]=!1,o});J.push([K,T||"",y,n,uD])},E.getCommands=()=>J;let A={};E.describe=function(K,T){if(Array.isArray(K))K.forEach((y)=>{E.describe(y,T)});else if(typeof K==="object")Object.keys(K).forEach((y)=>{E.describe(y,K[y])});else A[K]=T},E.getDescriptions=()=>A;let _=[];E.epilog=(N)=>{_.push(N)};let q=!1,P;E.wrap=(N)=>{q=!0,P=N},E.getWrap=()=>{if(F.getEnv("YARGS_DISABLE_WRAP"))return null;if(!q)P=l(),q=!0;return P};let c="__yargsString__:";E.deferY18nLookup=(N)=>c+N,E.help=function(){if(d)return d;QD();let K=D.customScriptName?D.$0:F.path.basename(D.$0),T=D.getDemandedOptions(),y=D.getDemandedCommands(),n=D.getDeprecatedOptions(),uD=D.getGroups(),o=D.getOptions(),ED=[];ED=ED.concat(Object.keys(A)),ED=ED.concat(Object.keys(T)),ED=ED.concat(Object.keys(y)),ED=ED.concat(Object.keys(o.default)),ED=ED.filter(j),ED=Object.keys(ED.reduce((f,i)=>{if(i!=="_")f[i]=!0;return f},{}));let PD=E.getWrap(),t=F.cliui({width:PD,wrap:!!PD});if(!O){if(z.length)z.forEach((f)=>{if(t.div({text:`${f[0].replace(/\$0/g,K)}`}),f[1])t.div({text:`${f[1]}`,padding:[1,0,0,0]})}),t.div();else if(J.length){let f=null;if(y._)f=`${K} <${u("command")}>
|
|
26
|
+
`;else f=`${K} [${u("command")}]
|
|
27
|
+
`;t.div(`${f}`)}}if(J.length>1||J.length===1&&!J[0][2]){t.div(u("Commands:"));let f=D.getInternalMethods().getContext(),i=f.commands.length?`${f.commands.join(" ")} `:"";if(D.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)J=J.sort((m,zD)=>m[0].localeCompare(zD[0]));let BD=K?`${K} `:"";J.forEach((m)=>{let zD=`${BD}${i}${m[0].replace(/^\$0 ?/,"")}`;t.span({text:zD,padding:[0,2,0,2],width:p(J,PD,`${K}${i}`)+4},{text:m[1]});let e=[];if(m[2])e.push(`[${u("default")}]`);if(m[3]&&m[3].length)e.push(`[${u("aliases:")} ${m[3].join(", ")}]`);if(m[4])if(typeof m[4]==="string")e.push(`[${u("deprecated: %s",m[4])}]`);else e.push(`[${u("deprecated")}]`);if(e.length)t.div({text:e.join(" "),padding:[0,0,0,2],align:"right"});else t.div()}),t.div()}let bD=(Object.keys(o.alias)||[]).concat(Object.keys(D.parsed.newAliases)||[]);ED=ED.filter((f)=>!D.parsed.newAliases[f]&&bD.every((i)=>(o.alias[i]||[]).indexOf(f)===-1));let H0=u("Options:");if(!uD[H0])uD[H0]=[];U(ED,o.alias,uD,H0);let v=(f)=>/^--/.test(y0(f)),Q0=Object.keys(uD).filter((f)=>uD[f].length>0).map((f)=>{let i=uD[f].filter(j).map((BD)=>{if(bD.includes(BD))return BD;for(let m=0,zD;(zD=bD[m])!==void 0;m++)if((o.alias[zD]||[]).includes(BD))return zD;return BD});return{groupName:f,normalizedKeys:i}}).filter(({normalizedKeys:f})=>f.length>0).map(({groupName:f,normalizedKeys:i})=>{let BD=i.reduce((m,zD)=>{return m[zD]=[zD].concat(o.alias[zD]||[]).map((e)=>{if(f===E.getPositionalGroupName())return e;else return(/^[0-9]$/.test(e)?o.boolean.includes(zD)?"-":"--":e.length>1?"--":"-")+e}).sort((e,CD)=>v(e)===v(CD)?0:v(e)?1:-1).join(", "),m},{});return{groupName:f,normalizedKeys:i,switches:BD}});if(Q0.filter(({groupName:f})=>f!==E.getPositionalGroupName()).some(({normalizedKeys:f,switches:i})=>!f.every((BD)=>v(i[BD]))))Q0.filter(({groupName:f})=>f!==E.getPositionalGroupName()).forEach(({normalizedKeys:f,switches:i})=>{f.forEach((BD)=>{if(v(i[BD]))i[BD]=b8(i[BD],4)})});if(Q0.forEach(({groupName:f,normalizedKeys:i,switches:BD})=>{t.div(f),i.forEach((m)=>{let zD=BD[m],e=A[m]||"",CD=null;if(e.includes(c))e=u(e.substring(c.length));if(o.boolean.includes(m))CD=`[${u("boolean")}]`;if(o.count.includes(m))CD=`[${u("count")}]`;if(o.string.includes(m))CD=`[${u("string")}]`;if(o.normalize.includes(m))CD=`[${u("string")}]`;if(o.array.includes(m))CD=`[${u("array")}]`;if(o.number.includes(m))CD=`[${u("number")}]`;let VF=(V)=>typeof V==="string"?`[${u("deprecated: %s",V)}]`:`[${u("deprecated")}]`,Y=[m in n?VF(n[m]):null,CD,m in T?`[${u("required")}]`:null,o.choices&&o.choices[m]?`[${u("choices:")} ${E.stringifiedValues(o.choices[m])}]`:null,S(o.default[m],o.defaultDescription[m])].filter(Boolean).join(" ");t.span({text:y0(zD),padding:[0,2,0,2+t1(zD)],width:p(BD,PD)+4},e);let H=D.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(Y&&!H)t.div({text:Y,padding:[0,0,0,2],align:"right"});else t.div()}),t.div()}),W.length)t.div(u("Examples:")),W.forEach((f)=>{f[0]=f[0].replace(/\$0/g,K)}),W.forEach((f)=>{if(f[1]==="")t.div({text:f[0],padding:[0,2,0,2]});else t.div({text:f[0],padding:[0,2,0,2],width:p(W,PD)+4},{text:f[1]})}),t.div();if(_.length>0){let f=_.map((i)=>i.replace(/\$0/g,K)).join(`
|
|
28
28
|
`);t.div(`${f}
|
|
29
|
-
`)}return t.toString().replace(/\s*$/,"")};function p(
|
|
29
|
+
`)}return t.toString().replace(/\s*$/,"")};function p(N,K,T){let y=0;if(!Array.isArray(N))N=Object.values(N).map((n)=>[n]);if(N.forEach((n)=>{y=Math.max(F.stringWidth(T?`${T} ${y0(n[0])}`:y0(n[0]))+t1(n[0]),y)}),K)y=Math.min(y,parseInt((K*0.5).toString(),10));return y}function QD(){let N=D.getDemandedOptions(),K=D.getOptions();(Object.keys(K.alias)||[]).forEach((T)=>{K.alias[T].forEach((y)=>{if(A[y])E.describe(T,A[y]);if(y in N)D.demandOption(T,N[y]);if(K.boolean.includes(y))D.boolean(T);if(K.count.includes(y))D.count(T);if(K.string.includes(y))D.string(T);if(K.normalize.includes(y))D.normalize(T);if(K.array.includes(y))D.array(T);if(K.number.includes(y))D.number(T)})})}let d;E.cacheHelpMessage=function(){d=this.help()},E.clearCachedHelpMessage=function(){d=void 0},E.hasCachedHelpMessage=function(){return!!d};function U(N,K,T,y){let n=[],uD=null;return Object.keys(T).forEach((o)=>{n=n.concat(T[o])}),N.forEach((o)=>{if(uD=[o].concat(K[o]),!uD.some((ED)=>n.indexOf(ED)!==-1))T[y].push(o)}),n}function j(N){return D.getOptions().hiddenOptions.indexOf(N)<0||D.parsed.argv[D.getOptions().showHiddenOpt]}E.showHelp=(N)=>{let K=D.getInternalMethods().getLoggerInstance();if(!N)N="error";(typeof N==="function"?N:K[N])(E.help())},E.functionDescription=(N)=>{return["(",N.name?F.Parser.decamelize(N.name,"-"):u("generated-value"),")"].join("")},E.stringifiedValues=function(K,T){let y="",n=T||", ",uD=[].concat(K);if(!K||!uD.length)return y;return uD.forEach((o)=>{if(y.length)y+=n;y+=JSON.stringify(o)}),y};function S(N,K){let T=`[${u("default:")} `;if(N===void 0&&!K)return null;if(K)T+=K;else switch(typeof N){case"string":T+=`"${N}"`;break;case"object":T+=JSON.stringify(N);break;default:T+=N}return`${T}]`}function l(){if(F.process.stdColumns)return Math.min(80,F.process.stdColumns);else return 80}let g=null;E.version=(N)=>{g=N},E.showVersion=(N)=>{let K=D.getInternalMethods().getLoggerInstance();if(!N)N="error";(typeof N==="function"?N:K[N])(g)},E.reset=function(K){return C=null,Q=!1,z=[],O=!1,_=[],W=[],J=[],A=vD(A,(T)=>!K[T]),E};let LD=[];return E.freeze=function(){LD.push({failMessage:C,failureOutput:Q,usages:z,usageDisabled:O,epilogs:_,examples:W,commands:J,descriptions:A})},E.unfreeze=function(K=!1){let T=LD.pop();if(!T)return;if(K)A={...T.descriptions,...A},J=[...T.commands,...J],z=[...T.usages,...z],W=[...T.examples,...W],_=[...T.epilogs,..._];else({failMessage:C,failureOutput:Q,usages:z,usageDisabled:O,epilogs:_,examples:W,commands:J,descriptions:A}=T)},E}function mF(D){return typeof D==="object"}function b8(D,F){return mF(D)?{text:D.text,indentation:D.indentation+F}:{text:D,indentation:F}}function t1(D){return mF(D)?D.indentation:0}function y0(D){return mF(D)?D.text:D}var r1=`###-begin-{{app_name}}-completions-###
|
|
30
30
|
#
|
|
31
31
|
# yargs command completion script
|
|
32
32
|
#
|
|
@@ -55,7 +55,7 @@ _{{app_name}}_yargs_completions()
|
|
|
55
55
|
}
|
|
56
56
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
57
57
|
###-end-{{app_name}}-completions-###
|
|
58
|
-
`,
|
|
58
|
+
`,a1=`#compdef {{app_name}}
|
|
59
59
|
###-begin-{{app_name}}-completions-###
|
|
60
60
|
#
|
|
61
61
|
# yargs command completion script
|
|
@@ -82,18 +82,18 @@ else
|
|
|
82
82
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
83
83
|
fi
|
|
84
84
|
###-end-{{app_name}}-completions-###
|
|
85
|
-
`;class
|
|
85
|
+
`;class e1{constructor(D,F,u,E){var B,C,$;this.yargs=D,this.usage=F,this.command=u,this.shim=E,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=($=((B=this.shim.getEnv("SHELL"))===null||B===void 0?void 0:B.includes("zsh"))||((C=this.shim.getEnv("ZSH_NAME"))===null||C===void 0?void 0:C.includes("zsh")))!==null&&$!==void 0?$:!1}defaultCompletion(D,F,u,E){let B=this.command.getCommandHandlers();for(let $=0,X=D.length;$<X;++$)if(B[D[$]]&&B[D[$]].builder){let Q=B[D[$]].builder;if(k0(Q)){this.indexAfterLastReset=$+1;let z=this.yargs.getInternalMethods().reset();return Q(z,!0),z.argv}}let C=[];this.commandCompletions(C,D,u),this.optionCompletions(C,D,F,u),this.choicesFromOptionsCompletions(C,D,F,u),this.choicesFromPositionalsCompletions(C,D,F,u),E(null,C)}commandCompletions(D,F,u){let E=this.yargs.getInternalMethods().getContext().commands;if(!u.match(/^-/)&&E[E.length-1]!==u&&!this.previousArgHasChoices(F))this.usage.getCommands().forEach((B)=>{let C=SD(B[0]).cmd;if(F.indexOf(C)===-1)if(!this.zshShell)D.push(C);else{let $=B[1]||"";D.push(C.replace(/:/g,"\\:")+":"+$)}})}optionCompletions(D,F,u,E){if((E.match(/^-/)||E===""&&D.length===0)&&!this.previousArgHasChoices(F)){let B=this.yargs.getOptions(),C=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(B.key).forEach(($)=>{let X=!!B.configuration["boolean-negation"]&&B.boolean.includes($);if(!C.includes($)&&!B.hiddenOptions.includes($)&&!this.argsContainKey(F,$,X))this.completeOptionKey($,D,E,X&&!!B.default[$])})}}choicesFromOptionsCompletions(D,F,u,E){if(this.previousArgHasChoices(F)){let B=this.getPreviousArgChoices(F);if(B&&B.length>0)D.push(...B.map((C)=>C.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(D,F,u,E){if(E===""&&D.length>0&&this.previousArgHasChoices(F))return;let B=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],C=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),$=B[u._.length-C-1];if(!$)return;let X=this.yargs.getOptions().choices[$]||[];for(let Q of X)if(Q.startsWith(E))D.push(Q.replace(/:/g,"\\:"))}getPreviousArgChoices(D){if(D.length<1)return;let F=D[D.length-1],u="";if(!F.startsWith("-")&&D.length>1)u=F,F=D[D.length-2];if(!F.startsWith("-"))return;let E=F.replace(/^-+/,""),B=this.yargs.getOptions(),C=[E,...this.yargs.getAliases()[E]||[]],$;for(let X of C)if(Object.prototype.hasOwnProperty.call(B.key,X)&&Array.isArray(B.choices[X])){$=B.choices[X];break}if($)return $.filter((X)=>!u||X.startsWith(u))}previousArgHasChoices(D){let F=this.getPreviousArgChoices(D);return F!==void 0&&F.length>0}argsContainKey(D,F,u){let E=(B)=>D.indexOf((/^[^0-9]$/.test(B)?"-":"--")+B)!==-1;if(E(F))return!0;if(u&&E(`no-${F}`))return!0;if(this.aliases){for(let B of this.aliases[F])if(E(B))return!0}return!1}completeOptionKey(D,F,u,E){var B,C,$,X;let Q=D;if(this.zshShell){let J=this.usage.getDescriptions(),A=(C=(B=this===null||this===void 0?void 0:this.aliases)===null||B===void 0?void 0:B[D])===null||C===void 0?void 0:C.find((P)=>{let c=J[P];return typeof c==="string"&&c.length>0}),_=A?J[A]:void 0,q=(X=($=J[D])!==null&&$!==void 0?$:_)!==null&&X!==void 0?X:"";Q=`${D.replace(/:/g,"\\:")}:${q.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let z=(J)=>/^--/.test(J),O=(J)=>/^[^0-9]$/.test(J),W=!z(u)&&O(D)?"-":"--";if(F.push(W+Q),E)F.push(W+"no-"+Q)}customCompletion(D,F,u,E){if(OD(this.customCompletionFunction,null,this.shim),P8(this.customCompletionFunction)){let B=this.customCompletionFunction(u,F);if(s(B))return B.then((C)=>{this.shim.process.nextTick(()=>{E(null,C)})}).catch((C)=>{this.shim.process.nextTick(()=>{E(C,void 0)})});return E(null,B)}else if(S8(this.customCompletionFunction))return this.customCompletionFunction(u,F,(B=E)=>this.defaultCompletion(D,F,u,B),(B)=>{E(null,B)});else return this.customCompletionFunction(u,F,(B)=>{E(null,B)})}getCompletion(D,F){let u=D.length?D[D.length-1]:"",E=this.yargs.parse(D,!0),B=this.customCompletionFunction?(C)=>this.customCompletion(D,C,u,F):(C)=>this.defaultCompletion(D,C,u,F);return s(E)?E.then(B):B(E)}generateCompletionScript(D,F){let u=this.zshShell?a1:r1,E=this.shim.path.basename(D);if(D.match(/\.js$/))D=`./${D}`;return u=u.replace(/{{app_name}}/g,E),u=u.replace(/{{completion_command}}/g,F),u.replace(/{{app_path}}/g,D)}registerFunction(D){this.customCompletionFunction=D}setParsed(D){this.aliases=D.aliases}}function D3(D,F,u,E){return new e1(D,F,u,E)}function P8(D){return D.length<3}function S8(D){return D.length>3}function F3(D,F){if(D.length===0)return F.length;if(F.length===0)return D.length;let u=[],E;for(E=0;E<=F.length;E++)u[E]=[E];let B;for(B=0;B<=D.length;B++)u[0][B]=B;for(E=1;E<=F.length;E++)for(B=1;B<=D.length;B++)if(F.charAt(E-1)===D.charAt(B-1))u[E][B]=u[E-1][B-1];else if(E>1&&B>1&&F.charAt(E-2)===D.charAt(B-1)&&F.charAt(E-1)===D.charAt(B-2))u[E][B]=u[E-2][B-2]+1;else u[E][B]=Math.min(u[E-1][B-1]+1,Math.min(u[E][B-1]+1,u[E-1][B]+1));return u[F.length][D.length]}var u3=["$0","--","_"];function E3(D,F,u){let E=u.y18n.__,B=u.y18n.__n,C={};C.nonOptionCount=function(W){let J=D.getDemandedCommands(),_=W._.length+(W["--"]?W["--"].length:0)-D.getInternalMethods().getContext().commands.length;if(J._&&(_<J._.min||_>J._.max)){if(_<J._.min)if(J._.minMsg!==void 0)F.fail(J._.minMsg?J._.minMsg.replace(/\$0/g,_.toString()).replace(/\$1/,J._.min.toString()):null);else F.fail(B("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",_,_.toString(),J._.min.toString()));else if(_>J._.max)if(J._.maxMsg!==void 0)F.fail(J._.maxMsg?J._.maxMsg.replace(/\$0/g,_.toString()).replace(/\$1/,J._.max.toString()):null);else F.fail(B("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",_,_.toString(),J._.max.toString()))}},C.positionalCount=function(W,J){if(J<W)F.fail(B("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",J,J+"",W+""))},C.requiredArguments=function(W,J){let A=null;for(let _ of Object.keys(J))if(!Object.prototype.hasOwnProperty.call(W,_)||typeof W[_]>"u")A=A||{},A[_]=J[_];if(A){let _=[];for(let P of Object.keys(A)){let c=A[P];if(c&&_.indexOf(c)<0)_.push(c)}let q=_.length?`
|
|
86
86
|
${_.join(`
|
|
87
|
-
`)}`:"";F.fail(B("Missing required argument: %s","Missing required arguments: %s",Object.keys(
|
|
88
|
-
${E("Argument: %s, Given: %s, Choices: %s",P,F.stringifiedValues(
|
|
89
|
-
`;Y.forEach((_)=>{H+=_}),F.fail(H)}};let Q={};C.conflicts=function(W,Y){if(N("<string|object> [array|string]",[W,Y],arguments.length),typeof W==="object")Object.keys(W).forEach((H)=>{C.conflicts(H,W[H])});else{if(D.global(W),!Q[W])Q[W]=[];if(Array.isArray(Y))Y.forEach((H)=>C.conflicts(W,H));else Q[W].push(Y)}},C.getConflicting=()=>Q,C.conflicting=function(W){if(Object.keys(W).forEach((Y)=>{if(Q[Y])Q[Y].forEach((H)=>{if(H&&W[Y]!==void 0&&W[H]!==void 0)F.fail(E("Arguments %s and %s are mutually exclusive",Y,H))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(Q).forEach((Y)=>{Q[Y].forEach((H)=>{if(H&&W[u.Parser.camelCase(Y)]!==void 0&&W[u.Parser.camelCase(H)]!==void 0)F.fail(E("Arguments %s and %s are mutually exclusive",Y,H))})})},C.recommendCommands=function(W,Y){Y=Y.sort((P,c)=>c.length-P.length);let _=null,q=1/0;for(let P=0,c;(c=Y[P])!==void 0;P++){let p=e1(W,c);if(p<=3&&p<q)q=p,_=c}if(_)F.fail(E("Did you mean %s?",_))},C.reset=function(W){return $=vD($,(Y)=>!W[Y]),Q=vD(Q,(Y)=>!W[Y]),C};let z=[];return C.freeze=function(){z.push({implied:$,conflicting:Q})},C.unfreeze=function(){let W=z.pop();OD(W,void 0,u),{implied:$,conflicting:Q}=W},C}var cF=[],M0;function K0(D,F,u,E){M0=E;let B={};if(Object.prototype.hasOwnProperty.call(D,"extends")){if(typeof D.extends!=="string")return B;let C=/\.json|\..*rc$/.test(D.extends),$=null;if(!C)try{$=import.meta.resolve(D.extends)}catch(X){return D}else $=f8(F,D.extends);v8($),cF.push($),B=C?JSON.parse(M0.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,B=K0(B,M0.path.dirname($),u,M0)}return cF=[],u?u3(B,D):Object.assign({},B,D)}function v8(D){if(cF.indexOf(D)>-1)throw new DD(`Circular extended configurations: '${D}'.`)}function f8(D,F){return M0.path.resolve(D,F)}function u3(D,F){let u={};function E(B){return B&&typeof B==="object"&&!Array.isArray(B)}Object.assign(u,D);for(let B of Object.keys(F))if(E(F[B])&&E(u[B]))u[B]=u3(D[B],F[B]);else u[B]=F[B];return u}var I=function(D,F,u,E,B){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!B)throw TypeError("Private accessor was defined without a setter");if(typeof F==="function"?D!==F||!B:!F.has(D))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?B.call(D,u):B?B.value=u:F.set(D,u),u},Z=function(D,F,u,E){if(u==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof F==="function"?D!==F||!E:!F.has(D))throw TypeError("Cannot read private member from an object whose class did not declare it");return u==="m"?E:u==="a"?E.call(D):E?E.value:F.get(D)},FD,nD,V0,JD,AD,h0,kD,iD,d0,_D,p0,MD,ID,GD,KD,g0,tD,ZD,b,m0,c0,HD,sD,O0,rD,yD,l0,k,aD,eD,D0,h,o0,wD,a;function V3(D){return(F=[],u=D.process.cwd(),E)=>{let B=new R3(F,u,E,D);return Object.defineProperty(B,"argv",{get:()=>{return B.parse()},enumerable:!0}),B.help(),B.version(),B}}var E3=Symbol("copyDoubleDash"),B3=Symbol("copyDoubleDash"),lF=Symbol("deleteFromParserHintObject"),C3=Symbol("emitWarning"),$3=Symbol("freeze"),X3=Symbol("getDollarZero"),F0=Symbol("getParserConfiguration"),Z3=Symbol("getUsageConfiguration"),oF=Symbol("guessLocale"),Q3=Symbol("guessVersion"),z3=Symbol("parsePositionalNumbers"),nF=Symbol("pkgUp"),hD=Symbol("populateParserHintArray"),J0=Symbol("populateParserHintSingleValueDictionary"),iF=Symbol("populateParserHintArrayDictionary"),tF=Symbol("populateParserHintDictionary"),sF=Symbol("sanitizeKey"),rF=Symbol("setKey"),aF=Symbol("unfreeze"),Y3=Symbol("validateAsync"),O3=Symbol("getCommandInstance"),J3=Symbol("getContext"),W3=Symbol("getHasOutput"),A3=Symbol("getLoggerInstance"),G3=Symbol("getParseContext"),H3=Symbol("getUsageInstance"),q3=Symbol("getValidationInstance"),n0=Symbol("hasParseCallback"),_3=Symbol("isGlobalContext"),u0=Symbol("postProcess"),M3=Symbol("rebase"),eF=Symbol("reset"),R0=Symbol("runYargsParserAndExecuteCommands"),D2=Symbol("runValidation"),K3=Symbol("setHasOutput"),E0=Symbol("kTrackManuallySetKeys"),k8="en_US";class R3{constructor(D=[],F,u,E){this.customScriptName=!1,this.parsed=!1,FD.set(this,void 0),nD.set(this,void 0),V0.set(this,{commands:[],fullCommands:[]}),JD.set(this,null),AD.set(this,null),h0.set(this,"show-hidden"),kD.set(this,null),iD.set(this,!0),d0.set(this,{}),_D.set(this,!0),p0.set(this,[]),MD.set(this,void 0),ID.set(this,{}),GD.set(this,!1),KD.set(this,null),g0.set(this,!0),tD.set(this,void 0),ZD.set(this,""),b.set(this,void 0),m0.set(this,void 0),c0.set(this,{}),HD.set(this,null),sD.set(this,null),O0.set(this,{}),rD.set(this,{}),yD.set(this,void 0),l0.set(this,!1),k.set(this,void 0),aD.set(this,!1),eD.set(this,!1),D0.set(this,!1),h.set(this,void 0),o0.set(this,{}),wD.set(this,null),a.set(this,void 0),I(this,k,E,"f"),I(this,yD,D,"f"),I(this,nD,F,"f"),I(this,m0,u,"f"),I(this,MD,new gF(this),"f"),this.$0=this[X3](),this[eF](),I(this,FD,Z(this,FD,"f"),"f"),I(this,h,Z(this,h,"f"),"f"),I(this,a,Z(this,a,"f"),"f"),I(this,b,Z(this,b,"f"),"f"),Z(this,b,"f").showHiddenOpt=Z(this,h0,"f"),I(this,tD,this[B3](),"f"),Z(this,k,"f").y18n.setLocale(k8)}addHelpOpt(D,F){if(N("[string|boolean] [string]",[D,F],arguments.length),Z(this,KD,"f"))this[lF](Z(this,KD,"f")),I(this,KD,null,"f");if(D===!1&&F===void 0)return this;return I(this,KD,typeof D==="string"?D:"help","f"),this.boolean(Z(this,KD,"f")),this.describe(Z(this,KD,"f"),F||Z(this,h,"f").deferY18nLookup("Show help")),this}help(D,F){return this.addHelpOpt(D,F)}addShowHiddenOpt(D,F){if(N("[string|boolean] [string]",[D,F],arguments.length),D===!1&&F===void 0)return this;let u=typeof D==="string"?D:Z(this,h0,"f");return this.boolean(u),this.describe(u,F||Z(this,h,"f").deferY18nLookup("Show hidden options")),Z(this,b,"f").showHiddenOpt=u,this}showHidden(D,F){return this.addShowHiddenOpt(D,F)}alias(D,F){return N("<object|string|array> [string|array]",[D,F],arguments.length),this[iF](this.alias.bind(this),"alias",D,F),this}array(D){return N("<array|string>",[D],arguments.length),this[hD]("array",D),this[E0](D),this}boolean(D){return N("<array|string>",[D],arguments.length),this[hD]("boolean",D),this[E0](D),this}check(D,F){return N("<function> [boolean]",[D,F],arguments.length),this.middleware((u,E)=>{return oD(()=>{return D(u,E.getOptions())},(B)=>{if(!B)Z(this,h,"f").fail(Z(this,k,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof B==="string"||B instanceof Error)Z(this,h,"f").fail(B.toString(),B);return u},(B)=>{return Z(this,h,"f").fail(B.message?B.message:B.toString(),B),u})},!1,F),this}choices(D,F){return N("<object|string|array> [string|array]",[D,F],arguments.length),this[iF](this.choices.bind(this),"choices",D,F),this}coerce(D,F){if(N("<object|string|array> [function]",[D,F],arguments.length),Array.isArray(D)){if(!F)throw new DD("coerce callback must be provided");for(let E of D)this.coerce(E,F);return this}else if(typeof D==="object"){for(let E of Object.keys(D))this.coerce(E,D[E]);return this}if(!F)throw new DD("coerce callback must be provided");let u=D;return Z(this,b,"f").key[u]=!0,Z(this,MD,"f").addCoerceMiddleware((E,B)=>{var C;let $=(C=B.getAliases()[u])!==null&&C!==void 0?C:[],X=[u,...$].filter((Q)=>Object.prototype.hasOwnProperty.call(E,Q));if(X.length===0)return E;return oD(()=>{return F(E[X[0]])},(Q)=>{return X.forEach((z)=>{E[z]=Q}),E},(Q)=>{throw new DD(Q.message)})},u),this}conflicts(D,F){return N("<string|object> [string|array]",[D,F],arguments.length),Z(this,a,"f").conflicts(D,F),this}config(D="config",F,u){if(N("[object|string] [string|function] [function]",[D,F,u],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=K0(D,Z(this,nD,"f"),this[F0]()["deep-merge-config"]||!1,Z(this,k,"f")),Z(this,b,"f").configObjects=(Z(this,b,"f").configObjects||[]).concat(D),this;if(typeof F==="function")u=F,F=void 0;return this.describe(D,F||Z(this,h,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{Z(this,b,"f").config[E]=u||!0}),this}completion(D,F,u){if(N("[string] [string|boolean|function] [function]",[D,F,u],arguments.length),typeof F==="function")u=F,F=void 0;if(I(this,AD,D||Z(this,AD,"f")||"completion","f"),!F&&F!==!1)F="generate completion script";if(this.command(Z(this,AD,"f"),F),u)Z(this,JD,"f").registerFunction(u);return this}command(D,F,u,E,B,C){return N("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[D,F,u,E,B,C],arguments.length),Z(this,FD,"f").addHandler(D,F,u,E,B,C),this}commands(D,F,u,E,B,C){return this.command(D,F,u,E,B,C)}commandDir(D,F){N("<string> [object]",[D,F],arguments.length);let u=Z(this,m0,"f")||Z(this,k,"f").require;return Z(this,FD,"f").addDirectory(D,u,Z(this,k,"f").getCallerFile(),F),this}count(D){return N("<array|string>",[D],arguments.length),this[hD]("count",D),this[E0](D),this}default(D,F,u){if(N("<object|string|array> [*] [string]",[D,F,u],arguments.length),u)pF(D,Z(this,k,"f")),Z(this,b,"f").defaultDescription[D]=u;if(typeof F==="function"){if(pF(D,Z(this,k,"f")),!Z(this,b,"f").defaultDescription[D])Z(this,b,"f").defaultDescription[D]=Z(this,h,"f").functionDescription(F);F=F.call()}return this[J0](this.default.bind(this),"default",D,F),this}defaults(D,F,u){return this.default(D,F,u)}demandCommand(D=1,F,u,E){if(N("[number] [number|string] [string|null|undefined] [string|null|undefined]",[D,F,u,E],arguments.length),typeof F!=="number")u=F,F=1/0;return this.global("_",!1),Z(this,b,"f").demandedCommands._={min:D,max:F,minMsg:u,maxMsg:E},this}demand(D,F,u){if(Array.isArray(F))F.forEach((E)=>{OD(u,!0,Z(this,k,"f")),this.demandOption(E,u)}),F=1/0;else if(typeof F!=="number")u=F,F=1/0;if(typeof D==="number")OD(u,!0,Z(this,k,"f")),this.demandCommand(D,F,u,u);else if(Array.isArray(D))D.forEach((E)=>{OD(u,!0,Z(this,k,"f")),this.demandOption(E,u)});else if(typeof u==="string")this.demandOption(D,u);else if(u===!0||typeof u>"u")this.demandOption(D);return this}demandOption(D,F){return N("<object|string|array> [string]",[D,F],arguments.length),this[J0](this.demandOption.bind(this),"demandedOptions",D,F),this}deprecateOption(D,F){return N("<string> [string|boolean]",[D,F],arguments.length),Z(this,b,"f").deprecatedOptions[D]=F,this}describe(D,F){return N("<object|string|array> [string]",[D,F],arguments.length),this[rF](D,!0),Z(this,h,"f").describe(D,F),this}detectLocale(D){return N("<boolean>",[D],arguments.length),I(this,iD,D,"f"),this}env(D){if(N("[string|boolean]",[D],arguments.length),D===!1)delete Z(this,b,"f").envPrefix;else Z(this,b,"f").envPrefix=D||"";return this}epilogue(D){return N("<string>",[D],arguments.length),Z(this,h,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,F){if(N("<string|array> [string]",[D,F],arguments.length),Array.isArray(D))D.forEach((u)=>this.example(...u));else Z(this,h,"f").example(D,F);return this}exit(D,F){if(I(this,GD,!0,"f"),I(this,kD,F,"f"),Z(this,_D,"f"))Z(this,k,"f").process.exit(D)}exitProcess(D=!0){return N("[boolean]",[D],arguments.length),I(this,_D,D,"f"),this}fail(D){if(N("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new DD("Invalid first argument. Expected function or boolean 'false'");return Z(this,h,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,F){if(N("<array> [function]",[D,F],arguments.length),!F)return new Promise((u,E)=>{Z(this,JD,"f").getCompletion(D,(B,C)=>{if(B)E(B);else u(C)})});else return Z(this,JD,"f").getCompletion(D,F)}getDemandedOptions(){return N([],0),Z(this,b,"f").demandedOptions}getDemandedCommands(){return N([],0),Z(this,b,"f").demandedCommands}getDeprecatedOptions(){return N([],0),Z(this,b,"f").deprecatedOptions}getDetectLocale(){return Z(this,iD,"f")}getExitProcess(){return Z(this,_D,"f")}getGroups(){return Object.assign({},Z(this,ID,"f"),Z(this,rD,"f"))}getHelp(){if(I(this,GD,!0,"f"),!Z(this,h,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[R0](Z(this,yD,"f"),void 0,void 0,0,!0);if(s(F))return F.then(()=>{return Z(this,h,"f").help()})}let D=Z(this,FD,"f").runDefaultBuilderOn(this);if(s(D))return D.then(()=>{return Z(this,h,"f").help()})}return Promise.resolve(Z(this,h,"f").help())}getOptions(){return Z(this,b,"f")}getStrict(){return Z(this,aD,"f")}getStrictCommands(){return Z(this,eD,"f")}getStrictOptions(){return Z(this,D0,"f")}global(D,F){if(N("<string|array> [boolean]",[D,F],arguments.length),D=[].concat(D),F!==!1)Z(this,b,"f").local=Z(this,b,"f").local.filter((u)=>D.indexOf(u)===-1);else D.forEach((u)=>{if(!Z(this,b,"f").local.includes(u))Z(this,b,"f").local.push(u)});return this}group(D,F){N("<string|array> <string>",[D,F],arguments.length);let u=Z(this,rD,"f")[F]||Z(this,ID,"f")[F];if(Z(this,rD,"f")[F])delete Z(this,rD,"f")[F];let E={};return Z(this,ID,"f")[F]=(u||[]).concat(D).filter((B)=>{if(E[B])return!1;return E[B]=!0}),this}hide(D){return N("<string>",[D],arguments.length),Z(this,b,"f").hiddenOptions.push(D),this}implies(D,F){return N("<string|object> [number|string|array]",[D,F],arguments.length),Z(this,a,"f").implies(D,F),this}locale(D){if(N("[string]",[D],arguments.length),D===void 0)return this[oF](),Z(this,k,"f").y18n.getLocale();return I(this,iD,!1,"f"),Z(this,k,"f").y18n.setLocale(D),this}middleware(D,F,u){return Z(this,MD,"f").addMiddleware(D,!!F,u)}nargs(D,F){return N("<string|object|array> [number]",[D,F],arguments.length),this[J0](this.nargs.bind(this),"narg",D,F),this}normalize(D){return N("<array|string>",[D],arguments.length),this[hD]("normalize",D),this}number(D){return N("<array|string>",[D],arguments.length),this[hD]("number",D),this[E0](D),this}option(D,F){if(N("<string|object> [object]",[D,F],arguments.length),typeof D==="object")Object.keys(D).forEach((u)=>{this.options(u,D[u])});else{if(typeof F!=="object")F={};if(this[E0](D),Z(this,wD,"f")&&(D==="version"||(F===null||F===void 0?void 0:F.alias)==="version"))this[C3](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
90
|
-
`),void 0,"versionWarning");if(Z(this,b,"f").key[D]=!0,F.alias)this.alias(D,F.alias);let u=F.deprecate||F.deprecated;if(u)this.deprecateOption(D,u);let E=F.demand||F.required||F.require;if(E)this.demand(D,E);if(F.demandOption)this.demandOption(D,typeof F.demandOption==="string"?F.demandOption:void 0);if(F.conflicts)this.conflicts(D,F.conflicts);if("default"in F)this.default(D,F.default);if(F.implies!==void 0)this.implies(D,F.implies);if(F.nargs!==void 0)this.nargs(D,F.nargs);if(F.config)this.config(D,F.configParser);if(F.normalize)this.normalize(D);if(F.choices)this.choices(D,F.choices);if(F.coerce)this.coerce(D,F.coerce);if(F.group)this.group(D,F.group);if(F.boolean||F.type==="boolean"){if(this.boolean(D),F.alias)this.boolean(F.alias)}if(F.array||F.type==="array"){if(this.array(D),F.alias)this.array(F.alias)}if(F.number||F.type==="number"){if(this.number(D),F.alias)this.number(F.alias)}if(F.string||F.type==="string"){if(this.string(D),F.alias)this.string(F.alias)}if(F.count||F.type==="count")this.count(D);if(typeof F.global==="boolean")this.global(D,F.global);if(F.defaultDescription)Z(this,b,"f").defaultDescription[D]=F.defaultDescription;if(F.skipValidation)this.skipValidation(D);let B=F.describe||F.description||F.desc,C=Z(this,h,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(C,D)||typeof B==="string")this.describe(D,B);if(F.hidden)this.hide(D);if(F.requiresArg)this.requiresArg(D)}return this}options(D,F){return this.option(D,F)}parse(D,F,u){if(
|
|
87
|
+
`)}`:"";F.fail(B("Missing required argument: %s","Missing required arguments: %s",Object.keys(A).length,Object.keys(A).join(", ")+q))}},C.unknownArguments=function(W,J,A,_,q=!0){var P;let c=D.getInternalMethods().getCommandInstance().getCommands(),p=[],QD=D.getInternalMethods().getContext();if(Object.keys(W).forEach((d)=>{if(!u3.includes(d)&&!Object.prototype.hasOwnProperty.call(A,d)&&!Object.prototype.hasOwnProperty.call(D.getInternalMethods().getParseContext(),d)&&!C.isValidAndSomeAliasIsNotNew(d,J))p.push(d)}),q&&(QD.commands.length>0||c.length>0||_))W._.slice(QD.commands.length).forEach((d)=>{if(!c.includes(""+d))p.push(""+d)});if(q){let U=((P=D.getDemandedCommands()._)===null||P===void 0?void 0:P.max)||0,j=QD.commands.length+U;if(j<W._.length)W._.slice(j).forEach((S)=>{if(S=String(S),!QD.commands.includes(S)&&!p.includes(S))p.push(S)})}if(p.length)F.fail(B("Unknown argument: %s","Unknown arguments: %s",p.length,p.map((d)=>d.trim()?d:`"${d}"`).join(", ")))},C.unknownCommands=function(W){let J=D.getInternalMethods().getCommandInstance().getCommands(),A=[],_=D.getInternalMethods().getContext();if(_.commands.length>0||J.length>0)W._.slice(_.commands.length).forEach((q)=>{if(!J.includes(""+q))A.push(""+q)});if(A.length>0)return F.fail(B("Unknown command: %s","Unknown commands: %s",A.length,A.join(", "))),!0;else return!1},C.isValidAndSomeAliasIsNotNew=function(W,J){if(!Object.prototype.hasOwnProperty.call(J,W))return!1;let A=D.parsed.newAliases;return[W,...J[W]].some((_)=>!Object.prototype.hasOwnProperty.call(A,_)||!A[W])},C.limitedChoices=function(W){let J=D.getOptions(),A={};if(!Object.keys(J.choices).length)return;Object.keys(W).forEach((P)=>{if(u3.indexOf(P)===-1&&Object.prototype.hasOwnProperty.call(J.choices,P))[].concat(W[P]).forEach((c)=>{if(J.choices[P].indexOf(c)===-1&&c!==void 0)A[P]=(A[P]||[]).concat(c)})});let _=Object.keys(A);if(!_.length)return;let q=E("Invalid values:");_.forEach((P)=>{q+=`
|
|
88
|
+
${E("Argument: %s, Given: %s, Choices: %s",P,F.stringifiedValues(A[P]),F.stringifiedValues(J.choices[P]))}`}),F.fail(q)};let $={};C.implies=function(W,J){if(L("<string|object> [array|number|string]",[W,J],arguments.length),typeof W==="object")Object.keys(W).forEach((A)=>{C.implies(A,W[A])});else{if(D.global(W),!$[W])$[W]=[];if(Array.isArray(J))J.forEach((A)=>C.implies(W,A));else OD(J,void 0,u),$[W].push(J)}},C.getImplied=function(){return $};function X(O,W){let J=Number(W);if(W=isNaN(J)?W:J,typeof W==="number")W=O._.length>=W;else if(W.match(/^--no-.+/))W=W.match(/^--no-(.+)/)[1],W=!Object.prototype.hasOwnProperty.call(O,W);else W=Object.prototype.hasOwnProperty.call(O,W);return W}C.implications=function(W){let J=[];if(Object.keys($).forEach((A)=>{let _=A;($[A]||[]).forEach((q)=>{let P=_,c=q;if(P=X(W,P),q=X(W,q),P&&!q)J.push(` ${_} -> ${c}`)})}),J.length){let A=`${E("Implications failed:")}
|
|
89
|
+
`;J.forEach((_)=>{A+=_}),F.fail(A)}};let Q={};C.conflicts=function(W,J){if(L("<string|object> [array|string]",[W,J],arguments.length),typeof W==="object")Object.keys(W).forEach((A)=>{C.conflicts(A,W[A])});else{if(D.global(W),!Q[W])Q[W]=[];if(Array.isArray(J))J.forEach((A)=>C.conflicts(W,A));else Q[W].push(J)}},C.getConflicting=()=>Q,C.conflicting=function(W){if(Object.keys(W).forEach((J)=>{if(Q[J])Q[J].forEach((A)=>{if(A&&W[J]!==void 0&&W[A]!==void 0)F.fail(E("Arguments %s and %s are mutually exclusive",J,A))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(Q).forEach((J)=>{Q[J].forEach((A)=>{if(A&&W[u.Parser.camelCase(J)]!==void 0&&W[u.Parser.camelCase(A)]!==void 0)F.fail(E("Arguments %s and %s are mutually exclusive",J,A))})})},C.recommendCommands=function(W,J){J=J.sort((P,c)=>c.length-P.length);let _=null,q=1/0;for(let P=0,c;(c=J[P])!==void 0;P++){let p=F3(W,c);if(p<=3&&p<q)q=p,_=c}if(_)F.fail(E("Did you mean %s?",_))},C.reset=function(W){return $=vD($,(J)=>!W[J]),Q=vD(Q,(J)=>!W[J]),C};let z=[];return C.freeze=function(){z.push({implied:$,conflicting:Q})},C.unfreeze=function(){let W=z.pop();OD(W,void 0,u),{implied:$,conflicting:Q}=W},C}var cF=[],M0;function V0(D,F,u,E){M0=E;let B={};if(Object.prototype.hasOwnProperty.call(D,"extends")){if(typeof D.extends!=="string")return B;let C=/\.json|\..*rc$/.test(D.extends),$=null;if(!C)try{$=import.meta.resolve(D.extends)}catch(X){return D}else $=f8(F,D.extends);v8($),cF.push($),B=C?JSON.parse(M0.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,B=V0(B,M0.path.dirname($),u,M0)}return cF=[],u?B3(B,D):Object.assign({},B,D)}function v8(D){if(cF.indexOf(D)>-1)throw new DD(`Circular extended configurations: '${D}'.`)}function f8(D,F){return M0.path.resolve(D,F)}function B3(D,F){let u={};function E(B){return B&&typeof B==="object"&&!Array.isArray(B)}Object.assign(u,D);for(let B of Object.keys(F))if(E(F[B])&&E(u[B]))u[B]=B3(D[B],F[B]);else u[B]=F[B];return u}var I=function(D,F,u,E,B){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!B)throw TypeError("Private accessor was defined without a setter");if(typeof F==="function"?D!==F||!B:!F.has(D))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?B.call(D,u):B?B.value=u:F.set(D,u),u},Z=function(D,F,u,E){if(u==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof F==="function"?D!==F||!E:!F.has(D))throw TypeError("Cannot read private member from an object whose class did not declare it");return u==="m"?E:u==="a"?E.call(D):E?E.value:F.get(D)},FD,nD,K0,JD,AD,h0,kD,iD,d0,_D,p0,MD,ID,GD,VD,g0,tD,ZD,b,m0,c0,HD,sD,O0,rD,yD,l0,k,aD,eD,D0,h,o0,wD,a;function U3(D){return(F=[],u=D.process.cwd(),E)=>{let B=new j3(F,u,E,D);return Object.defineProperty(B,"argv",{get:()=>{return B.parse()},enumerable:!0}),B.help(),B.version(),B}}var C3=Symbol("copyDoubleDash"),$3=Symbol("copyDoubleDash"),lF=Symbol("deleteFromParserHintObject"),X3=Symbol("emitWarning"),Z3=Symbol("freeze"),Q3=Symbol("getDollarZero"),F0=Symbol("getParserConfiguration"),z3=Symbol("getUsageConfiguration"),oF=Symbol("guessLocale"),Y3=Symbol("guessVersion"),O3=Symbol("parsePositionalNumbers"),nF=Symbol("pkgUp"),hD=Symbol("populateParserHintArray"),J0=Symbol("populateParserHintSingleValueDictionary"),iF=Symbol("populateParserHintArrayDictionary"),tF=Symbol("populateParserHintDictionary"),sF=Symbol("sanitizeKey"),rF=Symbol("setKey"),aF=Symbol("unfreeze"),J3=Symbol("validateAsync"),W3=Symbol("getCommandInstance"),A3=Symbol("getContext"),G3=Symbol("getHasOutput"),H3=Symbol("getLoggerInstance"),q3=Symbol("getParseContext"),_3=Symbol("getUsageInstance"),M3=Symbol("getValidationInstance"),n0=Symbol("hasParseCallback"),V3=Symbol("isGlobalContext"),u0=Symbol("postProcess"),K3=Symbol("rebase"),eF=Symbol("reset"),R0=Symbol("runYargsParserAndExecuteCommands"),D2=Symbol("runValidation"),R3=Symbol("setHasOutput"),E0=Symbol("kTrackManuallySetKeys"),k8="en_US";class j3{constructor(D=[],F,u,E){this.customScriptName=!1,this.parsed=!1,FD.set(this,void 0),nD.set(this,void 0),K0.set(this,{commands:[],fullCommands:[]}),JD.set(this,null),AD.set(this,null),h0.set(this,"show-hidden"),kD.set(this,null),iD.set(this,!0),d0.set(this,{}),_D.set(this,!0),p0.set(this,[]),MD.set(this,void 0),ID.set(this,{}),GD.set(this,!1),VD.set(this,null),g0.set(this,!0),tD.set(this,void 0),ZD.set(this,""),b.set(this,void 0),m0.set(this,void 0),c0.set(this,{}),HD.set(this,null),sD.set(this,null),O0.set(this,{}),rD.set(this,{}),yD.set(this,void 0),l0.set(this,!1),k.set(this,void 0),aD.set(this,!1),eD.set(this,!1),D0.set(this,!1),h.set(this,void 0),o0.set(this,{}),wD.set(this,null),a.set(this,void 0),I(this,k,E,"f"),I(this,yD,D,"f"),I(this,nD,F,"f"),I(this,m0,u,"f"),I(this,MD,new gF(this),"f"),this.$0=this[Q3](),this[eF](),I(this,FD,Z(this,FD,"f"),"f"),I(this,h,Z(this,h,"f"),"f"),I(this,a,Z(this,a,"f"),"f"),I(this,b,Z(this,b,"f"),"f"),Z(this,b,"f").showHiddenOpt=Z(this,h0,"f"),I(this,tD,this[$3](),"f"),Z(this,k,"f").y18n.setLocale(k8)}addHelpOpt(D,F){if(L("[string|boolean] [string]",[D,F],arguments.length),Z(this,VD,"f"))this[lF](Z(this,VD,"f")),I(this,VD,null,"f");if(D===!1&&F===void 0)return this;return I(this,VD,typeof D==="string"?D:"help","f"),this.boolean(Z(this,VD,"f")),this.describe(Z(this,VD,"f"),F||Z(this,h,"f").deferY18nLookup("Show help")),this}help(D,F){return this.addHelpOpt(D,F)}addShowHiddenOpt(D,F){if(L("[string|boolean] [string]",[D,F],arguments.length),D===!1&&F===void 0)return this;let u=typeof D==="string"?D:Z(this,h0,"f");return this.boolean(u),this.describe(u,F||Z(this,h,"f").deferY18nLookup("Show hidden options")),Z(this,b,"f").showHiddenOpt=u,this}showHidden(D,F){return this.addShowHiddenOpt(D,F)}alias(D,F){return L("<object|string|array> [string|array]",[D,F],arguments.length),this[iF](this.alias.bind(this),"alias",D,F),this}array(D){return L("<array|string>",[D],arguments.length),this[hD]("array",D),this[E0](D),this}boolean(D){return L("<array|string>",[D],arguments.length),this[hD]("boolean",D),this[E0](D),this}check(D,F){return L("<function> [boolean]",[D,F],arguments.length),this.middleware((u,E)=>{return oD(()=>{return D(u,E.getOptions())},(B)=>{if(!B)Z(this,h,"f").fail(Z(this,k,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof B==="string"||B instanceof Error)Z(this,h,"f").fail(B.toString(),B);return u},(B)=>{return Z(this,h,"f").fail(B.message?B.message:B.toString(),B),u})},!1,F),this}choices(D,F){return L("<object|string|array> [string|array]",[D,F],arguments.length),this[iF](this.choices.bind(this),"choices",D,F),this}coerce(D,F){if(L("<object|string|array> [function]",[D,F],arguments.length),Array.isArray(D)){if(!F)throw new DD("coerce callback must be provided");for(let E of D)this.coerce(E,F);return this}else if(typeof D==="object"){for(let E of Object.keys(D))this.coerce(E,D[E]);return this}if(!F)throw new DD("coerce callback must be provided");let u=D;return Z(this,b,"f").key[u]=!0,Z(this,MD,"f").addCoerceMiddleware((E,B)=>{var C;let $=(C=B.getAliases()[u])!==null&&C!==void 0?C:[],X=[u,...$].filter((Q)=>Object.prototype.hasOwnProperty.call(E,Q));if(X.length===0)return E;return oD(()=>{return F(E[X[0]])},(Q)=>{return X.forEach((z)=>{E[z]=Q}),E},(Q)=>{throw new DD(Q.message)})},u),this}conflicts(D,F){return L("<string|object> [string|array]",[D,F],arguments.length),Z(this,a,"f").conflicts(D,F),this}config(D="config",F,u){if(L("[object|string] [string|function] [function]",[D,F,u],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=V0(D,Z(this,nD,"f"),this[F0]()["deep-merge-config"]||!1,Z(this,k,"f")),Z(this,b,"f").configObjects=(Z(this,b,"f").configObjects||[]).concat(D),this;if(typeof F==="function")u=F,F=void 0;return this.describe(D,F||Z(this,h,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{Z(this,b,"f").config[E]=u||!0}),this}completion(D,F,u){if(L("[string] [string|boolean|function] [function]",[D,F,u],arguments.length),typeof F==="function")u=F,F=void 0;if(I(this,AD,D||Z(this,AD,"f")||"completion","f"),!F&&F!==!1)F="generate completion script";if(this.command(Z(this,AD,"f"),F),u)Z(this,JD,"f").registerFunction(u);return this}command(D,F,u,E,B,C){return L("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[D,F,u,E,B,C],arguments.length),Z(this,FD,"f").addHandler(D,F,u,E,B,C),this}commands(D,F,u,E,B,C){return this.command(D,F,u,E,B,C)}commandDir(D,F){L("<string> [object]",[D,F],arguments.length);let u=Z(this,m0,"f")||Z(this,k,"f").require;return Z(this,FD,"f").addDirectory(D,u,Z(this,k,"f").getCallerFile(),F),this}count(D){return L("<array|string>",[D],arguments.length),this[hD]("count",D),this[E0](D),this}default(D,F,u){if(L("<object|string|array> [*] [string]",[D,F,u],arguments.length),u)pF(D,Z(this,k,"f")),Z(this,b,"f").defaultDescription[D]=u;if(typeof F==="function"){if(pF(D,Z(this,k,"f")),!Z(this,b,"f").defaultDescription[D])Z(this,b,"f").defaultDescription[D]=Z(this,h,"f").functionDescription(F);F=F.call()}return this[J0](this.default.bind(this),"default",D,F),this}defaults(D,F,u){return this.default(D,F,u)}demandCommand(D=1,F,u,E){if(L("[number] [number|string] [string|null|undefined] [string|null|undefined]",[D,F,u,E],arguments.length),typeof F!=="number")u=F,F=1/0;return this.global("_",!1),Z(this,b,"f").demandedCommands._={min:D,max:F,minMsg:u,maxMsg:E},this}demand(D,F,u){if(Array.isArray(F))F.forEach((E)=>{OD(u,!0,Z(this,k,"f")),this.demandOption(E,u)}),F=1/0;else if(typeof F!=="number")u=F,F=1/0;if(typeof D==="number")OD(u,!0,Z(this,k,"f")),this.demandCommand(D,F,u,u);else if(Array.isArray(D))D.forEach((E)=>{OD(u,!0,Z(this,k,"f")),this.demandOption(E,u)});else if(typeof u==="string")this.demandOption(D,u);else if(u===!0||typeof u>"u")this.demandOption(D);return this}demandOption(D,F){return L("<object|string|array> [string]",[D,F],arguments.length),this[J0](this.demandOption.bind(this),"demandedOptions",D,F),this}deprecateOption(D,F){return L("<string> [string|boolean]",[D,F],arguments.length),Z(this,b,"f").deprecatedOptions[D]=F,this}describe(D,F){return L("<object|string|array> [string]",[D,F],arguments.length),this[rF](D,!0),Z(this,h,"f").describe(D,F),this}detectLocale(D){return L("<boolean>",[D],arguments.length),I(this,iD,D,"f"),this}env(D){if(L("[string|boolean]",[D],arguments.length),D===!1)delete Z(this,b,"f").envPrefix;else Z(this,b,"f").envPrefix=D||"";return this}epilogue(D){return L("<string>",[D],arguments.length),Z(this,h,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,F){if(L("<string|array> [string]",[D,F],arguments.length),Array.isArray(D))D.forEach((u)=>this.example(...u));else Z(this,h,"f").example(D,F);return this}exit(D,F){if(I(this,GD,!0,"f"),I(this,kD,F,"f"),Z(this,_D,"f"))Z(this,k,"f").process.exit(D)}exitProcess(D=!0){return L("[boolean]",[D],arguments.length),I(this,_D,D,"f"),this}fail(D){if(L("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new DD("Invalid first argument. Expected function or boolean 'false'");return Z(this,h,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,F){if(L("<array> [function]",[D,F],arguments.length),!F)return new Promise((u,E)=>{Z(this,JD,"f").getCompletion(D,(B,C)=>{if(B)E(B);else u(C)})});else return Z(this,JD,"f").getCompletion(D,F)}getDemandedOptions(){return L([],0),Z(this,b,"f").demandedOptions}getDemandedCommands(){return L([],0),Z(this,b,"f").demandedCommands}getDeprecatedOptions(){return L([],0),Z(this,b,"f").deprecatedOptions}getDetectLocale(){return Z(this,iD,"f")}getExitProcess(){return Z(this,_D,"f")}getGroups(){return Object.assign({},Z(this,ID,"f"),Z(this,rD,"f"))}getHelp(){if(I(this,GD,!0,"f"),!Z(this,h,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[R0](Z(this,yD,"f"),void 0,void 0,0,!0);if(s(F))return F.then(()=>{return Z(this,h,"f").help()})}let D=Z(this,FD,"f").runDefaultBuilderOn(this);if(s(D))return D.then(()=>{return Z(this,h,"f").help()})}return Promise.resolve(Z(this,h,"f").help())}getOptions(){return Z(this,b,"f")}getStrict(){return Z(this,aD,"f")}getStrictCommands(){return Z(this,eD,"f")}getStrictOptions(){return Z(this,D0,"f")}global(D,F){if(L("<string|array> [boolean]",[D,F],arguments.length),D=[].concat(D),F!==!1)Z(this,b,"f").local=Z(this,b,"f").local.filter((u)=>D.indexOf(u)===-1);else D.forEach((u)=>{if(!Z(this,b,"f").local.includes(u))Z(this,b,"f").local.push(u)});return this}group(D,F){L("<string|array> <string>",[D,F],arguments.length);let u=Z(this,rD,"f")[F]||Z(this,ID,"f")[F];if(Z(this,rD,"f")[F])delete Z(this,rD,"f")[F];let E={};return Z(this,ID,"f")[F]=(u||[]).concat(D).filter((B)=>{if(E[B])return!1;return E[B]=!0}),this}hide(D){return L("<string>",[D],arguments.length),Z(this,b,"f").hiddenOptions.push(D),this}implies(D,F){return L("<string|object> [number|string|array]",[D,F],arguments.length),Z(this,a,"f").implies(D,F),this}locale(D){if(L("[string]",[D],arguments.length),D===void 0)return this[oF](),Z(this,k,"f").y18n.getLocale();return I(this,iD,!1,"f"),Z(this,k,"f").y18n.setLocale(D),this}middleware(D,F,u){return Z(this,MD,"f").addMiddleware(D,!!F,u)}nargs(D,F){return L("<string|object|array> [number]",[D,F],arguments.length),this[J0](this.nargs.bind(this),"narg",D,F),this}normalize(D){return L("<array|string>",[D],arguments.length),this[hD]("normalize",D),this}number(D){return L("<array|string>",[D],arguments.length),this[hD]("number",D),this[E0](D),this}option(D,F){if(L("<string|object> [object]",[D,F],arguments.length),typeof D==="object")Object.keys(D).forEach((u)=>{this.options(u,D[u])});else{if(typeof F!=="object")F={};if(this[E0](D),Z(this,wD,"f")&&(D==="version"||(F===null||F===void 0?void 0:F.alias)==="version"))this[X3](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
90
|
+
`),void 0,"versionWarning");if(Z(this,b,"f").key[D]=!0,F.alias)this.alias(D,F.alias);let u=F.deprecate||F.deprecated;if(u)this.deprecateOption(D,u);let E=F.demand||F.required||F.require;if(E)this.demand(D,E);if(F.demandOption)this.demandOption(D,typeof F.demandOption==="string"?F.demandOption:void 0);if(F.conflicts)this.conflicts(D,F.conflicts);if("default"in F)this.default(D,F.default);if(F.implies!==void 0)this.implies(D,F.implies);if(F.nargs!==void 0)this.nargs(D,F.nargs);if(F.config)this.config(D,F.configParser);if(F.normalize)this.normalize(D);if(F.choices)this.choices(D,F.choices);if(F.coerce)this.coerce(D,F.coerce);if(F.group)this.group(D,F.group);if(F.boolean||F.type==="boolean"){if(this.boolean(D),F.alias)this.boolean(F.alias)}if(F.array||F.type==="array"){if(this.array(D),F.alias)this.array(F.alias)}if(F.number||F.type==="number"){if(this.number(D),F.alias)this.number(F.alias)}if(F.string||F.type==="string"){if(this.string(D),F.alias)this.string(F.alias)}if(F.count||F.type==="count")this.count(D);if(typeof F.global==="boolean")this.global(D,F.global);if(F.defaultDescription)Z(this,b,"f").defaultDescription[D]=F.defaultDescription;if(F.skipValidation)this.skipValidation(D);let B=F.describe||F.description||F.desc,C=Z(this,h,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(C,D)||typeof B==="string")this.describe(D,B);if(F.hidden)this.hide(D);if(F.requiresArg)this.requiresArg(D)}return this}options(D,F){return this.option(D,F)}parse(D,F,u){if(L("[string|array] [function|boolean|object] [function]",[D,F,u],arguments.length),this[Z3](),typeof D>"u")D=Z(this,yD,"f");if(typeof F==="object")I(this,sD,F,"f"),F=u;if(typeof F==="function")I(this,HD,F,"f"),F=!1;if(!F)I(this,yD,D,"f");if(Z(this,HD,"f"))I(this,_D,!1,"f");let E=this[R0](D,!!F),B=this.parsed;if(Z(this,JD,"f").setParsed(this.parsed),s(E))return E.then((C)=>{if(Z(this,HD,"f"))Z(this,HD,"f").call(this,Z(this,kD,"f"),C,Z(this,ZD,"f"));return C}).catch((C)=>{if(Z(this,HD,"f"))Z(this,HD,"f")(C,this.parsed.argv,Z(this,ZD,"f"));throw C}).finally(()=>{this[aF](),this.parsed=B});else{if(Z(this,HD,"f"))Z(this,HD,"f").call(this,Z(this,kD,"f"),E,Z(this,ZD,"f"));this[aF](),this.parsed=B}return E}parseAsync(D,F,u){let E=this.parse(D,F,u);return!s(E)?Promise.resolve(E):E}parseSync(D,F,u){let E=this.parse(D,F,u);if(s(E))throw new DD(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return E}parserConfiguration(D){return L("<object>",[D],arguments.length),I(this,c0,D,"f"),this}pkgConf(D,F){L("<string> [string]",[D,F],arguments.length);let u=null,E=this[nF](F||Z(this,nD,"f"));if(E[D]&&typeof E[D]==="object")u=V0(E[D],F||Z(this,nD,"f"),this[F0]()["deep-merge-config"]||!1,Z(this,k,"f")),Z(this,b,"f").configObjects=(Z(this,b,"f").configObjects||[]).concat(u);return this}positional(D,F){L("<string> <object>",[D,F],arguments.length);let u=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];F=vD(F,(C,$)=>{if(C==="type"&&!["string","number","boolean"].includes($))return!1;return u.includes(C)});let E=Z(this,K0,"f").fullCommands[Z(this,K0,"f").fullCommands.length-1],B=E?Z(this,FD,"f").cmdToParseOptions(E):{array:[],alias:{},default:{},demand:{}};return z0(B).forEach((C)=>{let $=B[C];if(Array.isArray($)){if($.indexOf(D)!==-1)F[C]=!0}else if($[D]&&!(C in F))F[C]=$[D]}),this.group(D,Z(this,h,"f").getPositionalGroupName()),this.option(D,F)}recommendCommands(D=!0){return L("[boolean]",[D],arguments.length),I(this,l0,D,"f"),this}required(D,F,u){return this.demand(D,F,u)}require(D,F,u){return this.demand(D,F,u)}requiresArg(D){if(L("<array|string|object> [number]",[D],arguments.length),typeof D==="string"&&Z(this,b,"f").narg[D])return this;else this[J0](this.requiresArg.bind(this),"narg",D,NaN);return this}showCompletionScript(D,F){return L("[string] [string]",[D,F],arguments.length),D=D||this.$0,Z(this,tD,"f").log(Z(this,JD,"f").generateCompletionScript(D,F||Z(this,AD,"f")||"completion")),this}showHelp(D){if(L("[string|function]",[D],arguments.length),I(this,GD,!0,"f"),!Z(this,h,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[R0](Z(this,yD,"f"),void 0,void 0,0,!0);if(s(u))return u.then(()=>{Z(this,h,"f").showHelp(D)}),this}let F=Z(this,FD,"f").runDefaultBuilderOn(this);if(s(F))return F.then(()=>{Z(this,h,"f").showHelp(D)}),this}return Z(this,h,"f").showHelp(D),this}scriptName(D){return this.customScriptName=!0,this.$0=D,this}showHelpOnFail(D,F){return L("[boolean|string] [string]",[D,F],arguments.length),Z(this,h,"f").showHelpOnFail(D,F),this}showVersion(D){return L("[string|function]",[D],arguments.length),Z(this,h,"f").showVersion(D),this}skipValidation(D){return L("<array|string>",[D],arguments.length),this[hD]("skipValidation",D),this}strict(D){return L("[boolean]",[D],arguments.length),I(this,aD,D!==!1,"f"),this}strictCommands(D){return L("[boolean]",[D],arguments.length),I(this,eD,D!==!1,"f"),this}strictOptions(D){return L("[boolean]",[D],arguments.length),I(this,D0,D!==!1,"f"),this}string(D){return L("<array|string>",[D],arguments.length),this[hD]("string",D),this[E0](D),this}terminalWidth(){return L([],0),Z(this,k,"f").process.stdColumns}updateLocale(D){return this.updateStrings(D)}updateStrings(D){return L("<object>",[D],arguments.length),I(this,iD,!1,"f"),Z(this,k,"f").y18n.updateLocale(D),this}usage(D,F,u,E){if(L("<string|null|undefined> [string|boolean] [function|object] [function]",[D,F,u,E],arguments.length),F!==void 0)if(OD(D,null,Z(this,k,"f")),(D||"").match(/^\$0( |$)/))return this.command(D,F,u,E);else throw new DD(".usage() description must start with $0 if being used as alias for .command()");else return Z(this,h,"f").usage(D),this}usageConfiguration(D){return L("<object>",[D],arguments.length),I(this,o0,D,"f"),this}version(D,F,u){if(L("[boolean|string] [string] [string]",[D,F,u],arguments.length),Z(this,wD,"f"))this[lF](Z(this,wD,"f")),Z(this,h,"f").version(void 0),I(this,wD,null,"f");if(arguments.length===0)u=this[Y3](),D="version";else if(arguments.length===1){if(D===!1)return this;u=D,D="version"}else if(arguments.length===2)u=F,F=void 0;return I(this,wD,typeof D==="string"?D:"version","f"),F=F||Z(this,h,"f").deferY18nLookup("Show version number"),Z(this,h,"f").version(u||void 0),this.boolean(Z(this,wD,"f")),this.describe(Z(this,wD,"f"),F),this}wrap(D){return L("<number|null|undefined>",[D],arguments.length),Z(this,h,"f").wrap(D),this}[(FD=new WeakMap,nD=new WeakMap,K0=new WeakMap,JD=new WeakMap,AD=new WeakMap,h0=new WeakMap,kD=new WeakMap,iD=new WeakMap,d0=new WeakMap,_D=new WeakMap,p0=new WeakMap,MD=new WeakMap,ID=new WeakMap,GD=new WeakMap,VD=new WeakMap,g0=new WeakMap,tD=new WeakMap,ZD=new WeakMap,b=new WeakMap,m0=new WeakMap,c0=new WeakMap,HD=new WeakMap,sD=new WeakMap,O0=new WeakMap,rD=new WeakMap,yD=new WeakMap,l0=new WeakMap,k=new WeakMap,aD=new WeakMap,eD=new WeakMap,D0=new WeakMap,h=new WeakMap,o0=new WeakMap,wD=new WeakMap,a=new WeakMap,C3)](D){if(!D._||!D["--"])return D;D._.push.apply(D._,D["--"]);try{delete D["--"]}catch(F){}return D}[$3](){return{log:(...D)=>{if(!this[n0]())console.log(...D);if(I(this,GD,!0,"f"),Z(this,ZD,"f").length)I(this,ZD,Z(this,ZD,"f")+`
|
|
91
91
|
`,"f");I(this,ZD,Z(this,ZD,"f")+D.join(" "),"f")},error:(...D)=>{if(!this[n0]())console.error(...D);if(I(this,GD,!0,"f"),Z(this,ZD,"f").length)I(this,ZD,Z(this,ZD,"f")+`
|
|
92
|
-
`,"f");I(this,ZD,Z(this,ZD,"f")+D.join(" "),"f")}}}[lF](D){z0(Z(this,b,"f")).forEach((F)=>{if(((E)=>E==="configObjects")(F))return;let u=Z(this,b,"f")[F];if(Array.isArray(u)){if(u.includes(D))u.splice(u.indexOf(D),1)}else if(typeof u==="object")delete u[D]}),delete Z(this,h,"f").getDescriptions()[D]}[C3](D,F,u){if(!Z(this,d0,"f")[u])Z(this,k,"f").process.emitWarning(D,F),Z(this,d0,"f")[u]=!0}[$3](){Z(this,p0,"f").push({options:Z(this,b,"f"),configObjects:Z(this,b,"f").configObjects.slice(0),exitProcess:Z(this,_D,"f"),groups:Z(this,ID,"f"),strict:Z(this,aD,"f"),strictCommands:Z(this,eD,"f"),strictOptions:Z(this,D0,"f"),completionCommand:Z(this,AD,"f"),output:Z(this,ZD,"f"),exitError:Z(this,kD,"f"),hasOutput:Z(this,GD,"f"),parsed:this.parsed,parseFn:Z(this,HD,"f"),parseContext:Z(this,sD,"f")}),Z(this,h,"f").freeze(),Z(this,a,"f").freeze(),Z(this,FD,"f").freeze(),Z(this,MD,"f").freeze()}[X3](){let D="",F;if(/\b(node|iojs|electron)(\.exe)?$/.test(Z(this,k,"f").process.argv()[0]))F=Z(this,k,"f").process.argv().slice(1,2);else F=Z(this,k,"f").process.argv().slice(0,1);if(D=F.map((u)=>{let E=this[M3](Z(this,nD,"f"),u);return u.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<u.length?E:u}).join(" ").trim(),Z(this,k,"f").getEnv("_")&&Z(this,k,"f").getProcessArgvBin()===Z(this,k,"f").getEnv("_"))D=Z(this,k,"f").getEnv("_").replace(`${Z(this,k,"f").path.dirname(Z(this,k,"f").process.execPath())}/`,"");return D}[F0](){return Z(this,c0,"f")}[Z3](){return Z(this,o0,"f")}[oF](){if(!Z(this,iD,"f"))return;let D=Z(this,k,"f").getEnv("LC_ALL")||Z(this,k,"f").getEnv("LC_MESSAGES")||Z(this,k,"f").getEnv("LANG")||Z(this,k,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[Q3](){return this[nF]().version||"unknown"}[z3](D){let F=D["--"]?D["--"]:D._;for(let u=0,E;(E=F[u])!==void 0;u++)if(Z(this,k,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))F[u]=Number(E);return D}[nF](D){let F=D||"*";if(Z(this,O0,"f")[F])return Z(this,O0,"f")[F];let u={};try{let E=D||Z(this,k,"f").mainFilename;if(Z(this,k,"f").path.extname(E))E=Z(this,k,"f").path.dirname(E);let B=Z(this,k,"f").findUp(E,(C,$)=>{if($.includes("package.json"))return"package.json";else return});OD(B,void 0,Z(this,k,"f")),u=JSON.parse(Z(this,k,"f").readFileSync(B,"utf8"))}catch(E){}return Z(this,O0,"f")[F]=u||{},Z(this,O0,"f")[F]}[hD](D,F){F=[].concat(F),F.forEach((u)=>{u=this[sF](u),Z(this,b,"f")[D].push(u)})}[J0](D,F,u,E){this[tF](D,F,u,E,(B,C,$)=>{Z(this,b,"f")[B][C]=$})}[iF](D,F,u,E){this[tF](D,F,u,E,(B,C,$)=>{Z(this,b,"f")[B][C]=(Z(this,b,"f")[B][C]||[]).concat($)})}[tF](D,F,u,E,B){if(Array.isArray(u))u.forEach((C)=>{D(C,E)});else if(((C)=>typeof C==="object")(u))for(let C of z0(u))D(C,u[C]);else B(F,this[sF](u),E)}[sF](D){if(D==="__proto__")return"___proto___";return D}[rF](D,F){return this[J0](this[rF].bind(this),"key",D,F),this}[aF](){var D,F,u,E,B,C,$,X,Q,z,J,W;let Y=Z(this,p0,"f").pop();OD(Y,void 0,Z(this,k,"f"));let H;D=this,F=this,u=this,E=this,B=this,C=this,$=this,X=this,Q=this,z=this,J=this,W=this,{options:{set value(_){I(D,b,_,"f")}}.value,configObjects:H,exitProcess:{set value(_){I(F,_D,_,"f")}}.value,groups:{set value(_){I(u,ID,_,"f")}}.value,output:{set value(_){I(E,ZD,_,"f")}}.value,exitError:{set value(_){I(B,kD,_,"f")}}.value,hasOutput:{set value(_){I(C,GD,_,"f")}}.value,parsed:this.parsed,strict:{set value(_){I($,aD,_,"f")}}.value,strictCommands:{set value(_){I(X,eD,_,"f")}}.value,strictOptions:{set value(_){I(Q,D0,_,"f")}}.value,completionCommand:{set value(_){I(z,AD,_,"f")}}.value,parseFn:{set value(_){I(J,HD,_,"f")}}.value,parseContext:{set value(_){I(W,sD,_,"f")}}.value}=Y,Z(this,b,"f").configObjects=H,Z(this,h,"f").unfreeze(),Z(this,a,"f").unfreeze(),Z(this,FD,"f").unfreeze(),Z(this,MD,"f").unfreeze()}[Y3](D,F){return oD(F,(u)=>{return D(u),u})}getInternalMethods(){return{getCommandInstance:this[O3].bind(this),getContext:this[J3].bind(this),getHasOutput:this[W3].bind(this),getLoggerInstance:this[A3].bind(this),getParseContext:this[G3].bind(this),getParserConfiguration:this[F0].bind(this),getUsageConfiguration:this[Z3].bind(this),getUsageInstance:this[H3].bind(this),getValidationInstance:this[q3].bind(this),hasParseCallback:this[n0].bind(this),isGlobalContext:this[_3].bind(this),postProcess:this[u0].bind(this),reset:this[eF].bind(this),runValidation:this[D2].bind(this),runYargsParserAndExecuteCommands:this[R0].bind(this),setHasOutput:this[K3].bind(this)}}[O3](){return Z(this,FD,"f")}[J3](){return Z(this,V0,"f")}[W3](){return Z(this,GD,"f")}[A3](){return Z(this,tD,"f")}[G3](){return Z(this,sD,"f")||{}}[H3](){return Z(this,h,"f")}[q3](){return Z(this,a,"f")}[n0](){return!!Z(this,HD,"f")}[_3](){return Z(this,g0,"f")}[u0](D,F,u,E){if(u)return D;if(s(D))return D;if(!F)D=this[E3](D);if(this[F0]()["parse-positional-numbers"]||this[F0]()["parse-positional-numbers"]===void 0)D=this[z3](D);if(E)D=lD(D,this,Z(this,MD,"f").getMiddleware(),!1);return D}[eF](D={}){I(this,b,Z(this,b,"f")||{},"f");let F={};F.local=Z(this,b,"f").local||[],F.configObjects=Z(this,b,"f").configObjects||[];let u={};F.local.forEach((C)=>{u[C]=!0,(D[C]||[]).forEach(($)=>{u[$]=!0})}),Object.assign(Z(this,rD,"f"),Object.keys(Z(this,ID,"f")).reduce((C,$)=>{let X=Z(this,ID,"f")[$].filter((Q)=>!(Q in u));if(X.length>0)C[$]=X;return C},{})),I(this,ID,{},"f");let E=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],B=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(E.forEach((C)=>{F[C]=(Z(this,b,"f")[C]||[]).filter(($)=>!u[$])}),B.forEach((C)=>{F[C]=vD(Z(this,b,"f")[C],($)=>!u[$])}),F.envPrefix=Z(this,b,"f").envPrefix,I(this,b,F,"f"),I(this,h,Z(this,h,"f")?Z(this,h,"f").reset(u):i1(this,Z(this,k,"f")),"f"),I(this,a,Z(this,a,"f")?Z(this,a,"f").reset(u):F3(this,Z(this,h,"f"),Z(this,k,"f")),"f"),I(this,FD,Z(this,FD,"f")?Z(this,FD,"f").reset():l1(Z(this,h,"f"),Z(this,a,"f"),Z(this,MD,"f"),Z(this,k,"f")),"f"),!Z(this,JD,"f"))I(this,JD,a1(this,Z(this,h,"f"),Z(this,FD,"f"),Z(this,k,"f")),"f");return Z(this,MD,"f").reset(),I(this,AD,null,"f"),I(this,ZD,"","f"),I(this,kD,null,"f"),I(this,GD,!1,"f"),this.parsed=!1,this}[M3](D,F){return Z(this,k,"f").path.relative(D,F)}[R0](D,F,u,E=0,B=!1){var C,$,X,Q;let z=!!u||B;D=D||Z(this,yD,"f"),Z(this,b,"f").__=Z(this,k,"f").y18n.__,Z(this,b,"f").configuration=this[F0]();let J=!!Z(this,b,"f").configuration["populate--"],W=Object.assign({},Z(this,b,"f").configuration,{"populate--":!0}),Y=Z(this,k,"f").Parser.detailed(D,Object.assign({},Z(this,b,"f"),{configuration:{"parse-positional-numbers":!1,...W}})),H=Object.assign(Y.argv,Z(this,sD,"f")),_=void 0,q=Y.aliases,P=!1,c=!1;if(Object.keys(H).forEach((p)=>{if(p===Z(this,KD,"f")&&H[p])P=!0;else if(p===Z(this,wD,"f")&&H[p])c=!0}),H.$0=this.$0,this.parsed=Y,E===0)Z(this,h,"f").clearCachedHelpMessage();try{if(this[oF](),F)return this[u0](H,J,!!u,!1);if(Z(this,KD,"f")){if([Z(this,KD,"f")].concat(q[Z(this,KD,"f")]||[]).filter((j)=>j.length>1).includes(""+H._[H._.length-1]))H._.pop(),P=!0}I(this,g0,!1,"f");let p=Z(this,FD,"f").getCommands(),QD=((C=Z(this,JD,"f"))===null||C===void 0?void 0:C.completionKey)?[($=Z(this,JD,"f"))===null||$===void 0?void 0:$.completionKey,...(Q=this.getAliases()[(X=Z(this,JD,"f"))===null||X===void 0?void 0:X.completionKey])!==null&&Q!==void 0?Q:[]].some((U)=>Object.prototype.hasOwnProperty.call(H,U)):!1,d=P||QD||B;if(H._.length){if(p.length){let U;for(let j=E||0,S;H._[j]!==void 0;j++)if(S=String(H._[j]),p.includes(S)&&S!==Z(this,AD,"f")){let l=Z(this,FD,"f").runCommand(S,this,Y,j+1,B,P||c||B);return this[u0](l,J,!!u,!1)}else if(!U&&S!==Z(this,AD,"f")){U=S;break}if(!Z(this,FD,"f").hasDefaultCommand()&&Z(this,l0,"f")&&U&&!d)Z(this,a,"f").recommendCommands(U,p)}if(Z(this,AD,"f")&&H._.includes(Z(this,AD,"f"))&&!QD){if(Z(this,_D,"f"))fD(!0);this.showCompletionScript(),this.exit(0)}}if(Z(this,FD,"f").hasDefaultCommand()&&!d){let U=Z(this,FD,"f").runCommand(null,this,Y,0,B,P||c||B);return this[u0](U,J,!!u,!1)}if(QD){if(Z(this,_D,"f"))fD(!0);D=[].concat(D);let U=D.slice(D.indexOf(`--${Z(this,JD,"f").completionKey}`)+1);return Z(this,JD,"f").getCompletion(U,(j,S)=>{if(j)throw new DD(j.message);(S||[]).forEach((l)=>{Z(this,tD,"f").log(l)}),this.exit(0)}),this[u0](H,!J,!!u,!1)}if(!Z(this,GD,"f")){if(P){if(Z(this,_D,"f"))fD(!0);z=!0,this.showHelp((U)=>{Z(this,tD,"f").log(U),this.exit(0)})}else if(c){if(Z(this,_D,"f"))fD(!0);z=!0,Z(this,h,"f").showVersion("log"),this.exit(0)}}if(!z&&Z(this,b,"f").skipValidation.length>0)z=Object.keys(H).some((U)=>Z(this,b,"f").skipValidation.indexOf(U)>=0&&H[U]===!0);if(!z){if(Y.error)throw new DD(Y.error.message);if(!QD){let U=this[D2](q,{},Y.error);if(!u)_=lD(H,this,Z(this,MD,"f").getMiddleware(),!0);if(_=this[Y3](U,_!==null&&_!==void 0?_:H),s(_)&&!u)_=_.then(()=>{return lD(H,this,Z(this,MD,"f").getMiddleware(),!1)})}}}catch(p){if(p instanceof DD)Z(this,h,"f").fail(p.message,p);else throw p}return this[u0](_!==null&&_!==void 0?_:H,J,!!u,!0)}[D2](D,F,u,E){let B={...this.getDemandedOptions()};return(C)=>{if(u)throw new DD(u.message);Z(this,a,"f").nonOptionCount(C),Z(this,a,"f").requiredArguments(C,B);let $=!1;if(Z(this,eD,"f"))$=Z(this,a,"f").unknownCommands(C);if(Z(this,aD,"f")&&!$)Z(this,a,"f").unknownArguments(C,D,F,!!E);else if(Z(this,D0,"f"))Z(this,a,"f").unknownArguments(C,D,{},!1,!1);Z(this,a,"f").limitedChoices(C),Z(this,a,"f").implications(C),Z(this,a,"f").conflicting(C)}}[K3](){I(this,GD,!0,"f")}[E0](D){if(typeof D==="string")Z(this,b,"f").key[D]=!0;else for(let F of D)Z(this,b,"f").key[F]=!0}}function o1(D){return!!D&&typeof D.getInternalMethods==="function"}var y8=V3(dF),U3=y8;import{performance as N3}from"node:perf_hooks";var dD=x0(u2(),1);class g8{total;message;current=0;barLength=30;startTime=N3.now();constructor(D,F){this.total=D;this.message=F}update(D,F){this.current=Math.min(D,this.total),this.render(F)}increment(D){this.update(this.current+1,D)}complete(D){this.current=this.total,this.render();let F=Math.round(N3.now()-this.startTime);console.log(dD.default.green(`✅ ${D||this.message} ${dD.default.gray(`(${F}ms)`)}`))}render(D){let F=Math.round(this.current/this.total*100),u=Math.round(this.current/this.total*this.barLength),E=this.barLength-u,B=dD.default.green("█".repeat(u))+dD.default.gray("░".repeat(E)),C=`${this.current}/${this.total}`,$=D?dD.default.gray(` ${D}`):"";if(process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(`${this.message} ${B} ${dD.default.cyan(C)} ${dD.default.yellow(`${F}%`)}${$}`),this.current===this.total)process.stdout.write(`
|
|
93
|
-
`)}}var $D=x0(u2(),1);class s0{options;constructor(D={}){this.options={timestamp:!1,verbose:!1,...D}}formatMessage(D,F,u){let E=this.options.timestamp?`${$D.default.gray(new Date().toLocaleTimeString())} `:"",B=this.options.prefix?`${$D.default.cyan(`[${this.options.prefix}]`)} `:"";return`${E}${u(D)} ${B}${F}`}success(D){console.log(this.formatMessage("✅",D,$D.default.green))}error(D,F){if(console.error(this.formatMessage("❌",D,$D.default.red)),F&&this.options.verbose){if(console.error($D.default.red(` ${F.message}`)),F.stack)console.error($D.default.gray(F.stack))}}warn(D){console.warn(this.formatMessage("⚠️",D,$D.default.yellow))}info(D){console.log(this.formatMessage("ℹ️",D,$D.default.blue))}debug(D){if(this.options.verbose)console.log(this.formatMessage("\uD83D\uDC1B",D,$D.default.magenta))}step(D){console.log(this.formatMessage("\uD83D\uDE80",D,$D.default.cyan))}progress(D){console.log(this.formatMessage("⏳",D,$D.default.blue))}plain(D,F=(u)=>u){let u=this.options.timestamp?`${$D.default.gray(new Date().toLocaleTimeString())} `:"",E=this.options.prefix?`${$D.default.cyan(`[${this.options.prefix}]`)} `:"";console.log(`${u}${E}${F(D)}`)}dim(D){this.plain(D,$D.default.gray)}child(D){return new s0({...this.options,prefix:this.options.prefix?`${this.options.prefix}:${D}`:D})}configure(D){this.options={...this.options,...D}}}var B0=new s0;function r0(D){B0.success(D)}function VD(D,F){B0.error(D,F)}function E2(D){B0.warn(D)}function a0(D){B0.info(D)}function B2(D){B0.step(D)}function I3(D){B0.dim(D)}function C2(D){B0.configure(D)}function jD(D={}){return new s0(D)}function $2(D){console.log(),console.log($D.default.cyan($D.default.bold(`━━━ ${D} ━━━`)))}function X2(D,F,u){let E=D;if(F)E+=` ${$D.default.gray(`(${F}ms)`)}`;if(r0(E),u)Object.entries(u).forEach(([B,C])=>{I3(` ${B}: ${C}`)})}function C0(D,F="•"){D.forEach((u)=>{console.log($D.default.gray(` ${F} ${u}`))})}import{existsSync as ou}from"node:fs";import{resolve as nu}from"node:path";import{existsSync as e0,mkdirSync as w3}from"node:fs";import{readdir as T3,readFile as m8,stat as c8,unlink as b3,writeFile as l8}from"node:fs/promises";import{join as Z2}from"node:path";class $0{cache=new Map;config;cacheDir;constructor(D){if(this.config={enablePersistence:!0,cacheDir:".typeschema-cache",maxAge:86400000,validateCached:!0,...D},this.config.enablePersistence&&this.config.cacheDir)this.cacheDir=this.config.cacheDir}async set(D){let F=this.generateKey(D.identifier);if(this.cache.set(F,D),this.config.enablePersistence&&this.cacheDir)await this.persistSchema(D)}get(D){let F=this.generateKey(D);return this.cache.get(F)||null}getByUrl(D){for(let F of this.cache.values())if(F.identifier.url===D)return F;return null}has(D){let F=this.generateKey(D);return this.cache.has(F)}hasByUrl(D){for(let F of this.cache.values())if(F.identifier.url===D)return!0;return!1}delete(D){let F=this.generateKey(D);return this.cache.delete(F)}deleteByUrl(D){for(let[F,u]of this.cache.entries())if(u.identifier.url===D)return this.cache.delete(F);return!1}getByPackage(D){let F=[];for(let u of this.cache.values())if(u.identifier.package===D)F.push(u);return F}getByKind(D){let F=[];for(let u of this.cache.values())if(u.identifier.kind===D)F.push(u);return F}setMany(D){for(let F of D)this.set(F)}clear(){this.cache.clear()}generateKey(D){return`${D.package}:${D.version}:${D.kind}:${D.name}`}async initialize(){if(this.config.enablePersistence&&this.cacheDir){if(!e0(this.cacheDir))w3(this.cacheDir,{recursive:!0});await this.loadFromDisk()}}async loadFromDisk(){if(!this.cacheDir||!e0(this.cacheDir))return;try{let F=(await T3(this.cacheDir)).filter((u)=>u.endsWith(".typeschema.json"));for(let u of F){let E=Z2(this.cacheDir,u),B=await c8(E);if(this.config.maxAge){if(Date.now()-B.mtimeMs>this.config.maxAge){await b3(E);continue}}try{let C=await m8(E,"utf-8"),$=JSON.parse(C);if(this.config.validateCached){if(!$.schema?.identifier)continue}let X=this.generateKey($.schema.identifier);this.cache.set(X,$.schema)}catch(C){console.warn(`Failed to load cached schema from ${u}:`,C)}}}catch(D){console.warn("Failed to load cached schemas from disk:",D)}}async persistSchema(D){if(!this.cacheDir)return;if(!e0(this.cacheDir))w3(this.cacheDir,{recursive:!0});let F={schema:D,timestamp:Date.now(),version:D.identifier.version},u=`${D.identifier.package}-${D.identifier.version}-${D.identifier.kind}-${D.identifier.name}.typeschema.json`.replace(/[^a-zA-Z0-9.-]/g,"_"),E=Z2(this.cacheDir,u);try{await l8(E,JSON.stringify(F,null,2),"utf-8")}catch(B){console.warn(`Failed to persist schema to ${E}:`,B)}}async clearDisk(){if(!this.cacheDir||!e0(this.cacheDir))return;try{let F=(await T3(this.cacheDir)).filter((u)=>u.endsWith(".typeschema.json"));for(let u of F)await b3(Z2(this.cacheDir,u))}catch(D){console.warn("Failed to clear cache directory:",D)}}}import{createHash as o8}from"crypto";var Q2=(D)=>{let F=`${D.packageName}@${D.packageVersion}:${D.filePath}`;return o8("sha256").update(F).digest("base64url")};var W0=()=>{let D={},F={};return{generateId:Q2,get:(B)=>D[B],set:(B,C)=>{if(D[B]=C,C.url){if(!F[C.url])F[C.url]=[];let $=F[C.url];if($&&!$.includes(B))$.push(B)}},has:(B)=>(B in D),clear:()=>{Object.keys(D).forEach((B)=>delete D[B]),Object.keys(F).forEach((B)=>delete F[B])},size:()=>Object.keys(D).length,getIdsByUrl:(B)=>F[B]||[],createReference:(B,C)=>({id:B,resourceType:C.resourceType}),getAllReferences:()=>D}};import*as V2 from"path";import*as m3 from"fs/promises";var x3="https://fs.get-ig.org/pkgs/";import*as DF from"fs/promises";import*as P3 from"path";var A0=async(D)=>{try{return await DF.access(D),!0}catch{return!1}},G0=async(D)=>{try{await DF.mkdir(D,{recursive:!0})}catch{}},FF=async(D)=>{let F=P3.join(D,".index.json");return A0(F)};import{exec as n8}from"child_process";import{promisify as i8}from"util";var S3=i8(n8);async function z2(){try{return await S3("bun --version"),"bun"}catch{try{return await S3("npm --version"),"npm"}catch{return null}}}import*as f3 from"fs/promises";import*as k3 from"path";import{exec as t8}from"child_process";import{promisify as s8}from"util";var v3=s8(t8),uF=async(D,F,u)=>{await G0(F);let E=k3.join(F,"package.json");if(!await A0(E))await f3.writeFile(E,JSON.stringify({name:"fhir-canonical-manager-workspace",version:"1.0.0",private:!0,dependencies:{}},null,2));let B=await z2();if(!B)throw Error("No package manager found. Please install npm or bun.");for(let C of D)try{if(B==="bun"){let $={...process.env,HOME:F,NPM_CONFIG_USERCONFIG:"/dev/null"},X=u?`cd ${F} && bun add ${C} --registry ${u}`:`cd ${F} && bun add ${C}`;await v3(X,{env:$,maxBuffer:10485760})}else{let $=u?`cd ${F} && npm add ${C} --registry ${u}`:`cd ${F} && npm add ${C}`;await v3($,{maxBuffer:10485760})}}catch($){throw console.error(`Failed to install package ${C}:`,$),$}};var EF=()=>{let D=W0();return{entries:{},packages:{},references:{},referenceManager:D}};import*as BF from"fs/promises";import*as J2 from"path";import*as Y2 from"fs/promises";import*as O2 from"path";import{createHash as y3}from"crypto";var U0=async(D)=>{try{let F=O2.join(D,"package-lock.json");try{let u=await Y2.readFile(F,"utf-8");return y3("sha256").update(u).digest("hex")}catch{let u=O2.join(D,"bun.lock"),E=await Y2.readFile(u,"utf-8");return y3("sha256").update(E).digest("hex")}}catch{return null}};var CF=async(D,F,u)=>{let E=await U0(u),B={entries:D.entries,packages:D.packages,references:D.referenceManager.getAllReferences(),packageLockHash:E||void 0},C=J2.join(F,"index.json");await BF.writeFile(C,JSON.stringify(B,null,2))},W2=async(D)=>{try{let F=J2.join(D,"index.json"),u=await BF.readFile(F,"utf-8");return JSON.parse(u)}catch{return null}};var h3=(D)=>{if(!D||typeof D!=="object")return!1;if(!D.filename||typeof D.filename!=="string")return!1;if(!D.resourceType||typeof D.resourceType!=="string")return!1;if(!D.id||typeof D.id!=="string")return!1;let F=["url","version","kind","type"];for(let u of F)if(D[u]!==void 0&&typeof D[u]!=="string")return!1;return!0},d3=(D)=>{if(!D||typeof D!=="object")return!1;if(!D["index-version"]||typeof D["index-version"]!=="number")return!1;if(!Array.isArray(D.files))return!1;return D.files.every((F)=>h3(F))},A2=(D,F)=>{try{let u=JSON.parse(D);if(!d3(u))return null;return u}catch{return null}};import*as p3 from"fs/promises";import*as G2 from"path";var $F=async(D,F,u)=>{let E=G2.join(D,".index.json");try{let B=await p3.readFile(E,"utf-8"),C=A2(B,E);if(!C)return;for(let $ of C.files){if(!$.url)continue;let X=G2.join(D,$.filename),Q=u.referenceManager.generateId({packageName:F.name,packageVersion:F.version,filePath:X});u.referenceManager.set(Q,{packageName:F.name,packageVersion:F.version,filePath:X,resourceType:$.resourceType,url:$.url,version:$.version});let z={id:Q,resourceType:$.resourceType,indexVersion:C["index-version"],url:$.url,version:$.version,kind:$.kind,type:$.type,package:{name:F.name,version:F.version}};if(!u.entries[$.url])u.entries[$.url]=[];let J=u.entries[$.url];if(J)J.push(z)}}catch{}};import*as g3 from"fs/promises";import*as XF from"path";var ZF=async(D,F)=>{try{let u=XF.join(D,"package.json"),E=await g3.readFile(u,"utf-8"),B=JSON.parse(E),C={id:{name:B.name,version:B.version},path:D,canonical:B.canonical,fhirVersions:B.fhirVersions};F.packages[B.name]=C,await $F(D,B,F);let $=XF.join(D,"examples");if(await A0(XF.join($,".index.json")))await $F($,B,F)}catch{}};import*as H2 from"fs/promises";import*as q2 from"path";var QF=async(D,F)=>{try{let u=await H2.readdir(D,{withFileTypes:!0});for(let E of u){if(!E.isDirectory())continue;let B=q2.join(D,E.name);if(E.name.startsWith("@")){let C=await H2.readdir(B,{withFileTypes:!0});for(let $ of C){if(!$.isDirectory())continue;let X=q2.join(B,$.name);if(await FF(X))await ZF(X,F)}}else if(await FF(B))await ZF(B,F)}}catch{}};var _2=async(D,F,u,E)=>{if(F.package)try{return await E(D,{package:F.package.name,version:F.package.version})}catch{}return null};var M2={str:["structure"],struct:["structure"],def:["definition"],pati:["patient"],obs:["observation"],org:["organization"],pract:["practitioner"],med:["medication","medicinal"],req:["request"],resp:["response"],ref:["reference"],val:["value"],code:["codesystem","code"],cs:["codesystem"],vs:["valueset"],sd:["structuredefinition"]};var K2=(D,F)=>{if(F.length===0)return D;let u=F.map((E)=>E.toLowerCase());return D.filter((E)=>{if(!E.url)return!1;let C=[E.url.toLowerCase(),E.type?.toLowerCase()||"",E.resourceType?.toLowerCase()||""].join(" ");return u.every(($)=>{let X=C.split(/[\/\-_\.\s]+/);if(X.some((J)=>J.startsWith($)))return!0;let z=M2[$]||[];for(let J of z)if(X.some((W)=>W.startsWith(J)))return!0;return C.includes($)})})};var pD=(D)=>{let{packages:F=[],workingDir:u}=D,E=D.registry?D.registry.endsWith("/")?D.registry:`${D.registry}/`:x3,B=V2.join(u,"node_modules"),C=V2.join(u,".fcm","cache"),$=EF(),X=!1,Q=new Map,z=()=>{if(!X)throw Error("CanonicalManager not initialized. Call init() first.")},J=async()=>{if(X)return;await G0(u),await G0(C);let U=await U0(u),j=await W2(C);if(j&&j.packageLockHash===U&&U!==null)$.entries=j.entries,$.packages=j.packages,Object.entries(j.references).forEach(([l,g])=>{$.referenceManager.set(l,g)});else{if(j&&j.packageLockHash!==U)console.log("Package dependencies have changed, rebuilding index...");await uF(F,u,E),$=EF(),await QF(B,$),await CF($,C,u)}X=!0},W=async()=>{$.entries={},$.packages={},$.referenceManager.clear(),Q.clear(),X=!1},Y=async()=>{return z(),Object.values($.packages).map((U)=>U.id)},H=async(...U)=>{if(U.length===0)return;let j=U.filter((S)=>!F.includes(S));if(j.length!==0)F.push(...j);if(!X){await J();return}if(j.length===0)return;await uF(F,u,E),await QF(B,$),await CF($,C,u)},_=async(U,j)=>{if(z(),j?.sourceContext){let g=await _2(U,j.sourceContext,$,_);if(g)return g}let S=$.entries[U]||[];if(S.length===0)throw Error(`Cannot resolve canonical URL: ${U}`);let l=[...S];if(j?.package)l=l.filter((g)=>g.package?.name===j.package);if(j?.version)l=l.filter((g)=>g.version===j.version);if(l.length===0)throw Error(`No matching resource found for ${U} with given options`);return l[0]},q=async(U,j)=>{let S=await _(U,j);return P(S)},P=async(U)=>{z();let j=$.referenceManager.get(U.id);if(!j)throw Error(`Invalid reference ID: ${U.id}`);try{let S=await m3.readFile(j.filePath,"utf-8");return{...JSON.parse(S),id:U.id,resourceType:U.resourceType}}catch(S){throw Error(`Failed to read resource: ${S}`)}},c=async(U)=>{z();let j=[];if(U.url)j=$.entries[U.url]||[];else for(let S of Object.values($.entries))j.push(...S);if(U.kind!==void 0)j=j.filter((S)=>S.kind===U.kind);if(U.type!==void 0)j=j.filter((S)=>S.type===U.type);if(U.version!==void 0)j=j.filter((S)=>S.version===U.version);if(U.package){let S=U.package;j=j.filter((l)=>l.package?.name===S.name&&l.package?.version===S.version)}return j};return{init:J,destroy:W,packages:Y,addPackages:H,resolveEntry:_,resolve:q,read:P,searchEntries:c,search:async(U)=>{let j=await c(U);return await Promise.all(j.map((l)=>P(l)))},smartSearch:async(U,j)=>{z();let S=await c({kind:j?.kind,package:j?.package});if(j?.resourceType)S=S.filter((l)=>l.resourceType===j.resourceType);if(j?.type)S=S.filter((l)=>l.type===j.type);return K2(S,U)},getSearchParametersForResource:async(U)=>{if(z(),Q.has(U))return Q.get(U);let S=(await c({})).filter((g)=>g.resourceType==="SearchParameter"),l=[];for(let g of S){let ND=await P(g),L=ND.base||[];if(Array.isArray(L)&&L.includes(U))l.push(ND)}return l.sort((g,ND)=>{let L=g.code||"",V=ND.code||"";return L.localeCompare(V)}),Q.set(U,l),l}}};function R2(D){let E=D.path.split(".").slice(1).map(($)=>({el:$}));if(E.length===0)return[];let B=E.length-1,C={};if(D.slicing){if(C.slicing={...D.slicing},D.min!==void 0)C.slicing.min=D.min;if(D.max&&D.max!=="*")C.slicing.max=parseInt(D.max)}if(D.sliceName){if(C.slice={},D.min!==void 0)C.slice.min=D.min;if(D.max&&D.max!=="*")C.slice.max=parseInt(D.max);C.sliceName=D.sliceName}return E[B]={...E[B],...C},E}function U2(D,F){let u=[],E=Math.min(D.length,F.length);for(let B=0;B<E;B++)if(D[B].el===F[B].el)u.push({el:D[B].el});else break;return u}function j2(D,F){let u=[];for(let E=0;E<F.length;E++)if(E<D.length&&D[E].el===F[E].el)u.push({...D[E],...F[E],...D[E].slicing&&!F[E].slicing&&{slicing:D[E].slicing}});else u.push(F[E]);return u}function r8(D,F){return!!(D.sliceName&&F.sliceName&&D.sliceName!==F.sliceName)}function c3(D){return{type:"exit-slice",sliceName:D.sliceName,...D.slicing&&{slicing:D.slicing},...D.slice&&{slice:D.slice}}}function a8(D,F,u,E){let B=[];for(let C=D-1;C>=F;C--){let $=u[C];if($.sliceName)B.push(c3($));B.push({type:"exit",el:$.el})}if(F>0){let C=u[F-1],$=E[F-1];if(r8(C,$))B.push(c3(C))}return B}function e8(D,F,u,E){let B=[];if(D>0&&D<=F){let C=u[D-1]||{},$=E[D-1];if($.sliceName&&(!C.sliceName||C.sliceName!==$.sliceName))B.push({type:"enter-slice",sliceName:$.sliceName});if(D===F)return B}for(let C=D;C<F;C++){let $=E[C];if(B.push({type:"enter",el:$.el}),$.sliceName)B.push({type:"enter-slice",sliceName:$.sliceName})}return B}function zF(D,F){let u=D.length,E=F.length,C=U2(D,F).length,$=a8(u,C,D,F),X=e8(C,E,D,F);return[...$,...X]}function o3(D,F){if(!D)return;return D.find((u)=>u.url===F)}function l3(D){return{Instant:"instant",Time:"time",Date:"date",DateTime:"dateTime",Decimal:"decimal",Boolean:"boolean",Integer:"integer",String:"string",Uri:"uri",Base64Binary:"base64Binary",Code:"code",Id:"id",Oid:"oid",UnsignedInt:"unsignedInt",PositiveInt:"positiveInt",Markdown:"markdown",Url:"url",Canonical:"canonical",Uuid:"uuid"}[D]||D}function Du(D){let F={};for(let[u,E]of Object.entries(D))if(typeof u==="string"&&u.startsWith("pattern")){let B=l3(u.replace(/^pattern/,""));F.pattern={type:B,value:E}}else if(typeof u==="string"&&u.startsWith("fixed")){let B=l3(u.replace(/^fixed/,""));F.pattern={type:B,value:E}}else F[u]=E;if(F.pattern?.type&&!F.type)F.type=F.pattern.type;return F}function Fu(D){let F=[];for(let u of D)if(u.targetProfile){let E=Array.isArray(u.targetProfile)?u.targetProfile:[u.targetProfile];F.push(...E)}return F.length>0?[...new Set(F)].sort():void 0}function uu(D){if(!D.type||D.type.length===0)return D;if(D.type[0].code==="Reference"){let u=Fu(D.type);return{...D,type:[{code:"Reference"}],...u&&{refers:u}}}return D}function Eu(D,F){let u=(C)=>{let $={strength:C.strength,...C.valueSet&&{valueSet:C.valueSet}},X=o3(C.extension,"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName");if(X?.valueString)$.bindingName=X.valueString;return $};if(D.choices){let{binding:C,...$}=D;return $}if(D.choiceOf&&F.snapshot){let C=`${F.id}.${D.choiceOf}[x]`,$=F.snapshot.element.find((X)=>X.path===C);if($?.binding)return{...D,binding:u($.binding)}}if(D.binding?.valueSet)return{...D,binding:u(D.binding)};let{binding:E,...B}=D;return B}function Bu(D){if(!D.constraint||D.constraint.length===0)return D;let F={};for(let u of D.constraint)F[u.key]={expression:u.expression,human:u.human,severity:u.severity};return{...D,constraint:F}}function Cu(D,F){if(!D.type||D.type.length===0)return D;let u=D.type[0]?.extension?.[0];if(u?.url==="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"&&u.valueUrl)return{...D,type:u.valueUrl};let E=D.type[0].code,B={...D,type:E};if(F.kind==="logical"){let C=o3(D.extension,"http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype");if(C?.valueCanonical)B.defaultType=C.valueCanonical}return B}function $u(D){if(D.type?.[0]?.code!=="Extension")return D;let u=D.type[0]?.profile?.[0];if(!u)return D;return{...D,url:u,...D.min&&{min:D.min},...D.max&&D.max!=="*"&&{max:parseInt(D.max)}}}function Xu(D){if(D.url)return D;let F=D.max==="*"||D.min&&D.min>=2||D.max&&parseInt(D.max)>=2,u=D.min===1,E={...D};if(delete E.min,delete E.max,F){if(E.array=!0,D.min&&D.min>0)E.min=D.min;if(D.max&&D.max!=="*")E.max=parseInt(D.max)}if(u)E._required=!0;return E}function Zu(D,F){let u=D.substring(1).split("."),E=[F.url];for(let B of u.slice(1))E.push("elements",B);return E}function Qu(D,F){if(!D.contentReference)return D;let{contentReference:u,...E}=D;return{...E,elementReference:Zu(u,F)}}function zu(D){let{path:F,slicing:u,sliceName:E,id:B,mapping:C,example:$,alias:X,condition:Q,comment:z,definition:J,requirements:W,extension:Y,...H}=D;return H}function L2(D,F){let u=uu(D);return u=zu(u),u=Eu(u,F),u=Bu(u),u=Qu(u,F),u=$u(u),u=Xu(u),u=Cu(u,F),u=Du(u),u}function N2(D){if(D.path.endsWith("[x]"))return!0;if(D.type&&D.type.length>1)return new Set(D.type.map((u)=>u.code)).size>1;return!1}function n3(D){if(!D)return D;return D.charAt(0).toUpperCase()+D.slice(1)}function i3(D){let F=D.split("/");return F[F.length-1]}function I2(D){let F=D.path.replace(/\[x\]$/,""),u=F.split(".").pop()||"";if(!D.type)return[];let E=[],B=D.type.map((z)=>u+n3(i3(z.code))),{type:C,binding:$,...X}=D,Q={...X,path:F,choices:B};E.push(Q);for(let z of D.type){let J=n3(i3(z.code)),W={...D,path:F+J,type:[z],choiceOf:u};if(D.binding)delete W.binding;E.push(W)}return E}function t3(D,F){let u=D[D.length-1],E=D.slice(0,-1),B=E[E.length-1],C=F(B,u);return[...E.slice(0,-1),C]}function Yu(D,F){if(!D.discriminator)return{};let u={};for(let E of D.discriminator){if(!E.type||!["pattern","value",void 0].includes(E.type))continue;let B=E.path.trim();if(B==="$this"){if(F.pattern?.value)Object.assign(u,F.pattern.value)}else{let C=B.split(".").filter((z)=>z),$=Object.keys(F).filter((z)=>z.startsWith("pattern"));for(let z of $){let J=z.replace("pattern","").toLowerCase();if(C.length===1&&C[0]===J)u[J]=F[z]}let X=["elements"];for(let z of C)if(X.push(z),C.indexOf(z)<C.length-1)X.push("elements");X.push("pattern");let Q=F;for(let z of X)Q=Q?.[z];if(Q?.value!==void 0){let z=u;for(let J=0;J<C.length-1;J++){if(!z[C[J]])z[C[J]]={};z=z[C[J]]}z[C[C.length-1]]=Q.value}}}return u}function Ou(D,F,u){let E={match:F,schema:D};if(u?.min!==void 0&&u.min!==0)E.min=u.min;if(u?.max!==void 0)E.max=u.max;return E}function Ju(D,F,u){let E=F.slicing||D.slicing||{},B=Yu(E,u),C=Ou(u,B,D.slice);if(!F.slicing)F.slicing={};if(D.slicing)F.slicing={...F.slicing,...D.slicing};if(!F.slicing.slices)F.slicing.slices={};return F.slicing.slices[D.sliceName]=C,F}function Wu(D){if(!D.slicing?.slices)return{};let F={};for(let[u,E]of Object.entries(D.slicing.slices)){let{match:B,schema:C,...$}=E,{slicing:X,elements:Q,type:z,min:J,...W}=C||{},Y={};if(B?.url)Y.url=B.url;if($.min!==void 0&&$.min!==0)Y.min=$.min;if($.max!==void 0)Y.max=$.max;if(Object.assign(Y,W),J!==void 0&&J!==0&&Y.min===void 0)Y.min=J;F[u]=Y}return F}function Au(D,F,u){let E={...F};if(D==="extension")E.extensions=Wu(u);if(!E.elements)E.elements={};let B=u.choiceOf||D,{_required:C,...$}=u;if(E.elements[D]=$,C){if(!E.required)E.required=[];if(!E.required.includes(B))E.required.push(B)}return E}function YF(D,F,u){let E=[...D];for(let B=0;B<F.length;B++){let C=F[B],X=F[B+1]?.type==="enter"?{}:u;switch(C.type){case"enter":E.push(X);break;case"enter-slice":E.push(X);break;case"exit":E=t3(E,(Q,z)=>Au(C.el,Q,z));break;case"exit-slice":E=t3(E,(Q,z)=>Ju(C,Q,z));break}}return E}function s3(D,F){let u={};if(u.name=D.name,u.type=D.type,D.url)u.url=D.url;if(D.version)u.version=D.version;if(D.description)u.description=D.description;if(D.package_name)u.package_name=D.package_name;if(D.package_version)u.package_version=D.package_version;if(D.package_id)u.package_id=D.package_id;if(u.kind=D.kind,D.derivation)u.derivation=D.derivation;if(D.baseDefinition&&D.type!=="Element")u.base=D.baseDefinition;if(D.abstract)u.abstract=D.abstract;if(u.class=Gu(D),F?.package_meta)u.package_meta=F.package_meta;return u}function Gu(D){if(D.kind==="resource"&&D.derivation==="constraint")return"profile";if(D.type==="Extension")return"extension";return D.kind||"unknown"}function Hu(D){return(D.differential?.element||[]).filter((u)=>u.path.includes("."))}function r3(D){let u=Object.entries(D).sort((B,C)=>{let $=B[1].index??1/0,X=C[1].index??1/0;return $-X}),E={};for(let[B,C]of u)if(C.elements)E[B]={...C,elements:r3(C.elements)};else E[B]=C;return E}function j0(D,F=new WeakSet){if(Array.isArray(D))return D.map((u)=>j0(u,F));if(D&&typeof D==="object"){if(F.has(D))return"[Circular Reference]";F.add(D);let u={},E=Object.keys(D);for(let B of E)if(B==="elements"&&D[B])u[B]=r3(j0(D[B],F));else if(B==="required"&&Array.isArray(D[B]))u[B]=[...D[B]].sort();else u[B]=j0(D[B],F);return u}return D}function L0(D,F){if(D.kind==="primitive-type")return j0(s3(D,F));let u=s3(D,F),E=Hu(D),B=[u],C=[],$=[...E],X=0;while($.length>0){let z=$.shift();if(N2(z)){let q=I2(z);$.unshift(...q),X++;continue}let J=R2(z),W=j2(C,J),Y=zF(C,W),_={...L2(z,D),index:X++};B=YF(B,Y,_),C=W}let Q=zF(C,[]);if(B=YF(B,Q,{index:X}),B.length!==1)throw Error(`Invalid stack state: expected 1 element, got ${B.length}`);return j0(B[0])}var w2=(D,F)=>{if(!F)F={name:"undefined",version:"undefined"};return{...D,package_meta:D.package_meta||F,name:D.name,url:D.url,base:D.base}};function T2(D){return D.identifier.kind==="binding"}var e3=async(D,F,u)=>{let E=await D.search({}),B={};for(let Y of E)if(Y.resourceType==="StructureDefinition"){let H=Y.url;B[H]=Y}let C={},$={},[X,Q]=[0,0];for(let Y of Object.values(B)){try{let H=w2(L0(Y),u);C[H.url]=H,$[H.name]=H.url,X++}catch(H){F?.warn(`Failed to convert StructureDefinition ${Y.name||Y.id}: ${H instanceof Error?H.message:String(H)}`),Q++}F?.success(`FHIR Schema conversion completed: ${X}/${Object.values(B).length} successful, ${Q} failed`)}let z={};for(let Y of E)if(Y.resourceType==="ValueSet")z[Y.url]=Y;let J={};for(let Y of Object.values(C))if(Y.kind==="complex-type")J[Y.url]=Y;return{...D,appendFs(Y){let H=w2(Y);C[H.url]=H,$[H.name]=H.url},resolveFs:(Y)=>C[Y],resolveFsGenealogy:(Y)=>{let H=C[Y];if(H===void 0)throw Error(`Failed to resolve FHIR Schema genealogy for '${Y}'`);let _=[H];while(H?.base)if(H=C[H.base]||C[$[H.base]],_.push(H),H===void 0)throw Error(`Failed to resolve FHIR Schema genealogy for '${Y}'`);return _},ensureCanonicalUrl:(Y)=>$[Y]||Y,allSd:()=>Object.values(B),resolveSd:(Y)=>B[Y],allFs:()=>Object.values(C),allVs:()=>Object.values(z),complexTypeDict:()=>J}};var D6=(D,F)=>{let[u,...E]=F;if(u===void 0)return[];return D.map((B)=>{if(!B.elements)return;let C=B.elements?.[u];for(let $ of E)C=C?.elements?.[$];return C}).filter((B)=>B!==void 0)};function F6(D){let F=D.reverse().reduce((u,E)=>({...u,...E}),{});return F.elements=void 0,F}function b2(D){if(!D)return;return D.split("|")[0]}function qu(D){if(D.derivation==="constraint")return"profile";if(D.kind==="primitive-type")return"primitive-type";if(D.kind==="complex-type")return"complex-type";if(D.kind==="resource")return"resource";return"resource"}function TD(D){return{kind:qu(D),package:D.package_meta.name,version:D.package_meta.version,name:D.name,url:D.url}}function N0(D,F){let u=F.join(".");return{kind:"nested",package:D.package_meta.name,version:D.package_meta.version,name:u,url:`${D.url}#${u}`}}function I0(D,F,u){let E=b2(D)||D,B="unknown",C=E.split("/"),$=C[C.length-1];if($&&$.length>0)B=$.split(/[-_]/).map((X)=>X.charAt(0).toUpperCase()+X.slice(1).toLowerCase()).join("");if(B==="unknown"&&F?.id&&!/^[a-zA-Z0-9_-]{20,}$/.test(F.id))B=F.id;return{kind:"value-set",package:u?.name||F?.package_name||"undefined",version:u?.version||F?.package_version||"undefined",name:B,url:E}}function OF(D,F,u,E){let B=F.join("."),[C,$]=u?[u,`urn:fhir:binding:${u}`]:[`${D.name}.${B}_binding`,`${D.url}#${B}_binding`];return{kind:"binding",package:D.package_meta.name,version:D.package_meta.version,name:C,url:$}}async function u6(D,F){let u=TD(F),E=F.package_meta;if(u.kind!=="profile")throw Error(`Expected profile, got ${u.kind} for ${F.name}`);let B;if(F.base){let J=F.base.includes("/")?F.base:`http://hl7.org/fhir/StructureDefinition/${F.base}`,W=F.base.split("/").pop()||F.base,Y=await _u(J,D),H=J.startsWith("http://hl7.org/fhir/");B={kind:Y,package:H?"hl7.fhir.r4.core":F.package_meta.name||"undefined",version:H?"4.0.1":F.package_meta.version||"undefined",name:W,url:J}}let C={identifier:u,base:B,dependencies:B?[B]:[]};if(F.description)C.description=F.description;let $=Mu(F);if(Object.keys($).length>0)C.metadata=$;if(F.elements){let J=await JF(D,F,[],F.elements);if(J&&Object.keys(J).length>0)C.fields=J}let X=await Ku(F,D);if(Object.keys(X).length>0)C.constraints=X;let Q=await Vu(F,D);if(Q.length>0)C.extensions=Q;let z=Ru(F);if(z.length>0)C.validation=z;return C}async function _u(D,F){try{let u=F.resolveFs(D);if(!u)return"resource";if(u){if(u.derivation==="constraint")return"profile";if(u.kind==="resource")return"resource";if(u.kind==="complex-type")return"complex-type"}}catch(u){console.warn(`Could not resolve base schema ${D}:`,u)}if(D.includes("StructureDefinition/")&&!D.startsWith("http://hl7.org/fhir/StructureDefinition/"))return"profile";return"resource"}function Mu(D){let F={},u=D.package_meta;if(D.publisher)F.publisher=D.publisher;if(D.contact)F.contact=D.contact;if(D.copyright)F.copyright=D.copyright;if(D.purpose)F.purpose=D.purpose;if(D.experimental!==void 0)F.experimental=D.experimental;if(D.date)F.date=D.date;if(D.jurisdiction)F.jurisdiction=D.jurisdiction;if(u?.name)F.package=u.name;else if(D.package_meta.name)F.package=D.package_meta.name;return F}async function Ku(D,F){let u={};if(!D.elements)return u;for(let[E,B]of Object.entries(D.elements)){let C={};if(B.min!==void 0)C.min=B.min;if(B.max!==void 0)C.max=String(B.max);if(B.mustSupport)C.mustSupport=!0;if(B.fixedValue!==void 0)C.fixedValue=B.fixedValue;if(B.patternValue!==void 0)C.patternValue=B.patternValue;if(B.binding)C.binding={strength:B.binding.strength,valueSet:B.binding.valueSet??""};if(B.type&&Array.isArray(B.type)&&B.type.length>0)C.types=B.type.map(($)=>{let X={code:$.code};if($.profile)X.profile=$.profile;if($.targetProfile)X.targetProfile=$.targetProfile;return X});if(B.slicing)C.slicing={discriminator:B.slicing.discriminator??[],rules:String(B.slicing),ordered:B.slicing.ordered};if(Object.keys(C).length>0)u[E]=C}return u}async function Vu(D,F){let u=[];if(!D.elements)return u;for(let[E,B]of Object.entries(D.elements))if(E.includes("extension")&&B.type&&Array.isArray(B.type)){for(let C of B.type)if(C.code==="Extension"&&C.profile)u.push({path:E,profile:C.profile,min:B.min,max:String(B.max),mustSupport:B.mustSupport})}return u}function Ru(D){let F=[];if(!D.elements)return F;for(let[u,E]of Object.entries(D.elements))if(E.constraint&&Array.isArray(E.constraint))for(let B of E.constraint)F.push({path:u,key:B.key,severity:B.severity,human:B.human,expression:B.expression});return F}function E6(D,F){if(F.length===0)return!1;let u=F[F.length-1],E=F.slice(0,-1),B=D;for(let C of E)if(B=B.elements?.[C],!B)break;if(B?.required?.includes(u))return!0;if(E.length===0&&u&&D.required?.includes(u))return!0;return!1}function B6(D,F){if(F.length===0)return!1;let u=F[F.length-1],E=F.slice(0,-1),B=D;for(let C of E)if(B=B.elements?.[C],!B)break;if(B?.excluded?.includes(u))return!0;if(E.length===0&&u&&D.excluded?.includes(u))return!0;return!1}var Uu=(D,F,u)=>{if(!D.refers)return;return D.refers.map((E)=>{let B=F.ensureCanonicalUrl(E),C=F.resolveFs(B);return TD(C)})};function x2(D,F,u,E,B){if(u.elementReference){let C=u.elementReference.filter(($,X)=>X%2===1).map(($)=>$).filter(($)=>$!=="elements");if(C.length>0)return N0(D,C)}if(u.type){let C=u.type.includes("/")?u.type:`http://hl7.org/fhir/StructureDefinition/${u.type}`,$=u.type.match(/^[a-z]/)?"primitive-type":"complex-type",X=C.startsWith("http://hl7.org/fhir/");return{kind:$,package:X?"hl7.fhir.r4.core":B?.name||"undefined",version:X?"4.0.1":B?.version||"undefined",name:u.type,url:C}}return}var WF=(D,F,u,E,B)=>{let C,$;if(u.binding){if(C=OF(D,F,u.binding.bindingName,B),u.binding.strength==="required"&&u.type==="code")$=P2(u,E)}return{type:x2(D,F,u,E,B),required:E6(D,F),excluded:B6(D,F),reference:Uu(u,E,B),array:u.array||!1,min:u.min,max:u.max,choices:u.choices,choiceOf:u.choiceOf,binding:C}};function w0(D){let F=D.type==="BackboneElement",u=D.type==="Element"&&D.elements!==void 0&&Object.keys(D.elements).length>0,E=D.type===void 0&&D.choiceOf===void 0&&D.elements!==void 0&&Object.keys(D.elements).length>0;return F||u||E}function AF(D,F,u,E){return{type:N0(F,u),array:E.array||!1,required:E6(F,u),excluded:B6(F,u)}}async function ju(D,F){try{let u=b2(D)||D,E=await F.resolve(u);if(!E)return;if(E.expansion?.contains)return E.expansion.contains.map((C)=>({system:C.system,code:C.code,display:C.display}));let B=[];if(E.compose?.include){for(let C of E.compose.include)if(C.concept)for(let $ of C.concept)B.push({system:C.system,code:$.code,display:$.display});else if(C.system&&!C.filter)try{let $=await F.resolve(C.system);if($?.concept){let X=(Q,z)=>{for(let J of Q)if(B.push({system:z,code:J.code,display:J.display}),J.concept)X(J.concept,z)};X($.concept,C.system)}}catch{}}return B.length>0?B:void 0}catch{return}}async function P2(D,F){if(!D.binding)return;let{strength:u,valueSet:E}=D.binding;if(!E)return;if(!(u==="required"||u==="extensible"&&(D.type==="code"||D.type==="Coding")||u==="preferred"&&(D.type==="code"||D.type==="Coding")))return;if(!F.resolve)return;try{let C=await ju(E,F);if(!C||C.length===0)return;let $=C.map((X)=>X.code).filter((X)=>X&&typeof X==="string"&&X.trim().length>0);return $.length>0&&$.length<=100?$:void 0}catch(C){console.debug(`Failed to extract enum values for ${E}: ${C}`);return}}async function Lu(D,F,u,E,B){if(!u.binding?.valueSet)return;let C=OF(D,F,u.binding.bindingName,B),$=x2(D,F,u,E,B),X=I0(u.binding.valueSet,void 0,B),Q=[];if($)Q.push($);Q.push(X);let z=await P2(u,E);return{identifier:C,type:$,valueset:X,strength:u.binding.strength,enum:z,dependencies:Q}}async function S2(D,F){let u=D.package_meta,E=[],B=new Set;async function C(Q,z){for(let[J,W]of Object.entries(Q)){let Y=[...z,J],H=Y.join(".");if(B.has(H))continue;if(B.add(H),W.binding){let _=await Lu(D,Y,W,F,u);if(_)E.push(_)}if(W.elements)await C(W.elements,Y)}}if(D.elements)await C(D.elements,[]);E.sort((Q,z)=>Q.identifier.name.localeCompare(z.identifier.name));let $=[],X=new Set;for(let Q of E)if(!X.has(Q.identifier.url))X.add(Q.identifier.url),$.push(Q);return $}function C6(D,F,u){let E=[];for(let[B,C]of Object.entries(u)){let $=[...F,B];if(w0(C))E.push([$,C]);if(C.elements)E.push(...C6(D,$,C.elements))}return E}async function Nu(D,F,u,E,B){let C={};for(let[$,X]of Object.entries(u)){let Q=[...F,$];if(w0(X))C[$]=AF(E,D,Q,X);else C[$]=await WF(D,Q,X,E,B)}return C}async function v2(D,F){if(!F.elements)return;let E=C6(F,[],F.elements).filter(([C,$])=>$.elements&&Object.keys($.elements).length>0),B=[];for(let[C,$]of E){let X=N0(F,C),Q;if($.type==="BackboneElement"||!$.type)Q={kind:"complex-type",package:F.package_meta.name,version:F.package_meta.version,name:"BackboneElement",url:"http://hl7.org/fhir/StructureDefinition/BackboneElement"};else Q={kind:"complex-type",package:F.package_meta.name,version:F.package_meta.version,name:$.type,url:`http://hl7.org/fhir/StructureDefinition/${$.type}`};let z=await Nu(F,C,$.elements,D,F.package_meta),J={identifier:X,base:Q,fields:z};B.push(J)}return B.sort((C,$)=>C.identifier.url.localeCompare($.identifier.url)),B}function f2(D){let F=[];for(let u of D){if(u.base)F.push(u.base);for(let E of Object.values(u.fields||{})){if("type"in E&&E.type)F.push(E.type);if("binding"in E&&E.binding)F.push(E.binding)}}return F}async function JF(D,F,u,E){if(!E)return;let B=D.resolveFsGenealogy(F.url),C={};for(let[$,X]of Object.entries(E)){let Q=[...u,$],z=D6(B,Q),J=F6(z);if(w0(J))C[$]=AF(D,F,Q,J);else C[$]=WF(F,Q,J,D,F.package_meta)}return C}function $6(D){let F=[];for(let u of Object.values(D)){if("type"in u&&u.type)F.push(u.type);if("binding"in u&&u.binding)F.push(u.binding)}return F}function Iu(D){let F=new Set,u=[];for(let E of D){let B=E.url;if(!F.has(B))F.add(B),u.push(E)}return u.sort((E,B)=>E.name.localeCompare(B.name)),u}function wu(D,F){if(D.base==="Extension"||D.base==="http://hl7.org/fhir/StructureDefinition/Extension")return!0;if(D.url?.includes("/extension/")||D.url?.includes("-extension"))return!0;if(D.name?.toLowerCase().includes("extension"))return!0;if(D.type==="Extension")return!0;return!1}async function Tu(D,F,u){try{let E=TD(D);E.kind="value-set";let B={identifier:E,description:D.description};if(D.elements){let C=[];for(let[$,X]of Object.entries(D.elements))if("code"in X&&X.code)C.push({code:X.code,display:X.short||X.definition,system:X.system});if(C.length>0)B.concept=C}return B}catch(E){return console.warn(`Failed to transform value set ${D.name}: ${E}`),null}}async function bu(D,F,u){try{let E=TD(D),B;if(D.base&&D.base!=="Extension"){let X=D.base.includes("/")?D.base:`http://hl7.org/fhir/StructureDefinition/${D.base}`;B={kind:"complex-type",package:"hl7.fhir.r4.core",version:"4.0.1",name:D.base.split("/").pop()||D.base,url:X}}else B={kind:"complex-type",package:"hl7.fhir.r4.core",version:"4.0.1",name:"Extension",url:"http://hl7.org/fhir/StructureDefinition/Extension"};let C={identifier:E,base:B,description:D.description,dependencies:[],metadata:{isExtension:!0}};if(B)C.dependencies.push(B);if(D.elements){let X=await JF(F,D,[],D.elements);if(X&&Object.keys(X).length>0)C.fields=X,C.dependencies.push(...$6(X))}let $=await v2(F,D);if($&&$.length>0)C.nested=$,C.dependencies.push(...f2($));return C.dependencies=Iu(C.dependencies),C.dependencies=C.dependencies.filter((X)=>X.url!==E.url),C}catch(E){return console.warn(`Failed to transform extension ${D.name}: ${E}`),null}}function xu(D,F,u,E){let B=[];if(F)B.push(F);if(u)B.push(...$6(u));if(E)B.push(...f2(E));let C={};for(let Q of B){if(Q.url===D.url)continue;C[Q.url]=Q}let $=new Set(E?.map((Q)=>Q.identifier.url));console.log(1,Object.values(C)),console.log(2,$);let X=Object.values(C).filter((Q)=>!(Q.kind==="nested"&&$.has(Q.url))).sort((Q,z)=>Q.name.localeCompare(z.name));return console.log(3,X),X.length>0?X:void 0}async function Pu(D,F){let u=TD(F);console.log(6,F.name);let E;if(F.base&&F.type!=="Element"){let z=D.resolveFs(D.ensureCanonicalUrl(F.base));if(!z)throw Error(`Base resource not found '${F.base}' for '${F.url}'`);E=TD(z)}let B=await JF(D,F,[],F.elements);console.log(0,B);let C=await v2(D,F),$=xu(u,E,B,C),X={identifier:u,base:E,fields:B,nested:C,description:F.description,dependencies:$},Q=await S2(F,D);return[X,...Q]}async function X6(D,F){let u=[],E=TD(F);if(console.log(5,F.name),E.kind==="profile"){let B=await u6(D,F);u.push(B);let C=await S2(F,D);return u.push(...C),u}if(E.kind==="value-set"||F.kind==="value-set"){let B=await Tu(F,D,F.package_meta);if(B)u.push(B);return u}if(wu(F,E)){let B=await bu(F,D,F.package_meta);if(B)u.push(B);return u}return await Pu(D,F)}async function Su(D,F){try{let u=await F.resolve(D);if(!u||u.resourceType!=="CodeSystem")return;let E=[],B=(C,$)=>{for(let X of C)if(E.push({system:$,code:X.code,display:X.display}),X.concept)B(X.concept,$)};if(u.concept)B(u.concept,D);return E}catch{return}}async function Z6(D,F){let u=[];if(D.concept){for(let E of D.concept)u.push({system:D.system,code:E.code,display:E.display});return u}if(D.system&&!D.filter){let E=await Su(D.system,F);if(E)u.push(...E)}if(D.valueSet)for(let E of D.valueSet)try{let B=await F.resolve(E);if(B){let C=await Q6(B,F);if(C)u.push(...C)}}catch{}return u}async function Q6(D,F){try{let u=[];if(D.compose){if(D.compose.include)for(let E of D.compose.include){let B=await Z6(E,F);u.push(...B)}if(D.compose.exclude){let E=new Set;for(let B of D.compose.exclude){let C=await Z6(B,F);for(let $ of C)E.add(`${$.system}|${$.code}`)}return u.filter((B)=>!E.has(`${B.system}|${B.code}`))}}return u.length>0?u:void 0}catch(u){console.error("Error extracting ValueSet concepts:",u);return}}async function z6(D,F,u){let B={identifier:I0(D.url,D,u)};if(D.description)B.description=D.description;let C=await Q6(D,F);if(C&&C.length>0)B.concept=C;else if(D.compose)B.compose=D.compose;if(D.compose){let $=[],X=(Q)=>{for(let z of Q){if(z.system)$.push({kind:"value-set",package:u?.name||"undefined",version:u?.version||"undefined",name:z.system.split("/").pop()||"unknown",url:z.system});if(z.valueSet)for(let J of z.valueSet)$.push(I0(J,void 0,u))}};if(D.compose.include)X(D.compose.include);if(D.compose.exclude)X(D.compose.exclude)}return B}class gD{manager;options;cacheConfig;cache;logger;constructor(D={},F){this.options={verbose:!1,...D},this.manager=D.manager||pD({packages:[],workingDir:"tmp/fhir"}),this.cacheConfig=F,this.logger=D.logger||jD({verbose:this.options.verbose,prefix:"TypeSchema"})}async initializeCache(){if(this.cacheConfig&&!this.cache)this.cache=new $0(this.cacheConfig),await this.cache.initialize()}async registerFromPackageMetas(D){let F=D.map((u)=>`${u.name}${u.version}`);return this.logger.step(`Loading FHIR packages: ${F.join(", ")}`),await this.manager.init(),e3(this.manager)}generateFhirSchemas(D){this.logger.progress(`Converting ${D.length} StructureDefinitions to FHIRSchemas`);let F=this.applyStructureDefinitionTreeshaking(D),u=[],E=0,B=0;for(let C of F)try{let $=L0(C);u.push($),E++,this.logger.debug(`Converted StructureDefinition: ${C.name||C.id} (${C.resourceType})`)}catch($){B++,this.logger.warn(`Failed to convert StructureDefinition ${C.name||C.id}: ${$ instanceof Error?$.message:String($)}`)}return this.logger.success(`FHIR Schema conversion completed: ${E}/${F.length} successful, ${B} failed`),u}async generateValueSetSchemas(D,F){if(D.length>0)this.logger.debug(`${D.length} ValueSets available for enum extraction`);let u=[];if(D.length>0){this.logger.progress(`Converting ${D.length} ValueSets to TypeSchema`);let E=0,B=0;for(let C of D)try{let $=await z6(C,this.manager,F);if($)u.push($),E++,this.logger.debug(`Converted ValueSet: ${C.name||C.id}`)}catch($){B++,this.logger.warn(`Failed to convert ValueSet ${C.name||C.id}: ${$ instanceof Error?$.message:String($)}`)}this.logger.success(`ValueSet conversion completed: ${E}/${D.length} successful, ${B} failed`)}return u}async generateFromPackage(D,F){if(await this.initializeCache(),this.cache&&!(this.cacheConfig?.forceRegenerate??!1)){let C=this.cache.getByPackage(D);if(C.length>0)return this.logger.info(`Using cached TypeSchemas for package: ${D} (${C.length} schemas)`),C}let u={name:D,version:F||"latest"},E=await this.registerFromPackageMetas([u]),B=[...(await Promise.all(E.allFs().map(async(C)=>await X6(E,C)))).flat(),...await this.generateValueSetSchemas(E.allVs(),u)];if(this.cache)for(let C of B)await this.cache.set(C);return B}applyStructureDefinitionTreeshaking(D){let F=this.options.treeshake;if(!F||F.length===0)return D;this.logger.info(`Applying treeshaking filter for ResourceTypes: ${F.join(", ")}`);let u=new Map,E=new Map,B=new Map;for(let z of D){let J=z.name||z.id;if(J)u.set(J,z),E.set(J,new Set),B.set(J,new Set)}for(let z of D){let J=z.name||z.id;if(!J)continue;let{realDeps:W,refTargets:Y}=this.extractStructureDefinitionDependenciesWithReferences(z);E.set(J,new Set(W)),B.set(J,new Set(Y))}let C=new Set;for(let z of F)if(u.has(z))C.add(z);else this.logger.warn(`ResourceType '${z}' not found in structure definitions`);let $=(z,J=new Set)=>{if(J.has(z)||!E.has(z))return;J.add(z);let W=E.get(z)||new Set;for(let Y of Array.from(W))if(u.has(Y))C.add(Y),$(Y,J)};for(let z of Array.from(C))$(z);let X=D.filter((z)=>{let J=z.name||z.id;return J&&C.has(J)}),Q=new Set;for(let z of D){let J=z.name||z.id;if(J&&!C.has(J)){if(Array.from(B.values()).some((Y)=>Y.has(J)))Q.add(J)}}if(Q.size>0)this.logger.info(`Excluded reference-only targets: ${Array.from(Q).join(", ")}`);return this.logger.success(`Treeshaking completed: kept ${X.length}/${D.length} structure definitions`),X}extractStructureDefinitionDependenciesWithReferences(D){let F=new Set,u=new Set;if(D.baseDefinition){let E=this.extractResourceNameFromUrl(D.baseDefinition);if(E)F.add(E)}if(D.snapshot?.element||D.differential?.element){let E=D.snapshot?.element||D.differential?.element;for(let B of E)if(B.type)for(let C of B.type){if(C.code){if(F.add(C.code),C.code==="Reference"&&C.targetProfile)for(let $ of C.targetProfile){let X=this.extractResourceNameFromUrl($);if(X)u.add(X)}}if(C.profile)for(let $ of C.profile){let X=this.extractResourceNameFromUrl($);if(X)F.add(X)}}}return{realDeps:Array.from(F),refTargets:Array.from(u)}}extractResourceNameFromUrl(D){let F=D.match(/\/([^/]+)$/);return F?F[1]??null:null}}import{readFile as vu}from"node:fs/promises";class T0{options;constructor(D={}){this.options={format:"auto",validate:!0,strict:!1,...D}}async parseFromFile(D){let F=await vu(D,"utf-8"),u=this.options.format==="auto"?this.detectFormat(F,D):this.options.format;return this.parseFromString(F,u)}async parseFromString(D,F){let u=F||this.detectFormat(D),E;if(u==="ndjson")E=this.parseNDJSON(D);else E=this.parseJSON(D);if(this.options.validate)this.validateSchemas(E);return E}async parseFromFiles(D){let F=[];for(let u of D){let E=await this.parseFromFile(u);F.push(...E)}return F}parseSchema(D){if(!D.identifier)throw Error("TypeSchema must have an identifier");if(!this.isValidIdentifier(D.identifier))throw Error("TypeSchema identifier is invalid");return D}findByIdentifier(D,F){return D.filter((u)=>this.matchesIdentifier(u.identifier,F))}findByUrl(D,F){return D.find((u)=>u.identifier.url===F)}findByKind(D,F){return D.filter((u)=>u.identifier.kind===F)}findByPackage(D,F){return D.filter((u)=>u.identifier.package===F)}detectFormat(D,F){if(F){if(F.endsWith(".ndjson"))return"ndjson";if(F.endsWith(".json"))return"json"}let u=D.trim();if(u.includes(`
|
|
92
|
+
`,"f");I(this,ZD,Z(this,ZD,"f")+D.join(" "),"f")}}}[lF](D){z0(Z(this,b,"f")).forEach((F)=>{if(((E)=>E==="configObjects")(F))return;let u=Z(this,b,"f")[F];if(Array.isArray(u)){if(u.includes(D))u.splice(u.indexOf(D),1)}else if(typeof u==="object")delete u[D]}),delete Z(this,h,"f").getDescriptions()[D]}[X3](D,F,u){if(!Z(this,d0,"f")[u])Z(this,k,"f").process.emitWarning(D,F),Z(this,d0,"f")[u]=!0}[Z3](){Z(this,p0,"f").push({options:Z(this,b,"f"),configObjects:Z(this,b,"f").configObjects.slice(0),exitProcess:Z(this,_D,"f"),groups:Z(this,ID,"f"),strict:Z(this,aD,"f"),strictCommands:Z(this,eD,"f"),strictOptions:Z(this,D0,"f"),completionCommand:Z(this,AD,"f"),output:Z(this,ZD,"f"),exitError:Z(this,kD,"f"),hasOutput:Z(this,GD,"f"),parsed:this.parsed,parseFn:Z(this,HD,"f"),parseContext:Z(this,sD,"f")}),Z(this,h,"f").freeze(),Z(this,a,"f").freeze(),Z(this,FD,"f").freeze(),Z(this,MD,"f").freeze()}[Q3](){let D="",F;if(/\b(node|iojs|electron)(\.exe)?$/.test(Z(this,k,"f").process.argv()[0]))F=Z(this,k,"f").process.argv().slice(1,2);else F=Z(this,k,"f").process.argv().slice(0,1);if(D=F.map((u)=>{let E=this[K3](Z(this,nD,"f"),u);return u.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<u.length?E:u}).join(" ").trim(),Z(this,k,"f").getEnv("_")&&Z(this,k,"f").getProcessArgvBin()===Z(this,k,"f").getEnv("_"))D=Z(this,k,"f").getEnv("_").replace(`${Z(this,k,"f").path.dirname(Z(this,k,"f").process.execPath())}/`,"");return D}[F0](){return Z(this,c0,"f")}[z3](){return Z(this,o0,"f")}[oF](){if(!Z(this,iD,"f"))return;let D=Z(this,k,"f").getEnv("LC_ALL")||Z(this,k,"f").getEnv("LC_MESSAGES")||Z(this,k,"f").getEnv("LANG")||Z(this,k,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[Y3](){return this[nF]().version||"unknown"}[O3](D){let F=D["--"]?D["--"]:D._;for(let u=0,E;(E=F[u])!==void 0;u++)if(Z(this,k,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))F[u]=Number(E);return D}[nF](D){let F=D||"*";if(Z(this,O0,"f")[F])return Z(this,O0,"f")[F];let u={};try{let E=D||Z(this,k,"f").mainFilename;if(Z(this,k,"f").path.extname(E))E=Z(this,k,"f").path.dirname(E);let B=Z(this,k,"f").findUp(E,(C,$)=>{if($.includes("package.json"))return"package.json";else return});OD(B,void 0,Z(this,k,"f")),u=JSON.parse(Z(this,k,"f").readFileSync(B,"utf8"))}catch(E){}return Z(this,O0,"f")[F]=u||{},Z(this,O0,"f")[F]}[hD](D,F){F=[].concat(F),F.forEach((u)=>{u=this[sF](u),Z(this,b,"f")[D].push(u)})}[J0](D,F,u,E){this[tF](D,F,u,E,(B,C,$)=>{Z(this,b,"f")[B][C]=$})}[iF](D,F,u,E){this[tF](D,F,u,E,(B,C,$)=>{Z(this,b,"f")[B][C]=(Z(this,b,"f")[B][C]||[]).concat($)})}[tF](D,F,u,E,B){if(Array.isArray(u))u.forEach((C)=>{D(C,E)});else if(((C)=>typeof C==="object")(u))for(let C of z0(u))D(C,u[C]);else B(F,this[sF](u),E)}[sF](D){if(D==="__proto__")return"___proto___";return D}[rF](D,F){return this[J0](this[rF].bind(this),"key",D,F),this}[aF](){var D,F,u,E,B,C,$,X,Q,z,O,W;let J=Z(this,p0,"f").pop();OD(J,void 0,Z(this,k,"f"));let A;D=this,F=this,u=this,E=this,B=this,C=this,$=this,X=this,Q=this,z=this,O=this,W=this,{options:{set value(_){I(D,b,_,"f")}}.value,configObjects:A,exitProcess:{set value(_){I(F,_D,_,"f")}}.value,groups:{set value(_){I(u,ID,_,"f")}}.value,output:{set value(_){I(E,ZD,_,"f")}}.value,exitError:{set value(_){I(B,kD,_,"f")}}.value,hasOutput:{set value(_){I(C,GD,_,"f")}}.value,parsed:this.parsed,strict:{set value(_){I($,aD,_,"f")}}.value,strictCommands:{set value(_){I(X,eD,_,"f")}}.value,strictOptions:{set value(_){I(Q,D0,_,"f")}}.value,completionCommand:{set value(_){I(z,AD,_,"f")}}.value,parseFn:{set value(_){I(O,HD,_,"f")}}.value,parseContext:{set value(_){I(W,sD,_,"f")}}.value}=J,Z(this,b,"f").configObjects=A,Z(this,h,"f").unfreeze(),Z(this,a,"f").unfreeze(),Z(this,FD,"f").unfreeze(),Z(this,MD,"f").unfreeze()}[J3](D,F){return oD(F,(u)=>{return D(u),u})}getInternalMethods(){return{getCommandInstance:this[W3].bind(this),getContext:this[A3].bind(this),getHasOutput:this[G3].bind(this),getLoggerInstance:this[H3].bind(this),getParseContext:this[q3].bind(this),getParserConfiguration:this[F0].bind(this),getUsageConfiguration:this[z3].bind(this),getUsageInstance:this[_3].bind(this),getValidationInstance:this[M3].bind(this),hasParseCallback:this[n0].bind(this),isGlobalContext:this[V3].bind(this),postProcess:this[u0].bind(this),reset:this[eF].bind(this),runValidation:this[D2].bind(this),runYargsParserAndExecuteCommands:this[R0].bind(this),setHasOutput:this[R3].bind(this)}}[W3](){return Z(this,FD,"f")}[A3](){return Z(this,K0,"f")}[G3](){return Z(this,GD,"f")}[H3](){return Z(this,tD,"f")}[q3](){return Z(this,sD,"f")||{}}[_3](){return Z(this,h,"f")}[M3](){return Z(this,a,"f")}[n0](){return!!Z(this,HD,"f")}[V3](){return Z(this,g0,"f")}[u0](D,F,u,E){if(u)return D;if(s(D))return D;if(!F)D=this[C3](D);if(this[F0]()["parse-positional-numbers"]||this[F0]()["parse-positional-numbers"]===void 0)D=this[O3](D);if(E)D=lD(D,this,Z(this,MD,"f").getMiddleware(),!1);return D}[eF](D={}){I(this,b,Z(this,b,"f")||{},"f");let F={};F.local=Z(this,b,"f").local||[],F.configObjects=Z(this,b,"f").configObjects||[];let u={};F.local.forEach((C)=>{u[C]=!0,(D[C]||[]).forEach(($)=>{u[$]=!0})}),Object.assign(Z(this,rD,"f"),Object.keys(Z(this,ID,"f")).reduce((C,$)=>{let X=Z(this,ID,"f")[$].filter((Q)=>!(Q in u));if(X.length>0)C[$]=X;return C},{})),I(this,ID,{},"f");let E=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],B=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(E.forEach((C)=>{F[C]=(Z(this,b,"f")[C]||[]).filter(($)=>!u[$])}),B.forEach((C)=>{F[C]=vD(Z(this,b,"f")[C],($)=>!u[$])}),F.envPrefix=Z(this,b,"f").envPrefix,I(this,b,F,"f"),I(this,h,Z(this,h,"f")?Z(this,h,"f").reset(u):s1(this,Z(this,k,"f")),"f"),I(this,a,Z(this,a,"f")?Z(this,a,"f").reset(u):E3(this,Z(this,h,"f"),Z(this,k,"f")),"f"),I(this,FD,Z(this,FD,"f")?Z(this,FD,"f").reset():n1(Z(this,h,"f"),Z(this,a,"f"),Z(this,MD,"f"),Z(this,k,"f")),"f"),!Z(this,JD,"f"))I(this,JD,D3(this,Z(this,h,"f"),Z(this,FD,"f"),Z(this,k,"f")),"f");return Z(this,MD,"f").reset(),I(this,AD,null,"f"),I(this,ZD,"","f"),I(this,kD,null,"f"),I(this,GD,!1,"f"),this.parsed=!1,this}[K3](D,F){return Z(this,k,"f").path.relative(D,F)}[R0](D,F,u,E=0,B=!1){var C,$,X,Q;let z=!!u||B;D=D||Z(this,yD,"f"),Z(this,b,"f").__=Z(this,k,"f").y18n.__,Z(this,b,"f").configuration=this[F0]();let O=!!Z(this,b,"f").configuration["populate--"],W=Object.assign({},Z(this,b,"f").configuration,{"populate--":!0}),J=Z(this,k,"f").Parser.detailed(D,Object.assign({},Z(this,b,"f"),{configuration:{"parse-positional-numbers":!1,...W}})),A=Object.assign(J.argv,Z(this,sD,"f")),_=void 0,q=J.aliases,P=!1,c=!1;if(Object.keys(A).forEach((p)=>{if(p===Z(this,VD,"f")&&A[p])P=!0;else if(p===Z(this,wD,"f")&&A[p])c=!0}),A.$0=this.$0,this.parsed=J,E===0)Z(this,h,"f").clearCachedHelpMessage();try{if(this[oF](),F)return this[u0](A,O,!!u,!1);if(Z(this,VD,"f")){if([Z(this,VD,"f")].concat(q[Z(this,VD,"f")]||[]).filter((j)=>j.length>1).includes(""+A._[A._.length-1]))A._.pop(),P=!0}I(this,g0,!1,"f");let p=Z(this,FD,"f").getCommands(),QD=((C=Z(this,JD,"f"))===null||C===void 0?void 0:C.completionKey)?[($=Z(this,JD,"f"))===null||$===void 0?void 0:$.completionKey,...(Q=this.getAliases()[(X=Z(this,JD,"f"))===null||X===void 0?void 0:X.completionKey])!==null&&Q!==void 0?Q:[]].some((U)=>Object.prototype.hasOwnProperty.call(A,U)):!1,d=P||QD||B;if(A._.length){if(p.length){let U;for(let j=E||0,S;A._[j]!==void 0;j++)if(S=String(A._[j]),p.includes(S)&&S!==Z(this,AD,"f")){let l=Z(this,FD,"f").runCommand(S,this,J,j+1,B,P||c||B);return this[u0](l,O,!!u,!1)}else if(!U&&S!==Z(this,AD,"f")){U=S;break}if(!Z(this,FD,"f").hasDefaultCommand()&&Z(this,l0,"f")&&U&&!d)Z(this,a,"f").recommendCommands(U,p)}if(Z(this,AD,"f")&&A._.includes(Z(this,AD,"f"))&&!QD){if(Z(this,_D,"f"))fD(!0);this.showCompletionScript(),this.exit(0)}}if(Z(this,FD,"f").hasDefaultCommand()&&!d){let U=Z(this,FD,"f").runCommand(null,this,J,0,B,P||c||B);return this[u0](U,O,!!u,!1)}if(QD){if(Z(this,_D,"f"))fD(!0);D=[].concat(D);let U=D.slice(D.indexOf(`--${Z(this,JD,"f").completionKey}`)+1);return Z(this,JD,"f").getCompletion(U,(j,S)=>{if(j)throw new DD(j.message);(S||[]).forEach((l)=>{Z(this,tD,"f").log(l)}),this.exit(0)}),this[u0](A,!O,!!u,!1)}if(!Z(this,GD,"f")){if(P){if(Z(this,_D,"f"))fD(!0);z=!0,this.showHelp((U)=>{Z(this,tD,"f").log(U),this.exit(0)})}else if(c){if(Z(this,_D,"f"))fD(!0);z=!0,Z(this,h,"f").showVersion("log"),this.exit(0)}}if(!z&&Z(this,b,"f").skipValidation.length>0)z=Object.keys(A).some((U)=>Z(this,b,"f").skipValidation.indexOf(U)>=0&&A[U]===!0);if(!z){if(J.error)throw new DD(J.error.message);if(!QD){let U=this[D2](q,{},J.error);if(!u)_=lD(A,this,Z(this,MD,"f").getMiddleware(),!0);if(_=this[J3](U,_!==null&&_!==void 0?_:A),s(_)&&!u)_=_.then(()=>{return lD(A,this,Z(this,MD,"f").getMiddleware(),!1)})}}}catch(p){if(p instanceof DD)Z(this,h,"f").fail(p.message,p);else throw p}return this[u0](_!==null&&_!==void 0?_:A,O,!!u,!0)}[D2](D,F,u,E){let B={...this.getDemandedOptions()};return(C)=>{if(u)throw new DD(u.message);Z(this,a,"f").nonOptionCount(C),Z(this,a,"f").requiredArguments(C,B);let $=!1;if(Z(this,eD,"f"))$=Z(this,a,"f").unknownCommands(C);if(Z(this,aD,"f")&&!$)Z(this,a,"f").unknownArguments(C,D,F,!!E);else if(Z(this,D0,"f"))Z(this,a,"f").unknownArguments(C,D,{},!1,!1);Z(this,a,"f").limitedChoices(C),Z(this,a,"f").implications(C),Z(this,a,"f").conflicting(C)}}[R3](){I(this,GD,!0,"f")}[E0](D){if(typeof D==="string")Z(this,b,"f").key[D]=!0;else for(let F of D)Z(this,b,"f").key[F]=!0}}function i1(D){return!!D&&typeof D.getInternalMethods==="function"}var y8=U3(dF),N3=y8;import{performance as w3}from"node:perf_hooks";var dD=x0(u2(),1);class g8{total;message;current=0;barLength=30;startTime=w3.now();constructor(D,F){this.total=D;this.message=F}update(D,F){this.current=Math.min(D,this.total),this.render(F)}increment(D){this.update(this.current+1,D)}complete(D){this.current=this.total,this.render();let F=Math.round(w3.now()-this.startTime);console.log(dD.default.green(`✅ ${D||this.message} ${dD.default.gray(`(${F}ms)`)}`))}render(D){let F=Math.round(this.current/this.total*100),u=Math.round(this.current/this.total*this.barLength),E=this.barLength-u,B=dD.default.green("█".repeat(u))+dD.default.gray("░".repeat(E)),C=`${this.current}/${this.total}`,$=D?dD.default.gray(` ${D}`):"";if(process.stdout.clearLine(0),process.stdout.cursorTo(0),process.stdout.write(`${this.message} ${B} ${dD.default.cyan(C)} ${dD.default.yellow(`${F}%`)}${$}`),this.current===this.total)process.stdout.write(`
|
|
93
|
+
`)}}var $D=x0(u2(),1);class s0{options;constructor(D={}){this.options={timestamp:!1,verbose:!1,...D}}formatMessage(D,F,u){let E=this.options.timestamp?`${$D.default.gray(new Date().toLocaleTimeString())} `:"",B=this.options.prefix?`${$D.default.cyan(`[${this.options.prefix}]`)} `:"";return`${E}${u(D)} ${B}${F}`}success(D){console.log(this.formatMessage("✅",D,$D.default.green))}error(D,F){if(console.error(this.formatMessage("❌",D,$D.default.red)),F&&this.options.verbose){if(console.error($D.default.red(` ${F.message}`)),F.stack)console.error($D.default.gray(F.stack))}}warn(D){console.warn(this.formatMessage("⚠️",D,$D.default.yellow))}info(D){console.log(this.formatMessage("ℹ️",D,$D.default.blue))}debug(D){if(this.options.verbose)console.log(this.formatMessage("\uD83D\uDC1B",D,$D.default.magenta))}step(D){console.log(this.formatMessage("\uD83D\uDE80",D,$D.default.cyan))}progress(D){console.log(this.formatMessage("⏳",D,$D.default.blue))}plain(D,F=(u)=>u){let u=this.options.timestamp?`${$D.default.gray(new Date().toLocaleTimeString())} `:"",E=this.options.prefix?`${$D.default.cyan(`[${this.options.prefix}]`)} `:"";console.log(`${u}${E}${F(D)}`)}dim(D){this.plain(D,$D.default.gray)}child(D){return new s0({...this.options,prefix:this.options.prefix?`${this.options.prefix}:${D}`:D})}configure(D){this.options={...this.options,...D}}}var B0=new s0;function r0(D){B0.success(D)}function KD(D,F){B0.error(D,F)}function E2(D){B0.warn(D)}function a0(D){B0.info(D)}function B2(D){B0.step(D)}function T3(D){B0.dim(D)}function C2(D){B0.configure(D)}function jD(D={}){return new s0(D)}function $2(D){console.log(),console.log($D.default.cyan($D.default.bold(`━━━ ${D} ━━━`)))}function X2(D,F,u){let E=D;if(F)E+=` ${$D.default.gray(`(${F}ms)`)}`;if(r0(E),u)Object.entries(u).forEach(([B,C])=>{T3(` ${B}: ${C}`)})}function C0(D,F="•"){D.forEach((u)=>{console.log($D.default.gray(` ${F} ${u}`))})}import{existsSync as ou}from"node:fs";import{resolve as nu}from"node:path";import{existsSync as e0,mkdirSync as b3}from"node:fs";import{readdir as x3,readFile as m8,stat as c8,unlink as P3,writeFile as l8}from"node:fs/promises";import{join as Z2}from"node:path";class $0{cache=new Map;config;cacheDir;constructor(D){if(this.config={enablePersistence:!0,cacheDir:".typeschema-cache",maxAge:86400000,validateCached:!0,...D},this.config.enablePersistence&&this.config.cacheDir)this.cacheDir=this.config.cacheDir}async set(D){let F=this.generateKey(D.identifier);if(this.cache.set(F,D),this.config.enablePersistence&&this.cacheDir)await this.persistSchema(D)}get(D){let F=this.generateKey(D);return this.cache.get(F)||null}getByUrl(D){for(let F of this.cache.values())if(F.identifier.url===D)return F;return null}has(D){let F=this.generateKey(D);return this.cache.has(F)}hasByUrl(D){for(let F of this.cache.values())if(F.identifier.url===D)return!0;return!1}delete(D){let F=this.generateKey(D);return this.cache.delete(F)}deleteByUrl(D){for(let[F,u]of this.cache.entries())if(u.identifier.url===D)return this.cache.delete(F);return!1}getByPackage(D){let F=[];for(let u of this.cache.values())if(u.identifier.package===D)F.push(u);return F}getByKind(D){let F=[];for(let u of this.cache.values())if(u.identifier.kind===D)F.push(u);return F}setMany(D){for(let F of D)this.set(F)}clear(){this.cache.clear()}generateKey(D){return`${D.package}:${D.version}:${D.kind}:${D.name}`}async initialize(){if(this.config.enablePersistence&&this.cacheDir){if(!e0(this.cacheDir))b3(this.cacheDir,{recursive:!0});await this.loadFromDisk()}}async loadFromDisk(){if(!this.cacheDir||!e0(this.cacheDir))return;try{let F=(await x3(this.cacheDir)).filter((u)=>u.endsWith(".typeschema.json"));for(let u of F){let E=Z2(this.cacheDir,u),B=await c8(E);if(this.config.maxAge){if(Date.now()-B.mtimeMs>this.config.maxAge){await P3(E);continue}}try{let C=await m8(E,"utf-8"),$=JSON.parse(C);if(this.config.validateCached){if(!$.schema?.identifier)continue}let X=this.generateKey($.schema.identifier);this.cache.set(X,$.schema)}catch(C){console.warn(`Failed to load cached schema from ${u}:`,C)}}}catch(D){console.warn("Failed to load cached schemas from disk:",D)}}async persistSchema(D){if(!this.cacheDir)return;if(!e0(this.cacheDir))b3(this.cacheDir,{recursive:!0});let F={schema:D,timestamp:Date.now(),version:D.identifier.version},u=`${D.identifier.package}-${D.identifier.version}-${D.identifier.kind}-${D.identifier.name}.typeschema.json`.replace(/[^a-zA-Z0-9.-]/g,"_"),E=Z2(this.cacheDir,u);try{await l8(E,JSON.stringify(F,null,2),"utf-8")}catch(B){console.warn(`Failed to persist schema to ${E}:`,B)}}async clearDisk(){if(!this.cacheDir||!e0(this.cacheDir))return;try{let F=(await x3(this.cacheDir)).filter((u)=>u.endsWith(".typeschema.json"));for(let u of F)await P3(Z2(this.cacheDir,u))}catch(D){console.warn("Failed to clear cache directory:",D)}}}import{createHash as o8}from"crypto";var Q2=(D)=>{let F=`${D.packageName}@${D.packageVersion}:${D.filePath}`;return o8("sha256").update(F).digest("base64url")};var W0=()=>{let D={},F={};return{generateId:Q2,get:(B)=>D[B],set:(B,C)=>{if(D[B]=C,C.url){if(!F[C.url])F[C.url]=[];let $=F[C.url];if($&&!$.includes(B))$.push(B)}},has:(B)=>(B in D),clear:()=>{Object.keys(D).forEach((B)=>delete D[B]),Object.keys(F).forEach((B)=>delete F[B])},size:()=>Object.keys(D).length,getIdsByUrl:(B)=>F[B]||[],createReference:(B,C)=>({id:B,resourceType:C.resourceType}),getAllReferences:()=>D}};import*as K2 from"path";import*as l3 from"fs/promises";var S3="https://fs.get-ig.org/pkgs/";import*as DF from"fs/promises";import*as v3 from"path";var A0=async(D)=>{try{return await DF.access(D),!0}catch{return!1}},G0=async(D)=>{try{await DF.mkdir(D,{recursive:!0})}catch{}},FF=async(D)=>{let F=v3.join(D,".index.json");return A0(F)};import{exec as n8}from"child_process";import{promisify as i8}from"util";var f3=i8(n8);async function z2(){try{return await f3("bun --version"),"bun"}catch{try{return await f3("npm --version"),"npm"}catch{return null}}}import*as y3 from"fs/promises";import*as h3 from"path";import{exec as t8}from"child_process";import{promisify as s8}from"util";var k3=s8(t8),uF=async(D,F,u)=>{await G0(F);let E=h3.join(F,"package.json");if(!await A0(E))await y3.writeFile(E,JSON.stringify({name:"fhir-canonical-manager-workspace",version:"1.0.0",private:!0,dependencies:{}},null,2));let B=await z2();if(!B)throw Error("No package manager found. Please install npm or bun.");for(let C of D)try{if(B==="bun"){let $={...process.env,HOME:F,NPM_CONFIG_USERCONFIG:"/dev/null"},X=u?`cd ${F} && bun add ${C} --registry ${u}`:`cd ${F} && bun add ${C}`;await k3(X,{env:$,maxBuffer:10485760})}else{let $=u?`cd ${F} && npm add ${C} --registry ${u}`:`cd ${F} && npm add ${C}`;await k3($,{maxBuffer:10485760})}}catch($){throw console.error(`Failed to install package ${C}:`,$),$}};var EF=()=>{let D=W0();return{entries:{},packages:{},references:{},referenceManager:D}};import*as BF from"fs/promises";import*as J2 from"path";import*as Y2 from"fs/promises";import*as O2 from"path";import{createHash as d3}from"crypto";var U0=async(D)=>{try{let F=O2.join(D,"package-lock.json");try{let u=await Y2.readFile(F,"utf-8");return d3("sha256").update(u).digest("hex")}catch{let u=O2.join(D,"bun.lock"),E=await Y2.readFile(u,"utf-8");return d3("sha256").update(E).digest("hex")}}catch{return null}};var CF=async(D,F,u)=>{let E=await U0(u),B={entries:D.entries,packages:D.packages,references:D.referenceManager.getAllReferences(),packageLockHash:E||void 0},C=J2.join(F,"index.json");await BF.writeFile(C,JSON.stringify(B,null,2))},W2=async(D)=>{try{let F=J2.join(D,"index.json"),u=await BF.readFile(F,"utf-8");return JSON.parse(u)}catch{return null}};var p3=(D)=>{if(!D||typeof D!=="object")return!1;if(!D.filename||typeof D.filename!=="string")return!1;if(!D.resourceType||typeof D.resourceType!=="string")return!1;if(!D.id||typeof D.id!=="string")return!1;let F=["url","version","kind","type"];for(let u of F)if(D[u]!==void 0&&typeof D[u]!=="string")return!1;return!0},g3=(D)=>{if(!D||typeof D!=="object")return!1;if(!D["index-version"]||typeof D["index-version"]!=="number")return!1;if(!Array.isArray(D.files))return!1;return D.files.every((F)=>p3(F))},A2=(D,F)=>{try{let u=JSON.parse(D);if(!g3(u))return null;return u}catch{return null}};import*as m3 from"fs/promises";import*as G2 from"path";var $F=async(D,F,u)=>{let E=G2.join(D,".index.json");try{let B=await m3.readFile(E,"utf-8"),C=A2(B,E);if(!C)return;for(let $ of C.files){if(!$.url)continue;let X=G2.join(D,$.filename),Q=u.referenceManager.generateId({packageName:F.name,packageVersion:F.version,filePath:X});u.referenceManager.set(Q,{packageName:F.name,packageVersion:F.version,filePath:X,resourceType:$.resourceType,url:$.url,version:$.version});let z={id:Q,resourceType:$.resourceType,indexVersion:C["index-version"],url:$.url,version:$.version,kind:$.kind,type:$.type,package:{name:F.name,version:F.version}};if(!u.entries[$.url])u.entries[$.url]=[];let O=u.entries[$.url];if(O)O.push(z)}}catch{}};import*as c3 from"fs/promises";import*as XF from"path";var ZF=async(D,F)=>{try{let u=XF.join(D,"package.json"),E=await c3.readFile(u,"utf-8"),B=JSON.parse(E),C={id:{name:B.name,version:B.version},path:D,canonical:B.canonical,fhirVersions:B.fhirVersions};F.packages[B.name]=C,await $F(D,B,F);let $=XF.join(D,"examples");if(await A0(XF.join($,".index.json")))await $F($,B,F)}catch{}};import*as H2 from"fs/promises";import*as q2 from"path";var QF=async(D,F)=>{try{let u=await H2.readdir(D,{withFileTypes:!0});for(let E of u){if(!E.isDirectory())continue;let B=q2.join(D,E.name);if(E.name.startsWith("@")){let C=await H2.readdir(B,{withFileTypes:!0});for(let $ of C){if(!$.isDirectory())continue;let X=q2.join(B,$.name);if(await FF(X))await ZF(X,F)}}else if(await FF(B))await ZF(B,F)}}catch{}};var _2=async(D,F,u,E)=>{if(F.package)try{return await E(D,{package:F.package.name,version:F.package.version})}catch{}return null};var M2={str:["structure"],struct:["structure"],def:["definition"],pati:["patient"],obs:["observation"],org:["organization"],pract:["practitioner"],med:["medication","medicinal"],req:["request"],resp:["response"],ref:["reference"],val:["value"],code:["codesystem","code"],cs:["codesystem"],vs:["valueset"],sd:["structuredefinition"]};var V2=(D,F)=>{if(F.length===0)return D;let u=F.map((E)=>E.toLowerCase());return D.filter((E)=>{if(!E.url)return!1;let C=[E.url.toLowerCase(),E.type?.toLowerCase()||"",E.resourceType?.toLowerCase()||""].join(" ");return u.every(($)=>{let X=C.split(/[\/\-_\.\s]+/);if(X.some((O)=>O.startsWith($)))return!0;let z=M2[$]||[];for(let O of z)if(X.some((W)=>W.startsWith(O)))return!0;return C.includes($)})})};var pD=(D)=>{let{packages:F=[],workingDir:u}=D,E=D.registry?D.registry.endsWith("/")?D.registry:`${D.registry}/`:S3,B=K2.join(u,"node_modules"),C=K2.join(u,".fcm","cache"),$=EF(),X=!1,Q=new Map,z=()=>{if(!X)throw Error("CanonicalManager not initialized. Call init() first.")},O=async()=>{if(X)return;await G0(u),await G0(C);let U=await U0(u),j=await W2(C);if(j&&j.packageLockHash===U&&U!==null)$.entries=j.entries,$.packages=j.packages,Object.entries(j.references).forEach(([l,g])=>{$.referenceManager.set(l,g)});else{if(j&&j.packageLockHash!==U)console.log("Package dependencies have changed, rebuilding index...");await uF(F,u,E),$=EF(),await QF(B,$),await CF($,C,u)}X=!0},W=async()=>{$.entries={},$.packages={},$.referenceManager.clear(),Q.clear(),X=!1},J=async()=>{return z(),Object.values($.packages).map((U)=>U.id)},A=async(...U)=>{if(U.length===0)return;let j=U.filter((S)=>!F.includes(S));if(j.length!==0)F.push(...j);if(!X){await O();return}if(j.length===0)return;await uF(F,u,E),await QF(B,$),await CF($,C,u)},_=async(U,j)=>{if(z(),j?.sourceContext){let g=await _2(U,j.sourceContext,$,_);if(g)return g}let S=$.entries[U]||[];if(S.length===0)throw Error(`Cannot resolve canonical URL: ${U}`);let l=[...S];if(j?.package)l=l.filter((g)=>g.package?.name===j.package);if(j?.version)l=l.filter((g)=>g.version===j.version);if(l.length===0)throw Error(`No matching resource found for ${U} with given options`);return l[0]},q=async(U,j)=>{let S=await _(U,j);return P(S)},P=async(U)=>{z();let j=$.referenceManager.get(U.id);if(!j)throw Error(`Invalid reference ID: ${U.id}`);try{let S=await l3.readFile(j.filePath,"utf-8");return{...JSON.parse(S),id:U.id,resourceType:U.resourceType}}catch(S){throw Error(`Failed to read resource: ${S}`)}},c=async(U)=>{z();let j=[];if(U.url)j=$.entries[U.url]||[];else for(let S of Object.values($.entries))j.push(...S);if(U.kind!==void 0)j=j.filter((S)=>S.kind===U.kind);if(U.type!==void 0)j=j.filter((S)=>S.type===U.type);if(U.version!==void 0)j=j.filter((S)=>S.version===U.version);if(U.package){let S=U.package;j=j.filter((l)=>l.package?.name===S.name&&l.package?.version===S.version)}return j};return{init:O,destroy:W,packages:J,addPackages:A,resolveEntry:_,resolve:q,read:P,searchEntries:c,search:async(U)=>{let j=await c(U);return await Promise.all(j.map((l)=>P(l)))},smartSearch:async(U,j)=>{z();let S=await c({kind:j?.kind,package:j?.package});if(j?.resourceType)S=S.filter((l)=>l.resourceType===j.resourceType);if(j?.type)S=S.filter((l)=>l.type===j.type);return V2(S,U)},getSearchParametersForResource:async(U)=>{if(z(),Q.has(U))return Q.get(U);let S=(await c({})).filter((g)=>g.resourceType==="SearchParameter"),l=[];for(let g of S){let LD=await P(g),N=LD.base||[];if(Array.isArray(N)&&N.includes(U))l.push(LD)}return l.sort((g,LD)=>{let N=g.code||"",K=LD.code||"";return N.localeCompare(K)}),Q.set(U,l),l}}};function R2(D){let E=D.path.split(".").slice(1).map(($)=>({el:$}));if(E.length===0)return[];let B=E.length-1,C={};if(D.slicing){if(C.slicing={...D.slicing},D.min!==void 0)C.slicing.min=D.min;if(D.max&&D.max!=="*")C.slicing.max=parseInt(D.max)}if(D.sliceName){if(C.slice={},D.min!==void 0)C.slice.min=D.min;if(D.max&&D.max!=="*")C.slice.max=parseInt(D.max);C.sliceName=D.sliceName}return E[B]={...E[B],...C},E}function U2(D,F){let u=[],E=Math.min(D.length,F.length);for(let B=0;B<E;B++)if(D[B].el===F[B].el)u.push({el:D[B].el});else break;return u}function j2(D,F){let u=[];for(let E=0;E<F.length;E++)if(E<D.length&&D[E].el===F[E].el)u.push({...D[E],...F[E],...D[E].slicing&&!F[E].slicing&&{slicing:D[E].slicing}});else u.push(F[E]);return u}function r8(D,F){return!!(D.sliceName&&F.sliceName&&D.sliceName!==F.sliceName)}function o3(D){return{type:"exit-slice",sliceName:D.sliceName,...D.slicing&&{slicing:D.slicing},...D.slice&&{slice:D.slice}}}function a8(D,F,u,E){let B=[];for(let C=D-1;C>=F;C--){let $=u[C];if($.sliceName)B.push(o3($));B.push({type:"exit",el:$.el})}if(F>0){let C=u[F-1],$=E[F-1];if(r8(C,$))B.push(o3(C))}return B}function e8(D,F,u,E){let B=[];if(D>0&&D<=F){let C=u[D-1]||{},$=E[D-1];if($.sliceName&&(!C.sliceName||C.sliceName!==$.sliceName))B.push({type:"enter-slice",sliceName:$.sliceName});if(D===F)return B}for(let C=D;C<F;C++){let $=E[C];if(B.push({type:"enter",el:$.el}),$.sliceName)B.push({type:"enter-slice",sliceName:$.sliceName})}return B}function zF(D,F){let u=D.length,E=F.length,C=U2(D,F).length,$=a8(u,C,D,F),X=e8(C,E,D,F);return[...$,...X]}function i3(D,F){if(!D)return;return D.find((u)=>u.url===F)}function n3(D){return{Instant:"instant",Time:"time",Date:"date",DateTime:"dateTime",Decimal:"decimal",Boolean:"boolean",Integer:"integer",String:"string",Uri:"uri",Base64Binary:"base64Binary",Code:"code",Id:"id",Oid:"oid",UnsignedInt:"unsignedInt",PositiveInt:"positiveInt",Markdown:"markdown",Url:"url",Canonical:"canonical",Uuid:"uuid"}[D]||D}function Du(D){let F={};for(let[u,E]of Object.entries(D))if(typeof u==="string"&&u.startsWith("pattern")){let B=n3(u.replace(/^pattern/,""));F.pattern={type:B,value:E}}else if(typeof u==="string"&&u.startsWith("fixed")){let B=n3(u.replace(/^fixed/,""));F.pattern={type:B,value:E}}else F[u]=E;if(F.pattern?.type&&!F.type)F.type=F.pattern.type;return F}function Fu(D){let F=[];for(let u of D)if(u.targetProfile){let E=Array.isArray(u.targetProfile)?u.targetProfile:[u.targetProfile];F.push(...E)}return F.length>0?[...new Set(F)].sort():void 0}function uu(D){if(!D.type||D.type.length===0)return D;if(D.type[0].code==="Reference"){let u=Fu(D.type);return{...D,type:[{code:"Reference"}],...u&&{refers:u}}}return D}function Eu(D,F){let u=(C)=>{let $={strength:C.strength,...C.valueSet&&{valueSet:C.valueSet}},X=i3(C.extension,"http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName");if(X?.valueString)$.bindingName=X.valueString;return $};if(D.choices){let{binding:C,...$}=D;return $}if(D.choiceOf&&F.snapshot){let C=`${F.id}.${D.choiceOf}[x]`,$=F.snapshot.element.find((X)=>X.path===C);if($?.binding)return{...D,binding:u($.binding)}}if(D.binding?.valueSet)return{...D,binding:u(D.binding)};let{binding:E,...B}=D;return B}function Bu(D){if(!D.constraint||D.constraint.length===0)return D;let F={};for(let u of D.constraint)F[u.key]={expression:u.expression,human:u.human,severity:u.severity};return{...D,constraint:F}}function Cu(D,F){if(!D.type||D.type.length===0)return D;let u=D.type[0]?.extension?.[0];if(u?.url==="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type"&&u.valueUrl)return{...D,type:u.valueUrl};let E=D.type[0].code,B={...D,type:E};if(F.kind==="logical"){let C=i3(D.extension,"http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype");if(C?.valueCanonical)B.defaultType=C.valueCanonical}return B}function $u(D){if(D.type?.[0]?.code!=="Extension")return D;let u=D.type[0]?.profile?.[0];if(!u)return D;return{...D,url:u,...D.min&&{min:D.min},...D.max&&D.max!=="*"&&{max:parseInt(D.max)}}}function Xu(D){if(D.url)return D;let F=D.max==="*"||D.min&&D.min>=2||D.max&&parseInt(D.max)>=2,u=D.min===1,E={...D};if(delete E.min,delete E.max,F){if(E.array=!0,D.min&&D.min>0)E.min=D.min;if(D.max&&D.max!=="*")E.max=parseInt(D.max)}if(u)E._required=!0;return E}function Zu(D,F){let u=D.substring(1).split("."),E=[F.url];for(let B of u.slice(1))E.push("elements",B);return E}function Qu(D,F){if(!D.contentReference)return D;let{contentReference:u,...E}=D;return{...E,elementReference:Zu(u,F)}}function zu(D){let{path:F,slicing:u,sliceName:E,id:B,mapping:C,example:$,alias:X,condition:Q,comment:z,definition:O,requirements:W,extension:J,...A}=D;return A}function N2(D,F){let u=uu(D);return u=zu(u),u=Eu(u,F),u=Bu(u),u=Qu(u,F),u=$u(u),u=Xu(u),u=Cu(u,F),u=Du(u),u}function L2(D){if(D.path.endsWith("[x]"))return!0;if(D.type&&D.type.length>1)return new Set(D.type.map((u)=>u.code)).size>1;return!1}function t3(D){if(!D)return D;return D.charAt(0).toUpperCase()+D.slice(1)}function s3(D){let F=D.split("/");return F[F.length-1]}function I2(D){let F=D.path.replace(/\[x\]$/,""),u=F.split(".").pop()||"";if(!D.type)return[];let E=[],B=D.type.map((z)=>u+t3(s3(z.code))),{type:C,binding:$,...X}=D,Q={...X,path:F,choices:B};E.push(Q);for(let z of D.type){let O=t3(s3(z.code)),W={...D,path:F+O,type:[z],choiceOf:u};if(D.binding)delete W.binding;E.push(W)}return E}function r3(D,F){let u=D[D.length-1],E=D.slice(0,-1),B=E[E.length-1],C=F(B,u);return[...E.slice(0,-1),C]}function Yu(D,F){if(!D.discriminator)return{};let u={};for(let E of D.discriminator){if(!E.type||!["pattern","value",void 0].includes(E.type))continue;let B=E.path.trim();if(B==="$this"){if(F.pattern?.value)Object.assign(u,F.pattern.value)}else{let C=B.split(".").filter((z)=>z),$=Object.keys(F).filter((z)=>z.startsWith("pattern"));for(let z of $){let O=z.replace("pattern","").toLowerCase();if(C.length===1&&C[0]===O)u[O]=F[z]}let X=["elements"];for(let z of C)if(X.push(z),C.indexOf(z)<C.length-1)X.push("elements");X.push("pattern");let Q=F;for(let z of X)Q=Q?.[z];if(Q?.value!==void 0){let z=u;for(let O=0;O<C.length-1;O++){if(!z[C[O]])z[C[O]]={};z=z[C[O]]}z[C[C.length-1]]=Q.value}}}return u}function Ou(D,F,u){let E={match:F,schema:D};if(u?.min!==void 0&&u.min!==0)E.min=u.min;if(u?.max!==void 0)E.max=u.max;return E}function Ju(D,F,u){let E=F.slicing||D.slicing||{},B=Yu(E,u),C=Ou(u,B,D.slice);if(!F.slicing)F.slicing={};if(D.slicing)F.slicing={...F.slicing,...D.slicing};if(!F.slicing.slices)F.slicing.slices={};return F.slicing.slices[D.sliceName]=C,F}function Wu(D){if(!D.slicing?.slices)return{};let F={};for(let[u,E]of Object.entries(D.slicing.slices)){let{match:B,schema:C,...$}=E,{slicing:X,elements:Q,type:z,min:O,...W}=C||{},J={};if(B?.url)J.url=B.url;if($.min!==void 0&&$.min!==0)J.min=$.min;if($.max!==void 0)J.max=$.max;if(Object.assign(J,W),O!==void 0&&O!==0&&J.min===void 0)J.min=O;F[u]=J}return F}function Au(D,F,u){let E={...F};if(D==="extension")E.extensions=Wu(u);if(!E.elements)E.elements={};let B=u.choiceOf||D,{_required:C,...$}=u;if(E.elements[D]=$,C){if(!E.required)E.required=[];if(!E.required.includes(B))E.required.push(B)}return E}function YF(D,F,u){let E=[...D];for(let B=0;B<F.length;B++){let C=F[B],X=F[B+1]?.type==="enter"?{}:u;switch(C.type){case"enter":E.push(X);break;case"enter-slice":E.push(X);break;case"exit":E=r3(E,(Q,z)=>Au(C.el,Q,z));break;case"exit-slice":E=r3(E,(Q,z)=>Ju(C,Q,z));break}}return E}function a3(D,F){let u={};if(u.name=D.name,u.type=D.type,D.url)u.url=D.url;if(D.version)u.version=D.version;if(D.description)u.description=D.description;if(D.package_name)u.package_name=D.package_name;if(D.package_version)u.package_version=D.package_version;if(D.package_id)u.package_id=D.package_id;if(u.kind=D.kind,D.derivation)u.derivation=D.derivation;if(D.baseDefinition&&D.type!=="Element")u.base=D.baseDefinition;if(D.abstract)u.abstract=D.abstract;if(u.class=Gu(D),F?.package_meta)u.package_meta=F.package_meta;return u}function Gu(D){if(D.kind==="resource"&&D.derivation==="constraint")return"profile";if(D.type==="Extension")return"extension";return D.kind||"unknown"}function Hu(D){return(D.differential?.element||[]).filter((u)=>u.path.includes("."))}function e3(D){let u=Object.entries(D).sort((B,C)=>{let $=B[1].index??1/0,X=C[1].index??1/0;return $-X}),E={};for(let[B,C]of u)if(C.elements)E[B]={...C,elements:e3(C.elements)};else E[B]=C;return E}function j0(D,F=new WeakSet){if(Array.isArray(D))return D.map((u)=>j0(u,F));if(D&&typeof D==="object"){if(F.has(D))return"[Circular Reference]";F.add(D);let u={},E=Object.keys(D);for(let B of E)if(B==="elements"&&D[B])u[B]=e3(j0(D[B],F));else if(B==="required"&&Array.isArray(D[B]))u[B]=[...D[B]].sort();else u[B]=j0(D[B],F);return u}return D}function N0(D,F){if(D.kind==="primitive-type")return j0(a3(D,F));let u=a3(D,F),E=Hu(D),B=[u],C=[],$=[...E],X=0;while($.length>0){let z=$.shift();if(L2(z)){let q=I2(z);$.unshift(...q),X++;continue}let O=R2(z),W=j2(C,O),J=zF(C,W),_={...N2(z,D),index:X++};B=YF(B,J,_),C=W}let Q=zF(C,[]);if(B=YF(B,Q,{index:X}),B.length!==1)throw Error(`Invalid stack state: expected 1 element, got ${B.length}`);return j0(B[0])}var w2=(D,F)=>{if(!F)F={name:"undefined",version:"undefined"};return{...D,package_meta:D.package_meta||F,name:D.name,url:D.url,base:D.base}};function T2(D){return D.identifier.kind==="binding"}var F6=async(D,F,u)=>{let E=await D.search({}),B={};for(let A of E){let _=A.url;if(!_)continue;B[_]=A}let C={};for(let A of E)if(A.resourceType==="StructureDefinition"){let _=A.url;C[_]=A}let $={},X={},[Q,z]=[0,0];for(let A of Object.values(C)){try{let _=w2(N0(A),u);$[_.url]=_,X[_.name]=_.url,Q++}catch(_){F?.warn(`Failed to convert StructureDefinition ${A.name||A.id}: ${_ instanceof Error?_.message:String(_)}`),z++}F?.success(`FHIR Schema conversion completed: ${Q}/${Object.values(C).length} successful, ${z} failed`)}let O={};for(let A of E)if(A.resourceType==="ValueSet")O[A.url]=A;let W={};for(let A of Object.values($))if(A.kind==="complex-type")W[A.url]=A;return{...D,appendFs(A){let _=w2(A);$[_.url]=_,X[_.name]=_.url},resolveFs:(A)=>$[A],resolveFsGenealogy:(A)=>{let _=$[A];if(_===void 0)throw Error(`Failed to resolve FHIR Schema genealogy for '${A}'`);let q=[_];while(_?.base)if(_=$[_.base]||$[X[_.base]],q.push(_),_===void 0)throw Error(`Failed to resolve FHIR Schema genealogy for '${A}'`);return q},ensureCanonicalUrl:(A)=>X[A]||A,allSd:()=>Object.values(C),resolveSd:(A)=>C[A],allFs:()=>Object.values($),allVs:()=>Object.values(O),resolveVs:(A)=>O[A],complexTypeDict:()=>W,resolveAny:(A)=>B[A]}};var b2=(D,F)=>{let[u,...E]=F;if(u===void 0)return[];return D.map((B)=>{if(!B.elements)return;let C=B.elements?.[u];for(let $ of E)C=C?.elements?.[$];return C}).filter((B)=>B!==void 0)};function x2(D){let F=D.reverse().reduce((u,E)=>({...u,...E}),{});return F.elements=void 0,F}function P2(D){if(!D)return;return D.split("|")[0]}function qu(D){if(D.derivation==="constraint")return"profile";if(D.kind==="primitive-type")return"primitive-type";if(D.kind==="complex-type")return"complex-type";if(D.kind==="resource")return"resource";return"resource"}function TD(D){return{kind:qu(D),package:D.package_meta.name,version:D.package_meta.version,name:D.name,url:D.url}}function L0(D,F){let u=F.join(".");return{kind:"nested",package:D.package_meta.name,version:D.package_meta.version,name:u,url:`${D.url}#${u}`}}function I0(D,F,u){let E=P2(D)||D,B="unknown",C=E.split("/"),$=C[C.length-1];if($&&$.length>0)B=$.split(/[-_]/).map((X)=>X.charAt(0).toUpperCase()+X.slice(1).toLowerCase()).join("");if(B==="unknown"&&F?.id&&!/^[a-zA-Z0-9_-]{20,}$/.test(F.id))B=F.id;return{kind:"value-set",package:u?.name||F?.package_name||"undefined",version:u?.version||F?.package_version||"undefined",name:B,url:E}}function OF(D,F,u,E){let B=F.join("."),[C,$]=u?[u,`urn:fhir:binding:${u}`]:[`${D.name}.${B}_binding`,`${D.url}#${B}_binding`];return{kind:"binding",package:D.package_meta.name,version:D.package_meta.version,name:C,url:$}}async function u6(D,F){let u=TD(F),E=F.package_meta;if(u.kind!=="profile")throw Error(`Expected profile, got ${u.kind} for ${F.name}`);let B;if(F.base){let O=F.base.includes("/")?F.base:`http://hl7.org/fhir/StructureDefinition/${F.base}`,W=F.base.split("/").pop()||F.base,J=await _u(O,D),A=O.startsWith("http://hl7.org/fhir/");B={kind:J,package:A?"hl7.fhir.r4.core":F.package_meta.name||"undefined",version:A?"4.0.1":F.package_meta.version||"undefined",name:W,url:O}}let C={identifier:u,base:B,dependencies:B?[B]:[]};if(F.description)C.description=F.description;let $=Mu(F);if(Object.keys($).length>0)C.metadata=$;if(F.elements){let O=await JF(D,F,[],F.elements);if(O&&Object.keys(O).length>0)C.fields=O}let X=await Vu(F,D);if(Object.keys(X).length>0)C.constraints=X;let Q=await Ku(F,D);if(Q.length>0)C.extensions=Q;let z=Ru(F);if(z.length>0)C.validation=z;return C}async function _u(D,F){try{let u=F.resolveFs(D);if(!u)return"resource";if(u){if(u.derivation==="constraint")return"profile";if(u.kind==="resource")return"resource";if(u.kind==="complex-type")return"complex-type"}}catch(u){console.warn(`Could not resolve base schema ${D}:`,u)}if(D.includes("StructureDefinition/")&&!D.startsWith("http://hl7.org/fhir/StructureDefinition/"))return"profile";return"resource"}function Mu(D){let F={},u=D.package_meta;if(D.publisher)F.publisher=D.publisher;if(D.contact)F.contact=D.contact;if(D.copyright)F.copyright=D.copyright;if(D.purpose)F.purpose=D.purpose;if(D.experimental!==void 0)F.experimental=D.experimental;if(D.date)F.date=D.date;if(D.jurisdiction)F.jurisdiction=D.jurisdiction;if(u?.name)F.package=u.name;else if(D.package_meta.name)F.package=D.package_meta.name;return F}async function Vu(D,F){let u={};if(!D.elements)return u;for(let[E,B]of Object.entries(D.elements)){let C={};if(B.min!==void 0)C.min=B.min;if(B.max!==void 0)C.max=String(B.max);if(B.mustSupport)C.mustSupport=!0;if(B.fixedValue!==void 0)C.fixedValue=B.fixedValue;if(B.patternValue!==void 0)C.patternValue=B.patternValue;if(B.binding)C.binding={strength:B.binding.strength,valueSet:B.binding.valueSet??""};if(B.type&&Array.isArray(B.type)&&B.type.length>0)C.types=B.type.map(($)=>{let X={code:$.code};if($.profile)X.profile=$.profile;if($.targetProfile)X.targetProfile=$.targetProfile;return X});if(B.slicing)C.slicing={discriminator:B.slicing.discriminator??[],rules:String(B.slicing),ordered:B.slicing.ordered};if(Object.keys(C).length>0)u[E]=C}return u}async function Ku(D,F){let u=[];if(!D.elements)return u;for(let[E,B]of Object.entries(D.elements))if(E.includes("extension")&&B.type&&Array.isArray(B.type)){for(let C of B.type)if(C.code==="Extension"&&C.profile)u.push({path:E,profile:C.profile,min:B.min,max:String(B.max),mustSupport:B.mustSupport})}return u}function Ru(D){let F=[];if(!D.elements)return F;for(let[u,E]of Object.entries(D.elements))if(E.constraint&&Array.isArray(E.constraint))for(let B of E.constraint)F.push({path:u,key:B.key,severity:B.severity,human:B.human,expression:B.expression});return F}function E6(D,F,u){let E=u[u.length-1],B=u.slice(0,-1),C=D.resolveFsGenealogy(F.url).flatMap(($)=>{if(B.length===0)return $.required||[];if(!$.elements)return[];let X=$;for(let Q of B)X=X?.elements?.[Q];return X?.required||[]});return new Set(C).has(E)}function B6(D,F,u){let E=u[u.length-1],B=u.slice(0,-1),C=D.resolveFsGenealogy(F.url).flatMap(($)=>{if(B.length===0)return $.excluded||[];if(!$.elements)return[];let X=$;for(let Q of B)X=X?.elements?.[Q];return X?.excluded||[]});return new Set(C).has(E)}var Uu=(D,F,u)=>{if(!D.refers)return;return D.refers.map((E)=>{let B=F.ensureCanonicalUrl(E),C=F.resolveFs(B);return TD(C)})};function S2(D,F,u,E,B){if(u.elementReference){let C=u.elementReference.filter(($,X)=>X%2===1).map(($)=>$).filter(($)=>$!=="elements");if(C.length>0)return L0(D,C)}if(u.type){let C=u.type.includes("/")?u.type:`http://hl7.org/fhir/StructureDefinition/${u.type}`,$=u.type.match(/^[a-z]/)?"primitive-type":"complex-type",X=C.startsWith("http://hl7.org/fhir/");return{kind:$,package:X?"hl7.fhir.r4.core":B?.name||"undefined",version:X?"4.0.1":B?.version||"undefined",name:u.type,url:C}}return}var WF=(D,F,u,E)=>{let B,C;if(E.binding){if(B=OF(F,u,E.binding.bindingName,F.package_meta),E.binding.strength==="required"&&E.type==="code")C=v2(E,D)}return{type:S2(F,u,E,D,F.package_meta),required:E6(D,F,u),excluded:B6(D,F,u),reference:Uu(E,D,F.package_meta),array:E.array||!1,min:E.min,max:E.max,choices:E.choices,choiceOf:E.choiceOf,binding:B,enum:C}};function w0(D){let F=D.type==="BackboneElement",u=D.type==="Element"&&D.elements!==void 0&&Object.keys(D.elements).length>0,E=D.type===void 0&&D.choiceOf===void 0&&D.elements!==void 0&&Object.keys(D.elements).length>0;return F||u||E}function AF(D,F,u,E){return{type:L0(F,u),array:E.array||!1,required:E6(D,F,u),excluded:B6(D,F,u)}}function ju(D,F){try{let u=P2(D)||D,E=F.resolveVs(u);if(!E)return;if(E.expansion?.contains)return E.expansion.contains.map((C)=>({system:C.system,code:C.code,display:C.display}));let B=[];if(E.compose?.include){for(let C of E.compose.include)if(C.concept)for(let $ of C.concept)B.push({system:C.system,code:$.code,display:$.display});else if(C.system&&!C.filter)try{let $=F.resolveAny(C.system);if($?.concept){let X=(Q,z)=>{for(let O of Q)if(B.push({system:z,code:O.code,display:O.display}),O.concept)X(O.concept,z)};X($.concept,C.system)}}catch{}}return B.length>0?B:void 0}catch{return}}function v2(D,F){if(!D.binding)return;let{strength:u,valueSet:E}=D.binding;if(!E)return;if(!(u==="required"||u==="extensible"&&(D.type==="code"||D.type==="Coding")||u==="preferred"&&(D.type==="code"||D.type==="Coding")))return;try{let C=ju(E,F);if(!C||C.length===0)return;let $=C.map((X)=>X.code).filter((X)=>X&&typeof X==="string"&&X.trim().length>0);return $.length>0&&$.length<=100?$:void 0}catch(C){console.debug(`Failed to extract enum values for ${E}: ${C}`);return}}async function Nu(D,F,u,E,B){if(!u.binding?.valueSet)return;let C=OF(D,F,u.binding.bindingName,B),$=S2(D,F,u,E,B),X=I0(u.binding.valueSet,void 0,B),Q=[];if($)Q.push($);Q.push(X);let z=await v2(u,E);return{identifier:C,type:$,valueset:X,strength:u.binding.strength,enum:z,dependencies:Q}}async function f2(D,F){let u=D.package_meta,E=[],B=new Set;async function C(Q,z){for(let[O,W]of Object.entries(Q)){let J=[...z,O],A=J.join(".");if(B.has(A))continue;if(B.add(A),W.binding){let _=await Nu(D,J,W,F,u);if(_)E.push(_)}if(W.elements)await C(W.elements,J)}}if(D.elements)await C(D.elements,[]);E.sort((Q,z)=>Q.identifier.name.localeCompare(z.identifier.name));let $=[],X=new Set;for(let Q of E)if(!X.has(Q.identifier.url))X.add(Q.identifier.url),$.push(Q);return $}function C6(D,F,u){let E=[];for(let[B,C]of Object.entries(u)){let $=[...F,B];if(w0(C))E.push([$,C]);if(C.elements)E.push(...C6(D,$,C.elements))}return E}async function Lu(D,F,u,E,B){let C={};for(let[$,X]of Object.entries(u)){let Q=[...F,$];if(w0(X))C[$]=AF(E,D,Q,X);else C[$]=WF(E,D,Q,X)}return C}async function k2(D,F){if(!F.elements)return;let E=C6(F,[],F.elements).filter(([C,$])=>$.elements&&Object.keys($.elements).length>0),B=[];for(let[C,$]of E){let X=L0(F,C),Q;if($.type==="BackboneElement"||!$.type)Q={kind:"complex-type",package:F.package_meta.name,version:F.package_meta.version,name:"BackboneElement",url:"http://hl7.org/fhir/StructureDefinition/BackboneElement"};else Q={kind:"complex-type",package:F.package_meta.name,version:F.package_meta.version,name:$.type,url:`http://hl7.org/fhir/StructureDefinition/${$.type}`};let z=await Lu(F,C,$.elements,D,F.package_meta),O={identifier:X,base:Q,fields:z};B.push(O)}return B.sort((C,$)=>C.identifier.url.localeCompare($.identifier.url)),B.length===0?void 0:B}function y2(D){let F=[];for(let u of D){if(u.base)F.push(u.base);for(let E of Object.values(u.fields||{})){if("type"in E&&E.type)F.push(E.type);if("binding"in E&&E.binding)F.push(E.binding)}}return F}async function JF(D,F,u,E){if(!E)return;let B=D.resolveFsGenealogy(F.url),C={};for(let[X,Q]of Object.entries(E)){let z=[...u,X],O=b2(B,z),W=x2(O);C[X]={elem:Q,elemSnapshot:W,path:z}}for(let[X,{elem:Q,elemSnapshot:z,path:O}]of Object.entries(C))for(let W of Q?.choices||[])if(!C[W]){let J=[...u,W],A=b2(B,J),_=x2(A);C[W]={elem:void 0,elemSnapshot:_,path:J}}let $={};for(let[X,{elem:Q,elemSnapshot:z,path:O}]of Object.entries(C))if(w0(z))$[X]=AF(D,F,O,z);else $[X]=WF(D,F,O,z);return $}function $6(D){let F=[];for(let u of Object.values(D)){if("type"in u&&u.type)F.push(u.type);if("binding"in u&&u.binding)F.push(u.binding)}return F}function Iu(D){let F=new Set,u=[];for(let E of D){let B=E.url;if(!F.has(B))F.add(B),u.push(E)}return u.sort((E,B)=>E.name.localeCompare(B.name)),u}function wu(D,F){if(D.base==="Extension"||D.base==="http://hl7.org/fhir/StructureDefinition/Extension")return!0;if(D.url?.includes("/extension/")||D.url?.includes("-extension"))return!0;if(D.name?.toLowerCase().includes("extension"))return!0;if(D.type==="Extension")return!0;return!1}async function Tu(D,F,u){try{let E=TD(D);E.kind="value-set";let B={identifier:E,description:D.description};if(D.elements){let C=[];for(let[$,X]of Object.entries(D.elements))if("code"in X&&X.code)C.push({code:X.code,display:X.short||X.definition,system:X.system});if(C.length>0)B.concept=C}return B}catch(E){return console.warn(`Failed to transform value set ${D.name}: ${E}`),null}}async function bu(D,F,u){try{let E=TD(D),B;if(D.base&&D.base!=="Extension"){let X=D.base.includes("/")?D.base:`http://hl7.org/fhir/StructureDefinition/${D.base}`;B={kind:"complex-type",package:"hl7.fhir.r4.core",version:"4.0.1",name:D.base.split("/").pop()||D.base,url:X}}else B={kind:"complex-type",package:"hl7.fhir.r4.core",version:"4.0.1",name:"Extension",url:"http://hl7.org/fhir/StructureDefinition/Extension"};let C={identifier:E,base:B,description:D.description,dependencies:[],metadata:{isExtension:!0}};if(B)C.dependencies.push(B);if(D.elements){let X=await JF(F,D,[],D.elements);if(X&&Object.keys(X).length>0)C.fields=X,C.dependencies.push(...$6(X))}let $=await k2(F,D);if($&&$.length>0)C.nested=$,C.dependencies.push(...y2($));return C.dependencies=Iu(C.dependencies),C.dependencies=C.dependencies.filter((X)=>X.url!==E.url),C}catch(E){return console.warn(`Failed to transform extension ${D.name}: ${E}`),null}}function xu(D,F,u,E){let B=[];if(F)B.push(F);if(u)B.push(...$6(u));if(E)B.push(...y2(E));let C={};for(let Q of B){if(Q.url===D.url)continue;C[Q.url]=Q}let $=new Set(E?.map((Q)=>Q.identifier.url)),X=Object.values(C).filter((Q)=>!(Q.kind==="nested"&&$.has(Q.url))).sort((Q,z)=>Q.name.localeCompare(z.name));return X.length>0?X:void 0}async function Pu(D,F){let u=TD(F),E;if(F.base&&F.type!=="Element"){let z=D.resolveFs(D.ensureCanonicalUrl(F.base));if(!z)throw Error(`Base resource not found '${F.base}' for '${F.url}'`);E=TD(z)}let B=await JF(D,F,[],F.elements),C=await k2(D,F),$=xu(u,E,B,C),X={identifier:u,base:E,fields:B,nested:C,description:F.description,dependencies:$},Q=await f2(F,D);return[X,...Q]}async function X6(D,F){let u=[],E=TD(F);if(E.kind==="profile"){let B=await u6(D,F);u.push(B);let C=await f2(F,D);return u.push(...C),u}if(E.kind==="value-set"||F.kind==="value-set"){let B=await Tu(F,D,F.package_meta);if(B)u.push(B);return u}if(wu(F,E)){let B=await bu(F,D,F.package_meta);if(B)u.push(B);return u}return await Pu(D,F)}async function Su(D,F){try{let u=await F.resolve(D);if(!u||u.resourceType!=="CodeSystem")return;let E=[],B=(C,$)=>{for(let X of C)if(E.push({system:$,code:X.code,display:X.display}),X.concept)B(X.concept,$)};if(u.concept)B(u.concept,D);return E}catch{return}}async function Z6(D,F){let u=[];if(D.concept){for(let E of D.concept)u.push({system:D.system,code:E.code,display:E.display});return u}if(D.system&&!D.filter){let E=await Su(D.system,F);if(E)u.push(...E)}if(D.valueSet)for(let E of D.valueSet)try{let B=await F.resolve(E);if(B){let C=await Q6(B,F);if(C)u.push(...C)}}catch{}return u}async function Q6(D,F){try{let u=[];if(D.compose){if(D.compose.include)for(let E of D.compose.include){let B=await Z6(E,F);u.push(...B)}if(D.compose.exclude){let E=new Set;for(let B of D.compose.exclude){let C=await Z6(B,F);for(let $ of C)E.add(`${$.system}|${$.code}`)}return u.filter((B)=>!E.has(`${B.system}|${B.code}`))}}return u.length>0?u:void 0}catch(u){console.error("Error extracting ValueSet concepts:",u);return}}async function z6(D,F,u){let B={identifier:I0(D.url,D,u)};if(D.description)B.description=D.description;let C=await Q6(D,F);if(C&&C.length>0)B.concept=C;else if(D.compose)B.compose=D.compose;if(D.compose){let $=[],X=(Q)=>{for(let z of Q){if(z.system)$.push({kind:"value-set",package:u?.name||"undefined",version:u?.version||"undefined",name:z.system.split("/").pop()||"unknown",url:z.system});if(z.valueSet)for(let O of z.valueSet)$.push(I0(O,void 0,u))}};if(D.compose.include)X(D.compose.include);if(D.compose.exclude)X(D.compose.exclude)}return B}class gD{manager;options;cacheConfig;cache;logger;constructor(D={},F){this.options={verbose:!1,...D},this.manager=D.manager||pD({packages:[],workingDir:"tmp/fhir"}),this.cacheConfig=F,this.logger=D.logger||jD({verbose:this.options.verbose,prefix:"TypeSchema"})}async initializeCache(){if(this.cacheConfig&&!this.cache)this.cache=new $0(this.cacheConfig),await this.cache.initialize()}async registerFromPackageMetas(D){let F=D.map((u)=>`${u.name}${u.version}`);return this.logger.step(`Loading FHIR packages: ${F.join(", ")}`),await this.manager.init(),F6(this.manager)}generateFhirSchemas(D){this.logger.progress(`Converting ${D.length} StructureDefinitions to FHIRSchemas`);let F=this.applyStructureDefinitionTreeshaking(D),u=[],E=0,B=0;for(let C of F)try{let $=N0(C);u.push($),E++,this.logger.debug(`Converted StructureDefinition: ${C.name||C.id} (${C.resourceType})`)}catch($){B++,this.logger.warn(`Failed to convert StructureDefinition ${C.name||C.id}: ${$ instanceof Error?$.message:String($)}`)}return this.logger.success(`FHIR Schema conversion completed: ${E}/${F.length} successful, ${B} failed`),u}async generateValueSetSchemas(D,F){if(D.length>0)this.logger.debug(`${D.length} ValueSets available for enum extraction`);let u=[];if(D.length>0){this.logger.progress(`Converting ${D.length} ValueSets to TypeSchema`);let E=0,B=0;for(let C of D)try{let $=await z6(C,this.manager,F);if($)u.push($),E++,this.logger.debug(`Converted ValueSet: ${C.name||C.id}`)}catch($){B++,this.logger.warn(`Failed to convert ValueSet ${C.name||C.id}: ${$ instanceof Error?$.message:String($)}`)}this.logger.success(`ValueSet conversion completed: ${E}/${D.length} successful, ${B} failed`)}return u}async generateFromPackage(D,F){if(await this.initializeCache(),this.cache&&!(this.cacheConfig?.forceRegenerate??!1)){let C=this.cache.getByPackage(D);if(C.length>0)return this.logger.info(`Using cached TypeSchemas for package: ${D} (${C.length} schemas)`),C}let u={name:D,version:F||"latest"},E=await this.registerFromPackageMetas([u]),B=[...(await Promise.all(E.allFs().map(async(C)=>await X6(E,C)))).flat(),...await this.generateValueSetSchemas(E.allVs(),u)];if(this.cache)for(let C of B)await this.cache.set(C);return B}applyStructureDefinitionTreeshaking(D){let F=this.options.treeshake;if(!F||F.length===0)return D;this.logger.info(`Applying treeshaking filter for ResourceTypes: ${F.join(", ")}`);let u=new Map,E=new Map,B=new Map;for(let z of D){let O=z.name||z.id;if(O)u.set(O,z),E.set(O,new Set),B.set(O,new Set)}for(let z of D){let O=z.name||z.id;if(!O)continue;let{realDeps:W,refTargets:J}=this.extractStructureDefinitionDependenciesWithReferences(z);E.set(O,new Set(W)),B.set(O,new Set(J))}let C=new Set;for(let z of F)if(u.has(z))C.add(z);else this.logger.warn(`ResourceType '${z}' not found in structure definitions`);let $=(z,O=new Set)=>{if(O.has(z)||!E.has(z))return;O.add(z);let W=E.get(z)||new Set;for(let J of Array.from(W))if(u.has(J))C.add(J),$(J,O)};for(let z of Array.from(C))$(z);let X=D.filter((z)=>{let O=z.name||z.id;return O&&C.has(O)}),Q=new Set;for(let z of D){let O=z.name||z.id;if(O&&!C.has(O)){if(Array.from(B.values()).some((J)=>J.has(O)))Q.add(O)}}if(Q.size>0)this.logger.info(`Excluded reference-only targets: ${Array.from(Q).join(", ")}`);return this.logger.success(`Treeshaking completed: kept ${X.length}/${D.length} structure definitions`),X}extractStructureDefinitionDependenciesWithReferences(D){let F=new Set,u=new Set;if(D.baseDefinition){let E=this.extractResourceNameFromUrl(D.baseDefinition);if(E)F.add(E)}if(D.snapshot?.element||D.differential?.element){let E=D.snapshot?.element||D.differential?.element;for(let B of E)if(B.type)for(let C of B.type){if(C.code){if(F.add(C.code),C.code==="Reference"&&C.targetProfile)for(let $ of C.targetProfile){let X=this.extractResourceNameFromUrl($);if(X)u.add(X)}}if(C.profile)for(let $ of C.profile){let X=this.extractResourceNameFromUrl($);if(X)F.add(X)}}}return{realDeps:Array.from(F),refTargets:Array.from(u)}}extractResourceNameFromUrl(D){let F=D.match(/\/([^/]+)$/);return F?F[1]??null:null}}import{readFile as vu}from"node:fs/promises";class T0{options;constructor(D={}){this.options={format:"auto",validate:!0,strict:!1,...D}}async parseFromFile(D){let F=await vu(D,"utf-8"),u=this.options.format==="auto"?this.detectFormat(F,D):this.options.format;return this.parseFromString(F,u)}async parseFromString(D,F){let u=F||this.detectFormat(D),E;if(u==="ndjson")E=this.parseNDJSON(D);else E=this.parseJSON(D);if(this.options.validate)this.validateSchemas(E);return E}async parseFromFiles(D){let F=[];for(let u of D){let E=await this.parseFromFile(u);F.push(...E)}return F}parseSchema(D){if(!D.identifier)throw Error("TypeSchema must have an identifier");if(!this.isValidIdentifier(D.identifier))throw Error("TypeSchema identifier is invalid");return D}findByIdentifier(D,F){return D.filter((u)=>this.matchesIdentifier(u.identifier,F))}findByUrl(D,F){return D.find((u)=>u.identifier.url===F)}findByKind(D,F){return D.filter((u)=>u.identifier.kind===F)}findByPackage(D,F){return D.filter((u)=>u.identifier.package===F)}detectFormat(D,F){if(F){if(F.endsWith(".ndjson"))return"ndjson";if(F.endsWith(".json"))return"json"}let u=D.trim();if(u.includes(`
|
|
94
94
|
`)){let E=u.split(`
|
|
95
95
|
`).filter((B)=>B.trim());if(E.length>1)try{if(E[0])JSON.parse(E[0]);return"ndjson"}catch{}}return"json"}parseNDJSON(D){let F=[],u=D.split(`
|
|
96
|
-
`).filter((E)=>E.trim());for(let E of u)try{let B=JSON.parse(E);F.push(this.parseSchema(B))}catch(B){if(this.options.strict)throw Error(`Failed to parse NDJSON line: ${B}`)}return F}parseJSON(D){try{let F=JSON.parse(D);if(Array.isArray(F))return F.map((u)=>this.parseSchema(u));else return[this.parseSchema(F)]}catch(F){throw Error(`Failed to parse JSON: ${F}`)}}validateSchemas(D){for(let F of D){if(!F.identifier)throw Error("Schema missing identifier");if(!this.isValidIdentifier(F.identifier))throw Error(`Invalid identifier in schema: ${JSON.stringify(F.identifier)}`)}}isValidIdentifier(D){return typeof D==="object"&&D!==null&&typeof D.kind==="string"&&typeof D.package==="string"&&typeof D.version==="string"&&typeof D.name==="string"&&typeof D.url==="string"}matchesIdentifier(D,F){return(!F.kind||D.kind===F.kind)&&(!F.package||D.package===F.package)&&(!F.version||D.version===F.version)&&(!F.name||D.name===F.name)&&(!F.url||D.url===F.url)}}b0();class
|
|
96
|
+
`).filter((E)=>E.trim());for(let E of u)try{let B=JSON.parse(E);F.push(this.parseSchema(B))}catch(B){if(this.options.strict)throw Error(`Failed to parse NDJSON line: ${B}`)}return F}parseJSON(D){try{let F=JSON.parse(D);if(Array.isArray(F))return F.map((u)=>this.parseSchema(u));else return[this.parseSchema(F)]}catch(F){throw Error(`Failed to parse JSON: ${F}`)}}validateSchemas(D){for(let F of D){if(!F.identifier)throw Error("Schema missing identifier");if(!this.isValidIdentifier(F.identifier))throw Error(`Invalid identifier in schema: ${JSON.stringify(F.identifier)}`)}}isValidIdentifier(D){return typeof D==="object"&&D!==null&&typeof D.kind==="string"&&typeof D.package==="string"&&typeof D.version==="string"&&typeof D.name==="string"&&typeof D.url==="string"}matchesIdentifier(D,F){return(!F.kind||D.kind===F.kind)&&(!F.package||D.package===F.package)&&(!F.version||D.version===F.version)&&(!F.name||D.name===F.name)&&(!F.url||D.url===F.url)}}b0();class g2{options;constructor(D){this.options=D}handleError(D,F){if(D instanceof ND)this.handleGeneratorError(D,F);else this.handleUnknownError(D,F)}handleBatchErrors(D){let F=D.filter((E)=>E instanceof ND),u=D.filter((E)=>!(E instanceof ND));if(F.length>0)this.reportBatchErrors(F);u.forEach((E)=>{this.handleUnknownError(E)})}handleGeneratorError(D,F){switch(this.options.outputFormat){case"json":this.reportErrorAsJson(D);break;case"structured":this.reportErrorStructured(D);break;default:this.reportErrorToConsole(D)}}handleUnknownError(D,F){if(this.options.logger.error("Unexpected error occurred:",D),this.options.verbose){if(console.error(`
|
|
97
97
|
\uD83D\uDEA8 Unexpected Error Details:`),console.error(` Type: ${D.constructor.name}`),console.error(` Message: ${D.message}`),D.stack)console.error(` Stack: ${D.stack}`);if(F?.schema)console.error(` Schema: ${F.schema.identifier.name}`);if(F?.filename)console.error(` File: ${F.filename}`)}console.error(`
|
|
98
98
|
\uD83D\uDCA1 General troubleshooting suggestions:`),console.error(" • Run with --verbose flag for more details"),console.error(" • Check your input files for corruption"),console.error(" • Update to the latest version of atomic-codegen"),console.error(" • Report this issue at: https://github.com/atomic-ehr/codegen/issues")}reportErrorToConsole(D){if("getFormattedMessage"in D)console.error(D.getFormattedMessage());else{console.error(`
|
|
99
99
|
❌ ${D.constructor.name}: ${D.message}`);let F=D.getSuggestions();if(F.length>0)console.error(`
|
|
@@ -101,21 +101,21 @@ ${_.join(`
|
|
|
101
101
|
\uD83D\uDD0D Debug Information:`),console.error(JSON.stringify(D.context,null,2))}reportErrorAsJson(D){let F={type:D.constructor.name,message:D.message,phase:D.phase,context:D.context,suggestions:D.getSuggestions(),timestamp:new Date().toISOString()};console.error(JSON.stringify(F,null,2))}reportErrorStructured(D){let F={error:{type:D.constructor.name,message:D.message,phase:D.phase},context:D.context,suggestions:D.getSuggestions(),actions:this.getRecoveryActions(D)};console.error("---"),console.error("Error Report:"),console.error(JSON.stringify(F,null,2)),console.error("---")}reportBatchErrors(D){console.error(`
|
|
102
102
|
❌ ${D.length} errors occurred during generation:`);let F=new Map;D.forEach((u)=>{let E=u.constructor.name;if(!F.has(E))F.set(E,[]);F.get(E)?.push(u)});for(let[u,E]of F){console.error(`
|
|
103
103
|
\uD83D\uDCCB ${u} (${E.length} occurrences):`),E.forEach((C,$)=>{if(console.error(` ${$+1}. ${C.message}`),C.context?.schemaName)console.error(` Schema: ${C.context.schemaName}`)});let B=this.getCommonSuggestions(E);if(B.length>0)console.error(`
|
|
104
|
-
\uD83D\uDCA1 Common suggestions:`),B.forEach((C)=>{console.error(` • ${C}`)})}}getCommonSuggestions(D){let F=D.flatMap((B)=>B.getSuggestions()),u=new Map;F.forEach((B)=>{u.set(B,(u.get(B)||0)+1)});let E=Math.ceil(D.length/2);return Array.from(u.entries()).filter(([B,C])=>C>=E).map(([B,C])=>B).slice(0,5)}getRecoveryActions(D){if("getRecoveryActions"in D)return D.getRecoveryActions();return[{action:"Review error message and suggestions above"},{action:"Check input files and configuration"},{action:"Try with --verbose flag for more information"}]}}class p2{errorHandler;constructor(D){this.errorHandler=D}async withErrorBoundary(D,F){try{return await D()}catch(u){throw this.errorHandler.handleError(u instanceof Error?u:Error(String(u)),F),u}}async withBatchErrorBoundary(D,F){let u=[],E=[];for(let B of D)try{let C=await B();u.push(C)}catch(C){E.push(C instanceof Error?C:Error(String(C)))}if(E.length>0)throw this.errorHandler.handleBatchErrors(E),new h2(`${E.length} operations failed`,E.filter((B)=>B instanceof LD));return u}}b0();b0();import{access as g2,mkdir as fu,rm as ku,stat as Y6,writeFile as yu}from"node:fs/promises";import{dirname as m2,join as Z0,relative as hu}from"node:path";class c2{options;logger;constructor(D){this.options={overwrite:!0,batchSize:10,...D},this.logger=D.logger}async writeFile(D,F,u={}){let E=performance.now(),B=Z0(this.options.outputDir,D),C=u.encoding||"utf-8",$=u.overwrite??this.options.overwrite;try{if(!$)try{await g2(B),this.logger.debug(`Skipping existing file: ${D}`);let z=await Y6(B);return{path:B,size:z.size,writeTime:0}}catch{}await this.ensureDirectory(m2(B)),await yu(B,F,C);let X=performance.now()-E,Q=Buffer.byteLength(F,C);return this.logger.debug(`Written ${D} (${Q} bytes, ${X.toFixed(2)}ms)`),{path:B,size:Q,writeTime:X}}catch(X){throw new X0(`Failed to write file '${D}': ${X}`,"write",B,X instanceof Error?X:void 0,{canRetry:!0,alternativePaths:[Z0(process.cwd(),"backup-output",D)]})}}async writeBatch(D){this.logger.debug(`Writing batch of ${D.size} files`);let F=Array.from(D.entries()),u=[];for(let E=0;E<F.length;E+=this.options.batchSize){let C=F.slice(E,E+this.options.batchSize).map(([X,Q])=>this.writeFile(X,Q)),$=await Promise.all(C);if(u.push(...$),E+this.options.batchSize<F.length)await new Promise((X)=>setTimeout(X,10))}return u}async ensureDirectory(D){try{await fu(D,{recursive:!0})}catch(F){throw new X0(`Failed to create directory '${D}': ${F}`,"create",D,F instanceof Error?F:void 0,{canRetry:!0,permissionFix:`chmod 755 "${m2(D)}"`})}}async cleanDirectory(D="."){let F=Z0(this.options.outputDir,D);try{await g2(F),this.logger.debug(`Cleaning directory: ${D}`),await ku(F,{recursive:!0,force:!0})}catch(u){if(u?.code!=="ENOENT")throw new X0(`Failed to clean directory '${D}': ${u}`,"delete",F,u instanceof Error?u:void 0,{canRetry:!0})}}getRelativeImportPath(D,F){let u=m2(Z0(this.options.outputDir,D)),E=Z0(this.options.outputDir,F),B=hu(u,E);if(!B.startsWith("."))B=`./${B}`;return B.replace(/\.(d\.ts|ts|tsx|js|jsx)$/,"")}async wouldOverwrite(D){let F=Z0(this.options.outputDir,D);try{return await g2(F),!0}catch{return!1}}async getFileStats(D){let F=Z0(this.options.outputDir,D);try{return{size:(await Y6(F)).size,generationTime:0,writeTime:0}}catch{return null}}getOutputDirectory(){return this.options.outputDir}setBatchSize(D){this.options.batchSize=Math.max(1,Math.min(50,D))}getBatchSize(){return this.options.batchSize}}class n2{options;logger;fileManager;templateEngine;typeMapper;errorHandler;errorBoundary;progressCallback;generatedFiles=[];generationStartTime=0;cache=new Map;constructor(D){let F=this.validateConfiguration(D);if(!F.isValid)throw new y2(`Invalid generator configuration: ${F.errors.join(", ")}`,"configuration",D);if(this.options=this.mergeWithDefaults(D),this.logger=D.logger||jD({prefix:this.getLanguageName(),verbose:this.options.verbose||!1}),this.fileManager=this.createFileManager(),this.templateEngine=this.createTemplateEngine(),this.typeMapper=this.createTypeMapper(),this.errorHandler=new d2({logger:this.logger,verbose:this.options.verbose||!1,beginnerMode:this.options.beginnerMode||!1,outputFormat:this.options.errorFormat||"console"}),this.errorBoundary=new p2(this.errorHandler),this.logger.debug(`${this.getLanguageName()} generator initialized`),F.warnings.length>0)F.warnings.forEach((u)=>{this.logger.warn(`Configuration warning: ${u}`)})}getCapabilities(){return{language:this.getLanguageName(),fileExtensions:[this.getFileExtension()],supportsTemplates:!0,supportsCustomTypeMapping:!0,supportsIncrementalGeneration:!1,supportsValidation:!0,supportedSchemaKinds:["resource","complex-type","profile","logical"],version:"1.0.0"}}createFileManager(){return new c2({outputDir:this.options.outputDir,logger:this.logger.child("FileManager"),overwrite:this.options.overwrite})}createTemplateEngine(){return}async generate(D){return this.errorBoundary.withErrorBoundary(async()=>{this.generationStartTime=performance.now(),this.generatedFiles=[],this.logger.info(`Starting ${this.getLanguageName()} generation for ${D.length} schemas`),this.reportProgress("validation",0,D.length,"Validating schemas..."),await this.validateSchemas(D),this.reportProgress("generation",0,D.length,"Processing schemas...");let F=this.filterAndSortSchemas(D);this.logger.debug(`Filtered to ${F.length} schemas for generation`),await this.generateFiles(F),await this.runPostGenerationHooks(),this.reportProgress("complete",D.length,D.length,"Generation complete");let u=performance.now()-this.generationStartTime;return this.logger.info(`Generated ${this.generatedFiles.length} files in ${u.toFixed(2)}ms (avg ${(u/this.generatedFiles.length).toFixed(2)}ms per file)`),this.generatedFiles},{operationName:"generate"})}async build(D){let F=this.fileManager.writeFile,u=new Map;this.fileManager.writeFile=async(E,B)=>{let C={path:`${this.options.outputDir}/${E}`,size:Buffer.byteLength(B,"utf-8"),writeTime:0};return u.set(E,C),C};try{let E=await this.generate(D);return E.forEach((B)=>{let C=u.get(B.filename);if(C)B.path=C.path,B.size=C.size}),E}finally{this.fileManager.writeFile=F}}file(D){if(!this.templateEngine)throw Error("Template engine is required for fluent file generation. Override createTemplateEngine() in your generator.");let{FileBuilder:F}=(W6(),VF(J6));return new F({filename:this.ensureFileExtension(D),fileManager:this.fileManager,templateEngine:this.templateEngine,typeMapper:this.typeMapper,logger:this.logger.child("FileBuilder")})}directory(D){let{DirectoryBuilder:F}=VF(A6);return new F({path:D,fileManager:this.fileManager,logger:this.logger.child("DirectoryBuilder")})}index(D="."){if(!this.templateEngine)throw Error("Template engine is required for index file generation. Override createTemplateEngine() in your generator.");let{IndexBuilder:F}=VF(H6);return new F({directory:D,fileManager:this.fileManager,templateEngine:this.templateEngine,logger:this.logger.child("IndexBuilder")})}onProgress(D){return this.progressCallback=D,this}validateConfiguration(D){let F=[],u=[],E=[];if(!D.outputDir)F.push("outputDir is required"),E.push("Provide a valid output directory path");if(D.outputDir&&typeof D.outputDir!=="string")F.push("outputDir must be a string");if(D.overwrite!==void 0&&typeof D.overwrite!=="boolean")F.push("overwrite must be a boolean");if(D.validate!==void 0&&typeof D.validate!=="boolean")F.push("validate must be a boolean");if(D.outputDir&&!jF("node:path").isAbsolute(D.outputDir))u.push("Using relative path for outputDir - consider using absolute path"),E.push("Use path.resolve() to convert to absolute path");if(D.validate===!1)u.push("Validation is disabled - this may lead to invalid generated code"),E.push("Consider enabling validation for better code quality");return{isValid:F.length===0,errors:F,warnings:u,suggestions:E}}mergeWithDefaults(D){return{overwrite:!0,validate:!0,verbose:!1,beginnerMode:!1,errorFormat:"console",...D}}async validateSchemas(D){if(!this.options.validate){this.logger.debug("Schema validation disabled");return}this.logger.info(`\uD83D\uDD0D Starting schema validation for ${D.length} schemas`),this.logger.debug("Schema validation enabled - performing comprehensive validation");let F=D.map((u)=>()=>this.errorBoundary.withErrorBoundary(async()=>{await this.validateSchema(u),this.reportProgress("validation",D.indexOf(u)+1,D.length,`Validated ${u.identifier?.name||"schema"}`)},{schema:u,operationName:"validateSchema"}));await this.errorBoundary.withBatchErrorBoundary(F,{operationName:"validateSchemas"}),this.logger.debug(`Successfully validated ${D.length} schemas`)}async validateSchema(D){let F=[],u=D.identifier?.name||"unknown";if(this.logger.debug(`\uD83D\uDD0D Validating schema: ${u} (kind: ${D.identifier?.kind})`),!D.identifier)F.push("Schema missing identifier"),this.logger.warn(`❌ Schema missing identifier: ${JSON.stringify(D,null,2).substring(0,200)}...`);else{if(!D.identifier.name)F.push("Schema identifier missing name");if(!D.identifier.kind)F.push("Schema identifier missing kind");else{let E=["resource","complex-type","profile","primitive-type","logical","value-set","binding","extension"];if(!E.includes(D.identifier.kind))F.push(`Schema identifier.kind must be one of: ${E.join(", ")}`)}}if("fields"in D&&D.fields)for(let[E,B]of Object.entries(D.fields)){if(!E.trim())F.push("Field name cannot be empty");if(!B)F.push(`Field '${E}' is null or undefined`)}if(await this.detectCircularReferences(D))this.logger.warn(`⚠️ Circular reference detected in schema '${u}' - this may be expected for FHIR primitive types`);if(F.length>0)throw this.logger.error(`❌ Schema validation failed for '${u}': ${F.join(", ")}`),this.logger.debug(`Schema details: ${JSON.stringify(D,null,2)}`),new k2(`Schema validation failed for '${D.identifier?.name||"unknown"}'`,D,F);this.logger.debug(`✅ Schema validation passed for '${u}'`)}async detectCircularReferences(D){let F=new Set,u=new Set;return((B)=>{let C=B.identifier?.name;if(!C)return!1;if(u.has(C))return!0;if(F.has(C))return!1;if(u.add(C),"fields"in B&&B.fields){for(let $ of Object.values(B.fields))if($?.type?.name===C)return!0}return u.delete(C),F.add(C),!1})(D)}async generateFiles(D){let F=D.map((u,E)=>()=>this.errorBoundary.withErrorBoundary(async()=>{let B=await this.generateFileForSchema(u,E,D.length);return this.generatedFiles.push(B),B},{schema:u,operationName:"generateFile"}));await this.errorBoundary.withBatchErrorBoundary(F,{operationName:"generateFiles"}),this.logger.debug(`Generated ${this.generatedFiles.length} files`)}async generateFileForSchema(D,F,u){let E=performance.now(),B={schema:D,typeMapper:this.typeMapper,filename:this.typeMapper.formatFileName(D.identifier?.name||"unknown"),language:this.getLanguageName(),timestamp:new Date().toISOString(),imports:new Map,exports:new Set},C=await this.generateSchemaContent(D,B);if(this.options.validate)await this.validateContent(C,B);let $=B.filename+this.getFileExtension(),X=await this.fileManager.writeFile($,C),Q=performance.now()-E;return this.reportProgress("writing",F+1,u,`Generated ${$} (${X.size} bytes)`),{path:X.path,filename:$,content:C,exports:this.extractExports(C),size:X.size,timestamp:new Date,metadata:{generationTime:Q,schemaCount:1,templateName:B.templateName?.toString(),warnings:[]}}}ensureFileExtension(D){let F=this.getFileExtension();return D.endsWith(F)?D:`${D}${F}`}extractExports(D){let F=[],u=/export\s*\{\s*([^}]+)\s*\}/g,E;while((E=u.exec(D))!==null)if(E[1]){let C=E[1].split(",").map(($)=>$.trim()).filter(Boolean);F.push(...C)}let B=/export\s+(?:const|let|var|function|class|interface|type|enum)\s+(\w+)/g;while((E=B.exec(D))!==null)if(E[1])F.push(E[1]);return[...new Set(F)]}reportProgress(D,F,u,E,B){if(this.progressCallback)this.progressCallback(D,F,u,E,B);if(E&&this.options.verbose)this.logger.debug(`[${D}] ${E} (${F}/${u})`)}async runPostGenerationHooks(){}getCachedOrCompute(D,F){if(this.cache.has(D))return this.cache.get(D);let u=F();if(u instanceof Promise)return u.then((E)=>{return this.cache.set(D,E),E});else return this.cache.set(D,u),u}clearCache(){this.cache.clear()}getGenerationStats(){let D=this.generatedFiles.reduce((u,E)=>u+E.size,0),F=performance.now()-this.generationStartTime;return{filesGenerated:this.generatedFiles.length,totalSize:D,averageFileSize:this.generatedFiles.length>0?D/this.generatedFiles.length:0,generationTime:F,averageTimePerFile:this.generatedFiles.length>0?F/this.generatedFiles.length:0,cacheHitRate:0}}}class i2{options;constructor(D={}){this.options={generateNullable:!0,strictTypes:!0,customMappings:{},preferArraySyntax:!0,namingConvention:"PascalCase",...D}}mapType(D){if(typeof D==="string")return this.mapPrimitive(D);if(D&&typeof D==="object")switch(D.kind||D.type){case"primitive-type":return this.mapPrimitive(D.name);case"reference":return this.mapReference(D.targets||[]);case"array":{let u=this.mapType(D.element);return this.mapArray(u)}case"enum":case"coded":return this.mapEnum(D.values||[],D.name);case"complex-type":case"resource":return this.mapComplexType(D);default:return this.mapUnknownType(D)}return this.mapUnknownType(D)}mapComplexType(D){return{name:this.formatTypeName(D.name||"Unknown"),isPrimitive:!1,importPath:this.calculateImportPath(D),nullable:!D.required&&this.options.generateNullable,metadata:{kind:D.kind,package:D.package}}}mapUnknownType(D){return{name:"unknown",isPrimitive:!0,nullable:!0,metadata:{originalType:D,warning:"unmapped_type"}}}calculateImportPath(D){if(!D.name)return;return`./${this.formatFileName(D.name)}`}applyNamingConvention(D){switch(this.options.namingConvention){case"camelCase":return q6(D);case"PascalCase":return du(D);case"snake_case":return _6(D);case"kebab-case":return pu(D);default:return D}}getCustomMapping(D){return this.options.customMappings[D]}shouldBeNullable(D){return!D&&this.options.generateNullable}}function q6(D){return D.replace(/[-_\s]+(.)?/g,(F,u)=>u?.toUpperCase()||"")}function du(D){let F=q6(D);return F.charAt(0).toUpperCase()+F.slice(1)}function _6(D){return D.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"")}function pu(D){return _6(D).replace(/_/g,"-")}class t2 extends i2{tsOptions;constructor(D={}){super(D);this.tsOptions={...this.options,preferUnknown:!0,useBrandedTypes:!1,preferUndefined:!0,moduleFormat:"esm",...D}}getLanguageName(){return"TypeScript"}mapPrimitive(D){let F=this.getCustomMapping(D);if(F)return{name:F,isPrimitive:!0,nullable:!1};let E={string:"string",integer:"number",decimal:"number",boolean:"boolean",dateTime:"string",date:"string",time:"string",instant:"string",uri:"string",url:"string",canonical:"string",oid:"string",uuid:"string",base64Binary:"string",code:"string",id:"string",markdown:"string",unsignedInt:"number",positiveInt:"number",xhtml:"string",json:"unknown"}[D];if(!E)return console.warn(`Unknown FHIR primitive type: ${D}`),{name:this.tsOptions.preferUnknown?"unknown":"any",isPrimitive:!0,nullable:!1,metadata:{warning:"unmapped_primitive",originalType:D}};if(this.tsOptions.useBrandedTypes&&D!==E)return{name:`${E} & { readonly __brand: '${D}' }`,isPrimitive:!1,importPath:"./brands",nullable:!1,metadata:{isBranded:!0,originalFhirType:D}};return{name:E,isPrimitive:!0,nullable:!1}}mapReference(D){if(!D||D.length===0)return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:["unknown"],nullable:!1};if(D.length===1){let u=D[0]?.name||"unknown";return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:[u==="unknown"?"unknown":`'${u}'`],nullable:!1,metadata:{referencedType:u,referencedSchema:D[0]}}}return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:[D.map((u)=>{let E=u.name||"unknown";return E==="unknown"?"unknown":`'${E}'`}).join(" | ")],nullable:!1,metadata:{referencedTypes:D.map((u)=>u.name||"unknown"),referencedSchemas:D}}}mapArray(D){if(this.options.preferArraySyntax)return{name:`${D.name}[]`,isPrimitive:D.isPrimitive,importPath:D.importPath,isArray:!0,nullable:!1,metadata:{elementType:D,arrayStyle:"suffix"}};else return{name:"Array",isPrimitive:!1,generics:[D.name],isArray:!0,nullable:!1,metadata:{elementType:D,arrayStyle:"generic"}}}mapOptional(D,F){if(F||!this.shouldBeNullable(F))return D;let u=this.tsOptions.preferUndefined?"undefined":"null";return{...D,name:`${D.name} | ${u}`,nullable:!0,metadata:{...D.metadata,nullabilityType:u,wasOptional:!0}}}mapEnum(D,F){let u=F?this.formatTypeName(F):"CodedValue";return{name:D.map((B)=>`'${B}'`).join(" | "),isPrimitive:!1,nullable:!1,metadata:{enumName:u,values:D,isUnionType:!0}}}formatTypeName(D){return this.applyNamingConvention(D)}formatFieldName(D){return gu(D)}formatFileName(D){return this.applyNamingConvention(D)}generateInterfaceField(D,F,u){return`${this.formatFieldName(D)}${u?"":"?"}: ${F.name};`}generateImportStatement(D){if(!D.importPath||D.isPrimitive)return;if(this.tsOptions.moduleFormat==="esm")return`import type { ${D.name} } from '${D.importPath}';`;else return`const { ${D.name} } = require('${D.importPath}');`}getRequiredImports(D){let F=new Set;for(let u of D){let E=this.generateImportStatement(u);if(E)F.add(E)}return Array.from(F).sort()}}function gu(D){return D.replace(/[-_\s]+(.)?/g,(F,u)=>u?.toUpperCase()||"")}class HF extends n2{resourceTypes=new Set;collectedValueSets=new Map;get tsOptions(){return this.options}getLanguageName(){return"TypeScript"}getFileExtension(){return".ts"}createTypeMapper(){let D=this.options;return new t2({namingConvention:(D.namingConvention??"PascalCase")==="PascalCase"?"PascalCase":"camelCase",moduleFormat:D.moduleFormat==="cjs"?"commonjs":"esm",preferUndefined:!0,...D.typeMapperOptions})}async generateSchemaContent(D,F){if(this.shouldSkipSchema(D))return"";if(D.identifier.kind==="resource")this.resourceTypes.add(this.typeMapper.formatTypeName(D.identifier.name));if(D.identifier.name==="Reference")return this.generateReferenceInterface(D);let u=this.generateTypeScriptInterface(D),E="";if("nested"in D&&D.nested&&Array.isArray(D.nested))E=D.nested.map((C)=>this.generateNestedTypeInterface(D.identifier.name,C)).join(`
|
|
104
|
+
\uD83D\uDCA1 Common suggestions:`),B.forEach((C)=>{console.error(` • ${C}`)})}}getCommonSuggestions(D){let F=D.flatMap((B)=>B.getSuggestions()),u=new Map;F.forEach((B)=>{u.set(B,(u.get(B)||0)+1)});let E=Math.ceil(D.length/2);return Array.from(u.entries()).filter(([B,C])=>C>=E).map(([B,C])=>B).slice(0,5)}getRecoveryActions(D){if("getRecoveryActions"in D)return D.getRecoveryActions();return[{action:"Review error message and suggestions above"},{action:"Check input files and configuration"},{action:"Try with --verbose flag for more information"}]}}class m2{errorHandler;constructor(D){this.errorHandler=D}async withErrorBoundary(D,F){try{return await D()}catch(u){throw this.errorHandler.handleError(u instanceof Error?u:Error(String(u)),F),u}}async withBatchErrorBoundary(D,F){let u=[],E=[];for(let B of D)try{let C=await B();u.push(C)}catch(C){E.push(C instanceof Error?C:Error(String(C)))}if(E.length>0)throw this.errorHandler.handleBatchErrors(E),new p2(`${E.length} operations failed`,E.filter((B)=>B instanceof ND));return u}}b0();b0();import{access as c2,mkdir as fu,rm as ku,stat as Y6,writeFile as yu}from"node:fs/promises";import{dirname as l2,join as Z0,relative as hu}from"node:path";class o2{options;logger;constructor(D){this.options={overwrite:!0,batchSize:10,...D},this.logger=D.logger}async writeFile(D,F,u={}){let E=performance.now(),B=Z0(this.options.outputDir,D),C=u.encoding||"utf-8",$=u.overwrite??this.options.overwrite;try{if(!$)try{await c2(B),this.logger.debug(`Skipping existing file: ${D}`);let z=await Y6(B);return{path:B,size:z.size,writeTime:0}}catch{}await this.ensureDirectory(l2(B)),await yu(B,F,C);let X=performance.now()-E,Q=Buffer.byteLength(F,C);return this.logger.debug(`Written ${D} (${Q} bytes, ${X.toFixed(2)}ms)`),{path:B,size:Q,writeTime:X}}catch(X){throw new X0(`Failed to write file '${D}': ${X}`,"write",B,X instanceof Error?X:void 0,{canRetry:!0,alternativePaths:[Z0(process.cwd(),"backup-output",D)]})}}async writeBatch(D){this.logger.debug(`Writing batch of ${D.size} files`);let F=Array.from(D.entries()),u=[];for(let E=0;E<F.length;E+=this.options.batchSize){let C=F.slice(E,E+this.options.batchSize).map(([X,Q])=>this.writeFile(X,Q)),$=await Promise.all(C);if(u.push(...$),E+this.options.batchSize<F.length)await new Promise((X)=>setTimeout(X,10))}return u}async ensureDirectory(D){try{await fu(D,{recursive:!0})}catch(F){throw new X0(`Failed to create directory '${D}': ${F}`,"create",D,F instanceof Error?F:void 0,{canRetry:!0,permissionFix:`chmod 755 "${l2(D)}"`})}}async cleanDirectory(D="."){let F=Z0(this.options.outputDir,D);try{await c2(F),this.logger.debug(`Cleaning directory: ${D}`),await ku(F,{recursive:!0,force:!0})}catch(u){if(u?.code!=="ENOENT")throw new X0(`Failed to clean directory '${D}': ${u}`,"delete",F,u instanceof Error?u:void 0,{canRetry:!0})}}getRelativeImportPath(D,F){let u=l2(Z0(this.options.outputDir,D)),E=Z0(this.options.outputDir,F),B=hu(u,E);if(!B.startsWith("."))B=`./${B}`;return B.replace(/\.(d\.ts|ts|tsx|js|jsx)$/,"")}async wouldOverwrite(D){let F=Z0(this.options.outputDir,D);try{return await c2(F),!0}catch{return!1}}async getFileStats(D){let F=Z0(this.options.outputDir,D);try{return{size:(await Y6(F)).size,generationTime:0,writeTime:0}}catch{return null}}getOutputDirectory(){return this.options.outputDir}setBatchSize(D){this.options.batchSize=Math.max(1,Math.min(50,D))}getBatchSize(){return this.options.batchSize}}class t2{options;logger;fileManager;templateEngine;typeMapper;errorHandler;errorBoundary;progressCallback;generatedFiles=[];generationStartTime=0;cache=new Map;constructor(D){let F=this.validateConfiguration(D);if(!F.isValid)throw new d2(`Invalid generator configuration: ${F.errors.join(", ")}`,"configuration",D);if(this.options=this.mergeWithDefaults(D),this.logger=D.logger||jD({prefix:this.getLanguageName(),verbose:this.options.verbose||!1}),this.fileManager=this.createFileManager(),this.templateEngine=this.createTemplateEngine(),this.typeMapper=this.createTypeMapper(),this.errorHandler=new g2({logger:this.logger,verbose:this.options.verbose||!1,beginnerMode:this.options.beginnerMode||!1,outputFormat:this.options.errorFormat||"console"}),this.errorBoundary=new m2(this.errorHandler),this.logger.debug(`${this.getLanguageName()} generator initialized`),F.warnings.length>0)F.warnings.forEach((u)=>{this.logger.warn(`Configuration warning: ${u}`)})}getCapabilities(){return{language:this.getLanguageName(),fileExtensions:[this.getFileExtension()],supportsTemplates:!0,supportsCustomTypeMapping:!0,supportsIncrementalGeneration:!1,supportsValidation:!0,supportedSchemaKinds:["resource","complex-type","profile","logical"],version:"1.0.0"}}createFileManager(){return new o2({outputDir:this.options.outputDir,logger:this.logger.child("FileManager"),overwrite:this.options.overwrite})}createTemplateEngine(){return}async generate(D){return this.errorBoundary.withErrorBoundary(async()=>{this.generationStartTime=performance.now(),this.generatedFiles=[],this.logger.info(`Starting ${this.getLanguageName()} generation for ${D.length} schemas`),this.reportProgress("validation",0,D.length,"Validating schemas..."),await this.validateSchemas(D),this.reportProgress("generation",0,D.length,"Processing schemas...");let F=this.filterAndSortSchemas(D);this.logger.debug(`Filtered to ${F.length} schemas for generation`),await this.generateFiles(F),await this.runPostGenerationHooks(),this.reportProgress("complete",D.length,D.length,"Generation complete");let u=performance.now()-this.generationStartTime;return this.logger.info(`Generated ${this.generatedFiles.length} files in ${u.toFixed(2)}ms (avg ${(u/this.generatedFiles.length).toFixed(2)}ms per file)`),this.generatedFiles},{operationName:"generate"})}async build(D){let F=this.fileManager.writeFile,u=new Map;this.fileManager.writeFile=async(E,B)=>{let C={path:`${this.options.outputDir}/${E}`,size:Buffer.byteLength(B,"utf-8"),writeTime:0};return u.set(E,C),C};try{let E=await this.generate(D);return E.forEach((B)=>{let C=u.get(B.filename);if(C)B.path=C.path,B.size=C.size}),E}finally{this.fileManager.writeFile=F}}file(D){if(!this.templateEngine)throw Error("Template engine is required for fluent file generation. Override createTemplateEngine() in your generator.");let{FileBuilder:F}=(W6(),KF(J6));return new F({filename:this.ensureFileExtension(D),fileManager:this.fileManager,templateEngine:this.templateEngine,typeMapper:this.typeMapper,logger:this.logger.child("FileBuilder")})}directory(D){let{DirectoryBuilder:F}=KF(A6);return new F({path:D,fileManager:this.fileManager,logger:this.logger.child("DirectoryBuilder")})}index(D="."){if(!this.templateEngine)throw Error("Template engine is required for index file generation. Override createTemplateEngine() in your generator.");let{IndexBuilder:F}=KF(H6);return new F({directory:D,fileManager:this.fileManager,templateEngine:this.templateEngine,logger:this.logger.child("IndexBuilder")})}onProgress(D){return this.progressCallback=D,this}validateConfiguration(D){let F=[],u=[],E=[];if(!D.outputDir)F.push("outputDir is required"),E.push("Provide a valid output directory path");if(D.outputDir&&typeof D.outputDir!=="string")F.push("outputDir must be a string");if(D.overwrite!==void 0&&typeof D.overwrite!=="boolean")F.push("overwrite must be a boolean");if(D.validate!==void 0&&typeof D.validate!=="boolean")F.push("validate must be a boolean");if(D.outputDir&&!jF("node:path").isAbsolute(D.outputDir))u.push("Using relative path for outputDir - consider using absolute path"),E.push("Use path.resolve() to convert to absolute path");if(D.validate===!1)u.push("Validation is disabled - this may lead to invalid generated code"),E.push("Consider enabling validation for better code quality");return{isValid:F.length===0,errors:F,warnings:u,suggestions:E}}mergeWithDefaults(D){return{overwrite:!0,validate:!0,verbose:!1,beginnerMode:!1,errorFormat:"console",...D}}async validateSchemas(D){if(!this.options.validate){this.logger.debug("Schema validation disabled");return}this.logger.info(`\uD83D\uDD0D Starting schema validation for ${D.length} schemas`),this.logger.debug("Schema validation enabled - performing comprehensive validation");let F=D.map((u)=>()=>this.errorBoundary.withErrorBoundary(async()=>{await this.validateSchema(u),this.reportProgress("validation",D.indexOf(u)+1,D.length,`Validated ${u.identifier?.name||"schema"}`)},{schema:u,operationName:"validateSchema"}));await this.errorBoundary.withBatchErrorBoundary(F,{operationName:"validateSchemas"}),this.logger.debug(`Successfully validated ${D.length} schemas`)}async validateSchema(D){let F=[],u=D.identifier?.name||"unknown";if(this.logger.debug(`\uD83D\uDD0D Validating schema: ${u} (kind: ${D.identifier?.kind})`),!D.identifier)F.push("Schema missing identifier"),this.logger.warn(`❌ Schema missing identifier: ${JSON.stringify(D,null,2).substring(0,200)}...`);else{if(!D.identifier.name)F.push("Schema identifier missing name");if(!D.identifier.kind)F.push("Schema identifier missing kind");else{let E=["resource","complex-type","profile","primitive-type","logical","value-set","binding","extension"];if(!E.includes(D.identifier.kind))F.push(`Schema identifier.kind must be one of: ${E.join(", ")}`)}}if("fields"in D&&D.fields)for(let[E,B]of Object.entries(D.fields)){if(!E.trim())F.push("Field name cannot be empty");if(!B)F.push(`Field '${E}' is null or undefined`)}if(await this.detectCircularReferences(D))this.logger.warn(`⚠️ Circular reference detected in schema '${u}' - this may be expected for FHIR primitive types`);if(F.length>0)throw this.logger.error(`❌ Schema validation failed for '${u}': ${F.join(", ")}`),this.logger.debug(`Schema details: ${JSON.stringify(D,null,2)}`),new h2(`Schema validation failed for '${D.identifier?.name||"unknown"}'`,D,F);this.logger.debug(`✅ Schema validation passed for '${u}'`)}async detectCircularReferences(D){let F=new Set,u=new Set;return((B)=>{let C=B.identifier?.name;if(!C)return!1;if(u.has(C))return!0;if(F.has(C))return!1;if(u.add(C),"fields"in B&&B.fields){for(let $ of Object.values(B.fields))if($?.type?.name===C)return!0}return u.delete(C),F.add(C),!1})(D)}async generateFiles(D){let F=D.map((u,E)=>()=>this.errorBoundary.withErrorBoundary(async()=>{let B=await this.generateFileForSchema(u,E,D.length);return this.generatedFiles.push(B),B},{schema:u,operationName:"generateFile"}));await this.errorBoundary.withBatchErrorBoundary(F,{operationName:"generateFiles"}),this.logger.debug(`Generated ${this.generatedFiles.length} files`)}async generateFileForSchema(D,F,u){let E=performance.now(),B={schema:D,typeMapper:this.typeMapper,filename:this.typeMapper.formatFileName(D.identifier?.name||"unknown"),language:this.getLanguageName(),timestamp:new Date().toISOString(),imports:new Map,exports:new Set},C=await this.generateSchemaContent(D,B);if(this.options.validate)await this.validateContent(C,B);let $=B.filename+this.getFileExtension(),X=await this.fileManager.writeFile($,C),Q=performance.now()-E;return this.reportProgress("writing",F+1,u,`Generated ${$} (${X.size} bytes)`),{path:X.path,filename:$,content:C,exports:this.extractExports(C),size:X.size,timestamp:new Date,metadata:{generationTime:Q,schemaCount:1,templateName:B.templateName?.toString(),warnings:[]}}}ensureFileExtension(D){let F=this.getFileExtension();return D.endsWith(F)?D:`${D}${F}`}extractExports(D){let F=[],u=/export\s*\{\s*([^}]+)\s*\}/g,E;while((E=u.exec(D))!==null)if(E[1]){let C=E[1].split(",").map(($)=>$.trim()).filter(Boolean);F.push(...C)}let B=/export\s+(?:const|let|var|function|class|interface|type|enum)\s+(\w+)/g;while((E=B.exec(D))!==null)if(E[1])F.push(E[1]);return[...new Set(F)]}reportProgress(D,F,u,E,B){if(this.progressCallback)this.progressCallback(D,F,u,E,B);if(E&&this.options.verbose)this.logger.debug(`[${D}] ${E} (${F}/${u})`)}async runPostGenerationHooks(){}getCachedOrCompute(D,F){if(this.cache.has(D))return this.cache.get(D);let u=F();if(u instanceof Promise)return u.then((E)=>{return this.cache.set(D,E),E});else return this.cache.set(D,u),u}clearCache(){this.cache.clear()}getGenerationStats(){let D=this.generatedFiles.reduce((u,E)=>u+E.size,0),F=performance.now()-this.generationStartTime;return{filesGenerated:this.generatedFiles.length,totalSize:D,averageFileSize:this.generatedFiles.length>0?D/this.generatedFiles.length:0,generationTime:F,averageTimePerFile:this.generatedFiles.length>0?F/this.generatedFiles.length:0,cacheHitRate:0}}}class s2{options;constructor(D={}){this.options={generateNullable:!0,strictTypes:!0,customMappings:{},preferArraySyntax:!0,namingConvention:"PascalCase",...D}}mapType(D){if(typeof D==="string")return this.mapPrimitive(D);if(D&&typeof D==="object")switch(D.kind||D.type){case"primitive-type":return this.mapPrimitive(D.name);case"reference":return this.mapReference(D.targets||[]);case"array":{let u=this.mapType(D.element);return this.mapArray(u)}case"enum":case"coded":return this.mapEnum(D.values||[],D.name);case"complex-type":case"resource":return this.mapComplexType(D);default:return this.mapUnknownType(D)}return this.mapUnknownType(D)}mapComplexType(D){return{name:this.formatTypeName(D.name||"Unknown"),isPrimitive:!1,importPath:this.calculateImportPath(D),nullable:!D.required&&this.options.generateNullable,metadata:{kind:D.kind,package:D.package}}}mapUnknownType(D){return{name:"unknown",isPrimitive:!0,nullable:!0,metadata:{originalType:D,warning:"unmapped_type"}}}calculateImportPath(D){if(!D.name)return;return`./${this.formatFileName(D.name)}`}applyNamingConvention(D){switch(this.options.namingConvention){case"camelCase":return q6(D);case"PascalCase":return du(D);case"snake_case":return _6(D);case"kebab-case":return pu(D);default:return D}}getCustomMapping(D){return this.options.customMappings[D]}shouldBeNullable(D){return!D&&this.options.generateNullable}}function q6(D){return D.replace(/[-_\s]+(.)?/g,(F,u)=>u?.toUpperCase()||"")}function du(D){let F=q6(D);return F.charAt(0).toUpperCase()+F.slice(1)}function _6(D){return D.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase().replace(/^_/,"")}function pu(D){return _6(D).replace(/_/g,"-")}class r2 extends s2{tsOptions;constructor(D={}){super(D);this.tsOptions={...this.options,preferUnknown:!0,useBrandedTypes:!1,preferUndefined:!0,moduleFormat:"esm",...D}}getLanguageName(){return"TypeScript"}mapPrimitive(D){let F=this.getCustomMapping(D);if(F)return{name:F,isPrimitive:!0,nullable:!1};let E={string:"string",integer:"number",decimal:"number",boolean:"boolean",dateTime:"string",date:"string",time:"string",instant:"string",uri:"string",url:"string",canonical:"string",oid:"string",uuid:"string",base64Binary:"string",code:"string",id:"string",markdown:"string",unsignedInt:"number",positiveInt:"number",xhtml:"string",json:"unknown"}[D];if(!E)return console.warn(`Unknown FHIR primitive type: ${D}`),{name:this.tsOptions.preferUnknown?"unknown":"any",isPrimitive:!0,nullable:!1,metadata:{warning:"unmapped_primitive",originalType:D}};if(this.tsOptions.useBrandedTypes&&D!==E)return{name:`${E} & { readonly __brand: '${D}' }`,isPrimitive:!1,importPath:"./brands",nullable:!1,metadata:{isBranded:!0,originalFhirType:D}};return{name:E,isPrimitive:!0,nullable:!1}}mapReference(D){if(!D||D.length===0)return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:["unknown"],nullable:!1};if(D.length===1){let u=D[0]?.name||"unknown";return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:[u==="unknown"?"unknown":`'${u}'`],nullable:!1,metadata:{referencedType:u,referencedSchema:D[0]}}}return{name:"Reference",isPrimitive:!1,importPath:"./Reference",generics:[D.map((u)=>{let E=u.name||"unknown";return E==="unknown"?"unknown":`'${E}'`}).join(" | ")],nullable:!1,metadata:{referencedTypes:D.map((u)=>u.name||"unknown"),referencedSchemas:D}}}mapArray(D){if(this.options.preferArraySyntax)return{name:`${D.name}[]`,isPrimitive:D.isPrimitive,importPath:D.importPath,isArray:!0,nullable:!1,metadata:{elementType:D,arrayStyle:"suffix"}};else return{name:"Array",isPrimitive:!1,generics:[D.name],isArray:!0,nullable:!1,metadata:{elementType:D,arrayStyle:"generic"}}}mapOptional(D,F){if(F||!this.shouldBeNullable(F))return D;let u=this.tsOptions.preferUndefined?"undefined":"null";return{...D,name:`${D.name} | ${u}`,nullable:!0,metadata:{...D.metadata,nullabilityType:u,wasOptional:!0}}}mapEnum(D,F){let u=F?this.formatTypeName(F):"CodedValue";return{name:D.map((B)=>`'${B}'`).join(" | "),isPrimitive:!1,nullable:!1,metadata:{enumName:u,values:D,isUnionType:!0}}}formatTypeName(D){return this.applyNamingConvention(D)}formatFieldName(D){return gu(D)}formatFileName(D){return this.applyNamingConvention(D)}generateInterfaceField(D,F,u){return`${this.formatFieldName(D)}${u?"":"?"}: ${F.name};`}generateImportStatement(D){if(!D.importPath||D.isPrimitive)return;if(this.tsOptions.moduleFormat==="esm")return`import type { ${D.name} } from '${D.importPath}';`;else return`const { ${D.name} } = require('${D.importPath}');`}getRequiredImports(D){let F=new Set;for(let u of D){let E=this.generateImportStatement(u);if(E)F.add(E)}return Array.from(F).sort()}}function gu(D){return D.replace(/[-_\s]+(.)?/g,(F,u)=>u?.toUpperCase()||"")}class HF extends t2{resourceTypes=new Set;collectedValueSets=new Map;get tsOptions(){return this.options}getLanguageName(){return"TypeScript"}getFileExtension(){return".ts"}createTypeMapper(){let D=this.options;return new r2({namingConvention:(D.namingConvention??"PascalCase")==="PascalCase"?"PascalCase":"camelCase",moduleFormat:D.moduleFormat==="cjs"?"commonjs":"esm",preferUndefined:!0,...D.typeMapperOptions})}async generateSchemaContent(D,F){if(this.shouldSkipSchema(D))return"";if(D.identifier.kind==="resource")this.resourceTypes.add(this.typeMapper.formatTypeName(D.identifier.name));if(D.identifier.name==="Reference")return this.generateReferenceInterface(D);let u=this.generateTypeScriptInterface(D),E="";if("nested"in D&&D.nested&&Array.isArray(D.nested))E=D.nested.map((C)=>this.generateNestedTypeInterface(D.identifier.name,C)).join(`
|
|
105
105
|
|
|
106
106
|
`);if(E)return`${u}
|
|
107
107
|
|
|
108
108
|
${E}`;return u}filterAndSortSchemas(D){return this.collectedValueSets=this.collectValueSets(D),D.filter((F)=>!this.shouldSkipSchema(F))}async validateContent(D,F){let u=/export\s+(interface|class|type|enum)\s+\w+/.test(D),E=D.includes("{")&&D.includes("}");if(!u)throw Error(`Generated content for ${F.schema.identifier.name} does not contain valid export statements`);if(!E)throw Error(`Generated content for ${F.schema.identifier.name} has invalid syntax (missing braces)`)}async transformSchemas(D){let F=[];for(let u of D){let E=await this.transformSchema(u);if(E)F.push(E)}return F}async transformSchema(D){if(this.shouldSkipSchema(D))return;let F={schema:D,typeMapper:this.typeMapper,filename:this.getFilenameForSchema(D),language:"TypeScript",timestamp:new Date().toISOString()},u=await this.generateSchemaContent(D,F);if(!u.trim())return;let E=this.extractImportsFromContent(u,D),B=this.extractExportsFromContent(u,D),C=this.getFilenameForSchema(D);return{content:u,imports:E,exports:Array.from(B),filename:C}}shouldGenerateValueSet(D){if(!T2(D)||!D.enum||!Array.isArray(D.enum)||D.enum.length===0)return!1;switch(this.options.valueSetMode||"required-only"){case"all":return!0;case"required-only":return D.strength==="required";case"custom":return(this.options.valueSetStrengths||["required"]).includes(D.strength);default:return D.strength==="required"}}collectValueSets(D){let F=new Map;for(let u of D)if(this.shouldGenerateValueSet(u)&&T2(u)){let E=this.typeMapper.formatTypeName(u.identifier.name);F.set(E,u)}return F}shouldUseValueSetType(D){if(!D)return!1;if(!this.tsOptions.generateValueSets)return!1;let F=this.typeMapper.formatTypeName(D.name);return this.collectedValueSets.has(F)}getValueSetTypeName(D){return this.typeMapper.formatTypeName(D.name)}shouldUseInlineEnum(D){if(!D)return!1;if(this.tsOptions.generateValueSets)return!1;return D.enum&&Array.isArray(D.enum)&&D.enum.length>0}generateInlineEnumType(D){if(!D.enum||!Array.isArray(D.enum))return"string";return D.enum.map((u)=>`'${u}'`).join(" | ")}shouldSkipSchema(D){if(D.identifier.kind==="value-set"||D.identifier.kind==="binding"||D.identifier.kind==="primitive-type")return!0;if(!this.tsOptions.includeExtensions){let F=D.identifier.url;if(F?.includes("StructureDefinition/")){let u=F.split("StructureDefinition/")[1];if(u){let E=u.includes("-"),B=D.identifier.kind==="profile";if(E&&B)return!0}}}return!1}getFilenameForSchema(D){return`${this.typeMapper.formatFileName(D.identifier.name)}${this.getFileExtension()}`}extractImportsFromContent(D,F){let u=new Map,E=/import\s+(?:type\s+)?{\s*([^}]+)\s*}\s+from\s+['"]([^'"]+)['"];?/g,B;while((B=E.exec(D))!==null){let C=B[1],$=B[2];if(!C||!$)continue;let X=C.split(",").map((Q)=>Q.trim());for(let Q of X)u.set(Q,$)}return u}extractExportsFromContent(D,F){let u=new Set,E=/export\s+(?:interface|class|enum|type)\s+([A-Za-z_$][A-Za-z0-9_$]*)/g,B;while((B=E.exec(D))!==null)if(B[1])u.add(B[1]);return u.add(this.typeMapper.formatTypeName(F.identifier.name)),u}generateReferenceInterface(D){let F=[],u=new Set;if("fields"in D&&D.fields)for(let[,E]of Object.entries(D.fields))this.collectFieldImports(E).forEach((C)=>u.add(C));if(F.push("import type { ResourceType } from './utilities.js';"),u.size>0){let E=Array.from(u).sort();for(let B of E)F.push(`import type { ${B} } from './${B}.js';`)}if(F.push(""),this.tsOptions.includeDocuments&&D.description){if(F.push("/**"),F.push(` * ${D.description}`),D.identifier.url)F.push(` * @see ${D.identifier.url}`);if(D.identifier.package)F.push(` * @package ${D.identifier.package}`);F.push(" * @template T - The resource type being referenced"),F.push(" */")}if(F.push("export interface Reference<T extends ResourceType = ResourceType> {"),"fields"in D&&D.fields)for(let[E,B]of Object.entries(D.fields))if(E==="type")F.push(" type?: T;");else{let C=this.generateFieldLines(E,B);for(let $ of C)if($)F.push(` ${$}`)}return F.push("}"),F.join(`
|
|
109
109
|
`)}generateTypeScriptInterface(D){let F=[],u=this.typeMapper.formatTypeName(D.identifier.name),E=new Set,B=new Set;if("fields"in D&&D.fields)for(let[,C]of Object.entries(D.fields)){let $=this.collectFieldImports(C);for(let X of $)if(this.collectedValueSets.has(X))B.add(X);else E.add(X)}if("nested"in D&&D.nested&&Array.isArray(D.nested)){for(let C of D.nested)if(C.fields)for(let[,$]of Object.entries(C.fields)){let X=this.collectFieldImports($);for(let Q of X)if(this.collectedValueSets.has(Q))B.add(Q);else E.add(Q)}}if(E.size>0){let C=Array.from(E).sort();for(let $ of C)F.push(`import type { ${$} } from './${$}.js';`)}if(B.size>0){let $=Array.from(B).sort().join(", ");F.push(`import type { ${$} } from './valuesets/index.js';`)}if(E.size>0||B.size>0)F.push("");if(this.tsOptions.includeDocuments&&D.description){if(F.push("/**"),F.push(` * ${D.description}`),D.identifier.url)F.push(` * @see ${D.identifier.url}`);if(D.identifier.package)F.push(` * @package ${D.identifier.package}`);F.push(" */")}if(F.push(`export interface ${u} {`),D.identifier.kind==="resource")F.push(` resourceType: '${u}';`);if("fields"in D&&D.fields)for(let[C,$]of Object.entries(D.fields)){let X=this.generateFieldLines(C,$);for(let Q of X)if(Q)F.push(` ${Q}`)}return F.push("}"),F.join(`
|
|
110
110
|
`)}collectFieldImports(D){let F=[];if("choices"in D&&D.choices&&Array.isArray(D.choices))return F;if(D.binding&&this.shouldUseValueSetType(D.binding)){let u=this.getValueSetTypeName(D.binding);return F.push(u),F}if("type"in D&&D.type){if(D.type.kind==="nested")return F;let u=this.typeMapper.mapType(D.type);if(!u.isPrimitive&&u.name!=="any"){if(!["string","number","boolean","Date","object","unknown","any"].includes(u.name))F.push(u.name)}}return[...new Set(F)]}extractReferenceTypes(D){let F=[];if(!Array.isArray(D))return F;for(let u of D){if(!u||typeof u!=="object")continue;if(u.kind==="resource"&&u.name){let E=this.typeMapper.formatTypeName(u.name);F.push(E)}}return[...new Set(F)]}generateNestedTypeInterface(D,F){let u=[],E=this.typeMapper.formatTypeName(`${D}${this.capitalizeFirst(F.identifier.name)}`);if(this.tsOptions.includeDocuments&&F.description){if(u.push("/**"),u.push(` * ${F.description}`),F.identifier.url)u.push(` * @see ${F.identifier.url}`);u.push(" */")}if(u.push(`export interface ${E} {`),F.fields)for(let[B,C]of Object.entries(F.fields)){let $=this.generateFieldLines(B,C);for(let X of $)if(X)u.push(` ${X}`)}return u.push("}"),u.join(`
|
|
111
|
-
`)}capitalizeFirst(D){return D.charAt(0).toUpperCase()+D.slice(1)}generateFieldLines(D,F){if("choices"in F&&F.choices&&Array.isArray(F.choices))return[];let u=this.generateFieldLine(D,F);return u?[u]:[]}generateFieldLine(D,F){let u="any",E=!1,B=!1;if("type"in F&&F.type){if(F.binding&&this.shouldUseValueSetType(F.binding))u=this.getValueSetTypeName(F.binding);else if(F.binding&&this.shouldUseInlineEnum(F))u=this.generateInlineEnumType(F);else if(u=this.typeMapper.mapType(F.type).name,F.type.kind==="nested"){let Q=F.type.url?.split("#")||[];if(Q.length===2){let z=Q[0].split("/").pop()||"",
|
|
111
|
+
`)}capitalizeFirst(D){return D.charAt(0).toUpperCase()+D.slice(1)}generateFieldLines(D,F){if("choices"in F&&F.choices&&Array.isArray(F.choices))return[];let u=this.generateFieldLine(D,F);return u?[u]:[]}generateFieldLine(D,F){let u="any",E=!1,B=!1;if("type"in F&&F.type){if(F.binding&&this.shouldUseValueSetType(F.binding))u=this.getValueSetTypeName(F.binding);else if(F.binding&&this.shouldUseInlineEnum(F))u=this.generateInlineEnumType(F);else if(u=this.typeMapper.mapType(F.type).name,F.type.kind==="nested"){let Q=F.type.url?.split("#")||[];if(Q.length===2){let z=Q[0].split("/").pop()||"",O=F.type.name;u=this.typeMapper.formatTypeName(`${z}${this.capitalizeFirst(O)}`)}else u=this.typeMapper.formatTypeName(F.type.name)}else if(u==="Reference"&&F.reference&&Array.isArray(F.reference)){let Q=this.extractReferenceTypes(F.reference);if(Q.length>0)Q.forEach((O)=>this.resourceTypes.add(O)),u=`Reference<${Q.map((O)=>`'${O}'`).join(" | ")}>`}}if("required"in F)E=F.required;if("array"in F)B=F.array;return`${D}${E?"":"?"}: ${u}${B?"[]":""};`}extractExports(D){let F=[],u=/export\s*\{\s*([^}]+)\s*\}/g,E;while((E=u.exec(D))!==null)if(E[1]){let C=E[1].split(",").map(($)=>$.trim()).filter(Boolean);F.push(...C)}let B=[/export\s+interface\s+(\w+)/g,/export\s+type\s+(\w+)/g,/export\s+class\s+(\w+)/g,/export\s+enum\s+(\w+)/g,/export\s+const\s+(\w+)/g,/export\s+function\s+(\w+)/g];for(let C of B){let $;while(($=C.exec(D))!==null)if($[1])F.push($[1])}return[...new Set(F)]}setOutputDir(D){this.options.outputDir=D}setOptions(D){this.options={...this.options,...D}}getOptions(){return{...this.options}}async generate(D){return await this.fileManager.cleanDirectory(),this.logger.debug("Cleaned output directory before generation"),super.generate(D)}async runPostGenerationHooks(){await super.runPostGenerationHooks(),await this.generateValueSetFiles(),await this.generateUtilitiesFile(),await this.generateMainIndexFile()}async generateUtilitiesFile(){if(this.resourceTypes.size===0){this.logger.warn("No resource types found, skipping utilities.ts generation");return}let D=[];D.push("/**"),D.push(" * FHIR Resource Type Utilities"),D.push(" * This file contains utility types for FHIR resources."),D.push(" * "),D.push(" * @generated This file is auto-generated. Do not edit manually."),D.push(" */"),D.push("");let F=Array.from(this.resourceTypes).sort();D.push("/**"),D.push(" * Union of all FHIR resource types in this package"),D.push(" */"),D.push("export type ResourceType =");for(let E=0;E<F.length;E++){let C=E===F.length-1?";":"";D.push(` | '${F[E]}'${C}`)}D.push(""),D.push("/**"),D.push(" * Helper type for creating typed References"),D.push(" * @example Reference<'Patient' | 'Practitioner'> - Reference that can point to Patient or Practitioner"),D.push(" */"),D.push("export type TypedReference<T extends ResourceType> = {"),D.push(" reference?: string;"),D.push(" type?: T;"),D.push(" identifier?: any; // Simplified for utility"),D.push(" display?: string;"),D.push("};");let u=D.join(`
|
|
112
112
|
`);await this.fileManager.writeFile("utilities.ts",u),this.logger.info(`Generated utilities.ts with ${this.resourceTypes.size} resource types`)}generateValueSetFile(D){let F=this.typeMapper.formatTypeName(D.identifier.name),u=D.enum?.map((B)=>` '${B}'`).join(`,
|
|
113
113
|
`)||"",E=[];if(this.options.includeDocuments){if(E.push("/**"),E.push(` * ${D.identifier.name} value set`),D.description)E.push(` * ${D.description}`);if(D.valueset?.url)E.push(` * @see ${D.valueset.url}`);if(D.identifier.package)E.push(` * @package ${D.identifier.package}`);E.push(" * @generated This file is auto-generated. Do not edit manually."),E.push(" */"),E.push("")}if(E.push(`export const ${F}Values = [`),u)E.push(u);if(E.push("] as const;"),E.push(""),E.push(`export type ${F} = typeof ${F}Values[number];`),this.tsOptions.includeValueSetHelpers)E.push(""),E.push(`export const isValid${F} = (value: string): value is ${F} =>`),E.push(` ${F}Values.includes(value as ${F});`);return E.join(`
|
|
114
114
|
`)}async generateValueSetFiles(){if(!this.tsOptions.generateValueSets||this.collectedValueSets.size===0)return;for(let[D,F]of this.collectedValueSets){let u=this.generateValueSetFile(F),E=`valuesets/${D}.ts`;await this.fileManager.writeFile(E,u),this.logger.info(`Generated value set: ${E}`)}await this.generateValueSetIndexFile()}async generateValueSetIndexFile(){let D=[];if(this.tsOptions.includeDocuments)D.push("/**"),D.push(" * FHIR Value Sets"),D.push(" * This file re-exports all generated value sets."),D.push(" * "),D.push(" * @generated This file is auto-generated. Do not edit manually."),D.push(" */"),D.push("");let F=Array.from(this.collectedValueSets.keys()).sort();for(let E of F)D.push(`export * from './${E}.js';`);let u=D.join(`
|
|
115
115
|
`);await this.fileManager.writeFile("valuesets/index.ts",u),this.logger.info(`Generated valuesets/index.ts with ${this.collectedValueSets.size} value sets`)}async generateMainIndexFile(){if(!this.options.generateIndex)return;let D=[];if(this.tsOptions.includeDocuments)D.push("/**"),D.push(" * FHIR R4 TypeScript Types"),D.push(" * Generated from FHIR StructureDefinitions"),D.push(" * "),D.push(" * @generated This file is auto-generated. Do not edit manually."),D.push(" */"),D.push("");if(D.push('export * from "./utilities";'),this.tsOptions.generateValueSets&&this.collectedValueSets.size>0)D.push(""),D.push("// Value Sets"),D.push('export * from "./valuesets/index";');let F=D.join(`
|
|
116
|
-
`);await this.fileManager.writeFile("index.ts",F),this.logger.info(`Generated index.ts with type exports${this.tsOptions.generateValueSets&&this.collectedValueSets.size>0?" and value sets":""}`)}}class qF{schemas=[];options;generators=new Map;progressCallback;cache;pendingOperations=[];typeSchemaGenerator;logger;typeSchemaConfig;constructor(D={}){if(this.options={outputDir:D.outputDir||"./generated",verbose:D.verbose??!1,overwrite:D.overwrite??!0,validate:D.validate??!0,cache:D.cache??!0,typeSchemaConfig:D.typeSchemaConfig,manager:D.manager||null},this.typeSchemaConfig=D.typeSchemaConfig,this.logger=D.logger||jD({verbose:this.options.verbose,prefix:"API"}),this.options.cache)this.cache=new $0(this.typeSchemaConfig)}fromPackage(D,F){this.logger.debug(`Loading from FHIR package: ${D}@${F||"latest"}`);let u=this.loadFromPackage(D,F);return this.pendingOperations.push(u),this}fromFiles(...D){this.logger.debug(`Loading from ${D.length} TypeSchema files`);let F=this.loadFromFiles(D);return this.pendingOperations.push(F),this}fromSchemas(D){return this.logger.debug(`Adding ${D.length} TypeSchemas to generation`),this.schemas=[...this.schemas,...D],this}typescript(D={}){let F=`${this.options.outputDir}/types`,u=new HF({outputDir:F,moduleFormat:D.moduleFormat||"esm",generateIndex:D.generateIndex??!0,includeDocuments:D.includeDocuments??!0,namingConvention:D.namingConvention||"PascalCase",includeExtensions:D.includeExtensions??!1,includeProfiles:D.includeProfiles??!1,generateValueSets:D.generateValueSets??!1,includeValueSetHelpers:D.includeValueSetHelpers??!1,valueSetStrengths:D.valueSetStrengths??["required"],logger:this.logger.child("TS"),valueSetMode:D.valueSetMode??"required-only",valueSetDirectory:D.valueSetDirectory??"valuesets",verbose:this.options.verbose,validate:!0,overwrite:this.options.overwrite});return this.generators.set("typescript",u),this.logger.debug(`Configured TypeScript generator (${D.moduleFormat||"esm"})`),this}onProgress(D){return this.progressCallback=D,this}outputTo(D){this.logger.debug(`Setting output directory: ${D}`),this.options.outputDir=D;for(let F of this.generators.values())if(F.setOutputDir)F.setOutputDir(D);return this}verbose(D=!0){return this.options.verbose=D,this}validate(D=!0){return this.options.validate=D,this}async generate(){let D=performance.now(),F={success:!1,outputDir:this.options.outputDir,filesGenerated:[],errors:[],warnings:[],duration:0};this.logger.debug(`Starting generation with ${this.generators.size} generators`);try{if(this.reportProgress("Loading",0,4,"Loading TypeSchema data..."),await this.resolveSchemas(),this.logger.debug(`Resolved ${this.schemas.length} schemas`),this.reportProgress("Validating",1,4,"Validating TypeSchema documents..."),this.options.validate)this.logger.debug("Starting schema validation"),await this.validateSchemas(F),this.logger.debug("Schema validation completed");this.reportProgress("Generating",2,4,"Generating code..."),this.logger.debug(`Executing ${this.generators.size} generators`),await this.executeGenerators(F),this.reportProgress("Complete",4,4,"Generation completed successfully"),F.success=F.errors.length===0,this.logger.debug(`Generation completed: ${F.filesGenerated.length} files`)}catch(u){this.logger.error("Code generation failed",u instanceof Error?u:Error(String(u))),F.errors.push(u instanceof Error?u.message:String(u)),F.success=!1}finally{F.duration=performance.now()-D}return F}async build(){await this.resolveSchemas();let D={};for(let[F,u]of this.generators.entries())if(u.build)D[F]=await u.build(this.schemas);return D}reset(){return this.schemas=[],this.generators.clear(),this.progressCallback=void 0,this}getSchemas(){return[...this.schemas]}getGenerators(){return Array.from(this.generators.keys())}async loadFromPackage(D,F){let u=new gD({verbose:this.options.verbose,logger:this.logger.child("Schema"),treeshake:this.typeSchemaConfig?.treeshake,manager:this.options.manager},this.typeSchemaConfig);this.typeSchemaGenerator=u;let E=await u.generateFromPackage(D,F);if(this.schemas=[...this.schemas,...E],this.cache)this.cache.setMany(E)}async loadFromFiles(D){if(!this.typeSchemaGenerator)this.typeSchemaGenerator=new gD({verbose:this.options.verbose,logger:this.logger.child("Schema"),treeshake:this.typeSchemaConfig?.treeshake},this.typeSchemaConfig);let u=await new T0({format:"auto",validate:this.options.validate}).parseFromFiles(D);if(this.schemas=[...this.schemas,...u],this.cache)this.cache.setMany(u)}async resolveSchemas(){if(this.pendingOperations.length>0)await Promise.all(this.pendingOperations),this.pendingOperations=[]}async validateSchemas(D){return}async executeGenerators(D){let F=this.generators.size,u=0;for(let[E,B]of this.generators.entries()){this.reportProgress("Generating",2+u/F,4,`Generating ${E}...`);try{let C=await B.generate(this.schemas);D.filesGenerated.push(...C.map(($)=>$.path||$.filename))}catch(C){D.errors.push(`${E} generator failed: ${C instanceof Error?C.message:String(C)}`)}u++}}reportProgress(D,F,u,E){if(this.progressCallback)this.progressCallback(D,F,u,E);if(this.options.verbose&&E)this.logger.debug(`[${D}] ${E}`)}}import{existsSync as mu}from"node:fs";import{readFile as cu}from"node:fs/promises";import{resolve as M6}from"node:path";var s2={outputDir:"./generated",verbose:!1,overwrite:!0,validate:!0,cache:!0,typescript:{moduleFormat:"esm",generateIndex:!0,includeDocuments:!1,namingConvention:"PascalCase",strictMode:!0,includeProfiles:!0,includeExtensions:!1,includeCodeSystems:!1,includeOperations:!1,generateValueSets:!1,valueSetDirectory:"valuesets",valueSetMode:"required-only",valueSetStrengths:["required"],includeValueSetHelpers:!1,fhirVersion:"R4",resourceTypes:[],maxDepth:10,profileOptions:{generateKind:"interface",includeConstraints:!0,includeDocumentation:!0,strictMode:!1,subfolder:"profiles"},generateBuilders:!1,builderOptions:{includeValidation:!0,includeFactoryMethods:!0,includeInterfaces:!0,generateNestedBuilders:!0,includeHelperMethods:!0,supportPartialBuild:!0,includeJSDoc:!0,generateFactories:!0,includeTypeGuards:!0,handleChoiceTypes:!0,generateArrayHelpers:!0},validatorOptions:{includeCardinality:!0,includeTypes:!0,includeConstraints:!0,includeInvariants:!1,validateRequired:!0,allowAdditional:!1,strictValidation:!1,collectMetrics:!1,generateAssertions:!0,generatePartialValidators:!0,optimizePerformance:!0,includeJSDoc:!0,generateCompositeValidators:!0},guardOptions:{includeRuntimeValidation:!0,includeErrorMessages:!0,treeShakeable:!0,targetTSVersion:"5.0",strictGuards:!1,includeNullChecks:!0,verbose:!1}},typeSchema:{enablePersistence:!0,cacheDir:".typeschema-cache",maxAge:86400000,validateCached:!0,forceRegenerate:!1,shareCache:!0,cacheKeyPrefix:"",treeshake:[],singleFile:!1,profiles:{autoDetect:!0}},packages:[],files:[],$schema:""},_F=["atomic-codegen.config.ts","atomic-codegen.config","atomic-codegen.config.json",".atomic-codegenrc","atomic-codegen.json",".atomic-codegen.json","codegen.config.json","codegen.json"];class K6{validate(D){let F={valid:!0,errors:[],warnings:[]};if(!D||typeof D!=="object")return F.valid=!1,F.errors.push({path:"root",message:"Configuration must be an object",value:D}),F;let u=D;if(u.outputDir!==void 0&&typeof u.outputDir!=="string")F.errors.push({path:"outputDir",message:"outputDir must be a string",value:u.outputDir});let E=["verbose","overwrite","validate","cache"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.errors.push({path:B,message:`${B} must be a boolean`,value:u[B]});if(u.typescript!==void 0){let B=this.validateTypeScriptConfig(u.typescript);F.errors.push(...B)}if(u.typeSchema!==void 0){let B=this.validateTypeSchemaConfig(u.typeSchema);F.errors.push(...B)}if(u.packages!==void 0)if(!Array.isArray(u.packages))F.errors.push({path:"packages",message:"packages must be an array",value:u.packages});else u.packages.forEach((B,C)=>{if(typeof B!=="string")F.errors.push({path:`packages[${C}]`,message:"package name must be a string",value:B})});if(u.files!==void 0)if(!Array.isArray(u.files))F.errors.push({path:"files",message:"files must be an array",value:u.files});else u.files.forEach((B,C)=>{if(typeof B!=="string")F.errors.push({path:`files[${C}]`,message:"file path must be a string",value:B})});if(F.valid=F.errors.length===0,F.valid)F.config=u;return F}validateTypeScriptConfig(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript",message:"typescript config must be an object",value:D}),F;let u=D;if(u.moduleFormat!==void 0){if(!["esm","cjs"].includes(u.moduleFormat))F.push({path:"typescript.moduleFormat",message:'moduleFormat must be "esm" or "cjs"',value:u.moduleFormat})}if(u.namingConvention!==void 0){if(!["PascalCase","camelCase"].includes(u.namingConvention))F.push({path:"typescript.namingConvention",message:'namingConvention must be "PascalCase" or "camelCase"',value:u.namingConvention})}let E=["generateIndex","includeDocuments","strictMode","includeProfiles","includeExtensions","includeCodeSystems","includeOperations","generateValueSets","includeValueSetHelpers"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.${B}`,message:`${B} must be a boolean`,value:u[B]});if(u.validatorOptions!==void 0){let B=this.validateValidatorOptions(u.validatorOptions);F.push(...B)}if(u.guardOptions!==void 0){let B=this.validateGuardOptions(u.guardOptions);F.push(...B)}if(u.profileOptions!==void 0){let B=this.validateProfileOptions(u.profileOptions);F.push(...B)}return F}validateValidatorOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.validatorOptions",message:"validatorOptions must be an object",value:D}),F;let u=D,E=["includeCardinality","includeTypes","includeConstraints","includeInvariants","validateRequired","allowAdditional","strictValidation","collectMetrics","generateAssertions","generatePartialValidators","optimizePerformance","includeJSDoc","generateCompositeValidators"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.validatorOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateGuardOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.guardOptions",message:"guardOptions must be an object",value:D}),F;let u=D;if(u.targetTSVersion!==void 0){if(!["3.8","4.0","4.5","5.0"].includes(u.targetTSVersion))F.push({path:"typescript.guardOptions.targetTSVersion",message:'targetTSVersion must be one of: "3.8", "4.0", "4.5", "5.0"',value:u.targetTSVersion})}let E=["includeRuntimeValidation","includeErrorMessages","treeShakeable","strictGuards","includeNullChecks","verbose"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.guardOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateProfileOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.profileOptions",message:"profileOptions must be an object",value:D}),F;let u=D;if(u.generateKind!==void 0){if(!["interface","type","both"].includes(u.generateKind))F.push({path:"typescript.profileOptions.generateKind",message:'generateKind must be "interface", "type", or "both"',value:u.generateKind})}if(u.subfolder!==void 0&&typeof u.subfolder!=="string")F.push({path:"typescript.profileOptions.subfolder",message:"subfolder must be a string",value:u.subfolder});let E=["includeConstraints","includeDocumentation","strictMode"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.profileOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateTypeSchemaConfig(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typeSchema",message:"typeSchema config must be an object",value:D}),F;let u=D,E=["enablePersistence","validateCached","forceRegenerate","shareCache"];for(let C of E)if(u[C]!==void 0&&typeof u[C]!=="boolean")F.push({path:`typeSchema.${C}`,message:`${C} must be a boolean`,value:u[C]});let B=["cacheDir","cacheKeyPrefix"];for(let C of B)if(u[C]!==void 0&&typeof u[C]!=="string")F.push({path:`typeSchema.${C}`,message:`${C} must be a string`,value:u[C]});if(u.maxAge!==void 0){if(typeof u.maxAge!=="number"||u.maxAge<=0)F.push({path:"typeSchema.maxAge",message:"maxAge must be a positive number",value:u.maxAge})}if(u.profiles!==void 0)if(typeof u.profiles!=="object"||u.profiles===null)F.push({path:"typeSchema.profiles",message:"profiles must be an object",value:u.profiles});else{let C=u.profiles;if(C.autoDetect!==void 0&&typeof C.autoDetect!=="boolean")F.push({path:"typeSchema.profiles.autoDetect",message:"autoDetect must be a boolean",value:C.autoDetect})}return F}}class V6{validator=new K6;async autoload(D=process.cwd()){let F=await this.findConfigFile(D);if(F)return this.loadFromFile(F);return{...s2}}async loadFromFile(D){try{let F;if(D.endsWith(".ts")||D.endsWith("")){let B=await import(M6(D));F=B.default||B}else{let E=await cu(D,"utf-8");F=JSON.parse(E)}let u=this.validator.validate(F);if(!u.valid){let E=u.errors.map((B)=>`${B.path}: ${B.message}`).join(`
|
|
116
|
+
`);await this.fileManager.writeFile("index.ts",F),this.logger.info(`Generated index.ts with type exports${this.tsOptions.generateValueSets&&this.collectedValueSets.size>0?" and value sets":""}`)}}class qF{schemas=[];options;generators=new Map;progressCallback;cache;pendingOperations=[];typeSchemaGenerator;logger;typeSchemaConfig;constructor(D={}){if(this.options={outputDir:D.outputDir||"./generated",verbose:D.verbose??!1,overwrite:D.overwrite??!0,validate:D.validate??!0,cache:D.cache??!0,typeSchemaConfig:D.typeSchemaConfig,manager:D.manager||null},this.typeSchemaConfig=D.typeSchemaConfig,this.logger=D.logger||jD({verbose:this.options.verbose,prefix:"API"}),this.options.cache)this.cache=new $0(this.typeSchemaConfig)}fromPackage(D,F){this.logger.debug(`Loading from FHIR package: ${D}@${F||"latest"}`);let u=this.loadFromPackage(D,F);return this.pendingOperations.push(u),this}fromFiles(...D){this.logger.debug(`Loading from ${D.length} TypeSchema files`);let F=this.loadFromFiles(D);return this.pendingOperations.push(F),this}fromSchemas(D){return this.logger.debug(`Adding ${D.length} TypeSchemas to generation`),this.schemas=[...this.schemas,...D],this}typescript(D={}){let F=`${this.options.outputDir}/types`,u=new HF({outputDir:F,moduleFormat:D.moduleFormat||"esm",generateIndex:D.generateIndex??!0,includeDocuments:D.includeDocuments??!0,namingConvention:D.namingConvention||"PascalCase",includeExtensions:D.includeExtensions??!1,includeProfiles:D.includeProfiles??!1,generateValueSets:D.generateValueSets??!1,includeValueSetHelpers:D.includeValueSetHelpers??!1,valueSetStrengths:D.valueSetStrengths??["required"],logger:this.logger.child("TS"),valueSetMode:D.valueSetMode??"required-only",valueSetDirectory:D.valueSetDirectory??"valuesets",verbose:this.options.verbose,validate:!0,overwrite:this.options.overwrite});return this.generators.set("typescript",u),this.logger.debug(`Configured TypeScript generator (${D.moduleFormat||"esm"})`),this}onProgress(D){return this.progressCallback=D,this}outputTo(D){this.logger.debug(`Setting output directory: ${D}`),this.options.outputDir=D;for(let F of this.generators.values())if(F.setOutputDir)F.setOutputDir(D);return this}verbose(D=!0){return this.options.verbose=D,this}validate(D=!0){return this.options.validate=D,this}async generate(){let D=performance.now(),F={success:!1,outputDir:this.options.outputDir,filesGenerated:[],errors:[],warnings:[],duration:0};this.logger.debug(`Starting generation with ${this.generators.size} generators`);try{if(this.reportProgress("Loading",0,4,"Loading TypeSchema data..."),await this.resolveSchemas(),this.logger.debug(`Resolved ${this.schemas.length} schemas`),this.reportProgress("Validating",1,4,"Validating TypeSchema documents..."),this.options.validate)this.logger.debug("Starting schema validation"),await this.validateSchemas(F),this.logger.debug("Schema validation completed");this.reportProgress("Generating",2,4,"Generating code..."),this.logger.debug(`Executing ${this.generators.size} generators`),await this.executeGenerators(F),this.reportProgress("Complete",4,4,"Generation completed successfully"),F.success=F.errors.length===0,this.logger.debug(`Generation completed: ${F.filesGenerated.length} files`)}catch(u){this.logger.error("Code generation failed",u instanceof Error?u:Error(String(u))),F.errors.push(u instanceof Error?u.message:String(u)),F.success=!1}finally{F.duration=performance.now()-D}return F}async build(){await this.resolveSchemas();let D={};for(let[F,u]of this.generators.entries())if(u.build)D[F]=await u.build(this.schemas);return D}reset(){return this.schemas=[],this.generators.clear(),this.progressCallback=void 0,this}getSchemas(){return[...this.schemas]}getGenerators(){return Array.from(this.generators.keys())}async loadFromPackage(D,F){let u=new gD({verbose:this.options.verbose,logger:this.logger.child("Schema"),treeshake:this.typeSchemaConfig?.treeshake,manager:this.options.manager},this.typeSchemaConfig);this.typeSchemaGenerator=u;let E=await u.generateFromPackage(D,F);if(this.schemas=[...this.schemas,...E],this.cache)this.cache.setMany(E)}async loadFromFiles(D){if(!this.typeSchemaGenerator)this.typeSchemaGenerator=new gD({verbose:this.options.verbose,logger:this.logger.child("Schema"),treeshake:this.typeSchemaConfig?.treeshake},this.typeSchemaConfig);let u=await new T0({format:"auto",validate:this.options.validate}).parseFromFiles(D);if(this.schemas=[...this.schemas,...u],this.cache)this.cache.setMany(u)}async resolveSchemas(){if(this.pendingOperations.length>0)await Promise.all(this.pendingOperations),this.pendingOperations=[]}async validateSchemas(D){return}async executeGenerators(D){let F=this.generators.size,u=0;for(let[E,B]of this.generators.entries()){this.reportProgress("Generating",2+u/F,4,`Generating ${E}...`);try{let C=await B.generate(this.schemas);D.filesGenerated.push(...C.map(($)=>$.path||$.filename))}catch(C){D.errors.push(`${E} generator failed: ${C instanceof Error?C.message:String(C)}`)}u++}}reportProgress(D,F,u,E){if(this.progressCallback)this.progressCallback(D,F,u,E);if(this.options.verbose&&E)this.logger.debug(`[${D}] ${E}`)}}import{existsSync as mu}from"node:fs";import{readFile as cu}from"node:fs/promises";import{resolve as M6}from"node:path";var a2={outputDir:"./generated",verbose:!1,overwrite:!0,validate:!0,cache:!0,typescript:{moduleFormat:"esm",generateIndex:!0,includeDocuments:!1,namingConvention:"PascalCase",strictMode:!0,includeProfiles:!0,includeExtensions:!1,includeCodeSystems:!1,includeOperations:!1,generateValueSets:!1,valueSetDirectory:"valuesets",valueSetMode:"required-only",valueSetStrengths:["required"],includeValueSetHelpers:!1,fhirVersion:"R4",resourceTypes:[],maxDepth:10,profileOptions:{generateKind:"interface",includeConstraints:!0,includeDocumentation:!0,strictMode:!1,subfolder:"profiles"},generateBuilders:!1,builderOptions:{includeValidation:!0,includeFactoryMethods:!0,includeInterfaces:!0,generateNestedBuilders:!0,includeHelperMethods:!0,supportPartialBuild:!0,includeJSDoc:!0,generateFactories:!0,includeTypeGuards:!0,handleChoiceTypes:!0,generateArrayHelpers:!0},validatorOptions:{includeCardinality:!0,includeTypes:!0,includeConstraints:!0,includeInvariants:!1,validateRequired:!0,allowAdditional:!1,strictValidation:!1,collectMetrics:!1,generateAssertions:!0,generatePartialValidators:!0,optimizePerformance:!0,includeJSDoc:!0,generateCompositeValidators:!0},guardOptions:{includeRuntimeValidation:!0,includeErrorMessages:!0,treeShakeable:!0,targetTSVersion:"5.0",strictGuards:!1,includeNullChecks:!0,verbose:!1}},typeSchema:{enablePersistence:!0,cacheDir:".typeschema-cache",maxAge:86400000,validateCached:!0,forceRegenerate:!1,shareCache:!0,cacheKeyPrefix:"",treeshake:[],singleFile:!1,profiles:{autoDetect:!0}},packages:[],files:[],$schema:""},_F=["atomic-codegen.config.ts","atomic-codegen.config","atomic-codegen.config.json",".atomic-codegenrc","atomic-codegen.json",".atomic-codegen.json","codegen.config.json","codegen.json"];class V6{validate(D){let F={valid:!0,errors:[],warnings:[]};if(!D||typeof D!=="object")return F.valid=!1,F.errors.push({path:"root",message:"Configuration must be an object",value:D}),F;let u=D;if(u.outputDir!==void 0&&typeof u.outputDir!=="string")F.errors.push({path:"outputDir",message:"outputDir must be a string",value:u.outputDir});let E=["verbose","overwrite","validate","cache"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.errors.push({path:B,message:`${B} must be a boolean`,value:u[B]});if(u.typescript!==void 0){let B=this.validateTypeScriptConfig(u.typescript);F.errors.push(...B)}if(u.typeSchema!==void 0){let B=this.validateTypeSchemaConfig(u.typeSchema);F.errors.push(...B)}if(u.packages!==void 0)if(!Array.isArray(u.packages))F.errors.push({path:"packages",message:"packages must be an array",value:u.packages});else u.packages.forEach((B,C)=>{if(typeof B!=="string")F.errors.push({path:`packages[${C}]`,message:"package name must be a string",value:B})});if(u.files!==void 0)if(!Array.isArray(u.files))F.errors.push({path:"files",message:"files must be an array",value:u.files});else u.files.forEach((B,C)=>{if(typeof B!=="string")F.errors.push({path:`files[${C}]`,message:"file path must be a string",value:B})});if(F.valid=F.errors.length===0,F.valid)F.config=u;return F}validateTypeScriptConfig(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript",message:"typescript config must be an object",value:D}),F;let u=D;if(u.moduleFormat!==void 0){if(!["esm","cjs"].includes(u.moduleFormat))F.push({path:"typescript.moduleFormat",message:'moduleFormat must be "esm" or "cjs"',value:u.moduleFormat})}if(u.namingConvention!==void 0){if(!["PascalCase","camelCase"].includes(u.namingConvention))F.push({path:"typescript.namingConvention",message:'namingConvention must be "PascalCase" or "camelCase"',value:u.namingConvention})}let E=["generateIndex","includeDocuments","strictMode","includeProfiles","includeExtensions","includeCodeSystems","includeOperations","generateValueSets","includeValueSetHelpers"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.${B}`,message:`${B} must be a boolean`,value:u[B]});if(u.validatorOptions!==void 0){let B=this.validateValidatorOptions(u.validatorOptions);F.push(...B)}if(u.guardOptions!==void 0){let B=this.validateGuardOptions(u.guardOptions);F.push(...B)}if(u.profileOptions!==void 0){let B=this.validateProfileOptions(u.profileOptions);F.push(...B)}return F}validateValidatorOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.validatorOptions",message:"validatorOptions must be an object",value:D}),F;let u=D,E=["includeCardinality","includeTypes","includeConstraints","includeInvariants","validateRequired","allowAdditional","strictValidation","collectMetrics","generateAssertions","generatePartialValidators","optimizePerformance","includeJSDoc","generateCompositeValidators"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.validatorOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateGuardOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.guardOptions",message:"guardOptions must be an object",value:D}),F;let u=D;if(u.targetTSVersion!==void 0){if(!["3.8","4.0","4.5","5.0"].includes(u.targetTSVersion))F.push({path:"typescript.guardOptions.targetTSVersion",message:'targetTSVersion must be one of: "3.8", "4.0", "4.5", "5.0"',value:u.targetTSVersion})}let E=["includeRuntimeValidation","includeErrorMessages","treeShakeable","strictGuards","includeNullChecks","verbose"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.guardOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateProfileOptions(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typescript.profileOptions",message:"profileOptions must be an object",value:D}),F;let u=D;if(u.generateKind!==void 0){if(!["interface","type","both"].includes(u.generateKind))F.push({path:"typescript.profileOptions.generateKind",message:'generateKind must be "interface", "type", or "both"',value:u.generateKind})}if(u.subfolder!==void 0&&typeof u.subfolder!=="string")F.push({path:"typescript.profileOptions.subfolder",message:"subfolder must be a string",value:u.subfolder});let E=["includeConstraints","includeDocumentation","strictMode"];for(let B of E)if(u[B]!==void 0&&typeof u[B]!=="boolean")F.push({path:`typescript.profileOptions.${B}`,message:`${B} must be a boolean`,value:u[B]});return F}validateTypeSchemaConfig(D){let F=[];if(typeof D!=="object"||D===null)return F.push({path:"typeSchema",message:"typeSchema config must be an object",value:D}),F;let u=D,E=["enablePersistence","validateCached","forceRegenerate","shareCache"];for(let C of E)if(u[C]!==void 0&&typeof u[C]!=="boolean")F.push({path:`typeSchema.${C}`,message:`${C} must be a boolean`,value:u[C]});let B=["cacheDir","cacheKeyPrefix"];for(let C of B)if(u[C]!==void 0&&typeof u[C]!=="string")F.push({path:`typeSchema.${C}`,message:`${C} must be a string`,value:u[C]});if(u.maxAge!==void 0){if(typeof u.maxAge!=="number"||u.maxAge<=0)F.push({path:"typeSchema.maxAge",message:"maxAge must be a positive number",value:u.maxAge})}if(u.profiles!==void 0)if(typeof u.profiles!=="object"||u.profiles===null)F.push({path:"typeSchema.profiles",message:"profiles must be an object",value:u.profiles});else{let C=u.profiles;if(C.autoDetect!==void 0&&typeof C.autoDetect!=="boolean")F.push({path:"typeSchema.profiles.autoDetect",message:"autoDetect must be a boolean",value:C.autoDetect})}return F}}class K6{validator=new V6;async autoload(D=process.cwd()){let F=await this.findConfigFile(D);if(F)return this.loadFromFile(F);return{...a2}}async loadFromFile(D){try{let F;if(D.endsWith(".ts")||D.endsWith("")){let B=await import(M6(D));F=B.default||B}else{let E=await cu(D,"utf-8");F=JSON.parse(E)}let u=this.validator.validate(F);if(!u.valid){let E=u.errors.map((B)=>`${B.path}: ${B.message}`).join(`
|
|
117
117
|
`);throw Error(`Configuration validation failed:
|
|
118
|
-
${E}`)}return this.mergeWithDefaults(u.config)}catch(F){if(F instanceof Error)throw Error(`Failed to load config from ${D}: ${F.message}`);throw F}}async findConfigFile(D){for(let F of _F){let u=M6(D,F);if(mu(u))return u}return null}mergeWithDefaults(D){return{...
|
|
118
|
+
${E}`)}return this.mergeWithDefaults(u.config)}catch(F){if(F instanceof Error)throw Error(`Failed to load config from ${D}: ${F.message}`);throw F}}async findConfigFile(D){for(let F of _F){let u=M6(D,F);if(mu(u))return u}return null}mergeWithDefaults(D){return{...a2,...D,typescript:{...a2.typescript,...D.typescript}}}}var lu=new K6;async function MF(D){return lu.autoload(D)}var R6={command:"generate",describe:"Generate code based on configuration file settings",builder:(D)=>D.option("verbose",{alias:"v",type:"boolean",default:!1,description:"Enable verbose output"}).example("$0 generate","Generate code using settings from config file").example("$0 generate --verbose","Generate with verbose output"),handler:async(D)=>{if(D._.length>1){let $=D._.slice(1).join(" ");KD(`Invalid syntax: 'atomic-codegen generate ${$}'
|
|
119
119
|
|
|
120
120
|
The CLI has been simplified and no longer uses subcommands.
|
|
121
121
|
|
|
@@ -124,7 +124,7 @@ The CLI has been simplified and no longer uses subcommands.
|
|
|
124
124
|
|
|
125
125
|
`+`All generation settings are now configured in your config file.
|
|
126
126
|
Create an atomic-codegen.config.ts file to get started.`),process.exit(1)}let F=process.cwd(),u=await iu(F);if(!u){let $=_F.map((X)=>` - ${X}`).join(`
|
|
127
|
-
`);
|
|
127
|
+
`);KD(`No configuration file found. Please create one of the following files in your project root:
|
|
128
128
|
${$}
|
|
129
129
|
|
|
130
130
|
Example atomic-codegen.config.ts:
|
|
@@ -136,13 +136,13 @@ export default defineConfig({
|
|
|
136
136
|
typescript: {
|
|
137
137
|
generateIndex: true
|
|
138
138
|
}
|
|
139
|
-
});`),process.exit(1)}let E=await MF(F),B=D.verbose??E.verbose??!1,C=jD({verbose:B,prefix:"Generate"});try{if(B2("Starting generation from config"),B)C.info(`Config file: ${u}`),C.info(`Output directory: ${E.outputDir||"./generated"}`),C.info(`Packages: ${E.packages?.length||0}`),C.info(`Files: ${E.files?.length||0}`),C.info(`TypeScript generation: ${E.typescript?"enabled":"disabled"}`);let $=new qF({outputDir:E.outputDir||"./generated",verbose:B,overwrite:E.overwrite??!0,validate:E.validate??!0,cache:E.cache??!0,typeSchemaConfig:E.typeSchema,logger:C});if(E.packages&&E.packages.length>0){C.info(`Loading packages from config: ${E.packages.join(", ")}`);for(let Q of E.packages){let[z,
|
|
140
|
-
`);await su(z,
|
|
139
|
+
});`),process.exit(1)}let E=await MF(F),B=D.verbose??E.verbose??!1,C=jD({verbose:B,prefix:"Generate"});try{if(B2("Starting generation from config"),B)C.info(`Config file: ${u}`),C.info(`Output directory: ${E.outputDir||"./generated"}`),C.info(`Packages: ${E.packages?.length||0}`),C.info(`Files: ${E.files?.length||0}`),C.info(`TypeScript generation: ${E.typescript?"enabled":"disabled"}`);let $=new qF({outputDir:E.outputDir||"./generated",verbose:B,overwrite:E.overwrite??!0,validate:E.validate??!0,cache:E.cache??!0,typeSchemaConfig:E.typeSchema,logger:C});if(E.packages&&E.packages.length>0){C.info(`Loading packages from config: ${E.packages.join(", ")}`);for(let Q of E.packages){let[z,O]=Q.includes("@")?Q.split("@"):[Q,void 0];$.fromPackage(z,O)}}else if(E.files&&E.files.length>0){C.info(`Loading files from config: ${E.files.join(", ")}`);for(let Q of E.files)$.fromFiles(Q)}else throw Error("No data source specified in config. Please configure 'packages' or 'files' in your config file.");if(E.typescript){if(B)C.info("Configuring TypeScript generation from config"),C.debug(`Module format: ${E.typescript.moduleFormat||"esm"}`),C.debug(`Generate index: ${E.typescript.generateIndex??!0}`),C.debug(`Include docs: ${E.typescript.includeDocuments??!1}`),C.debug(`Naming convention: ${E.typescript.namingConvention||"PascalCase"}`);$.typescript(E.typescript)}if(!E.typescript)throw Error("No generators configured. Please enable 'typescript' in your config file.");if(B)$.onProgress((Q,z,O,W)=>{let J=Math.round(z/O*100);C.progress(`[${Q}] ${J}% - ${W||"Processing..."}`)});C.step("Executing generation...");let X=await $.generate();if(X.success){if(r0(`Generated ${X.filesGenerated.length} files in ${X.duration.toFixed(2)}ms`),C.dim(`Output directory: ${X.outputDir}`),X.warnings.length>0)for(let Q of X.warnings)E2(Q)}else{KD(`Generation failed with ${X.errors.length} errors`);for(let Q of X.errors)C.dim(` ${Q}`);process.exit(1)}}catch($){KD("Generation failed with unexpected error",$ instanceof Error?$:Error(String($))),process.exit(1)}}};async function iu(D){for(let F of _F){let u=nu(D,F);if(ou(u))return u}return null}import{mkdir as tu,writeFile as su}from"node:fs/promises";import{dirname as ru}from"node:path";var U6={command:"generate <packages..>",describe:"Generate TypeSchema files from FHIR packages",builder:{packages:{type:"string",array:!0,demandOption:!0,describe:"FHIR packages to process (e.g., hl7.fhir.r4.core@4.0.1)"},output:{alias:"o",type:"string",describe:"Output file or directory",default:"./schemas.ndjson"},format:{alias:"f",type:"string",choices:["ndjson","json"],default:"ndjson",describe:"Output format for TypeSchema files"},treeshake:{alias:"t",type:"string",array:!0,describe:"Only generate TypeSchemas for specific ResourceTypes (treeshaking)"},singleFile:{alias:"s",type:"boolean",default:!1,describe:"Generate single TypeSchema file instead of multiple files (NDJSON format)"},verbose:{alias:"v",type:"boolean",default:!1,describe:"Enable verbose output"}},handler:async(D)=>{let F=jD({verbose:D.verbose,prefix:"TypeSchema"});try{let u=await MF(process.cwd());F.step("Generating TypeSchema from FHIR packages"),F.info(`Packages: ${D.packages.join(", ")}`),F.info(`Output: ${D.output}`);let E=D.singleFile!==void 0?D.singleFile:u.typeSchema?.singleFile??!1,B=E?"ndjson":D.format;F.debug(`Format: ${B}${E&&D.format==="json"?" (forced from json due to singleFile)":""}`);let C=D.treeshake&&D.treeshake.length>0?D.treeshake:u.typeSchema?.treeshake;if(C&&C.length>0)F.info(`Treeshaking enabled for ResourceTypes: ${C.join(", ")}`);if(E)F.info("Single file output enabled (NDJSON format)");let $=Date.now(),X=new gD({verbose:D.verbose,treeshake:C}),Q=[];for(let J of D.packages){let[A,_]=J.includes("@")?J.split("@"):[J,void 0];F.progress(`Processing package: ${A}${_?`@${_}`:""}`);let q=await X.generateFromPackage(A,_);Q.push(...q)}if(Q.length===0)throw Error("No schemas were generated from the specified packages");let z=D.output;await tu(ru(z),{recursive:!0});let O;if(B==="json")O=JSON.stringify(Q,null,2);else O=Q.map((J)=>JSON.stringify(J)).join(`
|
|
140
|
+
`);await su(z,O,"utf-8");let W=Date.now()-$;if(X2(`Generated ${Q.length} TypeSchema definitions`,W,{schemas:Q.length}),F.dim(`Output: ${z}`),D.verbose){F.debug("Generated schemas:");let J=Q.map((A)=>`${A.identifier?.name||"Unknown"} (${A.identifier?.kind||"unknown"})`);C0(J)}}catch(u){F.error("Failed to generate TypeSchema",u instanceof Error?u:Error(String(u))),process.exit(1)}}};var j6={command:"typeschema [subcommand]",describe:"TypeSchema operations - generate, validate and merge schemas",builder:(D)=>{return D.command(U6).help().example("$0 typeschema generate hl7.fhir.r4.core@4.0.1","Generate TypeSchema from FHIR R4 core package")},handler:(D)=>{if(!D.subcommand&&D._.length===1){a0("Available typeschema subcommands:"),C0(["generate Generate TypeSchema files from FHIR packages"]),console.log(`
|
|
141
141
|
Use 'atomic-codegen typeschema <subcommand> --help' for more information about a subcommand.`),console.log(`
|
|
142
|
-
Examples:`),C0(["atomic-codegen typeschema generate hl7.fhir.r4.core@4.0.1 -o schemas.ndjson","atomic-codegen typeschema validate schemas.ndjson","atomic-codegen typeschema merge schema1.ndjson schema2.ndjson -o merged.ndjson"]);return}if(D.subcommand&&!["generate","validate","merge"].includes(D.subcommand))
|
|
142
|
+
Examples:`),C0(["atomic-codegen typeschema generate hl7.fhir.r4.core@4.0.1 -o schemas.ndjson","atomic-codegen typeschema validate schemas.ndjson","atomic-codegen typeschema merge schema1.ndjson schema2.ndjson -o merged.ndjson"]);return}if(D.subcommand&&!["generate","validate","merge"].includes(D.subcommand))KD(`Unknown typeschema subcommand: ${D.subcommand}
|
|
143
143
|
`),a0("Available typeschema subcommands:"),C0(["generate Generate TypeSchema files from FHIR packages","validate Validate TypeSchema files for correctness and consistency","merge Merge multiple TypeSchema files into a single file"]),console.log(`
|
|
144
|
-
Use 'atomic-codegen typeschema <subcommand> --help' for more information about a subcommand.`),process.exit(1)}};async function au(D){C2({verbose:D.verbose||D.debug,timestamp:D.debug})}function eu(){return
|
|
144
|
+
Use 'atomic-codegen typeschema <subcommand> --help' for more information about a subcommand.`),process.exit(1)}};async function au(D){C2({verbose:D.verbose||D.debug,timestamp:D.debug})}function eu(){return N3(yF(process.argv)).scriptName("atomic-codegen").usage("$0 <command> [options]").middleware(au).command(j6).command(R6).option("verbose",{alias:"v",type:"boolean",description:"Enable verbose output",default:!1,global:!0}).option("debug",{alias:"d",type:"boolean",description:"Enable debug output with detailed logging",default:!1,global:!0}).option("config",{alias:"c",type:"string",description:"Path to configuration file (.atomic-codegen.json by default)",global:!0}).demandCommand(0).middleware((D)=>{if(D._.length===0)$2("Welcome to Atomic Codegen!"),console.log("Available commands:"),console.log(" typeschema Generate, validate and merge TypeSchema files"),console.log(" generate Generate code based on configuration file"),console.log(`
|
|
145
145
|
Use 'atomic-codegen <command> --help' for more information about a command.`),console.log(`
|
|
146
146
|
Quick examples:`),console.log(" atomic-codegen typeschema generate hl7.fhir.r4.core@4.0.1 -o schemas.ndjson"),console.log(" atomic-codegen generate # Uses atomic-codegen.config.ts"),console.log(`
|
|
147
|
-
Use 'atomic-codegen --help' to see all options.`),process.exit(0)}).help().version("0.1.0").example("$0 generate","Generate code using atomic-codegen.config.ts").example("$0 generate --verbose","Generate with detailed progress output").example("$0 --config custom-config.ts generate","Use custom configuration file").example("$0 typeschema generate hl7.fhir.r4.core@4.0.1 -o schemas.ndjson","Generate TypeSchemas from FHIR package").fail((D,F,u)=>{if(F)
|
|
148
|
-
Use --help for usage information`),process.exit(1)}).wrap(Math.min(120,process.stdout.columns||80))}async function
|
|
147
|
+
Use 'atomic-codegen --help' to see all options.`),process.exit(0)}).help().version("0.1.0").example("$0 generate","Generate code using atomic-codegen.config.ts").example("$0 generate --verbose","Generate with detailed progress output").example("$0 --config custom-config.ts generate","Use custom configuration file").example("$0 typeschema generate hl7.fhir.r4.core@4.0.1 -o schemas.ndjson","Generate TypeSchemas from FHIR package").fail((D,F,u)=>{if(F)KD(F.message,F);else KD(D);KD(`
|
|
148
|
+
Use --help for usage information`),process.exit(1)}).wrap(Math.min(120,process.stdout.columns||80))}async function N6(){await eu().parseAsync()}if(jF.main==jF.module)N6().catch((D)=>{console.error("CLI Error:",D instanceof Error?D.message:D),process.exit(1)});
|