on-zero 0.4.1 → 0.4.3

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.
Files changed (41) hide show
  1. package/dist/cjs/generate-helpers.cjs +309 -0
  2. package/dist/cjs/generate-helpers.native.js +451 -0
  3. package/dist/cjs/generate-helpers.native.js.map +1 -0
  4. package/dist/cjs/generate-lite.cjs +150 -0
  5. package/dist/cjs/generate-lite.native.js +269 -0
  6. package/dist/cjs/generate-lite.native.js.map +1 -0
  7. package/dist/cjs/generate-lite.test.cjs +229 -0
  8. package/dist/cjs/generate-lite.test.native.js +234 -0
  9. package/dist/cjs/generate-lite.test.native.js.map +1 -0
  10. package/dist/cjs/generate.cjs +16 -285
  11. package/dist/cjs/generate.native.js +18 -432
  12. package/dist/cjs/generate.native.js.map +1 -1
  13. package/dist/esm/generate-helpers.mjs +272 -0
  14. package/dist/esm/generate-helpers.mjs.map +1 -0
  15. package/dist/esm/generate-helpers.native.js +411 -0
  16. package/dist/esm/generate-helpers.native.js.map +1 -0
  17. package/dist/esm/generate-lite.mjs +127 -0
  18. package/dist/esm/generate-lite.mjs.map +1 -0
  19. package/dist/esm/generate-lite.native.js +243 -0
  20. package/dist/esm/generate-lite.native.js.map +1 -0
  21. package/dist/esm/generate-lite.test.mjs +230 -0
  22. package/dist/esm/generate-lite.test.mjs.map +1 -0
  23. package/dist/esm/generate-lite.test.native.js +232 -0
  24. package/dist/esm/generate-lite.test.native.js.map +1 -0
  25. package/dist/esm/generate.mjs +6 -275
  26. package/dist/esm/generate.mjs.map +1 -1
  27. package/dist/esm/generate.native.js +9 -423
  28. package/dist/esm/generate.native.js.map +1 -1
  29. package/package.json +7 -2
  30. package/src/generate-helpers.ts +440 -0
  31. package/src/generate-lite.test.ts +310 -0
  32. package/src/generate-lite.ts +333 -0
  33. package/src/generate.ts +23 -415
  34. package/types/generate-helpers.d.ts +42 -0
  35. package/types/generate-helpers.d.ts.map +1 -0
  36. package/types/generate-lite.d.ts +40 -0
  37. package/types/generate-lite.d.ts.map +1 -0
  38. package/types/generate-lite.test.d.ts +2 -0
  39. package/types/generate-lite.test.d.ts.map +1 -0
  40. package/types/generate.d.ts +1 -6
  41. package/types/generate.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","hash","s","update","digest","generateCache","generateCachePath","getCacheDir","dir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","generateModelsFile","modelFiles","modelsDirName","modelNames","map","f","sort","getImportName","name","imports","join","sortedByImportName","a","b","localeCompare","modelsObj","generateTypesFile","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","generateTablesFile","getExportName","exports","generateReadmeFile","generateGroupedQueriesFile","queries","sortedFiles","Set","q","sourceFile","file","generateSyncedQueriesFile","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","has","set","get","push","err","return","Array","from","keys","namespaceDefs","fileQueries","queryDefs","q2","validatorDef","valibotCode","trim","params","indentedValidator","split","line","i","queriesObject","createTypeResolver","ts","files","configPath","findConfigFile","sys","fileExists","compilerOptions","target","ScriptTarget","Latest","module","ModuleKind","ESNext","moduleResolution","ModuleResolutionKind","Bundler","strict","skipLibCheck","noEmit","configFile","readConfigFile","readFile","config","parsed","parseJsonConfigFileContent","options","fileMap","path","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","createSourceFile","_fileMap_get","program","createProgram","f2","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","exportName","paramIndex","result","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","length","isObjectLiteralExpression","properties","prop","_prop_name","isPropertyAssignment","isMethodDeclaration","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","extractSchemaColumns","_secondParam_type","paramType","secondParam","resolvedType","visit","text","expression","endsWith","arg","isStringLiteral","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","parseColumnType","optional","includes","startsWith","customType","columnTypeToValibot","col","base","shouldSkipObjectKey","formatObjectKey","test","schemaColumnsToValibot","mode","entries","pk","Object","col1","isPK","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","name1","col2","generateSyncedMutationsFile","modelMutations","sorted","modelDefs","model","_loop","_i2","_iter2","hasCustomOverride","customMut","find","extractValibotExpression","_i","_iter","mut","parseTypeString","inner","normalized","replace","part","trimmed","match","opt","typeStr","val","inner1","seen","flags","getFlags","TypeFlags","Intersection","add","recurse","t","String","Number","Boolean","Void","Undefined","Null","Any","Unknown","Never","StringLiteral","NumberLiteral","BooleanLiteral","intrinsicName","isUnion","members","types","hasNull","hasUndefined","rest","filter","every","resolveSymbolType","prop2","_prop_declarations","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props","getProperties","getName","propType","isOptional","SymbolFlags","Optional","props1","objectFlags","_type_objectFlags","ObjectFlags","Reference","_typeRef_typeArguments","typeRef","symbol","getSymbol","name2","typeArguments","Tuple","typeRef1","typeArgs","entries1","prop1","name3","propType1","isOptional1","val1","stringIndex","getStringIndexType"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,UAAA,EAAYC,SAAA,EAAWC,YAAA,EAAcC,WAAA,EAAaC,aAAA,QAAqB;AAChF,SAASC,QAAA,EAAUC,OAAA,EAASC,OAAA,QAAe;AAE3C,IAAAC,IAAM,YAAAA,CAAsBC,CAAA;IAE5B,OAAIV,UAAA,CAAwC,QACxC,EAAAW,MAAA,CAAAD,CAAA,EAAAE,MAAoB;EAExB;EAAAC,aAAS;EAAcC,iBAAA;AACrB,SAAIC,WAAcA,CAAA;EAClB,SAAOC,GAAA,GAAQC,OAAK,CAAAC,GAAA,IAAAF,GAAA;IAClB,IAAAG,EAAM,GAAAX,OAAK,CAAAQ,GAAQ,gBAAK;IACxB,IAAIf,UAAA,CAAWkB,EAAE,GAAG;MAClB,IAAAC,QAAM,GAAAZ,OAAW,CAAAW,EAAQ,YAAI;MAC7B,OAAKlB,UAAA,CAAWmB,QAAQ,KACtBlB,SAAA,CAAUkB,QAAA,EAAU;QAGxBC,SAAA;MACA,IAAMD,QAAQ;IAChB;IACAJ,GAAA,GAAOR,OAAA,CAAAQ,GAAA;EACT;EAEA,OAAS;AACP;AACA,SAAKM,SACLA,CAAA;EAAA,IAAAF,QAAA,GAAAL,WAAoB;EACpB,IAAAK,QAAI;IACFN,iBAAA,GAAgBN,OAAK,CAAAY,QAAM,uBAAa;IAC1C;MACEP,aAAA,GAAgBU,IAAC,CAAAC,KAAA,CAAArB,YAAA,CAAAW,iBAAA;IACnB;MAAAD,aAAA;IACF;EAEA;AACE;AACmE,SAAMY,SAAOA,CAAA;EAElFX,iBAAA,IAAAT,aAAA,CAAAS,iBAAA,EAAAS,IAAA,CAAAG,SAAA,CAAAb,aAAA;AAEA,UAAS;AACP;AAGA,SAFmBc,kBAAcA,CAAAC,QAAQ,EAEtBC,OAAA;EAOrB,IAAAC,WAAA,GAAArB,IAAA,CAAAoB,OAAA;IAAAE,UAAA,GAAAlB,aAAA,CAAAe,QAAA;EAEA,OAASG,UAAA,KAAAD,WAAmB,IAAA7B,UAAsB,CAAA2B,QAAuB,UAAAvB,aAAA,CAAAuB,QAAA,EAAAC,OAAA,YAAAhB,aAAA,CAAAe,QAAA,IAAAE,WAAA;AACvE;AAIG,SACEE,kBAASA,CAAAC,UAAe,EAAAC,aAAmB;EAC9C,IACCC,UAAK,GAAAF,UAAA,CAAAG,GAAA,WAAAC,CAAA;MAKF,OAAA/B,QAAY,CAAA+B,CAAA;IAHS,CAAC,EAAAC,IAAG;IAAAC,aAAY,YAAAA,CAAAC,IAAA;MAAK,OAAIA,IAClD,cAAe,YAAE,GAAAA,IAAc;IACjC;IACiEC,OAAK,GAAAN,UAAc,CAAAC,GAAA,WAAcI,IAAK,EAAG;MAAY,sBAAAD,aAAA,CAAAC,IAAA,cAAAN,aAAA,IAAAM,IAAA;IAAA,GAAAE,IAAA;AAEtH;IAAAC,kBAAO,IAA2C,GAAAR,UAAO,EAAAG,IAAA,WAAAM,CAAA,EAAAC,CAAA;MAAO,OAASN,aAAA,CAAAK,CAAA,EAAAE,aAAA,CAAAP,aAAA,CAAAM,CAAA;IAAA;IAAAE,SAAA;AAC3E,EAAAJ,kBAAA,CAAAP,GAAA,WAAAI,IAAA;MAEA,OAAS,KAAAD,aAAkB,CAAAC,IAAA;IACzB,GAAAE,IAAM;AAWN;AAAO;EAAA;AAAA,EARaD,OAAA;AAEhB;AAEA,EAAAM,SAAO;AAAsE;AAA+E;AAExJ,SAAAC,kBAAAf,UAAA;EAEuH,IAAAE,UAAA,GAAAF,UAAA,CAAAG,GAAA,WAAAC,CAAA;MAAA,OAAA/B,QAAA,CAAA+B,CAAA;IACjI,GAAAC,IAAA;IAAAW,aAAA,YAAAA,CAAAT,IAAA;MAEA,OAASA,IAAA,cAAmB,YAAsB,GAAAA,IAAA;IAChD;IAAAU,WAAM,GAAAf,UAAa,CAAAC,GAAW,WAAWI,IAAA;MAUzC,IAAAW,UAAO,GAAAX,IAAA,CAAAY,MAAA,IAAAC,WAAA,KAAAb,IAAA,CAAAc,KAAA;QAAAC,UAAA,GAAAN,aAAA,CAAAT,IAAA;MAAA,sBAAAW,UAAA,mCAAAI,UAAA;AAAA,cANJJ,UAAA,yCAAAI,UAAA;IAAA,EACC,CAACb,IAAA;AAC8E;AAE3E,CAAI,CAE+C;EAAA;AAC7D;AAEA;AACE,EAAAQ,WAAO;AAAA;AAAA;AAAA,SAAAM,mBAAAvB,UAAA,EAAAC,aAAA;EAAA,IAAAC,UAAA,GAAAF,UAAA,CAAAG,GAAA,WAAAC,CAAA;MAAA,OAAA/B,QAAA,CAAA+B,CAAA;IAAA,GAAAC,IAAA;IAAAmB,aAAA,YAAAA,CAAAjB,IAAA;MAAA,OAAAA,IAAA,6BAAAA,IAAA;IAAA;IAAAkB,OAAA,GAAAvB,UAAA,CAAAC,GAAA,WAAAI,IAAA;MAAA,6BAAAiB,aAAA,CAAAjB,IAAA,gBAAAN,aAAA,IAAAM,IAAA;IAAA,GAAAE,IAAA;AAAA;EAAA;AAAA;AAAA,EAAAgB,OAAA;AAAA;AAAA;AAAA,SAAAC,mBAAA;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0DT;AAEA;AASE;AAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFC;AASD;AAET;AAEA;AAQE;AACA;AACE;AAMF;AAEgB;AAAA,SAAAC,2BAAAC,OAAA;EAAA,IAAAC,WAAA,WAAAC,GAAA,CAAAF,OAAA,CAAAzB,GAAA,WAAA4B,CAAA;MAOV,OAAAA,CAAA,CAAAC,UAAgB;IAMlB,IAEI,CAAA3B,IAAA;IAAMoB,OAAA,GAAAI,WAAiB,CAAA1B,GAAA,WAAiB8B,IAAA;MAExC,OAAI,eAAaA,IAAA,qBAAWA,IAAA;IAC1B,GAAAxB,IAAA;AAGF;EACa,OACL;AACA;AAER;AAAkB;AACL;AACmB;AAAA;AAG5B,EAAIgB,OAAA;AAEZ;AAAoB;AAAkB,SAAAS,0BAAAN,OAAA;EACxC,IACCO,WAAK,sBAAAC,GAAA;IAAAC,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAAA;IAEF,SAAAC,SAAgB,GAAAZ,OAAY,CAAAa,MAAK,CAAAC,QAAS,GAAK,EAAAC,KAAO,EAAE,EAAAN,yBAAK,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;MAAI,IAAAN,CAAA,GAAAY,KAAA,CAAAG,KAAA;MAEvEX,WAAU,CAAAY,GAAO,CAAAhB,CAAA,CAAAC,UAAA,KAAAG,WAAA,CAAAa,GAAA,CAAAjB,CAAA,CAAAC,UAAA,OAAAG,WAAA,CAAAc,GAAA,CAAAlB,CAAA,CAAAC,UAAA,EAAAkB,IAAA,CAAAnB,CAAA;IACjB;EAAa,SAAAoB,GAAA;IAAAb,iBAAA,OAAAC,cAAA,GAAAY,GAAA;EAGb;IAAa;MAAA,CAAAd,yBAAA,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;IAGf;MAWA,IAASd,iBAAA,EAMD,MAAAC,cAAgB;IACtB;EAA4D;EAClC,IACxBV,WAAW,GAAAwB,KAAA,CAAWC,IAAA,CAAAnB,WAAA,CAAAoB,IAAA,IAAAlD,IAAA;IAAAG,OAAA;AAAA;AACoB;AAClC;AACM;AACN;IACVgD,aAAA,GAAA3B,WAAA,CAAA1B,GAAA,WAAA8B,IAAA;MAEA,IAAIwB,WAAY,GAAAtB,WAAA,CAAAc,GAAA,CAAAhB,IAAA,EAAA5B,IAAA,WAAAM,CAAA,EAAAC,CAAA;UACd,OAAMD,CAAA,CAAAJ,IAAA,CAAAM,aAAgB,CAAAD,CAAA,CAAAL,IAAA,CAAe;QACrC;QAAImD,SAAA,GAAWD,WAAQ,CAAAtD,GAAA,WAAAwD,EAAA;UAErB,IAAAC,YAAe,GAAGD,EAAA,CAAAE,WAAA,CAAAC,IAAA;UAAA,IAChBH,EAAA,CAAAI,MAAW,gBAAAH,YAAA,EACX,OAAG,KAAAD,EAAA,CAAApD,IAAA,+BAAA0B,IAAA,IAAA0B,EAAA,CAAApD,IAAA;UAAA,IACHyD,iBAAkB,GAAAJ,YAAA,CAAAK,KAAA;AAAA,GAAA9D,GACpB,WAAA+D,IAAA,EAAAC,CAAA;YACA,OAAAA,CAAA,SAAkBD,IAAK,UAAAA,IAAA;UACzB,GAAAzD,IAAA;AAAA,EACF;UAGA,OAAM,KAAUkD,EAAA,CAAApD,IAAA;AAChB,MAAAyD,iBAAgB;AACd,4BAAsB/B,IAAA,IAAO0B,EAAA,CAAApD,IAAA;AAG/B;QAEA,GAAKE,IAAA;AACH;MACA,OAAI,SAAAwB,IAAY;AAG+C,EACjEyB,SACK;AAGL;IAAmB,EACjB,CAAAjD,IAAA,CAAM;AAAiB;AACvB;IACA2D,aAAA,GAAAvC,WAAA,CAAA1B,GAAA,WAAA8B,IAAA;MACF,OACM,KAAUA,IAAA,GAAQ;IAExB,GAAAxB,IAAO;AAAA;EACL,OACA,GAAAD,OAAA;AAAA,EAAAgD,aAAA;AAAA;AAGE;AACE,EAAAY,aAAO;AAAgC;AAEvC;AAAO;AACT,SACFC,mBAAAC,EAAA,EAAAC,KAAA,EAAAxF,GAAA;EAAA,IAAAyF,UAAA,GAAAF,EAAA,CAAAG,cAAA,CAAA1F,GAAA,EAAAuF,EAAA,CAAAI,GAAA,CAAAC,UAAA;IAAAC,eAAA;MAEAC,MAAA,EAAAP,EAAA,CAAAQ,YAAuD,CAAAC,MAAA;MACrDC,MAAA,EAAAV,EAAO,CAAAW,UAAA,CAAAC,MAAgB;MACzBC,gBAAA,EAAAb,EAAA,CAAAc,oBAAA,CAAAC,OAAA;MACFC,MAAA;MACFC,YAAA;MAGAC,MAAS;IAOP;EAEA,IAAAhB,UAAG;IAGD,IAFIiB,UACA,GAACnB,EAAG,CAAAoB,cAAA,CAAAlB,UAAwB,EAC5BF,EAAC,CAAAI,GAAK,CAAAiB,QAAA;IAEV,IAAAF,UAAa,CAAAG,MAAK;MAClB,IAAIC,MAAC,GAAQvB,EAAC,CAAAwB,0BAAyB,CAAIL,UACvC,CAAKG,MAAK,EAAAtB,EAAA,CAAAI,GAAQ,EAAApG,OAAU,CAAAkG,UAAM;MAGpCI,eAAc;QACV,GAAAA,eACF;QAEJ,GAAAiB,MAAA,CAAAE;MAGK;IACT;EAIA;EAKE,IAAAC,OAAM,kBAAW,IAAA5D,GAAI;IAAuCC,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAE5D;IAEE,KADK,IAAGC,SAAA,GAAA+B,KAAA,CAAA9B,MAAwB,CAAAC,QAC3B,CAAK,IAAAC,KAAA,EAAW,EAAAN,yBAA0B,IAAAM,KAAA,GAAWH,SAAA,CAAAI,IAAgB,IAAAC,IAAA,GAAAR,yBAAA;MAE1E,IAAMjC,CAAA,GAAAuC,KAAO,CAAAG,KAAK;MAIlBkD,OAHK,CAAAhD,GAAQ,CAAC5C,CAAA,CAAA6F,IAAG,EAAA7F,CAAA,CAAAR,OAAA;IAIjB;EAGA,SAAIuD,GAAA;IACJb,iBAAa,GAAK,IAAAC,cAAoB,GAAAY,GAAA;EACpC,UAAI;IACF;MACA,CAAAd,yBAAA,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;IAAA,UACF;MAEF,IAAKd,iBAAA,EAEL,MAAAC,cAAmB;IACjB;EACA;EACA,IAAA2D,IAAA,GAAK5B,EAAA,CAAA6B,kBAAM,CAAAvB,eAAA;IAAAwB,qBAAA,GAAAF,IAAA,CAAAG,aAAA,CAAAC,IAAA,CAAAJ,IAAA;EAEXA,IAAA,CAAAG,aAAI,GAEO,UAAAE,QAAA,EAAAC,eAAA,EAAAC,OAAA;IACX,IAAA7G,OAAO,GAAAoG,OAAA,CAAA/C,GAAA,CAAAsD,QAAqB;IAC1B,OAAA3G,OAAM,KAAO,KAAK,IAAA0E,EAAA,CAAAoC,gBAAA,CAAAH,QAAA,EAAA3G,OAAA,EAAA4G,eAAA,QAAAJ,qBAAA,CAAAG,QAAA,EAAAC,eAAA,EAAAC,OAAA;EAClB,GAAAP,IAAA,CAAAvB,UAAO,aAAgB4B,QAAS,EAAG;IACnB,OAElBP,OAAc,CAAAjD,GAAA,CAAAwD,QAAA,KAAAjC,EAAoB,CAAAI,GAAI,CAAAC,UACpC,CAAA4B,QAAc;EAGhB,GAAAL,IAAA,CAAAP,QAAK,aAAiBY,QAAA,EAAS;IAC/B,IAAAI,YAAM;IACN,QAAIA,YAAW,GAAAX,OAAA,CAAA/C,GAAA,CAAAsD,QAAA,eAAAI,YAAA,cAAAA,YAAA,GAAArC,EAAA,CAAAI,GAAA,CAAAiB,QAAA,CAAAY,QAAA;EAEf;EACA,IAAAK,OAAI,GAAAtC,EAAA,CAAAuC,aACO,CAAItC,KAAA,CAAMpE,GAAA,WAAQ2G,EAAA;MAAA,OAE/BA,EAAA,CAAAb,IAAA;IACF,CAAC,GAEMrB,eAAA,EAAAsB,IAAA;IAAAa,OAAA,GAAAH,OAAA,CAAAI,cAAA;EACT;IAUAJ,OAAS;IAUPG,OAAI;IAcJ;IATEE,WADQA,CAAAC,IAAA;MAER,IAAM;QACD,OAASH,OAAG,CAAAI,mBAAsB,CAAID,IAAA,CACvC;MAMF,CAAC;QACH,OAAO;MACL;IAAmC;IAC1B;IACCE,aACVA,CAAAC,IAAc;MACd,OAAAC,eAAS,CAAAhD,EAAA,EAAAyC,OAAA,EAAAM,IAAA;IACX;EAIF;AAOA;AAEA,SAASE,gBAAgBA,CAAGjD,EAAA,EAAAkD,QAAA,EAAAxF,UAAA,EAA0ByF,UAAQ,EAC5DC,UAAA;EAMF,IAAAC,MAAM,OAAyC;EAG3C,OAAArD,EAAA,CAAAsD,YAEF,CAAA5F,UAAqB,YAAIkF,IAAY;IAIvC,IAAMW,eAA+B;IAErC,IAAI,CAAAF,MAAA,IAAArD,EAAA,CAAAwD,mBAAA,CAAAZ,IAAA,QAAAW,eAAA,GAAAX,IAAA,CAAAa,SAAA,cAAAF,eAAA,gBAAAA,eAAA,CAAAG,IAAA,WAAAC,CAAA;MACF,OAAAA,CAAA,CAAWC,IAAA,KAAQ5D,EAAA,CAAA6D,UAAY,CAAAC,aAAY;IACzC;MAEA,IAAAC,IAAM,GAAAnB,IAAO,CAAAoB,eAAW,CAAQC,YAAU;MAC1C,IAAI,EAAC,CAAAF,IAAM,KAAA/D,EAAA,CAAAkE,qBAAA,CAAAH,IAAA,MAAAA,IAAA,CAAA9H,IAAA,CAAAkI,OAAA,CAAAzG,UAAA,MAAAyF,UAAA,IAAAY,IAAA,CAAAK,WAAA,IAAApE,EAAA,CAAAqE,eAAA,CAAAN,IAAA,CAAAK,WAAA;QAGX,IAAIE,KAAA,GAEOP,IAAA,CAAAK,WAAA,CAAAG,UAAA,CAAAnB,UAAA;QAEXkB,KAAO,EAAAvB,IAAA,KAAAM,MAAA,GAAAH,QAA4B,CAAAP,WAAA,CAAA2B,KAAA,CAAAvB,IAAA;MACjC;IACA;EACgB,IAElBM,MAAO;AAIP;AAGA,SAAAmB,yBAAuBA,CAAAxE,EAAA,EAAAkD,QAAA,EAAAxF,UAAA;EACrB,IAAA+G,QAAA,GAAO,eAAa,IAAA3G,GAAW;EAC/B,OAAAkC,EAAA,CAAAsD,YAAA,CAAA5F,UAAA,YAAAkF,IAAA;IAAA,IACFW,eAAA;IAGA,IAAAvD,EAAA,CAAAwD,mBADoB,CAAOZ,IACG,KAAM,GAAAW,eAAkB,GAAAX,IAAK,CAAAa,SAAA,cAAAF,eAAA,gBAAAA,eAAA,CAAAG,IAAA,WAAAC,CAAA;MAE3D,OAAIA,CAAA,CAAAC,IAAA,KAAc5D,EAAA,CAAA6D,UAAW,CAAAC,aAAA;IAC3B;MACA,IAAAC,IAAA,GAAAnB,IAAA,CAAAoB,eAAA,CAAAC,YAAA;MACF,OAAAF,IAAA,KAAA/D,EAAA,CAAAkE,qBAAA,CAAAH,IAAA,MAAAA,IAAA,CAAA9H,IAAA,CAAAkI,OAAA,CAAAzG,UAAA,qBAAAqG,IAAA,CAAAK,WAAA,KAAApE,EAAA,CAAA0E,gBAAA,CAAAX,IAAA,CAAAK,WAAA;QAEA,KAAI,IAAAO,IAAA,GAAcZ,IAAA,CAAAK,WAAc,CAAAQ,SAAS,EAAAC,WAAA,SAAAhF,CAAA,GAAA8E,IAAA,CAAAG,MAAA,MAAAjF,CAAA,OAAAA,CAAA,IAGrC,IAACG,EAAA,CAAA+E,yBAAe,CAAiBJ,IAAA,CAAA9E,CAAA;UACnCgF,WAAM,GAAAF,IAAe,CAAA9E,CAAA;UACjB;QAGN;QAEA,IAAAgF,WAAY;UACV,IAAA9G,yBAAA;YAAAC,iBAAA;YAAAC,cAAA;UACA;YACA,SAAaC,SAAA,GAAA2G,WAAe,CAAAG,UAAA,CAAA7G,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;cAC7B,IAAAkH,IAAA,GAAA5G,KAAA,CAAAG,KAAA;gBAAA0G,UAAA;cACH,OAAAlF,EAAA,CAAAmF,oBAAA,CAAAF,IAAA,MAAAjF,EAAA,CAAAoF,mBAAA,CAAAH,IAAA;gBAGK,IAAAhJ,IAAA,IAAAiJ,UAAA,GAAAD,IAAA,CAAAhJ,IAAA,cAAAiJ,UAAA,uBAAAA,UAAA,CAAAf,OAAA,CAAAzG,UAAA;gBACM,IAAAzB,IAAA;kBACX,IAAAwD,MAAA;kBACA,IAAAO,EAAA,CAAAmF,oBAAA,CAAAF,IAAA;oBACA,IAAAI,IAAA,GAAAJ,IAAA,CAAAb,WAAA;oBACA,CAAApE,EAAA,CAAAqE,eAAA,CAAAgB,IAAA,KAAArF,EAAA,CAAAsF,oBAAA,CAAAD,IAAA,OAAA5F,MAAA,GAAA4F,IAAA,CAAAd,UAAA;kBACF,OAAAvE,EAAA,CAAAoF,mBAAA,CAAAH,IAAA,MAAAxF,MAAA,GAAAwF,IAAA,CAAAV,UAAA;kBACF,OAAA9E,MAAA,IAAAA,MAAA,CAAAqF,MAAA;oBAES,IAAAS,QACP,GACA9F,MAAA,IAAAsD,IACA;oBAIe,IAAiCwC,QAAA;sBACvC,IAAAC,QAAqB,GAAGtC,QAAA,CAAAP,WAAA,CAAA4C,QAAA;sBAChBC,QAAK,IAAAf,QAAW,CAAQ/F,GAAA,CAAAzC,IAAA,EAAUuJ,QAAA;oBAGtC;kBACP;gBACS;cAOP;YACF;UACA,EAAI,OAAG3G,GAAA;YACLb,iBAAmB,IAAI,GAAAC,cAAY,GAAAY,GAAA;UACjC,UAAQ;YACR;cACA,CAAAd,yBAAc,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;YAEd,UAAM;cAEN,IAAAd,iBAAmB,EACrB,MAAAC,cAAA;YAEJ;UACF;QACG;MACL;IACA;EACF,IAAAwG,QAAA;AAEA;AACE,SAAMgB,yBAAoBA,CAAAzF,EAAS,EAAAtC,UAAA,EAAapC,OAAA,EAAA2G,QAAA,EAAAyD,MAAA,EAAA5C,aAAA,EAAA6C,aAAA,EAAAC,qBAAA;EAChD,IAAIC,UAA6B;EAEjC,IAAA7F,EAAA,CAAIsD,YAAS,CAAA5F,UAAW,YAAYkF,IAAA,EAAO;IAM7C,IAAAW,eAAA;IAEA,IAAAvD,EAAS,CAAAwD,mBAAoB,CAAAZ,IAA2B,QAAAW,eAAA,GAAAX,IAAA,CAAAa,SAAA,cAAAF,eAAA,gBAAAA,eAAA,CAAAG,IAAA,WAAAC,CAAA;MAClD,OAAOA,CAAA,CAAAC,IAAA,KAAA5D,EAAA,CAAA6D,UAAA,CAAAC,aAAA;IACX;MACE,IAAKC,IAAA,GAAAnB,IAAA,CAAAoB,eAAA,CAAAC,YAAA;MACH,CAAAF,IAAA,IAAO,CAAA/D,EAAA,CAAAkE,qBAAA,CAAAH,IAAA,KAAAA,IAAA,CAAA9H,IAAA,CAAAkI,OAAA,CAAAzG,UAAA,kBAAAqG,IAAA,CAAAK,WAAA,IAAApE,EAAA,CAAA0E,gBAAA,CAAAX,IAAA,CAAAK,WAAA,MAAAyB,UAAA,GAAA9B,IAAA,CAAAK,WAAA;IACP;EAAA,EACF,GAAAyB,UAAK,EACH;IACAC,SAAA,EAAA/L,QAAA,CAAAkI,QAAA;IACF8D,OAAK;IACHC,OAAO;IACPC,WAAA;IACFC,MAAK;EACH;EACA,IAAAC,IAAA,GAAAN,UAAA;IAAAlB,IAAA,GAAAwB,IAAA,CAAAvB,SAAA;IAAAmB,OAAA,GAAApB,IAAA,CAAAG,MAAA;IAAAD,WAAA;EAAAF,IACF,CAAAG,MAAK,UAAA9E,EAAA,CAAA+E,yBAAA,CAAAJ,IAAA,OAAAE,WAAA,GAAAF,IAAA,MAAAA,IAAA,CAAAG,MAAA,UAAA9E,EAAA,CAAA+E,yBAAA,CAAAJ,IAAA,SAAAE,WAAA,GAAAF,IAAA;EACH,IAAAqB,OAAO;IAAAC,WAAA;EACPF,OAAA,IAAAK,oBAAA,CAAApG,EAAA,EAAAtC,UAAA,EAAAsI,OAAA,EAAAC,WAAA;EACJ,IAAAC,MAAA;EACA,IAAArB,WAAW;IACb,IAAA9G,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IAEA;MAGE,KAAO,IAAKC,SAAA,GAAW2G,WAAK,CAAAG,UAAA,CAAA7G,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAC9B,IAAAkH,IAAA,GAAA5G,KAAA,CAAAG,KAAA;UAAA0G,UAAA;UAAAmB,iBAAA;QAEA,IAAS,GAAArG,EAAA,CAAAmF,oBAAsC,CAAAF,IAAA,MAAAjF,EAAA,CAAAoF,mBAAA,CAAAH,IAAA;UACtC,IAAAhJ,IAAA,IAAAiJ,UAAqB,GAAKD,IAAI,CAAAhJ,IAAI,MAAO,QAAKiJ,UAAU,KAAI,kBAAAA,UAAA,CAAAf,OAAA,CAAAzG,UAAA;UACrE,IAAAzB,IAAA;YAES,IAAAwD,MAAA;YAKD,IAAAO,EAAoB,CAACmF,oBAAA,CAAAF,IAAA;cAEvB,IAASI,IAAA,GAAAJ,IAAA,CAAAb,WAAA;cAEX,CAAWpE,EAAA,CAAAqE,eAAM,CAAagB,IAAA,KAAArF,EAAA,CAAAsF,oBAAA,CAAAD,IAAA,OAAA5F,MAAA,GAAA4F,IAAA,CAAAd,UAAA;YACtB,OAAMvE,EAAA,CAAAoF,mBAAU,CAAAH,IAAA,MAAAxF,MAAA,GAAAwF,IAAA,CAAAV,UAAA;YAClB,IACF9E,MAAQ;cACH,IAAAA,MAAA,CAAAqF,MAAmB,IAAK;gBAC7BoB,MAAA,CAAAtH,IAAA;kBACJ3C,IAAA;kBACSqK,SAAS;kBAEN/G,WAAS,EAAK;gBACX,EAAY;gBAGlB;cAGL;cACK,IAAAgH,WAAgB,GAAK9G,MAAK;gBAAA6G,SAAA,KAAoBD,iBAAU,GAAUE,WAAO,CAAAxD,IAAA,cAAAsD,iBAAA,uBAAAA,iBAAA,CAAAlC,OAAA,CAAAzG,UAAA;cAC9E,IAAA4I,SAAA;gBAAAJ,MAAA,CAAAtH,IAAA;kBAKQ3C,IAAM;kBACRqK,SAAQ,WAAgB;kBAI7B/G,WAAA;gBAA2B;gBAAe;cAAA;cACnD,IAAAA,WAAA,GAAAuD,aAAA,CAAAwD,SAAA;cAES,KAAA/G,WAAA,IAAAoG,aAA4B,IAAAC,qBAAkC;gBAkD9D,IAAAY,YAAA,GAAAb,aAAA,CAAAhH,GAAA,CAAA1C,IAAA;gBAAAuK,YAAA,KAAAjH,WAAA,GAAAqG,qBAAA,CAAAY,YAAA;cAAA;cAAAN,MAAA,CAAAtH,IAAA;gBAAA3C,IAAA;gBAjDYqK,SAAgB;gBAC/B/G,WAAU,EAAAA,WAAc,IAAE;cAItB;YACE;UAGF;QACF;MAGE;IAEE,SAAAV,GAAM;MACNb,iBAAc,OAAAC,cACJ,GAAAY,GAAA;IAAA,UACN;MAA+D,IACjE;QAGQ,CAAAd,yBACU,IAAAG,SAAA,CAAAY,MAAuB,IAAM,QAASZ,SAAM,CAAAY,MAAA;MAAkB,UAChF;QAEJ,IAAAd,iBAAA,EACE,MAAAC,cAAQ;MAAA;IACwE;EAOtF;EACE;IAEA6H,SAAI,IAAI;IACNC,OAAA;IACAC,OAAA;IAAAC,WACF;IACAC;EAA6E;AAG/E;AAA2B,SAAQE,oBAAaA,CAAApG,EAAA,EAAAtC,UAAA,EAAAsI,OAAA,EAAAC,WAAA;EAAK,SAAAQ,MAAA7D,IAAA;IAAA,IAAA5C,EAAA,CAAA0E,gBAAA,CAAA9B,IAAA;MAEtD,IAAK8D,IAAA,GAAA9D,IAAA,CAAA+D,UAAA,CAAAxC,OAAA,CAAAzG,UAAA;MAOC,IAAAgJ,IAAA,CAAAE,QAAA;QAAA,IAAA7I,yBAAA;UAAAC,iBAAA;UAAAC,cAAA;QAAA;UAGX,SAAAC,SAAA,GAAA0E,IAAA,CAAAgC,SAAA,CAAAzG,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;YAGS,IAAA8I,GAAA,GAAAxI,KAAA,CAAAG,KAAA;YACAwB,EAAA,CAAA8G,eAAiB,CAAKD,GAAA,KAAAZ,WAAA,CAAArH,IAAA,CAAAiI,GAAA,CAAAH,IAAA;UAC/B;QAKA,CAAS,QAAA7H,GAAA;UACPb,iBAGI,OAAAC,cAAmB,GAAAY,GAAO;QAC1B,UAAS;UACT;YACA,CAAAd,yBAA4B,IAAAG,SAAa,CAAAY,MAAO,YAAAZ,SAAA,CAAAY,MAAA;UAChD,UAAS;YACT,IAASd,iBAAkB,EAGtB,MAAAC,cAAmB;UACpB;QACF;MAEJ;MAEA,IAAAyI,IAAA,CAAWE,QAAQ,WAAW,KAAAhE,IAAS,CAAAgC,SAAG,CAAAE,MAAA;QACxC,IAAMiC,GAAA,GAAAnE,IAAU,CAAAgC,SAAU,EAAE;QAC5B,IAAK5E,EAAA,CAAA+E,yBAAS,CAAAgC,GAAA;UACd,IAAMC,0BAAsB;YAAAC,kBAAA;YAAsCC,eAAA;UAC9D,IAAC;YACC,KAAG,IAAMC,UAAK,GAAOJ,GAAI,CAAA/B,UACzB,CAAA7G,MAAS,CAAAC,QAAA,KAAgBgJ,MAAA,EAAS,EAAAJ,0BAAM,IAAAI,MAAA,GAAAD,UAAA,CAAA7I,IAAA,IAAAC,IAAA,GAAAyI,0BAAA;cACzC,IAAQ/B,IAAA,GAAAmC,MAAO,CAAA5I,KAAA;gBAAA0G,UAAA;cAChB,IAAMlF,EAAA,CAAAmF,oBAAA,CAAAF,IAAA;gBACD,IAAMoC,OAAA,IAAAnC,UAAiB,GAChCD,IAAA,CAAAhJ,IAAQ,MAAQ,QAAAiJ,UAAgB,KAAK,KAAK,CAAG,GAAE,SAAAA,UAAA,CAAAf,OAAA,CAAAzG,UAAA;gBACjD,IAAA2J,OAAA;kBACI,IAAQC,QAAW,GAAArC,IAAU,CAAAb,WAAA,CAAAD,OAC1B,CAAAzG,UAAA;oBAAA6J,OAAA,GAAAC,eAAA,CAAAF,QAAA;kBAA2BtB,OAAK,CAAAqB,OAAA,IAAAE,OAAA;gBAAU;cAAA;YACnD;UAGI,CAAK,QAAA1I,GAAS,EAAI;YACdoI,kBAAQ,IAAgB,GAAAC,eAAkB,GAAArI,GAAM;UACtD,CAAO,SAAQ;YACjB;cAGO,CAAAmI,0BAAA,IAAAG,UAAA,CAAArI,MAAA,YAAAqI,UAAA,CAAArI,MAAA;YACT;cAGS,IAAAmI,kBAEP,EAMW,MAAOC,eAAA;YACZ;UACF;QACE;MACJ;IACF;IAEAlH,EAAA,CAAAsD,YAAiB,CAAAV,IAAA,EAAiC6D,KAAA;EAGlD;EACAA,KAAI,CAAA/I,UAAW;AACf;AACA,SAAI8J,eAAWA,CAAAF,QAAU,EAAQ;EACjC,IAAIG,QAAQ,GAAGH,QAAA,CAAAI,QAAgB,cAAO;IAAA3E,IAAA;EACtC,OAAIuE,QAAW,CAAAK,UAAU,UAAO,IAAQ5E,IAAG,WAAU,GAAAuE,QAAS,CAAAK,UAAO,eAAA5E,IAAA,eAAAuE,QAAA,CAAAK,UAAA,aAAAL,QAAA,CAAAK,UAAA,YAAA5E,IAAA,YAAAuE,QAAA,CAAAK,UAAA,qBAAA5E,IAAA;IACrEA,IAAI;IAGJ0E,QAAI;IACFG,UAAO;EAET;AACE;AAEF,SAAIC,mBAAqBA,CAAAC,GAAA;EAEvB,IAAAC,IAAA,GAAO,YADO;EAKhB,QAAID,GAAK,CAAA/E,IAAA;IACP,aAAM;MAGJgF,IAAC,GAAM,YAAW;MACpB;IACqB,KAClB,QAEK;MAGRA,IAAA;MACA;IAIE,cAAI;MACJA,IAAA,GAAI,aAAS;MAGf;IAEA,KAAI,MAAK;MAETA,IAAI,gBACG;MAIP;IAGF;MAGAA,IAAM;MASF;EACF;EACA,OAAID,GAAA,CAAAL,QAAM,4BAAqBM,IAAA,OAAAA,IAAA;AAC/B;AACA,SAAAC,mBAAmBA,CAAA/L,IAAO;EACxB,OAAAA,IAAM,CAAA0L,UAAY;AAClB;AACA,SAAAM,eAAiBA,CAAAhM,IAAA;EAEjB,2BAAkB,CAAAiM,IAAQ,CAAAjM,IAAA,IAAAA,IAAA,GAAAjB,IAAA,CAAAG,SAAA,CAAAc,IAAA;AAC1B;AAG+C,SACjDkM,uBAAAnC,OAAA,EAAAC,WAAA,EAAAmC,IAAA;EACA,IAAAC,OAAI;EACG,IAAmBD,IAAA,KAAQ,QAAK;IAAA,IAAUrK,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IAAA;MACnD,SAAAC,SAAA,GAAA+H,WAAA,CAAA9H,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAGM,IAAAuK,EAAA,GAAQjK,KAAK,CAAAG,KAAA;UAAAsJ,GAAA,GAAc9B,OAAA,CAAAsC,EAAA;QAE/BR,GAAA,IAAMO,OAAS,CAAAzJ,IACd,IAAAqJ,eAAkB,CAAAK,EAAG,MAAAT,mBAAkC;UAElD,GAAAC,GAAA;UAGFL,QAAA;QACF,IAAM;MAGN;IAIE,SAAA5I,GAAO;MAEXb,iBAAA,OAAAC,cAAA,GAAAY,GAAA;IAGA,UAAI;MAGF;QAIF,CAAAd,yBAA2B,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;MAC3B,UAAW;QACT,IAAMd,iBAAY,EACd,MAAAC,cAAoB;MACxB;IAEA;EACA,OAAI,IAAAmK,IAAA,KAAe,QAAI;IAIzB,IAAApB,0BAAA;MAAAC,kBAAA;MAAAC,eAAA;IACA;MAC0B,SAAQC,UAAK,GAAAoB,MAAA,CAAAF,OAAA,CAAArC,OAAA,EAAA7H,MAAA,CAAAC,QAAA,KAAAgJ,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAA7I,IAAA,IAAAC,IAAA,GAAAyI,0BAAA;QAAU,KAAA/K,IAAA,EAAAuM,IAAA,IAAApB,MAAA,CAAA5I,KAAA;UAAAiK,IAAA,GAAAxC,WAAA,CAAAyB,QAAA,CAAAzL,IAAA;QAAAwM,IAAA,GAAAJ,OAAA,CAAAzJ,IAAA,IAAAqJ,eAAA,CAAAhM,IAAA,MAAA4L,mBAAA;UACnD,GAAAW,IAAA;UAGMf,QAAA;QACF,QAAAY,OAAA,CAAAzJ,IAAA,IAAAqJ,eAAA,CAAAhM,IAAA,MAAA4L,mBAAA;UACF,GAAOW,IAAA;UAEHf,QAAA;QACN,CAAI;MAKN;IAwCA,SAAS5I,GAAA;MASHoI,kBAPE,KAAS,EAAAC,eACT,GAAArI,GACA;IAMN,UAAQ;MAOV;QAQO,CAASmI,0BAA0B,IAAAG,UAAmC,CAAArI,MAAA,YAAAqI,UAAA,CAAArI,MAAA;MAC3E,UAAwB;QACtB,IAAAmI,kBAAA,EACA,MAAAC,eAAA;MACA;IACF;EAKA;IACE,IAAAwB,0BAAwB,GAAS;MAC3BC,kBAAa,GAAO;MAAAC,eACvB,GAAK,KAAC;IAEH;MAEN,KAAM,IAAKC,UAAS,GAAAN,MAAS,CAAAF,OAAA,CAAArC,OAAA,CAAkB,CAAA7H,MAAM,CAAAC,QACrD,GAAM,EAAA0K,MAAK,IAAAJ,0BACA,IAAAI,MACX,GAAAD,UAAW,CAAAvK,IACX,IAAAC,IAAM,GAAKmK,0BAA0B,GACrC;QACF,KAAAK,KAAA,EAAAC,IAAA,IAAAF,MAAA,CAAAtK,KAAA;QAGM6J,OAAA,CAAAzJ,IAAA,IAAgBqJ,eAAY,CAAAc,KAAO,MAAAlB,mBAAoB,CAAAmB,IAAA;MAC7D;IACE,SAAMnK,GAAA,EAAO;MAEb8J,kBAAe,OAAWC,eAAG,GAAA/J,GAAA;IAE7B,UAAM;MAGF,IAAI;QACF,CAAA6J,0BACW,IAAIG,UAAA,CAAA/J,MAAgB,QAAQ,IAAA+J,UACjC,CAAA/J,MAAK,EAAI;MAEf,UAAO;QAAqB,IAAA6J,kBAA6B,QAAAC,eAA6B;MAAU;IAA+B;EAAA;EAGjI;AAEI,MAAAP,OAAA,CAAMlM,IAAA,CAAK;AAGX;AAA0F;AAG9F;AAAkC,SAEnC8M,2BAAKA,CAAAC,cAAA;EAAK,IAAAC,MAAA,IAEb,GAAAD,cAAM,EAAAnN,IACJ,WAASM,CAAA,EAAAC,CAAA,EAAS;MACpB,OACAD,CAAA,CAAMyJ,SAAK,CAAAvJ,aACL,CAAAD,CAAA,CAAKwJ,SACX;IACF;IAAAsD,SAAA,GAAAD,MAAA,CAAAtN,GAAA,WAAAwN,KAAA;MAGA,IAAMhB,OAAA,KAAY;MACZ,IAAAgB,KAAA,CAAUtD,OAAA,IAAAwC,MACb,CAAAtJ,IAAQ,CAAAoK,KAAM,CAAArD,OAAO,EAAAlB,MAAK,GAAO,GAExB,SAAAwE,KAAA,YAAAA,CAAAC,GAAA,EAAAC,MAAA;UAEZ,IAAApB,IAAM,GAAAoB,MAAK,CAAAD,GAAA;YAAAE,iBAAA,GAAAJ,KAAA,CAAsCnD,MACjD,CAAAxC,IAAM,WAAKC,CAAA;cASW,OAAAA,CAAA,CAAA1H,IAAA,KAAAmM,IAAA;YACxB;UAwBA,IAAAqB,iBAA+B;YACrB,IAAAC,SAAY,GAAAL,KAAO,CAAAnD,MAAI,CAAAyD,IACzB,WAAUhG,CAAA;cASX,OAAWA,CAAA,CAAA1H,IAAY,KAC1BmM,IAAA;YAKI;YAIwCsB,SAC5C,CAAAnK,WAAa,GAAQ8I,OAAA,CAAAzJ,IAAY,CAAG,OAAOwJ,IAAE,KAAAwB,wBAAS,CAAAF,SAA8B,CAAAnK,WAAA,QAAA8I,OAAA,CAAAzJ,IAAA,QAAAwJ,IAAA,KAAAD,sBAAA,CAAAkB,KAAA,CAAArD,OAAA,EAAAqD,KAAA,CAAApD,WAAA,EAAAmC,IAAA;UACtF,OAyBIC,OAAA,CAAAzJ,IAvBiB,QAAAwJ,IAAA,KAAAD,sBAAA,CAAAkB,KAAA,CAAArD,OAAA,EAAAqD,KAAA,CAAApD,WAAA,EAAAmC,IAAA;QACnB,GAAAyB,EAAA,MAAAC,KAAA,IACE,QAAQ,EACR,UACF,WAAAD,EAAA,GAAAC,KAAA,CAAAhF,MAAA,EAAA+E,EAAA,IAAAP,KAAA,CAAAO,EAAA,EAAAC,KAAA;MAAA,IAAA/L,yBAAA;QAAAC,iBAAA;QAAAC,cAAA;MAAA;QAIA,KAAI,IAAAC,SAAgB,GAAAmL,KAAS,CAAAnD,MACzB,CAAA/H,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;UACE,IAAAgM,GAAA,GAAA1L,KAAA,CAAAG,KAAA;UACE,MAAA6K,KAAQ,CAAAtD,OAAA,IAAc,CACtB,UACF,UACA,UACE,QAAQ,CACR,CAAA2B,QAAA,CAAAqC,GAAA,CAAA9N,IAAmB;YACrB,IAAA8N,GAAA,CAAAzD,SAAA,gBAAAyD,GAAA,CAAAxK,WAAA;cAED8I,OAAA,CAAAzJ,IAAA,QAAAmL,GAAA,CAAA9N,IAAA;cACL;YAG8B;YAK1BoM,OAAK,CAAAzJ,IAAM,QAAOmL,GAAA,CAAA9N,IAAY,KAK9B2N,wBAAiB,CAAAG,GAAA,CAAqCxK,WAAA;UACtD;QACF;MACF,SAAQV,GAAA;QACNb,iBAAO,OAAAC,cAAA,GAAAY,GAAA;MACT;QACF;UAGI,CAAAd,yBAAwB,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;QAC1B,UAAM;UAUF,IAAAd,iBAA8D,EAC5D,MAAAC,cAAmB;QACvB;MACE;MAEe,OACX,KAAMoL,KAAA,CAAAvD,SAAQ;AAAa,EAAAuC,OAAA,CAC3BlM,IAAA;AAAqD;AAEzD;IAA2D,GAAAA,IAC7D;AACA;EAAO,OACT;AAEA;AACE;AAGA;AACE;AACsB,EAAAiN,SACpB;AAAA;AACA;AACgB;AAChB,SACFQ,yBAAArK,WAAA;EAEA,OAAAA,WAAG,CAAAC,IAAa,mBAAa;AAC3B;AAIE,SAAAwK,eAH4BA,CAAAjH,IAAA;EAAW,IAAAA,IAAA,GAAAA,IACpC,CAAAvD,IAAM,CAAE,GAAAuD,IAAA,KAAY,iBAAW;EAAA,IAAAA,IAAA,KAEb;EAErB,IAAAA,IAAA,cAAM,SAAc,aAAK;EACzB,IAAAA,IAAA,WAAK,IAAAA,IAAA,KAAgB,WAAG,oBAAsB;EAE9C,IAAAA,IAAA,WAAM,SAAO,WAAY;EACzB,IAAAA,IAAA,UAAI,IAAAA,IAAS,cAAc;EAE3B,IAAAA,IAAA,CAAA4E,UAAI,SAAY5E,IAAA,CAAA6D,QAAe,IAAG;IAChC,IAAAqD,KAAA,GAAAlH,IAAM,CAAAhG,KAAA,IAAS,IAAAyC,IAAA;IACf,KAAAyK,KAAA,SAAI,cAAY;IAEhB,IAAAC,UAAI,GAAOD,KAAA,CAAAE,OAAS,MAElB,QADcA,OAAO,CAAC,QACE;MAAQ9B,OAAA,GAAU;MAAAtK,yBAAK;MAAAC,iBAAA;MAAAC,cAAA;IAGjD;MAGA,SAAAC,SAAK,GAAAgM,UAAe,CAAAvK,KAAO,MAAAxB,MAAc,CAAAC,QAAQ,CAAG,IAAAC,KAAM,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QACxD,IAAAqM,IAAA,GAAA/L,KAAM,CAAAG,KAAA;UAAA6L,OAAW,GAAAD,IAAA,CAAA5K,IAAiB,EAC5B,CAAA2K,OAAA,aAAqB;QAC3B,IAAAE,OAAA,EAAI;UACF,IAAAC,KAAA,GAAAD,OAAM,CAAAC,KAAA,uCAAe;UAAA,IAAAA,KAAA,EACnB;YAAA,OAAArO,IACA,EAAAsO,GAAA,EAAAC,OAAA,IAAAF,KAAA;cAAA/I,MAAA,GAAAyI,eAAA,CAAAQ,OAAA,CAAAhL,IAAA;YAAA,KAAA+B,MACA;YAAA,IAAAkJ,GAAA,GACAlJ,MAAA;YAAAgJ,GAAA,KACAE,GAAA,iBAAAA,GAAA,MAAApC,OAAA,CAAAzJ,IAAA,IAAAqJ,eAAA,CAAAhM,IAAA,MAAAwO,GAAA;UAAA;QAEF;MACmD;IAErD,SAAA5L,GACF;MAEAb,iBAAI,KACF,EAAAC,cAAgB,GAAAY,GAAA;IAAA;MACd;QACQ,CAAAd,yBACR,IAAAG,SAAA,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;MAAA,UACA;QAAY,IAAAd,iBAEJ,EACsD,MAEpEC,cAAA;MAAA;IACF;IACD,OACHoK,OAAS,CAAAvD,MAAK;AACZ,MAAAuD,OAAK,CAAAlM,IAAQ;AAA8C,MAC7D;AAAA,KACF;EAEA;EAEA,IAAA4G,IAAM,CAAA6D,QAAA,QAAiB;IAAA,IACrB8D,MAAQ,GAAAV,eAAc,CAAAjH,IAAA,CAAAhG,KAAA,IAAmB,IAAAyC,IAAA;IAAA,OACzCkL,MAAA,cAAAA,MAA2B,MAAU;EAAA;EAEjB,OACpB;AAAwC;AACJ,SACtC1H,gBAAAhD,EAAA,EAAAyC,OAAA,EAAAM,IAAA,EAAA4H,IAAA;EAEAA,IAAI,KAAAA,IAAA,kBAAgB,IAChBnN,GAAA;EACN,IAAAoN,KAAA,GAAA7H,IAAA,CAAA8H,QAAA;EAGA,IAAAD,KAAM,IAAA5K,EAAA,CAAA8K,SAAA,CAAsCvC,MAGtC,GAAAvI,EAAA,CAAA8K,SAA6E,CAAAC,YAC7E;IAEN,IAAAJ,IAAA,CAAWlM,GAAA,CAAAsE,IAAQ,uBAAe;IAChC4H,IAAA,CAAAK,GAAM,CAAAjI,IAAA;EAGN;EACE,IAAAkI,OAAM,YAAAA,CAAUC,CAAA;IAEhB,OAAAlI,eAAmB,CAAEhD,EAAA,EAAAyC,OAAM,EAAAyI,CAAA,EAAUP,IAAA;EAErC;EAAsB,IAAAC,KACpB,GAAA5K,EAAA,CAAA8K,SAAA,CAAAK,MAAA;EAAA,IAAAP,KACA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAM,MAAA;EAAA,IAAAR,KACG,GAAA5K,EAAA,CAAA8K,SAAa,CAAAO,OAAA;EAAA,IAAAT,KAChB,GAAA5K,EAAA,CAAA8K,SAAA,CAAAQ,IAAA,IAAAV,KAAA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAS,SAAA;EAAA,IACFX,KACM,GAAA5K,EAAA,CAAA8K,SAAS,CAAAU,IAAA;EAAA,IAAAZ,KACb,GAAA5K,EAAA,CAAA8K,SAAA,CAAAW,GAAA,IAAAb,KAAA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAY,OAAA;EAAA,IAAAd,KACA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAa,KAAA;EAAA,IAAAf,KACA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAc,aAAA,SACA,aAAA5Q,IAAA,CAAAG,SAAA,CAAA4H,IAAA,CAAAvE,KAAA;EAAA,IAAAoM,KACE,GAAA5K,EAAA,CAAA8K,SAAA,CAAAe,aAAA,SACF,aAAA9I,IAAA,CAAAvE,KAAA;EAAA,IACFoM,KAAA,GAAA5K,EAAA,CAAA8K,SAAA,CAAAgB,cAAA;IAEA,IAAI7P,IAAA,GAAA8G,IACF,CAAAgJ,aAAO;IAI6B,OACjC,aAAQ9P,IAAA,KAAc,SAAU;EAAgC;EAGP,IAGhE8G,IAAA,CAAAiJ,OAAc;IACZ,IAAKC,OAAA,GAAQlJ,IAAA,CAAAmJ,KAAQ;MAAMC,OAAA,GAAAF,OAAA,CAAAvI,IAAA,WAAAwH,CAAA,EAAmC;QAChE,OAAAA,CAAA,CAAAL,QAAA,KAAA7K,EAAA,CAAA8K,SAAA,CAAAU,IAAA;MACF;MAAAY,YAAA,GAAAH,OAAA,CAAAvI,IAAA,WAAAwH,CAAA;QAGI,OAAAA,CAAA,CAAAL,QAAiB,MAAA7K,EAAA,CAAS8K,SAAG,CAAAS,SAAA,GAAAvL,EAAA,CAAA8K,SAAA,CAAAQ,IAAA;MAG/B;MAAAe,IAAM,GAAAJ,OAAA,CAAAK,MAAkB,WAA0DpB,CAAA;QAChF,OAAM,EAAAA,CAAA,CAAAL,QAAqD,MAAA7K,EAAA,CAAA8K,SAAA,CAAAU,IAAA,GAAAxL,EAAA,CAAA8K,SAAA,CAAAS,SAAA,GAAAvL,EAAA,CAAA8K,SAAA,CAAAQ,IAAA;MAC3D;IACE,IAAAe,IAAA,CAAAvH,MAAM,MAAW,IAAAuH,IAAQ,CAAAE,KAAK,WAAUrB,CAAA;MACxC,OAAIA,CAAM,CAAAL,QAAA,KAAY7K,EAAA,CAAK8K,SAAM,CAAAgB,cAAS;IAOiC,EAE7E;MACA,IAAA7B,KAAO;MACT,OACMkC,OAAW,KAAAlC,KAAA,GAAe,cAC1BA,KAAA,MAAAmC,YAAgB,KAAAnC,KAAmB,GAAI,cAAUA,KAAO,MAAAA,KAAA;IAE9D;IACE,IAAAoC,IAAM,CAAAvH,MAAA,eAAqB,aAAc;IACzC,IAAA4F,MAAK,GAAA2B,IAAA,CAAAvH,MAAA,KAAoB,IAAAmG,OAAA,CAAAoB,IAAA,mBAAAA,IAAA,CAAAxQ,GAAA,WAAAqP,CAAA;MAEzB,OAAMD,OAAA,CAAAC,CAAA;IAAgB,GAAA/O,IACpB;IAAA,OACAgQ,OAAA,KAAAzB,MAAA,iBAAAA,MAAA,MAAA0B,YAAA,KAAA1B,MAAA,iBAAAA,MAAA,MAAAA,MAAA;EAAA;EACA,IACF8B,iBAAA,YAAAA,CAAAC,KAAA;IACA,IAAAC,kBAAkB;IAGlB,OAAAD,KAAM,CAAAE,gBAAU,GAAalK,OAAA,CAAAmK,yBACV,CAAAH,KAAG,EAAAA,KAAA,CAAAE,gBAAA,OAAAD,kBAAA,GAAAD,KAAA,CAAAxI,YAAA,cAAAyI,kBAAA,gBAAAA,kBAAA,MAAAjK,OAAA,CAAAmK,yBAAA,CAAAH,KAAA,EAAAA,KAAA,CAAAxI,YAAA,OAAAxB,OAAA,CAAAoK,uBAAA,CAAAJ,KAAA;EAAA;EACpB,IAAA1J,IACA,CAAA+J,cAAA;IAAA,IACAC,KAAG,GAAAhK,IAAA,CAAAiK,aAAa;IAAA,IAChBD,KAAA,CAAAjI,MAAA;IAAA,IACFuD,OACM,GAAS;MAAAtK,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IAAA,IACb;MAAA,KACA,IAAAC,SAAA,GAAA6O,KAAA,CAAA5O,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QACA,IAAAkH,IAAA,GAAA5G,KAAA,CAAAG,KAAA;UAAAuK,KAAA,GAAA9D,IAAA,CAAAgI,OAAA;QACA,KAAAjF,mBAAA,CAAAe,KAAA;UACE,IAAAmE,QAAA,GAAAV,iBAAA,CAAAvH,IAAA;YAAAkI,UAAA,MAAAlI,IAAA,CAAA4F,QAAA,KAAA7K,EAAA,CAAAoN,WAAA,CAAAC,QAAA;YAAA5C,GAAA,GAAAQ,OAAA,CAAAiC,QAAA;UACFC,UAAA,KAAA1C,GAAA,CAAA9C,UAAA,oBAAA8C,GAAA,iBAAAA,GAAA,MAAApC,OAAA,CAAAzJ,IAAA,IAAAqJ,eAAA,CAAAc,KAAA,MAAA0B,GAAA;QACA;MAAA;IACc,EAChB,OAAA5L,GAAA;MAEAb,iBAAY,OAAAC,cAAA,GAAAY,GAAA;IACV;MAEA;QACI,CAAAd,yBAAU,IAAAG,SAAyB,CAAAY,MAAA,YAAAZ,SAAA,CAAAY,MAAA;MACzC;QACF,IAAAd,iBAAA,EACF,MAAAC,cAAA;MAGA;IACM;IAC0B,OAC3BoK,OAAO,CAAAvD,MAAM,MAAW,GAAE,cAAU;AAA6C,MAClFuD,OAAA,CAAAlM,IAAA;AAkBJ,MAfI;AACuB,KACvB;EAA0C;EAE5C,IAAAmR,MACsB,GAAAvK,IAAA,CAAAiK,aAGpB;EACM,IACNM,MAAA,CAAAxI,MAAK,SAAc/B,IAAA,CAAA8H,QAAM,KAAY7K,EAAA,CAAA8K,SAAA,CAAAvC,MAAgB,IAAMxF,IAAA,CAAAwK,WAAY;IACzE,IAIEC,iBAAoB;MAAAD,WAAO,IAAAC,iBAAA,GAAAzK,IAAA,CAAAwK,WAAA,cAAAC,iBAAA,cAAAA,iBAAA;IAC7B,IAAAD,WAAQ,GAASvN,EAAA,CAAIyN,WAAM,CAAAC,SAAO;MAClC,IAAIC,sBAAA;QAAAC,OAAA,GAAA7K,IAAA;QAAA8K,MAAA,GAAA9K,IAAA,CAAA+K,SAAA;QAAAC,KAAA,GAAAF,MAAA,EAAAZ,OAAA;MACF,KAAAc,KAAS,YAAO,IAAAA,KAAA,2BAAAJ,sBAAA,GAAAC,OAAA,CAAAI,aAAA,cAAAL,sBAAA,uBAAAA,sBAAA,CAAA7I,MAAA,SACd,OAAO,WAAAmG,OAAA,CAAA2C,OAAA,CAAAI,aAAA;IAAA;IACoD,IAC5DT,WAAA,GAAAvN,EAAA,CAAAyN,WAAA,CAAAQ,KAAA;MACH,IAAAC,QAAc,GAAAnL,IAAA;QAAAoL,QAAA,GAAAD,QAAA,CAAAF,aAAA;MACP,mBAAgBG,QAAM,CAAAtS,GAAA,WAAAqP,CAAA;QAC7B,OAAAD,OAAA,CAAAC,CAAA;MACF,GAAA/O,IAAA;IAEA;IAGE,IAAAiS,QAAA;MAAApH,0BAAA;MAAAC,kBAAA;MAAAC,eAAA;IACA;MACA,SAAAC,UAAa,GAAAmG,MAAgB,CAAAnP,MAAA,CAAAC,QAAA,KAAAgJ,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAA7I,IAAA,IAAAC,IAAA,GAAAyI,0BAAA;QAC7B,IAAAqH,KAAA,GAAAjH,MAAA,CAAA5I,KAAA;UAAA8P,KAAA,GAAAD,KAAA,CAAApB,OAAA;QACA,KAAAjF,mBAAA,CAAAsG,KAAA;UACF,IAAAC,SAAA,GAAA/B,iBAAA,CAAA6B,KAAA;YAAAG,WAAA,MAAAH,KAAA,CAAAxD,QAAA,KAAA7K,EAAA,CAAAoN,WAAA,CAAAC,QAAA;YAAAoB,IAAA,GAAAxD,OAAA,CAAAsD,SAAA;UACFC,WAAA,KAAAC,IAAA,CAAA9G,UAAA,oBAAA8G,IAAA,iBAAAA,IAAA,MAAAL,QAAA,CAAAxP,IAAA,IAAAqJ,eAAA,CAAAqG,KAAA,MAAAG,IAAA;QAEA;MACE;IAQA,SAAM5P,GAAA,EAAS;MACgBoI,kBAAA,OAAAC,eAAA,GAAArI,GAAA;IAE/B,UAAM;MAEF;QAEE,CAAAmI,0BAAuB,IAAcG,UAAkB,CAAArI,MAAA,YAAAqI,UAAA,CAAArI,MAAA;MACvD;QACmB,IAAImI,kBAC3B,EACE,MAASC,eAAc;MACzB;IACF;IAGE,OAAAkH,QAAY,CAAAtJ,MAAA;AAAA,MACZsJ,QAAA,CAAAjS,IAAe;AAAA,KACf;AAAsB,KACvB;EAED;EAKF,IAAAuS,WAAA,GAAA3L,IAAA,CAAA4L,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","formatObjectKey","generateGroupedQueriesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","shouldSkipObjectKey","hash","s","update","digest","generateCache","generateCachePath","getCacheDir","dir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","createTypeResolver","ts","files","configPath","findConfigFile","sys","fileExists","compilerOptions","target","ScriptTarget","Latest","module","ModuleKind","ESNext","moduleResolution","ModuleResolutionKind","Bundler","strict","skipLibCheck","noEmit","configFile","readConfigFile","readFile","config","parsed","parseJsonConfigFileContent","options","fileMap","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","f","value","set","path","err","return","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","get","createSourceFile","has","_fileMap_get","program","createProgram","map","f2","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","result","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","name","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","i","length","isObjectLiteralExpression","properties","prop","_prop_name","isPropertyAssignment","isMethodDeclaration","params","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","extractSchemaColumns","_secondParam_type","push","paramType","valibotCode","secondParam","resolvedType","visit","text","expression","endsWith","arg","isStringLiteral","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","seen","Set","flags","getFlags","TypeFlags","Object","Intersection","add","recurse","t","String","Number","Boolean","Void","Undefined","Null","Any","Unknown","Never","StringLiteral","NumberLiteral","BooleanLiteral","intrinsicName","isUnion","members","types","hasNull","hasUndefined","rest","filter","every","inner","inner1","join","resolveSymbolType","prop2","_prop_declarations","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props","getProperties","entries","name1","getName","propType","isOptional","SymbolFlags","Optional","val","startsWith","props1","objectFlags","_type_objectFlags","ObjectFlags","Reference","_typeRef_typeArguments","typeRef","symbol","getSymbol","name2","typeArguments","Tuple","typeRef1","typeArgs","entries1","prop1","name3","propType1","isOptional1","val1","stringIndex","getStringIndexType","numberIndex","getNumberIndexType","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","sort","tableName","colEntries","pkArgs","primaryKey","k","relTableNames","relationships","tableName1","rels","relEntries","relBody","relName","hops","hop","fn","cardinality","sf","sourceField","df","destField","destSchema","hopCode","hop2","fn2","sf2","df2","tableList","n","relList","generate","after","baseDir","mutationsDir","usesMutationsDir","modelsDir","modelsDirName","generatedDir","queriesDir","allModelFiles","filesWithSchema","includes","allModelNames","schemaModelNames","writeResults","filesChanged","queryCount","mutationCount","trim","queryFiles","allQueries","queryResolver","getQueryResolver","allFiles2","_loop"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -69,10 +69,15 @@
69
69
  "types": "./types/createSchemaFromDrizzle.d.ts",
70
70
  "import": "./dist/esm/createSchemaFromDrizzle.mjs",
71
71
  "require": "./dist/cjs/createSchemaFromDrizzle.cjs"
72
+ },
73
+ "./generate-lite": {
74
+ "types": "./types/generate-lite.d.ts",
75
+ "import": "./dist/esm/generate-lite.mjs",
76
+ "require": "./dist/cjs/generate-lite.cjs"
72
77
  }
73
78
  },
74
79
  "dependencies": {
75
- "@take-out/helpers": "0.4.1",
80
+ "@take-out/helpers": "0.4.3",
76
81
  "chokidar": "^4.0.3",
77
82
  "citty": "^0.1.6",
78
83
  "valibot": "^1.1.0"
@@ -0,0 +1,440 @@
1
+ // pure helpers shared by `generate.ts` (node CLI, full type resolution via
2
+ // the typescript compiler API) and `generate-lite.ts` (browser-safe, no
3
+ // typescript dependency). nothing in this file may import `typescript`,
4
+ // `node:fs`, `node:path`, `node:crypto`, or touch process/disk. callers
5
+ // that need those concerns handle them themselves.
6
+
7
+ // shared types
8
+
9
+ export type SchemaColumn = {
10
+ type: string
11
+ optional: boolean
12
+ customType: unknown
13
+ serverName?: string
14
+ }
15
+
16
+ export type ExtractedMutation = {
17
+ name: string
18
+ // 'void' | inline type string | unresolved reference
19
+ paramType: string
20
+ // generated valibot code, or '' if skipped (falls back to v.unknown() or v.void_())
21
+ valibotCode: string
22
+ }
23
+
24
+ export type ModelMutations = {
25
+ modelName: string
26
+ hasCRUD: boolean
27
+ // populated when hasCRUD
28
+ columns: Record<string, SchemaColumn>
29
+ primaryKeys: string[]
30
+ custom: ExtractedMutation[]
31
+ }
32
+
33
+ // identifier helpers
34
+
35
+ export function shouldSkipObjectKey(name: string): boolean {
36
+ // typescript exposes symbol keys as synthetic names like "__@iterator@851".
37
+ // these cannot come from json mutation payloads and break codegen if emitted.
38
+ return name.startsWith('__@')
39
+ }
40
+
41
+ export function formatObjectKey(name: string): string {
42
+ return /^[$A-Z_a-z][$\w]*$/.test(name) ? name : JSON.stringify(name)
43
+ }
44
+
45
+ // user → userPublic is a special case carried over from the existing generator
46
+ export function getModelImportName(name: string): string {
47
+ return name === 'user' ? 'userPublic' : name
48
+ }
49
+
50
+ // string-based type parser
51
+
52
+ // simple string-based type parser for inline type annotations from source text.
53
+ // handles: primitives, inline objects { ... }, arrays, void/null/unknown.
54
+ // returns null for type references that cannot be resolved without a type
55
+ // checker (bare identifiers, generics, imported aliases).
56
+ export function parseTypeString(type: string): string | null {
57
+ type = type.trim()
58
+
59
+ // primitives
60
+ if (type === 'string') return 'v.string()'
61
+ if (type === 'number') return 'v.number()'
62
+ if (type === 'boolean') return 'v.boolean()'
63
+ if (type === 'void' || type === 'undefined') return 'v.void_()'
64
+ if (type === 'null') return 'v.null_()'
65
+ if (type === 'any' || type === 'unknown') return 'v.unknown()'
66
+
67
+ // inline object: { key: type; ... }
68
+ if (type.startsWith('{') && type.endsWith('}')) {
69
+ const inner = type.slice(1, -1).trim()
70
+ if (!inner) return 'v.object({})'
71
+ // normalize newlines/commas to semicolons for splitting
72
+ const normalized = inner.replace(/\n/g, '; ').replace(/;\s*;/g, ';')
73
+ const entries: string[] = []
74
+ for (const part of normalized.split(';')) {
75
+ const trimmed = part.trim().replace(/,\s*$/, '')
76
+ if (!trimmed) continue
77
+ const match = trimmed.match(/^(?:readonly\s+)?(\w+)(\?)?:\s*(.+)$/)
78
+ if (!match) continue
79
+ const [, name, opt, typeStr] = match
80
+ const parsed = parseTypeString(typeStr!.trim())
81
+ if (!parsed) return null // can't resolve inner type
82
+ let val = parsed
83
+ if (opt) val = `v.optional(${val})`
84
+ entries.push(`${formatObjectKey(name!)}: ${val}`)
85
+ }
86
+ if (entries.length === 0) return 'v.object({})'
87
+ return `v.object({\n ${entries.join(',\n ')},\n })`
88
+ }
89
+
90
+ // array: T[]
91
+ if (type.endsWith('[]')) {
92
+ const inner = parseTypeString(type.slice(0, -2).trim())
93
+ return inner ? `v.array(${inner})` : null
94
+ }
95
+
96
+ // unrecognized (type reference, complex generic, etc.)
97
+ return null
98
+ }
99
+
100
+ // file-content emitters
101
+ // these take already-parsed data and return the exact file contents the
102
+ // generator should write. they are pure strings-in/strings-out.
103
+
104
+ export function generateModelsFile(modelNames: string[], modelsDirName: string): string {
105
+ const sorted = [...modelNames].sort()
106
+
107
+ const imports = sorted
108
+ .map(
109
+ (name) =>
110
+ `import * as ${getModelImportName(name)} from '../${modelsDirName}/${name}'`,
111
+ )
112
+ .join('\n')
113
+
114
+ const sortedByImportName = [...sorted].sort((a, b) =>
115
+ getModelImportName(a).localeCompare(getModelImportName(b)),
116
+ )
117
+ const modelsObj = `export const models = {\n${sortedByImportName
118
+ .map((name) => ` ${getModelImportName(name)},`)
119
+ .join('\n')}\n}`
120
+
121
+ return `// auto-generated by: on-zero generate\n${imports}\n\n${modelsObj}\n`
122
+ }
123
+
124
+ export function generateTypesFile(modelNames: string[]): string {
125
+ const sorted = [...modelNames].sort()
126
+
127
+ const typeExports = sorted
128
+ .map((name) => {
129
+ const pascalName = name.charAt(0).toUpperCase() + name.slice(1)
130
+ const schemaName = getModelImportName(name)
131
+ return `export type ${pascalName} = TableInsertRow<typeof schema.${schemaName}>\nexport type ${pascalName}Update = TableUpdateRow<typeof schema.${schemaName}>`
132
+ })
133
+ .join('\n\n')
134
+
135
+ return `import type { TableInsertRow, TableUpdateRow } from 'on-zero'\nimport type * as schema from './tables'\n\n${typeExports}\n`
136
+ }
137
+
138
+ export function generateTablesFile(modelNames: string[], modelsDirName: string): string {
139
+ const sorted = [...modelNames].sort()
140
+
141
+ const exports = sorted
142
+ .map(
143
+ (name) =>
144
+ `export { schema as ${getModelImportName(name)} } from '../${modelsDirName}/${name}'`,
145
+ )
146
+ .join('\n')
147
+
148
+ return `// auto-generated by: on-zero generate\n\n${exports}\n`
149
+ }
150
+
151
+ export function generateReadmeFile(): string {
152
+ return `# generated
153
+
154
+ this folder is auto-generated by on-zero. do not edit files here directly.
155
+
156
+ ## what's generated
157
+
158
+ - \`models.ts\` - exports all models from ../models
159
+ - \`types.ts\` - typescript types derived from table schemas
160
+ - \`tables.ts\` - exports table schemas for type inference
161
+ - \`groupedQueries.ts\` - namespaced query re-exports for client setup
162
+ - \`syncedQueries.ts\` - namespaced syncedQuery wrappers for server setup
163
+ - \`syncedMutations.ts\` - valibot validators for mutation args (server auto-validation)
164
+
165
+ ## usage guidelines
166
+
167
+ **do not import generated files outside of the data folder.**
168
+
169
+ ### queries
170
+
171
+ write your queries as plain functions in \`../queries/\` and import them directly:
172
+
173
+ \`\`\`ts
174
+ // ✅ good - import from queries
175
+ import { channelMessages } from '~/data/queries/message'
176
+ \`\`\`
177
+
178
+ the generated query files are only used internally by zero client/server setup.
179
+
180
+ ### types
181
+
182
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
183
+
184
+ \`\`\`ts
185
+ // ❌ okay but not preferred
186
+ import type { Message } from '~/data/generated/types'
187
+
188
+ // ✅ better - re-export from types.ts
189
+ import type { Message } from '~/data/types'
190
+ \`\`\`
191
+
192
+ ## regeneration
193
+
194
+ files are regenerated when you run:
195
+
196
+ \`\`\`bash
197
+ bun on-zero generate
198
+ \`\`\`
199
+
200
+ or in watch mode:
201
+
202
+ \`\`\`bash
203
+ bun on-zero generate --watch
204
+ \`\`\`
205
+
206
+ ## more info
207
+
208
+ see the [on-zero readme](./node_modules/on-zero/README.md) for full documentation.
209
+ `
210
+ }
211
+
212
+ export function generateGroupedQueriesFile(
213
+ queries: Array<{ name: string; sourceFile: string }>,
214
+ ): string {
215
+ const sortedFiles = [...new Set(queries.map((q) => q.sourceFile))].sort()
216
+
217
+ const exports = sortedFiles
218
+ .map((file) => `export * as ${file} from '../queries/${file}'`)
219
+ .join('\n')
220
+
221
+ return `/**
222
+ * auto-generated by: on-zero generate
223
+ *
224
+ * grouped query re-exports for minification-safe query identity.
225
+ * this file re-exports all query modules - while this breaks tree-shaking,
226
+ * queries are typically small and few in number even in larger apps.
227
+ */
228
+ ${exports}
229
+ `
230
+ }
231
+
232
+ export function generateSyncedQueriesFile(
233
+ queries: Array<{
234
+ name: string
235
+ params: string
236
+ valibotCode: string
237
+ sourceFile: string
238
+ }>,
239
+ ): string {
240
+ const queryByFile = new Map<string, typeof queries>()
241
+ for (const q of queries) {
242
+ if (!queryByFile.has(q.sourceFile)) {
243
+ queryByFile.set(q.sourceFile, [])
244
+ }
245
+ queryByFile.get(q.sourceFile)!.push(q)
246
+ }
247
+
248
+ const sortedFiles = Array.from(queryByFile.keys()).sort()
249
+
250
+ const imports = `// auto-generated by: on-zero generate
251
+ // server-side query definitions with validators
252
+ import { defineQuery, defineQueries } from '@rocicorp/zero'
253
+ import * as v from 'valibot'
254
+ import * as Queries from './groupedQueries'
255
+ `
256
+
257
+ const namespaceDefs = sortedFiles
258
+ .map((file) => {
259
+ const fileQueries = queryByFile
260
+ .get(file)!
261
+ .sort((a, b) => a.name.localeCompare(b.name))
262
+
263
+ const queryDefs = fileQueries
264
+ .map((q) => {
265
+ const validatorDef = q.valibotCode.trim()
266
+
267
+ if (q.params === 'void' || !validatorDef) {
268
+ return ` ${q.name}: defineQuery(() => Queries.${file}.${q.name}()),`
269
+ }
270
+
271
+ const indentedValidator = validatorDef
272
+ .split('\n')
273
+ .map((line, i) => (i === 0 ? line : ` ${line}`))
274
+ .join('\n')
275
+
276
+ return ` ${q.name}: defineQuery(
277
+ ${indentedValidator},
278
+ ({ args }) => Queries.${file}.${q.name}(args)
279
+ ),`
280
+ })
281
+ .join('\n')
282
+
283
+ return `const ${file} = {\n${queryDefs}\n}`
284
+ })
285
+ .join('\n\n')
286
+
287
+ const queriesObject = sortedFiles.map((file) => ` ${file},`).join('\n')
288
+
289
+ return `${imports}
290
+ ${namespaceDefs}
291
+
292
+ export const queries = defineQueries({
293
+ ${queriesObject}
294
+ })
295
+ `
296
+ }
297
+
298
+ // column → valibot conversion helpers
299
+
300
+ export function columnTypeToValibot(col: SchemaColumn): string {
301
+ let base = 'v.string()'
302
+ switch (col.type) {
303
+ case 'string':
304
+ base = 'v.string()'
305
+ break
306
+ case 'number':
307
+ base = 'v.number()'
308
+ break
309
+ case 'boolean':
310
+ base = 'v.boolean()'
311
+ break
312
+ case 'json':
313
+ base = 'v.unknown()'
314
+ break
315
+ case 'enum':
316
+ base = 'v.string()'
317
+ break
318
+ }
319
+ return col.optional ? `v.optional(v.nullable(${base}))` : base
320
+ }
321
+
322
+ export function schemaColumnsToValibot(
323
+ columns: Record<string, SchemaColumn>,
324
+ primaryKeys: string[],
325
+ mode: 'insert' | 'update' | 'delete',
326
+ ): string {
327
+ const entries: string[] = []
328
+
329
+ if (mode === 'delete') {
330
+ // only pks
331
+ for (const pk of primaryKeys) {
332
+ const col = columns[pk]
333
+ if (col)
334
+ entries.push(
335
+ `${formatObjectKey(pk)}: ${columnTypeToValibot({ ...col, optional: false })}`,
336
+ )
337
+ }
338
+ } else if (mode === 'update') {
339
+ // pks required, rest optional
340
+ for (const [name, col] of Object.entries(columns)) {
341
+ const isPK = primaryKeys.includes(name)
342
+ if (isPK) {
343
+ entries.push(
344
+ `${formatObjectKey(name)}: ${columnTypeToValibot({ ...col, optional: false })}`,
345
+ )
346
+ } else {
347
+ entries.push(
348
+ `${formatObjectKey(name)}: ${columnTypeToValibot({ ...col, optional: true })}`,
349
+ )
350
+ }
351
+ }
352
+ } else {
353
+ // insert: all columns as-is
354
+ for (const [name, col] of Object.entries(columns)) {
355
+ entries.push(`${formatObjectKey(name)}: ${columnTypeToValibot(col)}`)
356
+ }
357
+ }
358
+
359
+ return `v.object({\n ${entries.join(',\n ')},\n })`
360
+ }
361
+
362
+ // returns as-is since output is already a valibot expression
363
+ export function extractValibotExpression(valibotCode: string): string {
364
+ return valibotCode.trim() || 'v.unknown()'
365
+ }
366
+
367
+ // parse a column builder source-text fragment (e.g. "string().optional()") into
368
+ // a SchemaColumn. used by generate-lite.ts when the caller extracts raw
369
+ // column builder text from their AST.
370
+ export function parseColumnType(initText: string): SchemaColumn {
371
+ const optional = initText.includes('.optional()')
372
+ let type: SchemaColumn['type'] = 'string'
373
+
374
+ if (initText.startsWith('number(')) type = 'number'
375
+ else if (initText.startsWith('boolean(')) type = 'boolean'
376
+ else if (initText.startsWith('json(') || initText.startsWith('json<')) type = 'json'
377
+ else if (initText.startsWith('enumeration(')) type = 'enum'
378
+
379
+ return { type, optional, customType: undefined }
380
+ }
381
+
382
+ export function generateSyncedMutationsFile(modelMutations: ModelMutations[]): string {
383
+ const sorted = [...modelMutations].sort((a, b) =>
384
+ a.modelName.localeCompare(b.modelName),
385
+ )
386
+
387
+ const modelDefs = sorted
388
+ .map((model) => {
389
+ const entries: string[] = []
390
+
391
+ // crud validators from schema
392
+ if (model.hasCRUD && Object.keys(model.columns).length > 0) {
393
+ for (const mode of ['insert', 'update', 'delete'] as const) {
394
+ // skip if custom mutation overrides this crud op
395
+ const hasCustomOverride = model.custom.some((m) => m.name === mode)
396
+ if (hasCustomOverride) {
397
+ // use the custom version's validator instead
398
+ const customMut = model.custom.find((m) => m.name === mode)!
399
+ if (customMut.valibotCode) {
400
+ entries.push(
401
+ ` ${mode}: ${extractValibotExpression(customMut.valibotCode)},`,
402
+ )
403
+ } else {
404
+ // fall back to schema-derived
405
+ entries.push(
406
+ ` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`,
407
+ )
408
+ }
409
+ } else {
410
+ entries.push(
411
+ ` ${mode}: ${schemaColumnsToValibot(model.columns, model.primaryKeys, mode)},`,
412
+ )
413
+ }
414
+ }
415
+ }
416
+
417
+ // custom mutations (excluding crud overrides already handled)
418
+ for (const mut of model.custom) {
419
+ if (model.hasCRUD && ['insert', 'update', 'delete', 'upsert'].includes(mut.name))
420
+ continue
421
+ if (mut.paramType === 'void' || !mut.valibotCode) {
422
+ entries.push(` ${mut.name}: v.void_(),`)
423
+ continue
424
+ }
425
+ entries.push(` ${mut.name}: ${extractValibotExpression(mut.valibotCode)},`)
426
+ }
427
+
428
+ return ` ${model.modelName}: {\n${entries.join('\n')}\n },`
429
+ })
430
+ .join('\n')
431
+
432
+ return `// auto-generated by: on-zero generate
433
+ // mutation validators derived from model schemas and handler types
434
+ import * as v from 'valibot'
435
+
436
+ export const mutationValidators = {
437
+ ${modelDefs}
438
+ }
439
+ `
440
+ }