@spooky-sync/query-builder 0.0.1-canary.34 → 0.0.1-canary.37

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/index.d.mts CHANGED
@@ -218,7 +218,7 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
218
  related?: RelatedQuery[];
219
219
  isOne?: IsOne;
220
220
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
221
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
222
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
223
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
224
  interface QueryModifierBuilder<TModel extends GenericModel> {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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CAAA;AAGpD;;;AAEmB,KE0CP,kBF1CO,CAAA,UE2CP,eF3CO,EAAA,sBE4CK,gBF5CL,CAAA,GAAA,QAAM,ME8CX,aF9CW,GE8CK,WF9CL,CE+CrB,CF/CqB,EEgDrB,aFhDqB,CEgDP,CFhDO,CAAA,CAAA,IAAA,CAAA,EEiDrB,aFjDqB,CEiDP,CFjDO,CAAA,CAAA,eAAA,CAAA,EEkDrB,aFlDqB,CEkDP,CFlDO,CAAA,CAAA,aAAA,CAAA,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA,CAAA,EAGzB;AAA2C,KEmD/B,mBFnD+B,CAAA,UEoD/B,eFpD+B,EAAA,kBEqDvB,UFrDuB,CEqDZ,CFrDY,CAAA,EAAA,sBEsDnB,gBFtDmB,CAAA,GEuDvC,IFvDuC,CEuDlC,UFvDkC,CEuDvB,QFvDuB,CEuDd,CFvDc,EEuDX,SFvDW,CAAA,CAAA,EEuDE,iBFvDF,CEuDoB,aFvDpB,CAAA,CAAA,GEwDzC,kBFxDyC,CEwDtB,CFxDsB,EEwDnB,aFxDmB,CAAA;AACX,KEyDpB,oBFzDoB,CAAA,UE0DpB,eF1DoB,EAAA,kBE2DZ,UF3DY,CE2DD,CF3DC,CAAA,EAAA,sBE4DR,gBF5DQ,CAAA,GAAA,CE6D3B,IF7D2B,CE6DtB,UF7DsB,CE6DX,QF7DW,CE6DF,CF7DE,EE6DC,SF7DD,CAAA,CAAA,EE6Dc,iBF7Dd,CE6DgC,aF7DhC,CAAA,CAAA,GE8D9B,kBF9D8B,CE8DX,CF9DW,EE8DR,aF9DQ,CAAA,CAAA,EAAA;;;AAGhC;AAUA;AAAuB,KEuDX,WFvDW,CAAA,UEwDX,eFxDW,EAAA,kBEyDH,UFzDG,CEyDQ,CFzDR,CAAA,EAAA,sBE0DC,gBF1DD,EAAA,cAAA,OAAA,CAAA,GE4DnB,KF5DmB,SAAA,IAAA,GE6DnB,mBF7DmB,CE6DC,CF7DD,EE6DI,SF7DJ,EE6De,aF7Df,CAAA,GE8DnB,oBF9DmB,CE8DE,CF9DF,EE8DK,SF9DL,EE8DgB,aF9DhB,CAAA;AAAW,cEgErB,UFhEqB,CAAA,UEiEtB,eFjEsB,EAAA,kBEkEd,UFlEc,CEkEH,CFlEG,CAAA,EAAA,UAAA;SAChC,EEkEqB,MFlErB,CAAA,MAAA,EEkEoC,YFlEpC,CAAA;yBEmEsB,gBFnEQ,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAC1B,SAAA;EAAC,iBAAA,OAAA;EAIK,iBAAY,MAAA;EAAA,iBAAA,QAAA;UAAW,WAAA;aAAuC,CAAA,SAAA,EEqE1C,SFrE0C,EAAA,OAAA,EEsE5C,YFtE4C,CEsE/B,UFtE+B,CEsEpB,CFtEoB,CAAA,EEsEhB,KFtEgB,CAAA,EAAA,MAAA,EEuE7C,CFvE6C,EAAA,QAAA,EEwE3C,QFxE2C,CEwElC,CFxEkC,EEwE/B,CFxE+B,CAAA;KAAZ,CAAA,CAAA,EEkFrD,CFlFqD;kBAC5D,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEqFkC,SFrFlC;kBAA8B,CAAA,CAAA,EEyFV,SFzFU;YAClB,CAAA,CAAA,EE4FE,SF5FF;MAA8B,UAAA,CAAA,CAAA,EEgGxB,UFhGwB,CEgGb,CFhGa,EEgGV,KFhGU,EEgGH,CFhGG,CAAA;MAAtC,KAAA,CAAA,CAAA,EAAA,OAAA;EAAO,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;AAIb;;;;;AAGY,cEqNC,YFrNY,CAAA,gBEsNP,eFtNO,EAAA,wBEuNC,UFvND,CEuNY,CFvNZ,CAAA,EAAA,UAAA,IAAA,EAAA,4BEyNK,gBFzNL,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;EAAA,iBAAA,MAAA;mBACb,SAAA;mBACa,QAAA;UAAb,OAAA;aACF,CAAA,MAAA,EE0NmB,CF1NnB,EAAA,SAAA,EE2NsB,SF3NtB,EAAA,QAAA,CAAA,EE4NqB,QF5NrB,CE4N8B,QF5N9B,CE4NuC,CF5NvC,EE4N0C,SF5N1C,CAAA,EE4NsD,CF5NtD,CAAA,EAAA,OAAA,CAAA,EE6NW,YF7NX,CE6NwB,UF7NxB,CE6NmC,QF7NnC,CE6N4C,CF7N5C,EE6N+C,SF7N/C,CAAA,CAAA,EE6N4D,KF7N5D,CAAA;;;AAGV;EAAwB,KAAA,CAAA,UAAA,EEiOR,OFjOQ,CEiOA,UFjOA,CEiOW,QFjOX,CEiOoB,CFjOpB,EEiOuB,SFjOvB,CAAA,CAAA,CAAA,CAAA,EEkOnB,YFlOmB,CEkON,CFlOM,EEkOH,SFlOG,EEkOQ,CFlOR,EEkOW,aFlOX,EEkO0B,KFlO1B,CAAA;;;;QAGE,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEwOH,UFxOG,CEwOQ,QFxOR,CEwOiB,CFxOjB,EEwOoB,SFxOpB,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEyOrB,YFzOqB,CEyOR,CFzOQ,EEyOL,SFzOK,EEyOM,CFzON,EEyOS,aFzOT,EEyOwB,KFzOxB,CAAA;;;;SACC,CAAA,KAAA,EEoPhB,eFpPgB,CEoPA,QFpPA,CEoPS,CFpPT,EEoPY,SFpPZ,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEsPtB,YFtPsB,CEsPT,CFtPS,EEsPN,SFtPM,EEsPK,CFtPL,EEsPQ,aFtPR,EEsPuB,KFtPvB,CAAA;;;;OAGQ,CAAA,KAAA,EAAA,MAAA,CAAA,EE8PX,YF9PW,CE8PE,CF9PF,EE8PK,SF9PL,EE8PgB,CF9PhB,EE8PmB,aF9PnB,EE8PkC,KF9PlC,CAAA;;;;QAAW,CAAA,KAAA,EAAA,MAAA,CAAA,EEsQrB,YFtQqB,CEsQR,CFtQQ,EEsQL,SFtQK,EEsQM,CFtQN,EEsQS,aFtQT,EEsQwB,KFtQxB,CAAA;KAA+B,CAAA,CAAA,EE2QpE,YF3QoE,CE2QvD,CF3QuD,EE2QpD,SF3QoD,EE2QzC,CF3QyC,EE2QtC,aF3QsC,EAAA,IAAA,CAAA;;;;;;SAEvC,CAAA,cEwRpB,kBFxRoB,CEwRD,CFxRC,EEwRE,SFxRF,CAAA,CAAA,OAAA,CAAA,EAAA,YEyRtB,eFzRsB,CEyRN,CFzRM,EEyRH,SFzRG,EEyRQ,KFzRR,CAAA,EAAA,uBE0RX,gBF1RW,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE4R3B,KF5R2B,EAAA,qBAAA,CAAA,EE8R9B,wBF9R8B,CE8RL,CF9RK,EE8RF,GF9RE,CAAA,IAAA,CAAA,EE8RS,cF9RT,CAAA,GE+R9B,GF/R8B,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEgSvB,wBFhSuB,CEgSE,CFhSF,EEgSK,GFhSL,CAAA,IAAA,CAAA,EEgSgB,cFhShB,CAAA,CAAA,EEiSjC,YFjSiC,CEkSlC,CFlSkC,EEmSlC,SFnSkC,EEoSlC,CFpSkC,EEqSlC,aFrSkC,GAAA,QEsS1B,KFtS6B,GAAA;IAA3B,EAAA,EEuSF,GFvSE,CAAA,IAAA,CAAA;IAAiC,WAAA,EEwS1B,GFxS0B,CAAA,aAAA,CAAA;IAA+B,aAAA,EEySvD,cFzSuD;EAAG,CAAA,IE4S7E,KF5SgF,CAAA;;;;EAHxE,UAAA,CAAA,CAAA,EEqYI,YFrYJ,CEqYiB,UFrYjB,CEqY4B,QFrY5B,CEqYqC,CFrYrC,EEqYwC,SFrYxC,CAAA,CAAA,EEqYqD,KFrYrD,CAAA;EAMP;;;;OAEO,CAAA,CAAA,EEqYD,UFrYC,CEqYU,CFrYV,EEqYa,SFrYb,EEqYwB,QFrYxB,CEqYiC,CFrYjC,EEqYoC,SFrYpC,CAAA,EEqYgD,aFrYhD,EEqY+D,KFrY/D,EEqYsE,CFrYtE,CAAA;;AACiB,iBE8Yb,MAAA,CF9Ya,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACG;;;;;;;;AAOL,iBE2eX,qBF3eW,CAAA,eE2e0B,YF3e1B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EE8ehB,YF9egB,CE8eH,MF9eG,EE8eK,KF9eL,CAAA,EAAA,MAAA,EE+ejB,eF/eiB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEifxB,SFjfwB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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M,CAAA;AAGpD;;;AAEmB,KE0CP,kBF1CO,CAAA,UE2CP,eF3CO,EAAA,sBE4CK,gBF5CL,CAAA,GAAA,QAAM,ME8CX,aF9CW,GE8CK,WF9CL,CE+CrB,CF/CqB,EEgDrB,aFhDqB,CEgDP,CFhDO,CAAA,CAAA,IAAA,CAAA,EEiDrB,aFjDqB,CEiDP,CFjDO,CAAA,CAAA,eAAA,CAAA,EEkDrB,aFlDqB,CEkDP,CFlDO,CAAA,CAAA,aAAA,CAAA,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA,CAAA,EAGzB;AAA2C,KEmD/B,mBFnD+B,CAAA,UEoD/B,eFpD+B,EAAA,kBEqDvB,UFrDuB,CEqDZ,CFrDY,CAAA,EAAA,sBEsDnB,gBFtDmB,CAAA,GEuDvC,IFvDuC,CEuDlC,UFvDkC,CEuDvB,QFvDuB,CEuDd,CFvDc,EEuDX,SFvDW,CAAA,CAAA,EEuDE,iBFvDF,CEuDoB,aFvDpB,CAAA,CAAA,GEwDzC,kBFxDyC,CEwDtB,CFxDsB,EEwDnB,aFxDmB,CAAA;AACX,KEyDpB,oBFzDoB,CAAA,UE0DpB,eF1DoB,EAAA,kBE2DZ,UF3DY,CE2DD,CF3DC,CAAA,EAAA,sBE4DR,gBF5DQ,CAAA,GAAA,CE6D3B,IF7D2B,CE6DtB,UF7DsB,CE6DX,QF7DW,CE6DF,CF7DE,EE6DC,SF7DD,CAAA,CAAA,EE6Dc,iBF7Dd,CE6DgC,aF7DhC,CAAA,CAAA,GE8D9B,kBF9D8B,CE8DX,CF9DW,EE8DR,aF9DQ,CAAA,CAAA,EAAA;;;AAGhC;AAUA;AAAuB,KEuDX,WFvDW,CAAA,UEwDX,eFxDW,EAAA,kBEyDH,UFzDG,CEyDQ,CFzDR,CAAA,EAAA,sBE0DC,gBF1DD,EAAA,cAAA,OAAA,CAAA,GE4DnB,KF5DmB,SAAA,IAAA,GE6DnB,mBF7DmB,CE6DC,CF7DD,EE6DI,SF7DJ,EE6De,aF7Df,CAAA,GE8DnB,oBF9DmB,CE8DE,CF9DF,EE8DK,SF9DL,EE8DgB,aF9DhB,CAAA;AAAW,cEgErB,UFhEqB,CAAA,UEiEtB,eFjEsB,EAAA,kBEkEd,UFlEc,CEkEH,CFlEG,CAAA,EAAA,UAAA;SAChC,EEkEqB,MFlErB,CAAA,MAAA,EEkEoC,YFlEpC,CAAA;yBEoEsB,gBFpEQ,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAC1B,SAAA;EAAC,iBAAA,OAAA;EAIK,iBAAY,MAAA;EAAA,iBAAA,QAAA;UAAW,WAAA;aAAuC,CAAA,SAAA,EEsE1C,SFtE0C,EAAA,OAAA,EEuE5C,YFvE4C,CEuE/B,UFvE+B,CEuEpB,CFvEoB,CAAA,EEuEhB,KFvEgB,CAAA,EAAA,MAAA,EEwE7C,CFxE6C,EAAA,QAAA,EEyE3C,QFzE2C,CEyElC,CFzEkC,EEyE/B,CFzE+B,CAAA;KAAZ,CAAA,CAAA,EEmFrD,CFnFqD;kBAC5D,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEsFkC,SFtFlC;kBAA8B,CAAA,CAAA,EE0FV,SF1FU;YAClB,CAAA,CAAA,EE6FE,SF7FF;MAA8B,UAAA,CAAA,CAAA,EEiGxB,UFjGwB,CEiGb,CFjGa,EEiGV,KFjGU,EEiGH,CFjGG,CAAA;MAAtC,KAAA,CAAA,CAAA,EAAA,OAAA;EAAO,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;AAIb;;;;;AAGY,cEsNC,YFtNY,CAAA,gBEuNP,eFvNO,EAAA,wBEwNC,UFxND,CEwNY,CFxNZ,CAAA,EAAA,UAAA,IAAA,EAAA,4BE0NK,gBF1NL,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;EAAA,iBAAA,MAAA;mBACb,SAAA;mBACa,QAAA;UAAb,OAAA;aACF,CAAA,MAAA,EE2NmB,CF3NnB,EAAA,SAAA,EE4NsB,SF5NtB,EAAA,QAAA,CAAA,EE6NqB,QF7NrB,CE6N8B,QF7N9B,CE6NuC,CF7NvC,EE6N0C,SF7N1C,CAAA,EE6NsD,CF7NtD,CAAA,EAAA,OAAA,CAAA,EE8NW,YF9NX,CE8NwB,UF9NxB,CE8NmC,QF9NnC,CE8N4C,CF9N5C,EE8N+C,SF9N/C,CAAA,CAAA,EE8N4D,KF9N5D,CAAA;;;AAGV;EAAwB,KAAA,CAAA,UAAA,EEkOR,OFlOQ,CEkOA,UFlOA,CEkOW,QFlOX,CEkOoB,CFlOpB,EEkOuB,SFlOvB,CAAA,CAAA,CAAA,CAAA,EEmOnB,YFnOmB,CEmON,CFnOM,EEmOH,SFnOG,EEmOQ,CFnOR,EEmOW,aFnOX,EEmO0B,KFnO1B,CAAA;;;;QAGE,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEyOH,UFzOG,CEyOQ,QFzOR,CEyOiB,CFzOjB,EEyOoB,SFzOpB,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EE0OrB,YF1OqB,CE0OR,CF1OQ,EE0OL,SF1OK,EE0OM,CF1ON,EE0OS,aF1OT,EE0OwB,KF1OxB,CAAA;;;;SACC,CAAA,KAAA,EEqPhB,eFrPgB,CEqPA,QFrPA,CEqPS,CFrPT,EEqPY,SFrPZ,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEuPtB,YFvPsB,CEuPT,CFvPS,EEuPN,SFvPM,EEuPK,CFvPL,EEuPQ,aFvPR,EEuPuB,KFvPvB,CAAA;;;;OAGQ,CAAA,KAAA,EAAA,MAAA,CAAA,EE+PX,YF/PW,CE+PE,CF/PF,EE+PK,SF/PL,EE+PgB,CF/PhB,EE+PmB,aF/PnB,EE+PkC,KF/PlC,CAAA;;;;QAAW,CAAA,KAAA,EAAA,MAAA,CAAA,EEuQrB,YFvQqB,CEuQR,CFvQQ,EEuQL,SFvQK,EEuQM,CFvQN,EEuQS,aFvQT,EEuQwB,KFvQxB,CAAA;KAA+B,CAAA,CAAA,EE4QpE,YF5QoE,CE4QvD,CF5QuD,EE4QpD,SF5QoD,EE4QzC,CF5QyC,EE4QtC,aF5QsC,EAAA,IAAA,CAAA;;;;;;SAEvC,CAAA,cEyRpB,kBFzRoB,CEyRD,CFzRC,EEyRE,SFzRF,CAAA,CAAA,OAAA,CAAA,EAAA,YE0RtB,eF1RsB,CE0RN,CF1RM,EE0RH,SF1RG,EE0RQ,KF1RR,CAAA,EAAA,uBE2RX,gBF3RW,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE6R3B,KF7R2B,EAAA,qBAAA,CAAA,EE+R9B,wBF/R8B,CE+RL,CF/RK,EE+RF,GF/RE,CAAA,IAAA,CAAA,EE+RS,cF/RT,CAAA,GEgS9B,GFhS8B,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEiSvB,wBFjSuB,CEiSE,CFjSF,EEiSK,GFjSL,CAAA,IAAA,CAAA,EEiSgB,cFjShB,CAAA,CAAA,EEkSjC,YFlSiC,CEmSlC,CFnSkC,EEoSlC,SFpSkC,EEqSlC,CFrSkC,EEsSlC,aFtSkC,GAAA,QEuS1B,KFvS6B,GAAA;IAA3B,EAAA,EEwSF,GFxSE,CAAA,IAAA,CAAA;IAAiC,WAAA,EEyS1B,GFzS0B,CAAA,aAAA,CAAA;IAA+B,aAAA,EE0SvD,cF1SuD;EAAG,CAAA,IE6S7E,KF7SgF,CAAA;;;;EAHxE,UAAA,CAAA,CAAA,EEsYI,YFtYJ,CEsYiB,UFtYjB,CEsY4B,QFtY5B,CEsYqC,CFtYrC,EEsYwC,SFtYxC,CAAA,CAAA,EEsYqD,KFtYrD,CAAA;EAMP;;;;OAEO,CAAA,CAAA,EEsYD,UFtYC,CEsYU,CFtYV,EEsYa,SFtYb,EEsYwB,QFtYxB,CEsYiC,CFtYjC,EEsYoC,SFtYpC,CAAA,EEsYgD,aFtYhD,EEsY+D,KFtY/D,EEsYsE,CFtYtE,CAAA;;AACiB,iBE+Yb,MAAA,CF/Ya,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACG;;;;;;;;AAOL,iBE6eX,qBF7eW,CAAA,eE6e0B,YF7e1B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEgfhB,YFhfgB,CEgfH,MFhfG,EEgfK,KFhfL,CAAA,EAAA,MAAA,EEifjB,eFjfiB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEmfxB,SFnfwB"}
package/dist/index.d.ts CHANGED
@@ -218,7 +218,7 @@ interface QueryOptions<TModel extends GenericModel, IsOne extends boolean> {
218
218
  related?: RelatedQuery[];
219
219
  isOne?: IsOne;
220
220
  }
221
- interface LiveQueryOptions<TModel extends GenericModel> extends Omit<QueryOptions<TModel, boolean>, 'orderBy'> {}
221
+ type LiveQueryOptions<TModel extends GenericModel> = Omit<QueryOptions<TModel, boolean>, 'orderBy'>;
222
222
  type QueryModifier<TModel extends GenericModel> = (builder: QueryModifierBuilder<TModel>) => QueryModifierBuilder<TModel>;
223
223
  type SchemaAwareQueryModifier<S extends SchemaStructure, TableName extends TableNames<S>, RelatedFields extends Record<string, any> = {}> = (builder: SchemaAwareQueryModifierBuilder<S, TableName, {}>) => SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields>;
224
224
  interface QueryModifierBuilder<TModel extends GenericModel> {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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CAAA;AAGpD;;;AAEmB,KE0CP,kBF1CO,CAAA,UE2CP,eF3CO,EAAA,sBE4CK,gBF5CL,CAAA,GAAA,QAAM,ME8CX,aF9CW,GE8CK,WF9CL,CE+CrB,CF/CqB,EEgDrB,aFhDqB,CEgDP,CFhDO,CAAA,CAAA,IAAA,CAAA,EEiDrB,aFjDqB,CEiDP,CFjDO,CAAA,CAAA,eAAA,CAAA,EEkDrB,aFlDqB,CEkDP,CFlDO,CAAA,CAAA,aAAA,CAAA,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA,CAAA,EAGzB;AAA2C,KEmD/B,mBFnD+B,CAAA,UEoD/B,eFpD+B,EAAA,kBEqDvB,UFrDuB,CEqDZ,CFrDY,CAAA,EAAA,sBEsDnB,gBFtDmB,CAAA,GEuDvC,IFvDuC,CEuDlC,UFvDkC,CEuDvB,QFvDuB,CEuDd,CFvDc,EEuDX,SFvDW,CAAA,CAAA,EEuDE,iBFvDF,CEuDoB,aFvDpB,CAAA,CAAA,GEwDzC,kBFxDyC,CEwDtB,CFxDsB,EEwDnB,aFxDmB,CAAA;AACX,KEyDpB,oBFzDoB,CAAA,UE0DpB,eF1DoB,EAAA,kBE2DZ,UF3DY,CE2DD,CF3DC,CAAA,EAAA,sBE4DR,gBF5DQ,CAAA,GAAA,CE6D3B,IF7D2B,CE6DtB,UF7DsB,CE6DX,QF7DW,CE6DF,CF7DE,EE6DC,SF7DD,CAAA,CAAA,EE6Dc,iBF7Dd,CE6DgC,aF7DhC,CAAA,CAAA,GE8D9B,kBF9D8B,CE8DX,CF9DW,EE8DR,aF9DQ,CAAA,CAAA,EAAA;;;AAGhC;AAUA;AAAuB,KEuDX,WFvDW,CAAA,UEwDX,eFxDW,EAAA,kBEyDH,UFzDG,CEyDQ,CFzDR,CAAA,EAAA,sBE0DC,gBF1DD,EAAA,cAAA,OAAA,CAAA,GE4DnB,KF5DmB,SAAA,IAAA,GE6DnB,mBF7DmB,CE6DC,CF7DD,EE6DI,SF7DJ,EE6De,aF7Df,CAAA,GE8DnB,oBF9DmB,CE8DE,CF9DF,EE8DK,SF9DL,EE8DgB,aF9DhB,CAAA;AAAW,cEgErB,UFhEqB,CAAA,UEiEtB,eFjEsB,EAAA,kBEkEd,UFlEc,CEkEH,CFlEG,CAAA,EAAA,UAAA;SAChC,EEkEqB,MFlErB,CAAA,MAAA,EEkEoC,YFlEpC,CAAA;yBEmEsB,gBFnEQ,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAC1B,SAAA;EAAC,iBAAA,OAAA;EAIK,iBAAY,MAAA;EAAA,iBAAA,QAAA;UAAW,WAAA;aAAuC,CAAA,SAAA,EEqE1C,SFrE0C,EAAA,OAAA,EEsE5C,YFtE4C,CEsE/B,UFtE+B,CEsEpB,CFtEoB,CAAA,EEsEhB,KFtEgB,CAAA,EAAA,MAAA,EEuE7C,CFvE6C,EAAA,QAAA,EEwE3C,QFxE2C,CEwElC,CFxEkC,EEwE/B,CFxE+B,CAAA;KAAZ,CAAA,CAAA,EEkFrD,CFlFqD;kBAC5D,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEqFkC,SFrFlC;kBAA8B,CAAA,CAAA,EEyFV,SFzFU;YAClB,CAAA,CAAA,EE4FE,SF5FF;MAA8B,UAAA,CAAA,CAAA,EEgGxB,UFhGwB,CEgGb,CFhGa,EEgGV,KFhGU,EEgGH,CFhGG,CAAA;MAAtC,KAAA,CAAA,CAAA,EAAA,OAAA;EAAO,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;AAIb;;;;;AAGY,cEqNC,YFrNY,CAAA,gBEsNP,eFtNO,EAAA,wBEuNC,UFvND,CEuNY,CFvNZ,CAAA,EAAA,UAAA,IAAA,EAAA,4BEyNK,gBFzNL,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;EAAA,iBAAA,MAAA;mBACb,SAAA;mBACa,QAAA;UAAb,OAAA;aACF,CAAA,MAAA,EE0NmB,CF1NnB,EAAA,SAAA,EE2NsB,SF3NtB,EAAA,QAAA,CAAA,EE4NqB,QF5NrB,CE4N8B,QF5N9B,CE4NuC,CF5NvC,EE4N0C,SF5N1C,CAAA,EE4NsD,CF5NtD,CAAA,EAAA,OAAA,CAAA,EE6NW,YF7NX,CE6NwB,UF7NxB,CE6NmC,QF7NnC,CE6N4C,CF7N5C,EE6N+C,SF7N/C,CAAA,CAAA,EE6N4D,KF7N5D,CAAA;;;AAGV;EAAwB,KAAA,CAAA,UAAA,EEiOR,OFjOQ,CEiOA,UFjOA,CEiOW,QFjOX,CEiOoB,CFjOpB,EEiOuB,SFjOvB,CAAA,CAAA,CAAA,CAAA,EEkOnB,YFlOmB,CEkON,CFlOM,EEkOH,SFlOG,EEkOQ,CFlOR,EEkOW,aFlOX,EEkO0B,KFlO1B,CAAA;;;;QAGE,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEwOH,UFxOG,CEwOQ,QFxOR,CEwOiB,CFxOjB,EEwOoB,SFxOpB,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EEyOrB,YFzOqB,CEyOR,CFzOQ,EEyOL,SFzOK,EEyOM,CFzON,EEyOS,aFzOT,EEyOwB,KFzOxB,CAAA;;;;SACC,CAAA,KAAA,EEoPhB,eFpPgB,CEoPA,QFpPA,CEoPS,CFpPT,EEoPY,SFpPZ,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEsPtB,YFtPsB,CEsPT,CFtPS,EEsPN,SFtPM,EEsPK,CFtPL,EEsPQ,aFtPR,EEsPuB,KFtPvB,CAAA;;;;OAGQ,CAAA,KAAA,EAAA,MAAA,CAAA,EE8PX,YF9PW,CE8PE,CF9PF,EE8PK,SF9PL,EE8PgB,CF9PhB,EE8PmB,aF9PnB,EE8PkC,KF9PlC,CAAA;;;;QAAW,CAAA,KAAA,EAAA,MAAA,CAAA,EEsQrB,YFtQqB,CEsQR,CFtQQ,EEsQL,SFtQK,EEsQM,CFtQN,EEsQS,aFtQT,EEsQwB,KFtQxB,CAAA;KAA+B,CAAA,CAAA,EE2QpE,YF3QoE,CE2QvD,CF3QuD,EE2QpD,SF3QoD,EE2QzC,CF3QyC,EE2QtC,aF3QsC,EAAA,IAAA,CAAA;;;;;;SAEvC,CAAA,cEwRpB,kBFxRoB,CEwRD,CFxRC,EEwRE,SFxRF,CAAA,CAAA,OAAA,CAAA,EAAA,YEyRtB,eFzRsB,CEyRN,CFzRM,EEyRH,SFzRG,EEyRQ,KFzRR,CAAA,EAAA,uBE0RX,gBF1RW,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE4R3B,KF5R2B,EAAA,qBAAA,CAAA,EE8R9B,wBF9R8B,CE8RL,CF9RK,EE8RF,GF9RE,CAAA,IAAA,CAAA,EE8RS,cF9RT,CAAA,GE+R9B,GF/R8B,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEgSvB,wBFhSuB,CEgSE,CFhSF,EEgSK,GFhSL,CAAA,IAAA,CAAA,EEgSgB,cFhShB,CAAA,CAAA,EEiSjC,YFjSiC,CEkSlC,CFlSkC,EEmSlC,SFnSkC,EEoSlC,CFpSkC,EEqSlC,aFrSkC,GAAA,QEsS1B,KFtS6B,GAAA;IAA3B,EAAA,EEuSF,GFvSE,CAAA,IAAA,CAAA;IAAiC,WAAA,EEwS1B,GFxS0B,CAAA,aAAA,CAAA;IAA+B,aAAA,EEySvD,cFzSuD;EAAG,CAAA,IE4S7E,KF5SgF,CAAA;;;;EAHxE,UAAA,CAAA,CAAA,EEqYI,YFrYJ,CEqYiB,UFrYjB,CEqY4B,QFrY5B,CEqYqC,CFrYrC,EEqYwC,SFrYxC,CAAA,CAAA,EEqYqD,KFrYrD,CAAA;EAMP;;;;OAEO,CAAA,CAAA,EEqYD,UFrYC,CEqYU,CFrYV,EEqYa,SFrYb,EEqYwB,QFrYxB,CEqYiC,CFrYjC,EEqYoC,SFrYpC,CAAA,EEqYgD,aFrYhD,EEqY+D,KFrY/D,EEqYsE,CFrYtE,CAAA;;AACiB,iBE8Yb,MAAA,CF9Ya,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACG;;;;;;;;AAOL,iBE2eX,qBF3eW,CAAA,eE2e0B,YF3e1B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EE8ehB,YF9egB,CE8eH,MF9eG,EE8eK,KF9eL,CAAA,EAAA,MAAA,EE+ejB,eF/eiB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEifxB,SFjfwB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/table-schema.ts","../src/types.ts","../src/query-builder.ts"],"sourcesContent":[],"mappings":"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M,CAAA;AAGpD;;;AAEmB,KE0CP,kBF1CO,CAAA,UE2CP,eF3CO,EAAA,sBE4CK,gBF5CL,CAAA,GAAA,QAAM,ME8CX,aF9CW,GE8CK,WF9CL,CE+CrB,CF/CqB,EEgDrB,aFhDqB,CEgDP,CFhDO,CAAA,CAAA,IAAA,CAAA,EEiDrB,aFjDqB,CEiDP,CFjDO,CAAA,CAAA,eAAA,CAAA,EEkDrB,aFlDqB,CEkDP,CFlDO,CAAA,CAAA,aAAA,CAAA,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA,CAAA,EAGzB;AAA2C,KEmD/B,mBFnD+B,CAAA,UEoD/B,eFpD+B,EAAA,kBEqDvB,UFrDuB,CEqDZ,CFrDY,CAAA,EAAA,sBEsDnB,gBFtDmB,CAAA,GEuDvC,IFvDuC,CEuDlC,UFvDkC,CEuDvB,QFvDuB,CEuDd,CFvDc,EEuDX,SFvDW,CAAA,CAAA,EEuDE,iBFvDF,CEuDoB,aFvDpB,CAAA,CAAA,GEwDzC,kBFxDyC,CEwDtB,CFxDsB,EEwDnB,aFxDmB,CAAA;AACX,KEyDpB,oBFzDoB,CAAA,UE0DpB,eF1DoB,EAAA,kBE2DZ,UF3DY,CE2DD,CF3DC,CAAA,EAAA,sBE4DR,gBF5DQ,CAAA,GAAA,CE6D3B,IF7D2B,CE6DtB,UF7DsB,CE6DX,QF7DW,CE6DF,CF7DE,EE6DC,SF7DD,CAAA,CAAA,EE6Dc,iBF7Dd,CE6DgC,aF7DhC,CAAA,CAAA,GE8D9B,kBF9D8B,CE8DX,CF9DW,EE8DR,aF9DQ,CAAA,CAAA,EAAA;;;AAGhC;AAUA;AAAuB,KEuDX,WFvDW,CAAA,UEwDX,eFxDW,EAAA,kBEyDH,UFzDG,CEyDQ,CFzDR,CAAA,EAAA,sBE0DC,gBF1DD,EAAA,cAAA,OAAA,CAAA,GE4DnB,KF5DmB,SAAA,IAAA,GE6DnB,mBF7DmB,CE6DC,CF7DD,EE6DI,SF7DJ,EE6De,aF7Df,CAAA,GE8DnB,oBF9DmB,CE8DE,CF9DF,EE8DK,SF9DL,EE8DgB,aF9DhB,CAAA;AAAW,cEgErB,UFhEqB,CAAA,UEiEtB,eFjEsB,EAAA,kBEkEd,UFlEc,CEkEH,CFlEG,CAAA,EAAA,UAAA;SAChC,EEkEqB,MFlErB,CAAA,MAAA,EEkEoC,YFlEpC,CAAA;yBEoEsB,gBFpEQ,EAAA,cAAA,OAAA,EAAA,IAAA,IAAA,CAAA,CAAA;mBAC1B,SAAA;EAAC,iBAAA,OAAA;EAIK,iBAAY,MAAA;EAAA,iBAAA,QAAA;UAAW,WAAA;aAAuC,CAAA,SAAA,EEsE1C,SFtE0C,EAAA,OAAA,EEuE5C,YFvE4C,CEuE/B,UFvE+B,CEuEpB,CFvEoB,CAAA,EEuEhB,KFvEgB,CAAA,EAAA,MAAA,EEwE7C,CFxE6C,EAAA,QAAA,EEyE3C,QFzE2C,CEyElC,CFzEkC,EEyE/B,CFzE+B,CAAA;KAAZ,CAAA,CAAA,EEmFrD,CFnFqD;kBAC5D,CAAA,OAAA,EAAA,GAAA,EAAA,CAAA,EEsFkC,SFtFlC;kBAA8B,CAAA,CAAA,EE0FV,SF1FU;YAClB,CAAA,CAAA,EE6FE,SF7FF;MAA8B,UAAA,CAAA,CAAA,EEiGxB,UFjGwB,CEiGb,CFjGa,EEiGV,KFjGU,EEiGH,CFjGG,CAAA;MAAtC,KAAA,CAAA,CAAA,EAAA,OAAA;EAAO,IAAA,IAAA,CAAA,CAAA,EAAA,MAAA;AAIb;;;;;AAGY,cEsNC,YFtNY,CAAA,gBEuNP,eFvNO,EAAA,wBEwNC,UFxND,CEwNY,CFxNZ,CAAA,EAAA,UAAA,IAAA,EAAA,4BE0NK,gBF1NL,GAAA,CAAA,CAAA,EAAA,oBAAA,OAAA,GAAA,KAAA,CAAA,CAAA;EAAA,iBAAA,MAAA;mBACb,SAAA;mBACa,QAAA;UAAb,OAAA;aACF,CAAA,MAAA,EE2NmB,CF3NnB,EAAA,SAAA,EE4NsB,SF5NtB,EAAA,QAAA,CAAA,EE6NqB,QF7NrB,CE6N8B,QF7N9B,CE6NuC,CF7NvC,EE6N0C,SF7N1C,CAAA,EE6NsD,CF7NtD,CAAA,EAAA,OAAA,CAAA,EE8NW,YF9NX,CE8NwB,UF9NxB,CE8NmC,QF9NnC,CE8N4C,CF9N5C,EE8N+C,SF9N/C,CAAA,CAAA,EE8N4D,KF9N5D,CAAA;;;AAGV;EAAwB,KAAA,CAAA,UAAA,EEkOR,OFlOQ,CEkOA,UFlOA,CEkOW,QFlOX,CEkOoB,CFlOpB,EEkOuB,SFlOvB,CAAA,CAAA,CAAA,CAAA,EEmOnB,YFnOmB,CEmON,CFnOM,EEmOH,SFnOG,EEmOQ,CFnOR,EEmOW,aFnOX,EEmO0B,KFnO1B,CAAA;;;;QAGE,CAAA,GAAA,MAAA,EAAA,CAAA,CAAA,MEyOH,UFzOG,CEyOQ,QFzOR,CEyOiB,CFzOjB,EEyOoB,SFzOpB,CAAA,CAAA,GAAA,MAAA,CAAA,GAAA,GAAA,CAAA,EAAA,CAAA,EE0OrB,YF1OqB,CE0OR,CF1OQ,EE0OL,SF1OK,EE0OM,CF1ON,EE0OS,aF1OT,EE0OwB,KF1OxB,CAAA;;;;SACC,CAAA,KAAA,EEqPhB,eFrPgB,CEqPA,QFrPA,CEqPS,CFrPT,EEqPY,SFrPZ,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,KAAA,GAAA,MAAA,CAAA,EEuPtB,YFvPsB,CEuPT,CFvPS,EEuPN,SFvPM,EEuPK,CFvPL,EEuPQ,aFvPR,EEuPuB,KFvPvB,CAAA;;;;OAGQ,CAAA,KAAA,EAAA,MAAA,CAAA,EE+PX,YF/PW,CE+PE,CF/PF,EE+PK,SF/PL,EE+PgB,CF/PhB,EE+PmB,aF/PnB,EE+PkC,KF/PlC,CAAA;;;;QAAW,CAAA,KAAA,EAAA,MAAA,CAAA,EEuQrB,YFvQqB,CEuQR,CFvQQ,EEuQL,SFvQK,EEuQM,CFvQN,EEuQS,aFvQT,EEuQwB,KFvQxB,CAAA;KAA+B,CAAA,CAAA,EE4QpE,YF5QoE,CE4QvD,CF5QuD,EE4QpD,SF5QoD,EE4QzC,CF5QyC,EE4QtC,aF5QsC,EAAA,IAAA,CAAA;;;;;;SAEvC,CAAA,cEyRpB,kBFzRoB,CEyRD,CFzRC,EEyRE,SFzRF,CAAA,CAAA,OAAA,CAAA,EAAA,YE0RtB,eF1RsB,CE0RN,CF1RM,EE0RH,SF1RG,EE0RQ,KF1RR,CAAA,EAAA,uBE2RX,gBF3RW,GAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EE6R3B,KF7R2B,EAAA,qBAAA,CAAA,EE+R9B,wBF/R8B,CE+RL,CF/RK,EE+RF,GF/RE,CAAA,IAAA,CAAA,EE+RS,cF/RT,CAAA,GEgS9B,GFhS8B,CAAA,aAAA,CAAA,EAAA,QAAA,CAAA,EEiSvB,wBFjSuB,CEiSE,CFjSF,EEiSK,GFjSL,CAAA,IAAA,CAAA,EEiSgB,cFjShB,CAAA,CAAA,EEkSjC,YFlSiC,CEmSlC,CFnSkC,EEoSlC,SFpSkC,EEqSlC,CFrSkC,EEsSlC,aFtSkC,GAAA,QEuS1B,KFvS6B,GAAA;IAA3B,EAAA,EEwSF,GFxSE,CAAA,IAAA,CAAA;IAAiC,WAAA,EEyS1B,GFzS0B,CAAA,aAAA,CAAA;IAA+B,aAAA,EE0SvD,cF1SuD;EAAG,CAAA,IE6S7E,KF7SgF,CAAA;;;;EAHxE,UAAA,CAAA,CAAA,EEsYI,YFtYJ,CEsYiB,UFtYjB,CEsY4B,QFtY5B,CEsYqC,CFtYrC,EEsYwC,SFtYxC,CAAA,CAAA,EEsYqD,KFtYrD,CAAA;EAMP;;;;OAEO,CAAA,CAAA,EEsYD,UFtYC,CEsYU,CFtYV,EEsYa,SFtYb,EEsYwB,QFtYxB,CEsYiC,CFtYjC,EEsYoC,SFtYpC,CAAA,EEsYgD,aFtYhD,EEsY+D,KFtY/D,EEsYsE,CFtYtE,CAAA;;AACiB,iBE+Yb,MAAA,CF/Ya,GAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AACG;;;;;;;;AAOL,iBE6eX,qBF7eW,CAAA,eE6e0B,YF7e1B,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,EAAA,QAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,QAAA,GAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EEgfhB,YFhfgB,CEgfH,MFhfG,EEgfK,KFhfL,CAAA,EAAA,MAAA,EEifjB,eFjfiB,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EEmfxB,SFnfwB"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RecordId"],"sources":["../src/query-builder.ts"],"sourcesContent":["import { RecordId } from 'surrealdb';\nimport type {\n GenericModel,\n QueryInfo,\n QueryOptions,\n QueryModifier,\n RelatedQuery,\n SchemaAwareQueryModifier,\n SchemaAwareQueryModifierBuilder,\n} from './types';\nimport type {\n TableNames,\n GetTable,\n TableModel,\n TableRelationships,\n GetRelationship,\n SchemaStructure,\n TableFieldNames,\n ColumnSchema,\n} from './table-schema';\n\n/**\n * Parse a string ID to RecordId\n * - If it's in the format \"table:id\", use it as-is\n * - If it's just an ID without \":\", prepend the table name\n * @param value - The value to parse (could be a string ID)\n * @param tableName - The table name to use if the ID doesn't contain \":\"\n * @param fieldName - The field name to determine if this is an ID field\n */\nfunction parseStringToRecordId(value: unknown, tableName?: string, fieldName?: string): unknown {\n if (typeof value !== 'string') return value;\n\n // If it already contains \":\", parse it as a full record ID\n if (value.includes(':')) {\n const [table, ...idParts] = value.split(':');\n const id = idParts.join(':'); // Handle IDs that contain colons\n return new RecordId(table, id);\n }\n\n // If this is an \"id\" field and we have a table name, prepend it\n if (fieldName === 'id' && tableName) {\n return new RecordId(tableName, value);\n }\n\n // Otherwise, return as-is (it might not be an ID at all)\n return value;\n}\n\n/**\n * Recursively parse string IDs to RecordId in an object\n * @param obj - The object to parse\n * @param tableName - The table name to use for ID fields without \":\"\n */\nfunction parseObjectIdsToRecordId(obj: unknown, tableName?: string): unknown {\n if (obj === null || obj === undefined) return obj;\n\n if (typeof obj === 'string') {\n return parseStringToRecordId(obj, tableName);\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => parseObjectIdsToRecordId(item, tableName));\n }\n\n if (typeof obj === 'object' && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n // Parse recursively, passing the field name to identify ID fields\n result[key] =\n typeof value === 'string'\n ? parseStringToRecordId(value, tableName, key)\n : parseObjectIdsToRecordId(value, tableName);\n }\n return result;\n }\n\n return obj;\n}\n\nexport type Executor<T extends { columns: Record<string, ColumnSchema> }, R = void> = (\n query: InnerQuery<T, boolean>\n) => R;\n\nexport class InnerQuery<\n T extends { columns: Record<string, ColumnSchema> },\n IsOne extends boolean,\n R = void,\n> {\n private _hash: number;\n private _mainQuery: QueryInfo;\n private _selectQuery: QueryInfo;\n private _selectLiveQuery: QueryInfo;\n private _subqueries: InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[];\n\n constructor(\n private readonly _tableName: string,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: SchemaStructure,\n private readonly executor: Executor<any, R>\n ) {\n this._selectQuery = buildQueryFromOptions('SELECT', this._tableName, this.options, this.schema);\n\n this._mainQuery = buildQueryFromOptions(\n 'SELECT',\n this._tableName,\n { ...this.options, related: [] },\n this.schema\n );\n\n this._hash = this._selectQuery.hash;\n\n this._selectLiveQuery = buildQueryFromOptions(\n 'LIVE SELECT',\n this._tableName,\n this.options,\n this.schema\n );\n\n this._subqueries = extractSubqueryQueryInfos(\n schema,\n this._tableName,\n this.options,\n this.executor\n );\n }\n\n get mainQuery(): QueryInfo {\n return this._mainQuery;\n }\n\n get subqueries(): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n return this._subqueries;\n }\n\n get selectQuery(): QueryInfo {\n return this._selectQuery;\n }\n\n get selectLiveQuery(): QueryInfo {\n return this._selectLiveQuery;\n }\n\n get tableName(): string {\n return this._tableName;\n }\n\n get hash(): number {\n return this._hash;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n public run(): R {\n return this.executor(this);\n }\n\n public buildUpdateQuery(patches: any[]): QueryInfo {\n return buildQueryFromOptions('UPDATE', this._tableName, this.options, this.schema, patches);\n }\n\n public buildDeleteQuery(): QueryInfo {\n return buildQueryFromOptions('DELETE', this._tableName, this.options, this.schema);\n }\n\n public getOptions(): QueryOptions<TableModel<T>, IsOne> {\n return this.options;\n }\n}\n\n/**\n * Helper type to get the model type for a related table\n */\ntype GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =\n RelatedTableName extends TableNames<S> ? TableModel<GetTable<S, RelatedTableName>> : never;\n\n/**\n * Helper type to extract field names from RelatedFields\n */\nexport type ExtractFieldNames<RelatedFields extends RelatedFieldsMap> = keyof RelatedFields;\n\nexport type RelatedFieldMapEntry = {\n to: string;\n cardinality: 'one' | 'many';\n relatedFields: RelatedFieldsMap;\n};\n\nexport type RelatedFieldsMap = Record<string, RelatedFieldMapEntry>;\n\n/**\n * Helper type to build the related fields object based on accumulated relationships\n */\nexport type BuildRelatedFields<\n S extends SchemaStructure,\n RelatedFields extends RelatedFieldsMap,\n> = {\n [K in keyof RelatedFields]: QueryResult<\n S,\n RelatedFields[K]['to'],\n RelatedFields[K]['relatedFields'],\n RelatedFields[K]['cardinality'] extends 'one' ? true : false\n >;\n};\n\nexport type BuildResultModelOne<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>;\n\nexport type BuildResultModelMany<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = (Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>)[];\n\n/**\n * The final result type combining base model with related fields\n * Excludes related field keys from the base model to avoid type conflicts\n */\nexport type QueryResult<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n> = IsOne extends true\n ? BuildResultModelOne<S, TableName, RelatedFields>\n : BuildResultModelMany<S, TableName, RelatedFields>;\n\nexport class FinalQuery<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n T extends { columns: Record<string, ColumnSchema> },\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n R = void,\n> {\n private _innerQuery: InnerQuery<T, IsOne, R>;\n\n constructor(\n private readonly tableName: TableName,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: S,\n private readonly executor: Executor<T, R>\n ) {\n this._innerQuery = new InnerQuery<T, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executor\n );\n }\n\n run(): R {\n return this.executor(this._innerQuery);\n }\n\n buildUpdateQuery(patches: any[]): QueryInfo {\n return this._innerQuery.buildUpdateQuery(patches);\n }\n\n buildDeleteQuery(): QueryInfo {\n return this._innerQuery.buildDeleteQuery();\n }\n\n selectLive(): QueryInfo {\n return this._innerQuery.selectLiveQuery;\n }\n\n get innerQuery(): InnerQuery<T, IsOne, R> {\n return this._innerQuery;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n get hash(): number {\n return this._innerQuery.hash;\n }\n}\n\n/**\n * Schema-aware query modifier builder implementation\n * This version provides full type safety for nested relationships\n */\nclass SchemaAwareQueryModifierBuilderImpl<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap = {},\n> implements SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields> {\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, boolean> = {};\n\n constructor(\n private readonly tableName: TableName,\n private readonly schema: S\n ) {}\n\n where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n limit(count: number): this {\n this.options.limit = count;\n return this;\n }\n\n offset(count: number): this {\n this.options.offset = count;\n return this;\n }\n\n orderBy(\n field: keyof TableModel<GetTable<S, TableName>> & string,\n direction: 'asc' | 'desc' = 'asc'\n ): this {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n // Schema-aware implementation for nested relationships with full type inference\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n relatedField: Field,\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): SchemaAwareQueryModifierBuilderImpl<\n S,\n TableName,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n }\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField);\n\n if (!exists) {\n // Look up the relationship from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === relatedField\n );\n\n if (!relationship) {\n throw new Error(\n `Relationship '${String(relatedField)}' not found for table '${this.tableName}'`\n );\n }\n\n const relatedTable = relationship.to;\n const cardinality = relationship.cardinality;\n const foreignKeyField = cardinality === 'many' ? this.tableName : relatedField;\n\n this.options.related.push({\n relatedTable,\n alias: relatedField as string,\n modifier: modifier as QueryModifier<GenericModel>,\n cardinality,\n foreignKeyField: foreignKeyField as string,\n } as RelatedQuery & { foreignKeyField: string });\n }\n return this as any;\n }\n\n _getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, boolean> {\n return this.options;\n }\n}\n\n/**\n * Fluent query builder for constructing queries with chainable methods\n * Now with full type inference from schema constant AND related field accumulation!\n */\nexport class QueryBuilder<\n const S extends SchemaStructure,\n const TableName extends TableNames<S>,\n const R = void,\n const RelatedFields extends RelatedFieldsMap = {},\n const IsOne extends boolean = false,\n> {\n constructor(\n private readonly schema: S,\n private readonly tableName: TableName,\n private readonly executer: Executor<GetTable<S, TableName>, R> = () => undefined as R,\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> = {}\n ) {}\n\n /**\n * Add additional where conditions\n */\n where(\n conditions: Partial<TableModel<GetTable<S, TableName>>>\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n /**\n * Specify fields to select\n */\n select(\n ...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n /**\n * Add ordering to the query (only for non-live queries)\n */\n orderBy(\n field: TableFieldNames<GetTable<S, TableName>>,\n direction: 'asc' | 'desc' = 'asc'\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n /**\n * Add limit to the query (only for non-live queries)\n */\n limit(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.limit = count;\n return this;\n }\n\n /**\n * Add offset to the query (only for non-live queries)\n */\n offset(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.offset = count;\n return this;\n }\n\n one(): QueryBuilder<S, TableName, R, RelatedFields, true> {\n return new QueryBuilder<S, TableName, R, RelatedFields, true>(\n this.schema,\n this.tableName,\n this.executer,\n { ...this.options, isOne: true }\n );\n }\n\n /**\n * Include related data via subqueries\n * Field and cardinality are validated against schema relationships\n * Now accumulates the related field in the type!\n */\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n field: Field,\n modifierOrCardinality?:\n | SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n | Rel['cardinality'],\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): QueryBuilder<\n S,\n TableName,\n R,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n },\n IsOne\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n // Check if field already exists\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === field);\n\n if (exists) {\n return this as any;\n }\n\n // Look up relationship metadata from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === field\n );\n\n if (!relationship) {\n throw new Error(`Relationship '${String(field)}' not found for table '${this.tableName}'`);\n }\n\n // Determine cardinality and modifier based on arguments\n let actualCardinality: 'one' | 'many';\n let actualModifier: SchemaAwareQueryModifier<S, Rel['to']> | undefined;\n\n if (typeof modifierOrCardinality === 'function') {\n // Signature: related(field, modifier)\n actualCardinality = relationship.cardinality;\n actualModifier = modifierOrCardinality;\n } else if (modifierOrCardinality === 'one' || modifierOrCardinality === 'many') {\n // Signature: related(field, cardinality, modifier)\n actualCardinality = modifierOrCardinality;\n actualModifier = modifier;\n } else {\n // Signature: related(field)\n actualCardinality = relationship.cardinality;\n actualModifier = undefined;\n }\n\n // Determine foreign key field based on cardinality\n let foreignKeyField: string =\n actualCardinality === 'many' ? (this.tableName as string) : (field as string);\n\n if (actualCardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = this.schema.relationships.filter(\n (r) => r.from === relationship.to && r.to === this.tableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === this.tableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (this.tableName.startsWith(`${relationship.to}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = this.tableName.slice(relationship.to.length + 1);\n }\n }\n }\n\n // Cast the schema-aware modifier to the runtime type\n // At runtime, QueryModifierBuilderImpl will work correctly with the schema\n const wrappedModifier = actualModifier as QueryModifier<GenericModel> | undefined;\n\n this.options.related.push({\n relatedTable: relationship.to,\n alias: field as string,\n modifier: wrappedModifier,\n cardinality: actualCardinality,\n foreignKeyField: foreignKeyField as any,\n } as RelatedQuery & { foreignKeyField: string });\n\n return this as any;\n }\n\n /**\n * Get the current query options\n */\n getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> {\n return this.options;\n }\n\n /**\n * Build query methods for SELECT and LIVE SELECT (custom implementation)\n * @returns FinalQuery object with select() method for custom usage\n */\n build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R> {\n return new FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executer\n );\n }\n}\n\nexport function cyrb53(str: string, seed: number = 0): number {\n let h1 = 0xdeadbeef ^ seed,\n h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);\n h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);\n h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function extractSubqueryQueryInfos<S extends SchemaStructure>(\n schema: S,\n parentTableName: string,\n options: QueryOptions<GenericModel, boolean>,\n executer: Executor<{ columns: Record<string, ColumnSchema> }>\n): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n if (!options.related) {\n return [];\n }\n\n return options.related.map((rel) => {\n // Get base options from modifier\n const subOptions =\n rel\n .modifier?.(new SchemaAwareQueryModifierBuilderImpl(rel.relatedTable, schema))\n ._getOptions() ?? {};\n\n // Find relationship to determine how to filter\n const relationship = schema.relationships.find(\n (r) => r.from === parentTableName && r.field === rel.alias\n );\n\n if (relationship) {\n // Determine foreign key field\n // rel.alias is guaranteed to be defined if relationship is found (matched r.field)\n let foreignKeyField = rel.alias!;\n\n if (relationship.cardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = schema.relationships.filter(\n (r) => r.from === rel.relatedTable && r.to === parentTableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === parentTableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (parentTableName.startsWith(`${rel.relatedTable}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = parentTableName.slice(rel.relatedTable.length + 1);\n } else {\n // Default to parent table name\n foreignKeyField = parentTableName;\n }\n }\n }\n\n // Add parent filter to where clause\n subOptions.where = subOptions.where || {};\n\n if (relationship.cardinality === 'many') {\n // One-to-Many: Child has foreign key to parent\n // WHERE $parentIds ∋ child.parent_id\n (subOptions.where as any)[foreignKeyField] = { _op: '∋', _val: '$parentIds', _swap: true };\n } else {\n // One-to-One: Parent has foreign key to child\n // WHERE $parent_<foreignKeyField> ∋ child.id\n // We use a dynamic variable name derived from the foreign key field on the parent\n (subOptions.where as any).id = {\n _op: '∋',\n _val: `$parent_${foreignKeyField}`,\n _swap: true,\n };\n }\n }\n\n return new InnerQuery(rel.relatedTable, subOptions, schema, executer);\n });\n}\n\n/**\n * Build a query string from query options\n * @param method - The query method (SELECT or LIVE SELECT)\n * @param tableName - The table name to query\n * @param options - The query options (where, select, orderBy, etc.)\n * @param schema - Optional schema for resolving nested relationships\n * @returns QueryInfo with the generated SQL and variables\n */\nexport function buildQueryFromOptions<TModel extends GenericModel, IsOne extends boolean>(\n method: 'SELECT' | 'LIVE SELECT' | 'LIVE SELECT DIFF' | 'UPDATE' | 'DELETE',\n tableName: string,\n options: QueryOptions<TModel, IsOne>,\n schema: SchemaStructure,\n patches?: any[]\n): QueryInfo {\n if (options.isOne) {\n options.limit = 1;\n }\n const isLiveQuery = method === 'LIVE SELECT' || method === 'LIVE SELECT DIFF';\n\n // Parse where conditions to convert string IDs to RecordId\n const parsedWhere = options.where\n ? parseObjectIdsToRecordId(options.where, tableName)\n : undefined;\n\n // Build SELECT clause\n let selectClause = '*';\n\n if (method === 'LIVE SELECT DIFF') {\n selectClause = '';\n } else {\n if (options.select && options.select.length > 0) {\n selectClause = options.select.join(', ');\n }\n }\n\n // Build related subqueries (fetch clauses)\n let fetchClauses = '';\n if (!isLiveQuery && options.related && options.related.length > 0) {\n const subqueries = options.related.map((rel) => buildSubquery(rel, schema));\n fetchClauses = ', ' + subqueries.join(', ');\n }\n\n // Start building the query\n let query = '';\n\n if (method === 'UPDATE') {\n query = `UPDATE ${tableName}`;\n } else if (method === 'DELETE') {\n query = `DELETE FROM ${tableName}`;\n } else {\n query = `${method}${selectClause ? ` ${selectClause}` : ''}${fetchClauses} FROM ${tableName}`;\n }\n\n // Build WHERE clause\n const vars: Record<string, unknown> = {};\n if (parsedWhere && Object.keys(parsedWhere).length > 0) {\n const conditions: string[] = [];\n for (const [key, value] of Object.entries(parsedWhere)) {\n const varName = key;\n\n // Handle operator objects { _op, _val }\n if (value && typeof value === 'object' && '_op' in value && '_val' in value) {\n const { _op, _val, _swap } = value as { _op: string; _val: unknown; _swap?: boolean };\n\n let rightSide = '';\n if (typeof _val === 'string' && _val.startsWith('$')) {\n rightSide = _val;\n } else {\n vars[varName] = _val;\n rightSide = `$${varName}`;\n }\n\n if (_swap) {\n conditions.push(`${rightSide} ${_op} ${key}`);\n } else {\n conditions.push(`${key} ${_op} ${rightSide}`);\n }\n } else {\n vars[varName] = value;\n conditions.push(`${key} = $${varName}`);\n }\n }\n query += ` WHERE ${conditions.join(' AND ')}`;\n }\n\n // Add PATCH for UPDATE\n if (method === 'UPDATE' && patches) {\n query += ` PATCH ${JSON.stringify(patches)}`;\n }\n\n // Add ORDER BY, LIMIT, START only for non-live queries and non-update/delete queries (unless supported)\n // SurrealDB UPDATE/DELETE supports WHERE, but LIMIT/START/ORDER BY might be restricted or behave differently.\n // For now, let's allow them if they are set, as SurrealDB supports them for DELETE/UPDATE.\n if (!isLiveQuery) {\n if (options.orderBy && Object.keys(options.orderBy).length > 0) {\n const orderClauses = Object.entries(options.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n query += ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n if (options.limit !== undefined) {\n query += ` LIMIT ${options.limit}`;\n }\n\n if (options.offset !== undefined) {\n query += ` START ${options.offset}`;\n }\n }\n\n query += ';';\n\n return {\n query,\n hash: cyrb53(\n `${query}::${Object.entries(vars)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')}`,\n 0\n ),\n vars: Object.keys(vars).length > 0 ? vars : undefined,\n };\n}\n\n/**\n * Build a subquery for a related field\n */\nfunction buildSubquery(\n rel: RelatedQuery & { foreignKeyField?: string },\n schema: SchemaStructure\n): string {\n const { relatedTable, alias, modifier, cardinality } = rel;\n const foreignKeyField = rel.foreignKeyField || alias;\n\n let subquerySelect = '*';\n let subqueryWhere = '';\n let subqueryOrderBy = '';\n let subqueryLimit = '';\n\n // If there's a modifier, apply it to get the sub-options\n if (modifier) {\n const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);\n modifier(modifierBuilder);\n const subOptions = modifierBuilder._getOptions();\n\n // Build sub-select\n if (subOptions.select && subOptions.select.length > 0) {\n subquerySelect = subOptions.select.join(', ');\n }\n\n // Build sub-where\n if (subOptions.where && Object.keys(subOptions.where).length > 0) {\n const parsedSubWhere = parseObjectIdsToRecordId(subOptions.where, relatedTable) as Record<\n string,\n unknown\n >;\n const conditions = Object.entries(parsedSubWhere).map(([key, value]) => {\n if (value instanceof RecordId) {\n return `${key} = ${value.toString()}`;\n }\n return `${key} = ${JSON.stringify(value)}`;\n });\n subqueryWhere = ` AND ${conditions.join(' AND ')}`;\n }\n\n // Build sub-orderBy\n if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) {\n const orderClauses = Object.entries(subOptions.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n subqueryOrderBy = ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n // Build sub-limit\n if (subOptions.limit !== undefined) {\n subqueryLimit = ` LIMIT ${subOptions.limit}`;\n }\n\n // Handle nested relationships\n if (subOptions.related && subOptions.related.length > 0) {\n // Resolve nested relationship metadata if schema is available\n const resolvedNestedRels = subOptions.related.map((nestedRel) => {\n if (schema) {\n // Look up the actual relationship metadata from schema\n const relationship = schema.relationships.find(\n (r) => r.from === relatedTable && r.field === nestedRel.alias\n );\n\n if (relationship) {\n // Use the resolved table name and add foreign key field\n const nestedForeignKeyField =\n relationship.cardinality === 'many' ? relatedTable : nestedRel.alias;\n\n return {\n ...nestedRel,\n relatedTable: relationship.to,\n cardinality: relationship.cardinality,\n foreignKeyField: nestedForeignKeyField,\n } as RelatedQuery & { foreignKeyField: string };\n }\n }\n return nestedRel;\n });\n\n const nestedSubqueries = resolvedNestedRels.map((nestedRel) =>\n buildSubquery(nestedRel, schema)\n );\n subquerySelect += ', ' + nestedSubqueries.join(', ');\n }\n }\n\n // Determine the WHERE condition based on cardinality\n let whereCondition: string;\n if (cardinality === 'one') {\n // For one-to-one, the related table's id matches parent's foreign key field\n whereCondition = `WHERE id=$parent.${foreignKeyField}`;\n // Add LIMIT 1 for one-to-one relationships if not already set\n if (!subqueryLimit) {\n subqueryLimit = ' LIMIT 1';\n }\n } else {\n // For one-to-many, the related table has a foreign key field pointing to parent's id\n whereCondition = `WHERE ${foreignKeyField}=$parent.id`;\n }\n\n // Build the complete subquery\n let subquery = `(SELECT ${subquerySelect} FROM ${relatedTable} ${whereCondition}${subqueryWhere}${subqueryOrderBy}${subqueryLimit})`;\n\n // For one-to-one relationships, select the first element\n if (cardinality === 'one') {\n subquery += '[0]';\n }\n\n subquery += ` AS ${alias}`;\n\n return subquery;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["RecordId"],"sources":["../src/query-builder.ts"],"sourcesContent":["import { RecordId } from 'surrealdb';\nimport type {\n GenericModel,\n QueryInfo,\n QueryOptions,\n QueryModifier,\n RelatedQuery,\n SchemaAwareQueryModifier,\n SchemaAwareQueryModifierBuilder,\n} from './types';\nimport type {\n TableNames,\n GetTable,\n TableModel,\n TableRelationships,\n GetRelationship,\n SchemaStructure,\n TableFieldNames,\n ColumnSchema,\n} from './table-schema';\n\n/**\n * Parse a string ID to RecordId\n * - If it's in the format \"table:id\", use it as-is\n * - If it's just an ID without \":\", prepend the table name\n * @param value - The value to parse (could be a string ID)\n * @param tableName - The table name to use if the ID doesn't contain \":\"\n * @param fieldName - The field name to determine if this is an ID field\n */\nfunction parseStringToRecordId(value: unknown, tableName?: string, fieldName?: string): unknown {\n if (typeof value !== 'string') return value;\n\n // If it already contains \":\", parse it as a full record ID\n if (value.includes(':')) {\n const [table, ...idParts] = value.split(':');\n const id = idParts.join(':'); // Handle IDs that contain colons\n return new RecordId(table, id);\n }\n\n // If this is an \"id\" field and we have a table name, prepend it\n if (fieldName === 'id' && tableName) {\n return new RecordId(tableName, value);\n }\n\n // Otherwise, return as-is (it might not be an ID at all)\n return value;\n}\n\n/**\n * Recursively parse string IDs to RecordId in an object\n * @param obj - The object to parse\n * @param tableName - The table name to use for ID fields without \":\"\n */\nfunction parseObjectIdsToRecordId(obj: unknown, tableName?: string): unknown {\n if (obj === null || obj === undefined) return obj;\n\n if (typeof obj === 'string') {\n return parseStringToRecordId(obj, tableName);\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => parseObjectIdsToRecordId(item, tableName));\n }\n\n if (typeof obj === 'object' && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n // Parse recursively, passing the field name to identify ID fields\n result[key] =\n typeof value === 'string'\n ? parseStringToRecordId(value, tableName, key)\n : parseObjectIdsToRecordId(value, tableName);\n }\n return result;\n }\n\n return obj;\n}\n\nexport type Executor<T extends { columns: Record<string, ColumnSchema> }, R = void> = (\n query: InnerQuery<T, boolean>\n) => R;\n\nexport class InnerQuery<\n T extends { columns: Record<string, ColumnSchema> },\n IsOne extends boolean,\n R = void,\n> {\n private _hash: number;\n private _mainQuery: QueryInfo;\n private _selectQuery: QueryInfo;\n private _selectLiveQuery: QueryInfo;\n private _subqueries: InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[];\n\n constructor(\n private readonly _tableName: string,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: SchemaStructure,\n private readonly executor: Executor<any, R>\n ) {\n this._selectQuery = buildQueryFromOptions('SELECT', this._tableName, this.options, this.schema);\n\n this._mainQuery = buildQueryFromOptions(\n 'SELECT',\n this._tableName,\n { ...this.options, related: [] },\n this.schema\n );\n\n this._hash = this._selectQuery.hash;\n\n this._selectLiveQuery = buildQueryFromOptions(\n 'LIVE SELECT',\n this._tableName,\n this.options,\n this.schema\n );\n\n this._subqueries = extractSubqueryQueryInfos(\n schema,\n this._tableName,\n this.options,\n this.executor\n );\n }\n\n get mainQuery(): QueryInfo {\n return this._mainQuery;\n }\n\n get subqueries(): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n return this._subqueries;\n }\n\n get selectQuery(): QueryInfo {\n return this._selectQuery;\n }\n\n get selectLiveQuery(): QueryInfo {\n return this._selectLiveQuery;\n }\n\n get tableName(): string {\n return this._tableName;\n }\n\n get hash(): number {\n return this._hash;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n public run(): R {\n return this.executor(this);\n }\n\n public buildUpdateQuery(patches: any[]): QueryInfo {\n return buildQueryFromOptions('UPDATE', this._tableName, this.options, this.schema, patches);\n }\n\n public buildDeleteQuery(): QueryInfo {\n return buildQueryFromOptions('DELETE', this._tableName, this.options, this.schema);\n }\n\n public getOptions(): QueryOptions<TableModel<T>, IsOne> {\n return this.options;\n }\n}\n\n/**\n * Helper type to get the model type for a related table\n */\ntype _GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =\n RelatedTableName extends TableNames<S> ? TableModel<GetTable<S, RelatedTableName>> : never;\n\n/**\n * Helper type to extract field names from RelatedFields\n */\nexport type ExtractFieldNames<RelatedFields extends RelatedFieldsMap> = keyof RelatedFields;\n\nexport type RelatedFieldMapEntry = {\n to: string;\n cardinality: 'one' | 'many';\n relatedFields: RelatedFieldsMap;\n};\n\nexport type RelatedFieldsMap = Record<string, RelatedFieldMapEntry>;\n\n/**\n * Helper type to build the related fields object based on accumulated relationships\n */\nexport type BuildRelatedFields<\n S extends SchemaStructure,\n RelatedFields extends RelatedFieldsMap,\n> = {\n [K in keyof RelatedFields]: QueryResult<\n S,\n RelatedFields[K]['to'],\n RelatedFields[K]['relatedFields'],\n RelatedFields[K]['cardinality'] extends 'one' ? true : false\n >;\n};\n\nexport type BuildResultModelOne<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>;\n\nexport type BuildResultModelMany<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = (Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>)[];\n\n/**\n * The final result type combining base model with related fields\n * Excludes related field keys from the base model to avoid type conflicts\n */\nexport type QueryResult<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n> = IsOne extends true\n ? BuildResultModelOne<S, TableName, RelatedFields>\n : BuildResultModelMany<S, TableName, RelatedFields>;\n\nexport class FinalQuery<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n T extends { columns: Record<string, ColumnSchema> },\n // oxlint-disable-next-line no-unused-vars -- RelatedFields is used externally for type inference\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n R = void,\n> {\n private _innerQuery: InnerQuery<T, IsOne, R>;\n\n constructor(\n private readonly tableName: TableName,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: S,\n private readonly executor: Executor<T, R>\n ) {\n this._innerQuery = new InnerQuery<T, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executor\n );\n }\n\n run(): R {\n return this.executor(this._innerQuery);\n }\n\n buildUpdateQuery(patches: any[]): QueryInfo {\n return this._innerQuery.buildUpdateQuery(patches);\n }\n\n buildDeleteQuery(): QueryInfo {\n return this._innerQuery.buildDeleteQuery();\n }\n\n selectLive(): QueryInfo {\n return this._innerQuery.selectLiveQuery;\n }\n\n get innerQuery(): InnerQuery<T, IsOne, R> {\n return this._innerQuery;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n get hash(): number {\n return this._innerQuery.hash;\n }\n}\n\n/**\n * Schema-aware query modifier builder implementation\n * This version provides full type safety for nested relationships\n */\nclass SchemaAwareQueryModifierBuilderImpl<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap = {},\n> implements SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields> {\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, boolean> = {};\n\n constructor(\n private readonly tableName: TableName,\n private readonly schema: S\n ) {}\n\n where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n limit(count: number): this {\n this.options.limit = count;\n return this;\n }\n\n offset(count: number): this {\n this.options.offset = count;\n return this;\n }\n\n orderBy(\n field: keyof TableModel<GetTable<S, TableName>> & string,\n direction: 'asc' | 'desc' = 'asc'\n ): this {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n // Schema-aware implementation for nested relationships with full type inference\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n relatedField: Field,\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): SchemaAwareQueryModifierBuilderImpl<\n S,\n TableName,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n }\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField);\n\n if (!exists) {\n // Look up the relationship from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === relatedField\n );\n\n if (!relationship) {\n throw new Error(\n `Relationship '${String(relatedField)}' not found for table '${this.tableName}'`\n );\n }\n\n const relatedTable = relationship.to;\n const cardinality = relationship.cardinality;\n const foreignKeyField = cardinality === 'many' ? this.tableName : relatedField;\n\n this.options.related.push({\n relatedTable,\n alias: relatedField as string,\n modifier: modifier as QueryModifier<GenericModel>,\n cardinality,\n foreignKeyField: foreignKeyField as string,\n } as RelatedQuery & { foreignKeyField: string });\n }\n return this as any;\n }\n\n _getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, boolean> {\n return this.options;\n }\n}\n\n/**\n * Fluent query builder for constructing queries with chainable methods\n * Now with full type inference from schema constant AND related field accumulation!\n */\nexport class QueryBuilder<\n const S extends SchemaStructure,\n const TableName extends TableNames<S>,\n const R = void,\n const RelatedFields extends RelatedFieldsMap = {},\n const IsOne extends boolean = false,\n> {\n constructor(\n private readonly schema: S,\n private readonly tableName: TableName,\n private readonly executer: Executor<GetTable<S, TableName>, R> = () => undefined as R,\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> = {}\n ) {}\n\n /**\n * Add additional where conditions\n */\n where(\n conditions: Partial<TableModel<GetTable<S, TableName>>>\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n /**\n * Specify fields to select\n */\n select(\n ...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n /**\n * Add ordering to the query (only for non-live queries)\n */\n orderBy(\n field: TableFieldNames<GetTable<S, TableName>>,\n direction: 'asc' | 'desc' = 'asc'\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n /**\n * Add limit to the query (only for non-live queries)\n */\n limit(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.limit = count;\n return this;\n }\n\n /**\n * Add offset to the query (only for non-live queries)\n */\n offset(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.offset = count;\n return this;\n }\n\n one(): QueryBuilder<S, TableName, R, RelatedFields, true> {\n return new QueryBuilder<S, TableName, R, RelatedFields, true>(\n this.schema,\n this.tableName,\n this.executer,\n { ...this.options, isOne: true }\n );\n }\n\n /**\n * Include related data via subqueries\n * Field and cardinality are validated against schema relationships\n * Now accumulates the related field in the type!\n */\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n field: Field,\n modifierOrCardinality?:\n | SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n | Rel['cardinality'],\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): QueryBuilder<\n S,\n TableName,\n R,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n },\n IsOne\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n // Check if field already exists\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === field);\n\n if (exists) {\n return this as any;\n }\n\n // Look up relationship metadata from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === field\n );\n\n if (!relationship) {\n throw new Error(`Relationship '${String(field)}' not found for table '${this.tableName}'`);\n }\n\n // Determine cardinality and modifier based on arguments\n let actualCardinality: 'one' | 'many';\n let actualModifier: SchemaAwareQueryModifier<S, Rel['to']> | undefined;\n\n if (typeof modifierOrCardinality === 'function') {\n // Signature: related(field, modifier)\n actualCardinality = relationship.cardinality;\n actualModifier = modifierOrCardinality;\n } else if (modifierOrCardinality === 'one' || modifierOrCardinality === 'many') {\n // Signature: related(field, cardinality, modifier)\n actualCardinality = modifierOrCardinality;\n actualModifier = modifier;\n } else {\n // Signature: related(field)\n actualCardinality = relationship.cardinality;\n actualModifier = undefined;\n }\n\n // Determine foreign key field based on cardinality\n let foreignKeyField: string =\n actualCardinality === 'many' ? (this.tableName as string) : (field as string);\n\n if (actualCardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = this.schema.relationships.filter(\n (r) => r.from === relationship.to && r.to === this.tableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === this.tableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (this.tableName.startsWith(`${relationship.to}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = this.tableName.slice(relationship.to.length + 1);\n }\n }\n }\n\n // Cast the schema-aware modifier to the runtime type\n // At runtime, QueryModifierBuilderImpl will work correctly with the schema\n const wrappedModifier = actualModifier as QueryModifier<GenericModel> | undefined;\n\n this.options.related.push({\n relatedTable: relationship.to,\n alias: field as string,\n modifier: wrappedModifier,\n cardinality: actualCardinality,\n foreignKeyField: foreignKeyField as any,\n } as RelatedQuery & { foreignKeyField: string });\n\n return this as any;\n }\n\n /**\n * Get the current query options\n */\n getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> {\n return this.options;\n }\n\n /**\n * Build query methods for SELECT and LIVE SELECT (custom implementation)\n * @returns FinalQuery object with select() method for custom usage\n */\n build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R> {\n return new FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executer\n );\n }\n}\n\nexport function cyrb53(str: string, seed: number = 0): number {\n let h1 = 0xdeadbeef ^ seed,\n h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);\n h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);\n h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function extractSubqueryQueryInfos<S extends SchemaStructure>(\n schema: S,\n parentTableName: string,\n options: QueryOptions<GenericModel, boolean>,\n executer: Executor<{ columns: Record<string, ColumnSchema> }>\n): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n if (!options.related) {\n return [];\n }\n\n return options.related.map((rel) => {\n // Get base options from modifier\n const subOptions =\n rel\n .modifier?.(new SchemaAwareQueryModifierBuilderImpl(rel.relatedTable, schema))\n ._getOptions() ?? {};\n\n // Find relationship to determine how to filter\n const relationship = schema.relationships.find(\n (r) => r.from === parentTableName && r.field === rel.alias\n );\n\n if (relationship) {\n // Determine foreign key field\n // rel.alias is guaranteed to be defined if relationship is found (matched r.field)\n // oxlint-disable-next-line no-non-null-assertion -- alias is guaranteed defined when relationship is found\n let foreignKeyField = rel.alias!;\n\n if (relationship.cardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = schema.relationships.filter(\n (r) => r.from === rel.relatedTable && r.to === parentTableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === parentTableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (parentTableName.startsWith(`${rel.relatedTable}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = parentTableName.slice(rel.relatedTable.length + 1);\n } else {\n // Default to parent table name\n foreignKeyField = parentTableName;\n }\n }\n }\n\n // Add parent filter to where clause\n subOptions.where = subOptions.where || {};\n\n if (relationship.cardinality === 'many') {\n // One-to-Many: Child has foreign key to parent\n // WHERE $parentIds ∋ child.parent_id\n (subOptions.where as any)[foreignKeyField] = { _op: '∋', _val: '$parentIds', _swap: true };\n } else {\n // One-to-One: Parent has foreign key to child\n // WHERE $parent_<foreignKeyField> ∋ child.id\n // We use a dynamic variable name derived from the foreign key field on the parent\n (subOptions.where as any).id = {\n _op: '∋',\n _val: `$parent_${foreignKeyField}`,\n _swap: true,\n };\n }\n }\n\n return new InnerQuery(rel.relatedTable, subOptions, schema, executer);\n });\n}\n\n/**\n * Build a query string from query options\n * @param method - The query method (SELECT or LIVE SELECT)\n * @param tableName - The table name to query\n * @param options - The query options (where, select, orderBy, etc.)\n * @param schema - Optional schema for resolving nested relationships\n * @returns QueryInfo with the generated SQL and variables\n */\nexport function buildQueryFromOptions<TModel extends GenericModel, IsOne extends boolean>(\n method: 'SELECT' | 'LIVE SELECT' | 'LIVE SELECT DIFF' | 'UPDATE' | 'DELETE',\n tableName: string,\n options: QueryOptions<TModel, IsOne>,\n schema: SchemaStructure,\n patches?: any[]\n): QueryInfo {\n if (options.isOne) {\n options.limit = 1;\n }\n const isLiveQuery = method === 'LIVE SELECT' || method === 'LIVE SELECT DIFF';\n\n // Parse where conditions to convert string IDs to RecordId\n const parsedWhere = options.where\n ? parseObjectIdsToRecordId(options.where, tableName)\n : undefined;\n\n // Build SELECT clause\n let selectClause = '*';\n\n if (method === 'LIVE SELECT DIFF') {\n selectClause = '';\n } else {\n if (options.select && options.select.length > 0) {\n selectClause = options.select.join(', ');\n }\n }\n\n // Build related subqueries (fetch clauses)\n let fetchClauses = '';\n if (!isLiveQuery && options.related && options.related.length > 0) {\n const subqueries = options.related.map((rel) => buildSubquery(rel, schema));\n fetchClauses = ', ' + subqueries.join(', ');\n }\n\n // Start building the query\n let query = '';\n\n if (method === 'UPDATE') {\n query = `UPDATE ${tableName}`;\n } else if (method === 'DELETE') {\n query = `DELETE FROM ${tableName}`;\n } else {\n query = `${method}${selectClause ? ` ${selectClause}` : ''}${fetchClauses} FROM ${tableName}`;\n }\n\n // Build WHERE clause\n const vars: Record<string, unknown> = {};\n if (parsedWhere && Object.keys(parsedWhere).length > 0) {\n const conditions: string[] = [];\n for (const [key, value] of Object.entries(parsedWhere)) {\n const varName = key;\n\n // Handle operator objects { _op, _val }\n if (value && typeof value === 'object' && '_op' in value && '_val' in value) {\n const { _op, _val, _swap } = value as { _op: string; _val: unknown; _swap?: boolean };\n\n let rightSide = '';\n if (typeof _val === 'string' && _val.startsWith('$')) {\n rightSide = _val;\n } else {\n vars[varName] = _val;\n rightSide = `$${varName}`;\n }\n\n if (_swap) {\n conditions.push(`${rightSide} ${_op} ${key}`);\n } else {\n conditions.push(`${key} ${_op} ${rightSide}`);\n }\n } else {\n vars[varName] = value;\n conditions.push(`${key} = $${varName}`);\n }\n }\n query += ` WHERE ${conditions.join(' AND ')}`;\n }\n\n // Add PATCH for UPDATE\n if (method === 'UPDATE' && patches) {\n query += ` PATCH ${JSON.stringify(patches)}`;\n }\n\n // Add ORDER BY, LIMIT, START only for non-live queries and non-update/delete queries (unless supported)\n // SurrealDB UPDATE/DELETE supports WHERE, but LIMIT/START/ORDER BY might be restricted or behave differently.\n // For now, let's allow them if they are set, as SurrealDB supports them for DELETE/UPDATE.\n if (!isLiveQuery) {\n if (options.orderBy && Object.keys(options.orderBy).length > 0) {\n const orderClauses = Object.entries(options.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n query += ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n if (options.limit !== undefined) {\n query += ` LIMIT ${options.limit}`;\n }\n\n if (options.offset !== undefined) {\n query += ` START ${options.offset}`;\n }\n }\n\n query += ';';\n\n return {\n query,\n hash: cyrb53(\n `${query}::${Object.entries(vars)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')}`,\n 0\n ),\n vars: Object.keys(vars).length > 0 ? vars : undefined,\n };\n}\n\n/**\n * Build a subquery for a related field\n */\nfunction buildSubquery(\n rel: RelatedQuery & { foreignKeyField?: string },\n schema: SchemaStructure\n): string {\n const { relatedTable, alias, modifier, cardinality } = rel;\n const foreignKeyField = rel.foreignKeyField || alias;\n\n let subquerySelect = '*';\n let subqueryWhere = '';\n let subqueryOrderBy = '';\n let subqueryLimit = '';\n\n // If there's a modifier, apply it to get the sub-options\n if (modifier) {\n const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);\n modifier(modifierBuilder);\n const subOptions = modifierBuilder._getOptions();\n\n // Build sub-select\n if (subOptions.select && subOptions.select.length > 0) {\n subquerySelect = subOptions.select.join(', ');\n }\n\n // Build sub-where\n if (subOptions.where && Object.keys(subOptions.where).length > 0) {\n const parsedSubWhere = parseObjectIdsToRecordId(subOptions.where, relatedTable) as Record<\n string,\n unknown\n >;\n const conditions = Object.entries(parsedSubWhere).map(([key, value]) => {\n if (value instanceof RecordId) {\n return `${key} = ${value.toString()}`;\n }\n return `${key} = ${JSON.stringify(value)}`;\n });\n subqueryWhere = ` AND ${conditions.join(' AND ')}`;\n }\n\n // Build sub-orderBy\n if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) {\n const orderClauses = Object.entries(subOptions.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n subqueryOrderBy = ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n // Build sub-limit\n if (subOptions.limit !== undefined) {\n subqueryLimit = ` LIMIT ${subOptions.limit}`;\n }\n\n // Handle nested relationships\n if (subOptions.related && subOptions.related.length > 0) {\n // Resolve nested relationship metadata if schema is available\n const resolvedNestedRels = subOptions.related.map((nestedRel) => {\n if (schema) {\n // Look up the actual relationship metadata from schema\n const relationship = schema.relationships.find(\n (r) => r.from === relatedTable && r.field === nestedRel.alias\n );\n\n if (relationship) {\n // Use the resolved table name and add foreign key field\n const nestedForeignKeyField =\n relationship.cardinality === 'many' ? relatedTable : nestedRel.alias;\n\n return {\n ...nestedRel,\n relatedTable: relationship.to,\n cardinality: relationship.cardinality,\n foreignKeyField: nestedForeignKeyField,\n } as RelatedQuery & { foreignKeyField: string };\n }\n }\n return nestedRel;\n });\n\n const nestedSubqueries = resolvedNestedRels.map((nestedRel) =>\n buildSubquery(nestedRel, schema)\n );\n subquerySelect += ', ' + nestedSubqueries.join(', ');\n }\n }\n\n // Determine the WHERE condition based on cardinality\n let whereCondition: string;\n if (cardinality === 'one') {\n // For one-to-one, the related table's id matches parent's foreign key field\n whereCondition = `WHERE id=$parent.${foreignKeyField}`;\n // Add LIMIT 1 for one-to-one relationships if not already set\n if (!subqueryLimit) {\n subqueryLimit = ' LIMIT 1';\n }\n } else {\n // For one-to-many, the related table has a foreign key field pointing to parent's id\n whereCondition = `WHERE ${foreignKeyField}=$parent.id`;\n }\n\n // Build the complete subquery\n let subquery = `(SELECT ${subquerySelect} FROM ${relatedTable} ${whereCondition}${subqueryWhere}${subqueryOrderBy}${subqueryLimit})`;\n\n // For one-to-one relationships, select the first element\n if (cardinality === 'one') {\n subquery += '[0]';\n }\n\n subquery += ` AS ${alias}`;\n\n return subquery;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["RecordId"],"sources":["../src/query-builder.ts"],"sourcesContent":["import { RecordId } from 'surrealdb';\nimport type {\n GenericModel,\n QueryInfo,\n QueryOptions,\n QueryModifier,\n RelatedQuery,\n SchemaAwareQueryModifier,\n SchemaAwareQueryModifierBuilder,\n} from './types';\nimport type {\n TableNames,\n GetTable,\n TableModel,\n TableRelationships,\n GetRelationship,\n SchemaStructure,\n TableFieldNames,\n ColumnSchema,\n} from './table-schema';\n\n/**\n * Parse a string ID to RecordId\n * - If it's in the format \"table:id\", use it as-is\n * - If it's just an ID without \":\", prepend the table name\n * @param value - The value to parse (could be a string ID)\n * @param tableName - The table name to use if the ID doesn't contain \":\"\n * @param fieldName - The field name to determine if this is an ID field\n */\nfunction parseStringToRecordId(value: unknown, tableName?: string, fieldName?: string): unknown {\n if (typeof value !== 'string') return value;\n\n // If it already contains \":\", parse it as a full record ID\n if (value.includes(':')) {\n const [table, ...idParts] = value.split(':');\n const id = idParts.join(':'); // Handle IDs that contain colons\n return new RecordId(table, id);\n }\n\n // If this is an \"id\" field and we have a table name, prepend it\n if (fieldName === 'id' && tableName) {\n return new RecordId(tableName, value);\n }\n\n // Otherwise, return as-is (it might not be an ID at all)\n return value;\n}\n\n/**\n * Recursively parse string IDs to RecordId in an object\n * @param obj - The object to parse\n * @param tableName - The table name to use for ID fields without \":\"\n */\nfunction parseObjectIdsToRecordId(obj: unknown, tableName?: string): unknown {\n if (obj === null || obj === undefined) return obj;\n\n if (typeof obj === 'string') {\n return parseStringToRecordId(obj, tableName);\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => parseObjectIdsToRecordId(item, tableName));\n }\n\n if (typeof obj === 'object' && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n // Parse recursively, passing the field name to identify ID fields\n result[key] =\n typeof value === 'string'\n ? parseStringToRecordId(value, tableName, key)\n : parseObjectIdsToRecordId(value, tableName);\n }\n return result;\n }\n\n return obj;\n}\n\nexport type Executor<T extends { columns: Record<string, ColumnSchema> }, R = void> = (\n query: InnerQuery<T, boolean>\n) => R;\n\nexport class InnerQuery<\n T extends { columns: Record<string, ColumnSchema> },\n IsOne extends boolean,\n R = void,\n> {\n private _hash: number;\n private _mainQuery: QueryInfo;\n private _selectQuery: QueryInfo;\n private _selectLiveQuery: QueryInfo;\n private _subqueries: InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[];\n\n constructor(\n private readonly _tableName: string,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: SchemaStructure,\n private readonly executor: Executor<any, R>\n ) {\n this._selectQuery = buildQueryFromOptions('SELECT', this._tableName, this.options, this.schema);\n\n this._mainQuery = buildQueryFromOptions(\n 'SELECT',\n this._tableName,\n { ...this.options, related: [] },\n this.schema\n );\n\n this._hash = this._selectQuery.hash;\n\n this._selectLiveQuery = buildQueryFromOptions(\n 'LIVE SELECT',\n this._tableName,\n this.options,\n this.schema\n );\n\n this._subqueries = extractSubqueryQueryInfos(\n schema,\n this._tableName,\n this.options,\n this.executor\n );\n }\n\n get mainQuery(): QueryInfo {\n return this._mainQuery;\n }\n\n get subqueries(): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n return this._subqueries;\n }\n\n get selectQuery(): QueryInfo {\n return this._selectQuery;\n }\n\n get selectLiveQuery(): QueryInfo {\n return this._selectLiveQuery;\n }\n\n get tableName(): string {\n return this._tableName;\n }\n\n get hash(): number {\n return this._hash;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n public run(): R {\n return this.executor(this);\n }\n\n public buildUpdateQuery(patches: any[]): QueryInfo {\n return buildQueryFromOptions('UPDATE', this._tableName, this.options, this.schema, patches);\n }\n\n public buildDeleteQuery(): QueryInfo {\n return buildQueryFromOptions('DELETE', this._tableName, this.options, this.schema);\n }\n\n public getOptions(): QueryOptions<TableModel<T>, IsOne> {\n return this.options;\n }\n}\n\n/**\n * Helper type to get the model type for a related table\n */\ntype GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =\n RelatedTableName extends TableNames<S> ? TableModel<GetTable<S, RelatedTableName>> : never;\n\n/**\n * Helper type to extract field names from RelatedFields\n */\nexport type ExtractFieldNames<RelatedFields extends RelatedFieldsMap> = keyof RelatedFields;\n\nexport type RelatedFieldMapEntry = {\n to: string;\n cardinality: 'one' | 'many';\n relatedFields: RelatedFieldsMap;\n};\n\nexport type RelatedFieldsMap = Record<string, RelatedFieldMapEntry>;\n\n/**\n * Helper type to build the related fields object based on accumulated relationships\n */\nexport type BuildRelatedFields<\n S extends SchemaStructure,\n RelatedFields extends RelatedFieldsMap,\n> = {\n [K in keyof RelatedFields]: QueryResult<\n S,\n RelatedFields[K]['to'],\n RelatedFields[K]['relatedFields'],\n RelatedFields[K]['cardinality'] extends 'one' ? true : false\n >;\n};\n\nexport type BuildResultModelOne<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>;\n\nexport type BuildResultModelMany<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = (Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>)[];\n\n/**\n * The final result type combining base model with related fields\n * Excludes related field keys from the base model to avoid type conflicts\n */\nexport type QueryResult<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n> = IsOne extends true\n ? BuildResultModelOne<S, TableName, RelatedFields>\n : BuildResultModelMany<S, TableName, RelatedFields>;\n\nexport class FinalQuery<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n T extends { columns: Record<string, ColumnSchema> },\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n R = void,\n> {\n private _innerQuery: InnerQuery<T, IsOne, R>;\n\n constructor(\n private readonly tableName: TableName,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: S,\n private readonly executor: Executor<T, R>\n ) {\n this._innerQuery = new InnerQuery<T, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executor\n );\n }\n\n run(): R {\n return this.executor(this._innerQuery);\n }\n\n buildUpdateQuery(patches: any[]): QueryInfo {\n return this._innerQuery.buildUpdateQuery(patches);\n }\n\n buildDeleteQuery(): QueryInfo {\n return this._innerQuery.buildDeleteQuery();\n }\n\n selectLive(): QueryInfo {\n return this._innerQuery.selectLiveQuery;\n }\n\n get innerQuery(): InnerQuery<T, IsOne, R> {\n return this._innerQuery;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n get hash(): number {\n return this._innerQuery.hash;\n }\n}\n\n/**\n * Schema-aware query modifier builder implementation\n * This version provides full type safety for nested relationships\n */\nclass SchemaAwareQueryModifierBuilderImpl<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap = {},\n> implements SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields> {\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, boolean> = {};\n\n constructor(\n private readonly tableName: TableName,\n private readonly schema: S\n ) {}\n\n where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n limit(count: number): this {\n this.options.limit = count;\n return this;\n }\n\n offset(count: number): this {\n this.options.offset = count;\n return this;\n }\n\n orderBy(\n field: keyof TableModel<GetTable<S, TableName>> & string,\n direction: 'asc' | 'desc' = 'asc'\n ): this {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n // Schema-aware implementation for nested relationships with full type inference\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n relatedField: Field,\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): SchemaAwareQueryModifierBuilderImpl<\n S,\n TableName,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n }\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField);\n\n if (!exists) {\n // Look up the relationship from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === relatedField\n );\n\n if (!relationship) {\n throw new Error(\n `Relationship '${String(relatedField)}' not found for table '${this.tableName}'`\n );\n }\n\n const relatedTable = relationship.to;\n const cardinality = relationship.cardinality;\n const foreignKeyField = cardinality === 'many' ? this.tableName : relatedField;\n\n this.options.related.push({\n relatedTable,\n alias: relatedField as string,\n modifier: modifier as QueryModifier<GenericModel>,\n cardinality,\n foreignKeyField: foreignKeyField as string,\n } as RelatedQuery & { foreignKeyField: string });\n }\n return this as any;\n }\n\n _getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, boolean> {\n return this.options;\n }\n}\n\n/**\n * Fluent query builder for constructing queries with chainable methods\n * Now with full type inference from schema constant AND related field accumulation!\n */\nexport class QueryBuilder<\n const S extends SchemaStructure,\n const TableName extends TableNames<S>,\n const R = void,\n const RelatedFields extends RelatedFieldsMap = {},\n const IsOne extends boolean = false,\n> {\n constructor(\n private readonly schema: S,\n private readonly tableName: TableName,\n private readonly executer: Executor<GetTable<S, TableName>, R> = () => undefined as R,\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> = {}\n ) {}\n\n /**\n * Add additional where conditions\n */\n where(\n conditions: Partial<TableModel<GetTable<S, TableName>>>\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n /**\n * Specify fields to select\n */\n select(\n ...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n /**\n * Add ordering to the query (only for non-live queries)\n */\n orderBy(\n field: TableFieldNames<GetTable<S, TableName>>,\n direction: 'asc' | 'desc' = 'asc'\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n /**\n * Add limit to the query (only for non-live queries)\n */\n limit(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.limit = count;\n return this;\n }\n\n /**\n * Add offset to the query (only for non-live queries)\n */\n offset(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.offset = count;\n return this;\n }\n\n one(): QueryBuilder<S, TableName, R, RelatedFields, true> {\n return new QueryBuilder<S, TableName, R, RelatedFields, true>(\n this.schema,\n this.tableName,\n this.executer,\n { ...this.options, isOne: true }\n );\n }\n\n /**\n * Include related data via subqueries\n * Field and cardinality are validated against schema relationships\n * Now accumulates the related field in the type!\n */\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n field: Field,\n modifierOrCardinality?:\n | SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n | Rel['cardinality'],\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): QueryBuilder<\n S,\n TableName,\n R,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n },\n IsOne\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n // Check if field already exists\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === field);\n\n if (exists) {\n return this as any;\n }\n\n // Look up relationship metadata from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === field\n );\n\n if (!relationship) {\n throw new Error(`Relationship '${String(field)}' not found for table '${this.tableName}'`);\n }\n\n // Determine cardinality and modifier based on arguments\n let actualCardinality: 'one' | 'many';\n let actualModifier: SchemaAwareQueryModifier<S, Rel['to']> | undefined;\n\n if (typeof modifierOrCardinality === 'function') {\n // Signature: related(field, modifier)\n actualCardinality = relationship.cardinality;\n actualModifier = modifierOrCardinality;\n } else if (modifierOrCardinality === 'one' || modifierOrCardinality === 'many') {\n // Signature: related(field, cardinality, modifier)\n actualCardinality = modifierOrCardinality;\n actualModifier = modifier;\n } else {\n // Signature: related(field)\n actualCardinality = relationship.cardinality;\n actualModifier = undefined;\n }\n\n // Determine foreign key field based on cardinality\n let foreignKeyField: string =\n actualCardinality === 'many' ? (this.tableName as string) : (field as string);\n\n if (actualCardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = this.schema.relationships.filter(\n (r) => r.from === relationship.to && r.to === this.tableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === this.tableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (this.tableName.startsWith(`${relationship.to}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = this.tableName.slice(relationship.to.length + 1);\n }\n }\n }\n\n // Cast the schema-aware modifier to the runtime type\n // At runtime, QueryModifierBuilderImpl will work correctly with the schema\n const wrappedModifier = actualModifier as QueryModifier<GenericModel> | undefined;\n\n this.options.related.push({\n relatedTable: relationship.to,\n alias: field as string,\n modifier: wrappedModifier,\n cardinality: actualCardinality,\n foreignKeyField: foreignKeyField as any,\n } as RelatedQuery & { foreignKeyField: string });\n\n return this as any;\n }\n\n /**\n * Get the current query options\n */\n getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> {\n return this.options;\n }\n\n /**\n * Build query methods for SELECT and LIVE SELECT (custom implementation)\n * @returns FinalQuery object with select() method for custom usage\n */\n build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R> {\n return new FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executer\n );\n }\n}\n\nexport function cyrb53(str: string, seed: number = 0): number {\n let h1 = 0xdeadbeef ^ seed,\n h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);\n h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);\n h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function extractSubqueryQueryInfos<S extends SchemaStructure>(\n schema: S,\n parentTableName: string,\n options: QueryOptions<GenericModel, boolean>,\n executer: Executor<{ columns: Record<string, ColumnSchema> }>\n): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n if (!options.related) {\n return [];\n }\n\n return options.related.map((rel) => {\n // Get base options from modifier\n const subOptions =\n rel\n .modifier?.(new SchemaAwareQueryModifierBuilderImpl(rel.relatedTable, schema))\n ._getOptions() ?? {};\n\n // Find relationship to determine how to filter\n const relationship = schema.relationships.find(\n (r) => r.from === parentTableName && r.field === rel.alias\n );\n\n if (relationship) {\n // Determine foreign key field\n // rel.alias is guaranteed to be defined if relationship is found (matched r.field)\n let foreignKeyField = rel.alias!;\n\n if (relationship.cardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = schema.relationships.filter(\n (r) => r.from === rel.relatedTable && r.to === parentTableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === parentTableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (parentTableName.startsWith(`${rel.relatedTable}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = parentTableName.slice(rel.relatedTable.length + 1);\n } else {\n // Default to parent table name\n foreignKeyField = parentTableName;\n }\n }\n }\n\n // Add parent filter to where clause\n subOptions.where = subOptions.where || {};\n\n if (relationship.cardinality === 'many') {\n // One-to-Many: Child has foreign key to parent\n // WHERE $parentIds ∋ child.parent_id\n (subOptions.where as any)[foreignKeyField] = { _op: '∋', _val: '$parentIds', _swap: true };\n } else {\n // One-to-One: Parent has foreign key to child\n // WHERE $parent_<foreignKeyField> ∋ child.id\n // We use a dynamic variable name derived from the foreign key field on the parent\n (subOptions.where as any).id = {\n _op: '∋',\n _val: `$parent_${foreignKeyField}`,\n _swap: true,\n };\n }\n }\n\n return new InnerQuery(rel.relatedTable, subOptions, schema, executer);\n });\n}\n\n/**\n * Build a query string from query options\n * @param method - The query method (SELECT or LIVE SELECT)\n * @param tableName - The table name to query\n * @param options - The query options (where, select, orderBy, etc.)\n * @param schema - Optional schema for resolving nested relationships\n * @returns QueryInfo with the generated SQL and variables\n */\nexport function buildQueryFromOptions<TModel extends GenericModel, IsOne extends boolean>(\n method: 'SELECT' | 'LIVE SELECT' | 'LIVE SELECT DIFF' | 'UPDATE' | 'DELETE',\n tableName: string,\n options: QueryOptions<TModel, IsOne>,\n schema: SchemaStructure,\n patches?: any[]\n): QueryInfo {\n if (options.isOne) {\n options.limit = 1;\n }\n const isLiveQuery = method === 'LIVE SELECT' || method === 'LIVE SELECT DIFF';\n\n // Parse where conditions to convert string IDs to RecordId\n const parsedWhere = options.where\n ? parseObjectIdsToRecordId(options.where, tableName)\n : undefined;\n\n // Build SELECT clause\n let selectClause = '*';\n\n if (method === 'LIVE SELECT DIFF') {\n selectClause = '';\n } else {\n if (options.select && options.select.length > 0) {\n selectClause = options.select.join(', ');\n }\n }\n\n // Build related subqueries (fetch clauses)\n let fetchClauses = '';\n if (!isLiveQuery && options.related && options.related.length > 0) {\n const subqueries = options.related.map((rel) => buildSubquery(rel, schema));\n fetchClauses = ', ' + subqueries.join(', ');\n }\n\n // Start building the query\n let query = '';\n\n if (method === 'UPDATE') {\n query = `UPDATE ${tableName}`;\n } else if (method === 'DELETE') {\n query = `DELETE FROM ${tableName}`;\n } else {\n query = `${method}${selectClause ? ` ${selectClause}` : ''}${fetchClauses} FROM ${tableName}`;\n }\n\n // Build WHERE clause\n const vars: Record<string, unknown> = {};\n if (parsedWhere && Object.keys(parsedWhere).length > 0) {\n const conditions: string[] = [];\n for (const [key, value] of Object.entries(parsedWhere)) {\n const varName = key;\n\n // Handle operator objects { _op, _val }\n if (value && typeof value === 'object' && '_op' in value && '_val' in value) {\n const { _op, _val, _swap } = value as { _op: string; _val: unknown; _swap?: boolean };\n\n let rightSide = '';\n if (typeof _val === 'string' && _val.startsWith('$')) {\n rightSide = _val;\n } else {\n vars[varName] = _val;\n rightSide = `$${varName}`;\n }\n\n if (_swap) {\n conditions.push(`${rightSide} ${_op} ${key}`);\n } else {\n conditions.push(`${key} ${_op} ${rightSide}`);\n }\n } else {\n vars[varName] = value;\n conditions.push(`${key} = $${varName}`);\n }\n }\n query += ` WHERE ${conditions.join(' AND ')}`;\n }\n\n // Add PATCH for UPDATE\n if (method === 'UPDATE' && patches) {\n query += ` PATCH ${JSON.stringify(patches)}`;\n }\n\n // Add ORDER BY, LIMIT, START only for non-live queries and non-update/delete queries (unless supported)\n // SurrealDB UPDATE/DELETE supports WHERE, but LIMIT/START/ORDER BY might be restricted or behave differently.\n // For now, let's allow them if they are set, as SurrealDB supports them for DELETE/UPDATE.\n if (!isLiveQuery) {\n if (options.orderBy && Object.keys(options.orderBy).length > 0) {\n const orderClauses = Object.entries(options.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n query += ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n if (options.limit !== undefined) {\n query += ` LIMIT ${options.limit}`;\n }\n\n if (options.offset !== undefined) {\n query += ` START ${options.offset}`;\n }\n }\n\n query += ';';\n\n return {\n query,\n hash: cyrb53(\n `${query}::${Object.entries(vars)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')}`,\n 0\n ),\n vars: Object.keys(vars).length > 0 ? vars : undefined,\n };\n}\n\n/**\n * Build a subquery for a related field\n */\nfunction buildSubquery(\n rel: RelatedQuery & { foreignKeyField?: string },\n schema: SchemaStructure\n): string {\n const { relatedTable, alias, modifier, cardinality } = rel;\n const foreignKeyField = rel.foreignKeyField || alias;\n\n let subquerySelect = '*';\n let subqueryWhere = '';\n let subqueryOrderBy = '';\n let subqueryLimit = '';\n\n // If there's a modifier, apply it to get the sub-options\n if (modifier) {\n const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);\n modifier(modifierBuilder);\n const subOptions = modifierBuilder._getOptions();\n\n // Build sub-select\n if (subOptions.select && subOptions.select.length > 0) {\n subquerySelect = subOptions.select.join(', ');\n }\n\n // Build sub-where\n if (subOptions.where && Object.keys(subOptions.where).length > 0) {\n const parsedSubWhere = parseObjectIdsToRecordId(subOptions.where, relatedTable) as Record<\n string,\n unknown\n >;\n const conditions = Object.entries(parsedSubWhere).map(([key, value]) => {\n if (value instanceof RecordId) {\n return `${key} = ${value.toString()}`;\n }\n return `${key} = ${JSON.stringify(value)}`;\n });\n subqueryWhere = ` AND ${conditions.join(' AND ')}`;\n }\n\n // Build sub-orderBy\n if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) {\n const orderClauses = Object.entries(subOptions.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n subqueryOrderBy = ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n // Build sub-limit\n if (subOptions.limit !== undefined) {\n subqueryLimit = ` LIMIT ${subOptions.limit}`;\n }\n\n // Handle nested relationships\n if (subOptions.related && subOptions.related.length > 0) {\n // Resolve nested relationship metadata if schema is available\n const resolvedNestedRels = subOptions.related.map((nestedRel) => {\n if (schema) {\n // Look up the actual relationship metadata from schema\n const relationship = schema.relationships.find(\n (r) => r.from === relatedTable && r.field === nestedRel.alias\n );\n\n if (relationship) {\n // Use the resolved table name and add foreign key field\n const nestedForeignKeyField =\n relationship.cardinality === 'many' ? relatedTable : nestedRel.alias;\n\n return {\n ...nestedRel,\n relatedTable: relationship.to,\n cardinality: relationship.cardinality,\n foreignKeyField: nestedForeignKeyField,\n } as RelatedQuery & { foreignKeyField: string };\n }\n }\n return nestedRel;\n });\n\n const nestedSubqueries = resolvedNestedRels.map((nestedRel) =>\n buildSubquery(nestedRel, schema)\n );\n subquerySelect += ', ' + nestedSubqueries.join(', ');\n }\n }\n\n // Determine the WHERE condition based on cardinality\n let whereCondition: string;\n if (cardinality === 'one') {\n // For one-to-one, the related table's id matches parent's foreign key field\n whereCondition = `WHERE id=$parent.${foreignKeyField}`;\n // Add LIMIT 1 for one-to-one relationships if not already set\n if (!subqueryLimit) {\n subqueryLimit = ' LIMIT 1';\n }\n } else {\n // For one-to-many, the related table has a foreign key field pointing to parent's id\n whereCondition = `WHERE ${foreignKeyField}=$parent.id`;\n }\n\n // Build the complete subquery\n let subquery = `(SELECT ${subquerySelect} FROM ${relatedTable} ${whereCondition}${subqueryWhere}${subqueryOrderBy}${subqueryLimit})`;\n\n // For one-to-one relationships, select the first element\n if (cardinality === 'one') {\n subquery += '[0]';\n }\n\n subquery += ` AS ${alias}`;\n\n return subquery;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["RecordId"],"sources":["../src/query-builder.ts"],"sourcesContent":["import { RecordId } from 'surrealdb';\nimport type {\n GenericModel,\n QueryInfo,\n QueryOptions,\n QueryModifier,\n RelatedQuery,\n SchemaAwareQueryModifier,\n SchemaAwareQueryModifierBuilder,\n} from './types';\nimport type {\n TableNames,\n GetTable,\n TableModel,\n TableRelationships,\n GetRelationship,\n SchemaStructure,\n TableFieldNames,\n ColumnSchema,\n} from './table-schema';\n\n/**\n * Parse a string ID to RecordId\n * - If it's in the format \"table:id\", use it as-is\n * - If it's just an ID without \":\", prepend the table name\n * @param value - The value to parse (could be a string ID)\n * @param tableName - The table name to use if the ID doesn't contain \":\"\n * @param fieldName - The field name to determine if this is an ID field\n */\nfunction parseStringToRecordId(value: unknown, tableName?: string, fieldName?: string): unknown {\n if (typeof value !== 'string') return value;\n\n // If it already contains \":\", parse it as a full record ID\n if (value.includes(':')) {\n const [table, ...idParts] = value.split(':');\n const id = idParts.join(':'); // Handle IDs that contain colons\n return new RecordId(table, id);\n }\n\n // If this is an \"id\" field and we have a table name, prepend it\n if (fieldName === 'id' && tableName) {\n return new RecordId(tableName, value);\n }\n\n // Otherwise, return as-is (it might not be an ID at all)\n return value;\n}\n\n/**\n * Recursively parse string IDs to RecordId in an object\n * @param obj - The object to parse\n * @param tableName - The table name to use for ID fields without \":\"\n */\nfunction parseObjectIdsToRecordId(obj: unknown, tableName?: string): unknown {\n if (obj === null || obj === undefined) return obj;\n\n if (typeof obj === 'string') {\n return parseStringToRecordId(obj, tableName);\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => parseObjectIdsToRecordId(item, tableName));\n }\n\n if (typeof obj === 'object' && obj.constructor === Object) {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n // Parse recursively, passing the field name to identify ID fields\n result[key] =\n typeof value === 'string'\n ? parseStringToRecordId(value, tableName, key)\n : parseObjectIdsToRecordId(value, tableName);\n }\n return result;\n }\n\n return obj;\n}\n\nexport type Executor<T extends { columns: Record<string, ColumnSchema> }, R = void> = (\n query: InnerQuery<T, boolean>\n) => R;\n\nexport class InnerQuery<\n T extends { columns: Record<string, ColumnSchema> },\n IsOne extends boolean,\n R = void,\n> {\n private _hash: number;\n private _mainQuery: QueryInfo;\n private _selectQuery: QueryInfo;\n private _selectLiveQuery: QueryInfo;\n private _subqueries: InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[];\n\n constructor(\n private readonly _tableName: string,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: SchemaStructure,\n private readonly executor: Executor<any, R>\n ) {\n this._selectQuery = buildQueryFromOptions('SELECT', this._tableName, this.options, this.schema);\n\n this._mainQuery = buildQueryFromOptions(\n 'SELECT',\n this._tableName,\n { ...this.options, related: [] },\n this.schema\n );\n\n this._hash = this._selectQuery.hash;\n\n this._selectLiveQuery = buildQueryFromOptions(\n 'LIVE SELECT',\n this._tableName,\n this.options,\n this.schema\n );\n\n this._subqueries = extractSubqueryQueryInfos(\n schema,\n this._tableName,\n this.options,\n this.executor\n );\n }\n\n get mainQuery(): QueryInfo {\n return this._mainQuery;\n }\n\n get subqueries(): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n return this._subqueries;\n }\n\n get selectQuery(): QueryInfo {\n return this._selectQuery;\n }\n\n get selectLiveQuery(): QueryInfo {\n return this._selectLiveQuery;\n }\n\n get tableName(): string {\n return this._tableName;\n }\n\n get hash(): number {\n return this._hash;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n public run(): R {\n return this.executor(this);\n }\n\n public buildUpdateQuery(patches: any[]): QueryInfo {\n return buildQueryFromOptions('UPDATE', this._tableName, this.options, this.schema, patches);\n }\n\n public buildDeleteQuery(): QueryInfo {\n return buildQueryFromOptions('DELETE', this._tableName, this.options, this.schema);\n }\n\n public getOptions(): QueryOptions<TableModel<T>, IsOne> {\n return this.options;\n }\n}\n\n/**\n * Helper type to get the model type for a related table\n */\ntype _GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =\n RelatedTableName extends TableNames<S> ? TableModel<GetTable<S, RelatedTableName>> : never;\n\n/**\n * Helper type to extract field names from RelatedFields\n */\nexport type ExtractFieldNames<RelatedFields extends RelatedFieldsMap> = keyof RelatedFields;\n\nexport type RelatedFieldMapEntry = {\n to: string;\n cardinality: 'one' | 'many';\n relatedFields: RelatedFieldsMap;\n};\n\nexport type RelatedFieldsMap = Record<string, RelatedFieldMapEntry>;\n\n/**\n * Helper type to build the related fields object based on accumulated relationships\n */\nexport type BuildRelatedFields<\n S extends SchemaStructure,\n RelatedFields extends RelatedFieldsMap,\n> = {\n [K in keyof RelatedFields]: QueryResult<\n S,\n RelatedFields[K]['to'],\n RelatedFields[K]['relatedFields'],\n RelatedFields[K]['cardinality'] extends 'one' ? true : false\n >;\n};\n\nexport type BuildResultModelOne<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>;\n\nexport type BuildResultModelMany<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n> = (Omit<TableModel<GetTable<S, TableName>>, ExtractFieldNames<RelatedFields>> &\n BuildRelatedFields<S, RelatedFields>)[];\n\n/**\n * The final result type combining base model with related fields\n * Excludes related field keys from the base model to avoid type conflicts\n */\nexport type QueryResult<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n> = IsOne extends true\n ? BuildResultModelOne<S, TableName, RelatedFields>\n : BuildResultModelMany<S, TableName, RelatedFields>;\n\nexport class FinalQuery<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n T extends { columns: Record<string, ColumnSchema> },\n // oxlint-disable-next-line no-unused-vars -- RelatedFields is used externally for type inference\n RelatedFields extends RelatedFieldsMap,\n IsOne extends boolean,\n R = void,\n> {\n private _innerQuery: InnerQuery<T, IsOne, R>;\n\n constructor(\n private readonly tableName: TableName,\n private readonly options: QueryOptions<TableModel<T>, IsOne>,\n private readonly schema: S,\n private readonly executor: Executor<T, R>\n ) {\n this._innerQuery = new InnerQuery<T, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executor\n );\n }\n\n run(): R {\n return this.executor(this._innerQuery);\n }\n\n buildUpdateQuery(patches: any[]): QueryInfo {\n return this._innerQuery.buildUpdateQuery(patches);\n }\n\n buildDeleteQuery(): QueryInfo {\n return this._innerQuery.buildDeleteQuery();\n }\n\n selectLive(): QueryInfo {\n return this._innerQuery.selectLiveQuery;\n }\n\n get innerQuery(): InnerQuery<T, IsOne, R> {\n return this._innerQuery;\n }\n\n get isOne(): boolean {\n return this.options.isOne ?? false;\n }\n\n get hash(): number {\n return this._innerQuery.hash;\n }\n}\n\n/**\n * Schema-aware query modifier builder implementation\n * This version provides full type safety for nested relationships\n */\nclass SchemaAwareQueryModifierBuilderImpl<\n S extends SchemaStructure,\n TableName extends TableNames<S>,\n RelatedFields extends RelatedFieldsMap = {},\n> implements SchemaAwareQueryModifierBuilder<S, TableName, RelatedFields> {\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, boolean> = {};\n\n constructor(\n private readonly tableName: TableName,\n private readonly schema: S\n ) {}\n\n where(conditions: Partial<TableModel<GetTable<S, TableName>>>): this {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n select(...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]): this {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n limit(count: number): this {\n this.options.limit = count;\n return this;\n }\n\n offset(count: number): this {\n this.options.offset = count;\n return this;\n }\n\n orderBy(\n field: keyof TableModel<GetTable<S, TableName>> & string,\n direction: 'asc' | 'desc' = 'asc'\n ): this {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n // Schema-aware implementation for nested relationships with full type inference\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n relatedField: Field,\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): SchemaAwareQueryModifierBuilderImpl<\n S,\n TableName,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n }\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === relatedField);\n\n if (!exists) {\n // Look up the relationship from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === relatedField\n );\n\n if (!relationship) {\n throw new Error(\n `Relationship '${String(relatedField)}' not found for table '${this.tableName}'`\n );\n }\n\n const relatedTable = relationship.to;\n const cardinality = relationship.cardinality;\n const foreignKeyField = cardinality === 'many' ? this.tableName : relatedField;\n\n this.options.related.push({\n relatedTable,\n alias: relatedField as string,\n modifier: modifier as QueryModifier<GenericModel>,\n cardinality,\n foreignKeyField: foreignKeyField as string,\n } as RelatedQuery & { foreignKeyField: string });\n }\n return this as any;\n }\n\n _getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, boolean> {\n return this.options;\n }\n}\n\n/**\n * Fluent query builder for constructing queries with chainable methods\n * Now with full type inference from schema constant AND related field accumulation!\n */\nexport class QueryBuilder<\n const S extends SchemaStructure,\n const TableName extends TableNames<S>,\n const R = void,\n const RelatedFields extends RelatedFieldsMap = {},\n const IsOne extends boolean = false,\n> {\n constructor(\n private readonly schema: S,\n private readonly tableName: TableName,\n private readonly executer: Executor<GetTable<S, TableName>, R> = () => undefined as R,\n private options: QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> = {}\n ) {}\n\n /**\n * Add additional where conditions\n */\n where(\n conditions: Partial<TableModel<GetTable<S, TableName>>>\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.where = { ...this.options.where, ...conditions };\n return this;\n }\n\n /**\n * Specify fields to select\n */\n select(\n ...fields: ((keyof TableModel<GetTable<S, TableName>> & string) | '*')[]\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n if (this.options.select) {\n throw new Error('Select can only be called once per query');\n }\n this.options.select = fields;\n return this;\n }\n\n /**\n * Add ordering to the query (only for non-live queries)\n */\n orderBy(\n field: TableFieldNames<GetTable<S, TableName>>,\n direction: 'asc' | 'desc' = 'asc'\n ): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.orderBy = {\n ...this.options.orderBy,\n [field]: direction,\n } as Partial<Record<keyof TableModel<GetTable<S, TableName>>, 'asc' | 'desc'>>;\n return this;\n }\n\n /**\n * Add limit to the query (only for non-live queries)\n */\n limit(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.limit = count;\n return this;\n }\n\n /**\n * Add offset to the query (only for non-live queries)\n */\n offset(count: number): QueryBuilder<S, TableName, R, RelatedFields, IsOne> {\n this.options.offset = count;\n return this;\n }\n\n one(): QueryBuilder<S, TableName, R, RelatedFields, true> {\n return new QueryBuilder<S, TableName, R, RelatedFields, true>(\n this.schema,\n this.tableName,\n this.executer,\n { ...this.options, isOne: true }\n );\n }\n\n /**\n * Include related data via subqueries\n * Field and cardinality are validated against schema relationships\n * Now accumulates the related field in the type!\n */\n related<\n Field extends TableRelationships<S, TableName>['field'],\n Rel extends GetRelationship<S, TableName, Field>,\n RelatedFields2 extends RelatedFieldsMap = {},\n >(\n field: Field,\n modifierOrCardinality?:\n | SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n | Rel['cardinality'],\n modifier?: SchemaAwareQueryModifier<S, Rel['to'], RelatedFields2>\n ): QueryBuilder<\n S,\n TableName,\n R,\n RelatedFields & {\n [K in Field]: {\n to: Rel['to'];\n cardinality: Rel['cardinality'];\n relatedFields: RelatedFields2;\n };\n },\n IsOne\n > {\n if (!this.options.related) {\n this.options.related = [];\n }\n\n // Check if field already exists\n const exists = this.options.related.some((r) => (r.alias || r.relatedTable) === field);\n\n if (exists) {\n return this as any;\n }\n\n // Look up relationship metadata from schema\n const relationship = this.schema.relationships.find(\n (r) => r.from === this.tableName && r.field === field\n );\n\n if (!relationship) {\n throw new Error(`Relationship '${String(field)}' not found for table '${this.tableName}'`);\n }\n\n // Determine cardinality and modifier based on arguments\n let actualCardinality: 'one' | 'many';\n let actualModifier: SchemaAwareQueryModifier<S, Rel['to']> | undefined;\n\n if (typeof modifierOrCardinality === 'function') {\n // Signature: related(field, modifier)\n actualCardinality = relationship.cardinality;\n actualModifier = modifierOrCardinality;\n } else if (modifierOrCardinality === 'one' || modifierOrCardinality === 'many') {\n // Signature: related(field, cardinality, modifier)\n actualCardinality = modifierOrCardinality;\n actualModifier = modifier;\n } else {\n // Signature: related(field)\n actualCardinality = relationship.cardinality;\n actualModifier = undefined;\n }\n\n // Determine foreign key field based on cardinality\n let foreignKeyField: string =\n actualCardinality === 'many' ? (this.tableName as string) : (field as string);\n\n if (actualCardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = this.schema.relationships.filter(\n (r) => r.from === relationship.to && r.to === this.tableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === this.tableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (this.tableName.startsWith(`${relationship.to}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = this.tableName.slice(relationship.to.length + 1);\n }\n }\n }\n\n // Cast the schema-aware modifier to the runtime type\n // At runtime, QueryModifierBuilderImpl will work correctly with the schema\n const wrappedModifier = actualModifier as QueryModifier<GenericModel> | undefined;\n\n this.options.related.push({\n relatedTable: relationship.to,\n alias: field as string,\n modifier: wrappedModifier,\n cardinality: actualCardinality,\n foreignKeyField: foreignKeyField as any,\n } as RelatedQuery & { foreignKeyField: string });\n\n return this as any;\n }\n\n /**\n * Get the current query options\n */\n getOptions(): QueryOptions<TableModel<GetTable<S, TableName>>, IsOne> {\n return this.options;\n }\n\n /**\n * Build query methods for SELECT and LIVE SELECT (custom implementation)\n * @returns FinalQuery object with select() method for custom usage\n */\n build(): FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R> {\n return new FinalQuery<S, TableName, GetTable<S, TableName>, RelatedFields, IsOne, R>(\n this.tableName,\n this.options,\n this.schema,\n this.executer\n );\n }\n}\n\nexport function cyrb53(str: string, seed: number = 0): number {\n let h1 = 0xdeadbeef ^ seed,\n h2 = 0x41c6ce57 ^ seed;\n for (let i = 0, ch; i < str.length; i++) {\n ch = str.charCodeAt(i);\n h1 = Math.imul(h1 ^ ch, 2654435761);\n h2 = Math.imul(h2 ^ ch, 1597334677);\n }\n h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);\n h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);\n h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);\n h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);\n\n return 4294967296 * (2097151 & h2) + (h1 >>> 0);\n}\n\nexport function extractSubqueryQueryInfos<S extends SchemaStructure>(\n schema: S,\n parentTableName: string,\n options: QueryOptions<GenericModel, boolean>,\n executer: Executor<{ columns: Record<string, ColumnSchema> }>\n): InnerQuery<{ columns: Record<string, ColumnSchema> }, boolean>[] {\n if (!options.related) {\n return [];\n }\n\n return options.related.map((rel) => {\n // Get base options from modifier\n const subOptions =\n rel\n .modifier?.(new SchemaAwareQueryModifierBuilderImpl(rel.relatedTable, schema))\n ._getOptions() ?? {};\n\n // Find relationship to determine how to filter\n const relationship = schema.relationships.find(\n (r) => r.from === parentTableName && r.field === rel.alias\n );\n\n if (relationship) {\n // Determine foreign key field\n // rel.alias is guaranteed to be defined if relationship is found (matched r.field)\n // oxlint-disable-next-line no-non-null-assertion -- alias is guaranteed defined when relationship is found\n let foreignKeyField = rel.alias!;\n\n if (relationship.cardinality === 'many') {\n // For one-to-many, we need to find the field on the child table that points back to the parent\n // We look for a relationship from Child -> Parent\n const reverseRelationships = schema.relationships.filter(\n (r) => r.from === rel.relatedTable && r.to === parentTableName && r.cardinality === 'one'\n );\n\n if (reverseRelationships.length > 0) {\n // Prioritize field that matches parent table name\n const exactMatch = reverseRelationships.find((r) => r.field === parentTableName);\n if (exactMatch) {\n foreignKeyField = exactMatch.field;\n } else {\n foreignKeyField = reverseRelationships[0].field;\n }\n } else {\n // Fallback heuristics\n if (parentTableName.startsWith(`${rel.relatedTable}_`)) {\n // If parent table is \"game_database\" and child is \"game\", try \"database\"\n foreignKeyField = parentTableName.slice(rel.relatedTable.length + 1);\n } else {\n // Default to parent table name\n foreignKeyField = parentTableName;\n }\n }\n }\n\n // Add parent filter to where clause\n subOptions.where = subOptions.where || {};\n\n if (relationship.cardinality === 'many') {\n // One-to-Many: Child has foreign key to parent\n // WHERE $parentIds ∋ child.parent_id\n (subOptions.where as any)[foreignKeyField] = { _op: '∋', _val: '$parentIds', _swap: true };\n } else {\n // One-to-One: Parent has foreign key to child\n // WHERE $parent_<foreignKeyField> ∋ child.id\n // We use a dynamic variable name derived from the foreign key field on the parent\n (subOptions.where as any).id = {\n _op: '∋',\n _val: `$parent_${foreignKeyField}`,\n _swap: true,\n };\n }\n }\n\n return new InnerQuery(rel.relatedTable, subOptions, schema, executer);\n });\n}\n\n/**\n * Build a query string from query options\n * @param method - The query method (SELECT or LIVE SELECT)\n * @param tableName - The table name to query\n * @param options - The query options (where, select, orderBy, etc.)\n * @param schema - Optional schema for resolving nested relationships\n * @returns QueryInfo with the generated SQL and variables\n */\nexport function buildQueryFromOptions<TModel extends GenericModel, IsOne extends boolean>(\n method: 'SELECT' | 'LIVE SELECT' | 'LIVE SELECT DIFF' | 'UPDATE' | 'DELETE',\n tableName: string,\n options: QueryOptions<TModel, IsOne>,\n schema: SchemaStructure,\n patches?: any[]\n): QueryInfo {\n if (options.isOne) {\n options.limit = 1;\n }\n const isLiveQuery = method === 'LIVE SELECT' || method === 'LIVE SELECT DIFF';\n\n // Parse where conditions to convert string IDs to RecordId\n const parsedWhere = options.where\n ? parseObjectIdsToRecordId(options.where, tableName)\n : undefined;\n\n // Build SELECT clause\n let selectClause = '*';\n\n if (method === 'LIVE SELECT DIFF') {\n selectClause = '';\n } else {\n if (options.select && options.select.length > 0) {\n selectClause = options.select.join(', ');\n }\n }\n\n // Build related subqueries (fetch clauses)\n let fetchClauses = '';\n if (!isLiveQuery && options.related && options.related.length > 0) {\n const subqueries = options.related.map((rel) => buildSubquery(rel, schema));\n fetchClauses = ', ' + subqueries.join(', ');\n }\n\n // Start building the query\n let query = '';\n\n if (method === 'UPDATE') {\n query = `UPDATE ${tableName}`;\n } else if (method === 'DELETE') {\n query = `DELETE FROM ${tableName}`;\n } else {\n query = `${method}${selectClause ? ` ${selectClause}` : ''}${fetchClauses} FROM ${tableName}`;\n }\n\n // Build WHERE clause\n const vars: Record<string, unknown> = {};\n if (parsedWhere && Object.keys(parsedWhere).length > 0) {\n const conditions: string[] = [];\n for (const [key, value] of Object.entries(parsedWhere)) {\n const varName = key;\n\n // Handle operator objects { _op, _val }\n if (value && typeof value === 'object' && '_op' in value && '_val' in value) {\n const { _op, _val, _swap } = value as { _op: string; _val: unknown; _swap?: boolean };\n\n let rightSide = '';\n if (typeof _val === 'string' && _val.startsWith('$')) {\n rightSide = _val;\n } else {\n vars[varName] = _val;\n rightSide = `$${varName}`;\n }\n\n if (_swap) {\n conditions.push(`${rightSide} ${_op} ${key}`);\n } else {\n conditions.push(`${key} ${_op} ${rightSide}`);\n }\n } else {\n vars[varName] = value;\n conditions.push(`${key} = $${varName}`);\n }\n }\n query += ` WHERE ${conditions.join(' AND ')}`;\n }\n\n // Add PATCH for UPDATE\n if (method === 'UPDATE' && patches) {\n query += ` PATCH ${JSON.stringify(patches)}`;\n }\n\n // Add ORDER BY, LIMIT, START only for non-live queries and non-update/delete queries (unless supported)\n // SurrealDB UPDATE/DELETE supports WHERE, but LIMIT/START/ORDER BY might be restricted or behave differently.\n // For now, let's allow them if they are set, as SurrealDB supports them for DELETE/UPDATE.\n if (!isLiveQuery) {\n if (options.orderBy && Object.keys(options.orderBy).length > 0) {\n const orderClauses = Object.entries(options.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n query += ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n if (options.limit !== undefined) {\n query += ` LIMIT ${options.limit}`;\n }\n\n if (options.offset !== undefined) {\n query += ` START ${options.offset}`;\n }\n }\n\n query += ';';\n\n return {\n query,\n hash: cyrb53(\n `${query}::${Object.entries(vars)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')}`,\n 0\n ),\n vars: Object.keys(vars).length > 0 ? vars : undefined,\n };\n}\n\n/**\n * Build a subquery for a related field\n */\nfunction buildSubquery(\n rel: RelatedQuery & { foreignKeyField?: string },\n schema: SchemaStructure\n): string {\n const { relatedTable, alias, modifier, cardinality } = rel;\n const foreignKeyField = rel.foreignKeyField || alias;\n\n let subquerySelect = '*';\n let subqueryWhere = '';\n let subqueryOrderBy = '';\n let subqueryLimit = '';\n\n // If there's a modifier, apply it to get the sub-options\n if (modifier) {\n const modifierBuilder = new SchemaAwareQueryModifierBuilderImpl(relatedTable, schema);\n modifier(modifierBuilder);\n const subOptions = modifierBuilder._getOptions();\n\n // Build sub-select\n if (subOptions.select && subOptions.select.length > 0) {\n subquerySelect = subOptions.select.join(', ');\n }\n\n // Build sub-where\n if (subOptions.where && Object.keys(subOptions.where).length > 0) {\n const parsedSubWhere = parseObjectIdsToRecordId(subOptions.where, relatedTable) as Record<\n string,\n unknown\n >;\n const conditions = Object.entries(parsedSubWhere).map(([key, value]) => {\n if (value instanceof RecordId) {\n return `${key} = ${value.toString()}`;\n }\n return `${key} = ${JSON.stringify(value)}`;\n });\n subqueryWhere = ` AND ${conditions.join(' AND ')}`;\n }\n\n // Build sub-orderBy\n if (subOptions.orderBy && Object.keys(subOptions.orderBy).length > 0) {\n const orderClauses = Object.entries(subOptions.orderBy).map(\n ([field, direction]) => `${field} ${direction}`\n );\n subqueryOrderBy = ` ORDER BY ${orderClauses.join(', ')}`;\n }\n\n // Build sub-limit\n if (subOptions.limit !== undefined) {\n subqueryLimit = ` LIMIT ${subOptions.limit}`;\n }\n\n // Handle nested relationships\n if (subOptions.related && subOptions.related.length > 0) {\n // Resolve nested relationship metadata if schema is available\n const resolvedNestedRels = subOptions.related.map((nestedRel) => {\n if (schema) {\n // Look up the actual relationship metadata from schema\n const relationship = schema.relationships.find(\n (r) => r.from === relatedTable && r.field === nestedRel.alias\n );\n\n if (relationship) {\n // Use the resolved table name and add foreign key field\n const nestedForeignKeyField =\n relationship.cardinality === 'many' ? relatedTable : nestedRel.alias;\n\n return {\n ...nestedRel,\n relatedTable: relationship.to,\n cardinality: relationship.cardinality,\n foreignKeyField: nestedForeignKeyField,\n } as RelatedQuery & { foreignKeyField: string };\n }\n }\n return nestedRel;\n });\n\n const nestedSubqueries = resolvedNestedRels.map((nestedRel) =>\n buildSubquery(nestedRel, schema)\n );\n subquerySelect += ', ' + nestedSubqueries.join(', ');\n }\n }\n\n // Determine the WHERE condition based on cardinality\n let whereCondition: string;\n if (cardinality === 'one') {\n // For one-to-one, the related table's id matches parent's foreign key field\n whereCondition = `WHERE id=$parent.${foreignKeyField}`;\n // Add LIMIT 1 for one-to-one relationships if not already set\n if (!subqueryLimit) {\n subqueryLimit = ' LIMIT 1';\n }\n } else {\n // For one-to-many, the related table has a foreign key field pointing to parent's id\n whereCondition = `WHERE ${foreignKeyField}=$parent.id`;\n }\n\n // Build the complete subquery\n let subquery = `(SELECT ${subquerySelect} FROM ${relatedTable} ${whereCondition}${subqueryWhere}${subqueryOrderBy}${subqueryLimit})`;\n\n // For one-to-one relationships, select the first element\n if (cardinality === 'one') {\n subquery += '[0]';\n }\n\n subquery += ` AS ${alias}`;\n\n return subquery;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spooky-sync/query-builder",
3
- "version": "0.0.1-canary.34",
3
+ "version": "0.0.1-canary.37",
4
4
  "description": "Type-safe query builder for SurrealDB with relationship support",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect, expectTypeOf } from 'vitest';
2
2
  import { QueryBuilder, buildQueryFromOptions } from './query-builder';
3
3
  import { RecordId } from 'surrealdb';
4
- import type { TableNames, TableModel, GetTable } from './table-schema';
4
+ import type { TableModel } from './table-schema';
5
5
 
6
6
  // Schema for testing the new array-based API
7
7
  const testSchema = {
@@ -270,11 +270,15 @@ describe('Edge Cases', () => {
270
270
  describe('Type Tests', () => {
271
271
  it('should enforce correct table names', () => {
272
272
  // Valid table names should work
273
+ // oxlint-disable-next-line no-new
273
274
  new QueryBuilder(testSchema, 'user');
275
+ // oxlint-disable-next-line no-new
274
276
  new QueryBuilder(testSchema, 'thread');
277
+ // oxlint-disable-next-line no-new
275
278
  new QueryBuilder(testSchema, 'comment');
276
279
 
277
280
  // @ts-expect-error - invalid table name should not compile
281
+ // oxlint-disable-next-line no-new
278
282
  new QueryBuilder(testSchema, 'invalid_table');
279
283
  });
280
284
 
@@ -389,9 +393,6 @@ describe('Type Tests', () => {
389
393
  });
390
394
 
391
395
  describe('Schema Metadata Integration', () => {
392
- // Using testSchema from top-level scope
393
- type TestSchemaMetadata = typeof testSchema;
394
-
395
396
  it('should accept testSchema in constructor', () => {
396
397
  const builder = new QueryBuilder(testSchema, 'thread', (q) => q.selectQuery);
397
398
 
@@ -172,7 +172,7 @@ export class InnerQuery<
172
172
  /**
173
173
  * Helper type to get the model type for a related table
174
174
  */
175
- type GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =
175
+ type _GetRelatedModel<S extends SchemaStructure, RelatedTableName extends string> =
176
176
  RelatedTableName extends TableNames<S> ? TableModel<GetTable<S, RelatedTableName>> : never;
177
177
 
178
178
  /**
@@ -234,6 +234,7 @@ export class FinalQuery<
234
234
  S extends SchemaStructure,
235
235
  TableName extends TableNames<S>,
236
236
  T extends { columns: Record<string, ColumnSchema> },
237
+ // oxlint-disable-next-line no-unused-vars -- RelatedFields is used externally for type inference
237
238
  RelatedFields extends RelatedFieldsMap,
238
239
  IsOne extends boolean,
239
240
  R = void,
@@ -641,6 +642,7 @@ export function extractSubqueryQueryInfos<S extends SchemaStructure>(
641
642
  if (relationship) {
642
643
  // Determine foreign key field
643
644
  // rel.alias is guaranteed to be defined if relationship is found (matched r.field)
645
+ // oxlint-disable-next-line no-non-null-assertion -- alias is guaranteed defined when relationship is found
644
646
  let foreignKeyField = rel.alias!;
645
647
 
646
648
  if (relationship.cardinality === 'many') {
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { QueryBuilder, SchemaStructure } from './index';
2
+ import { QueryBuilder } from './index';
3
3
 
4
4
  describe('QueryBuilder Relationship Inference', () => {
5
5
  const schema = {
package/src/types.ts CHANGED
@@ -47,10 +47,10 @@ export interface QueryOptions<TModel extends GenericModel, IsOne extends boolean
47
47
  isOne?: IsOne;
48
48
  }
49
49
 
50
- export interface LiveQueryOptions<TModel extends GenericModel> extends Omit<
50
+ export type LiveQueryOptions<TModel extends GenericModel> = Omit<
51
51
  QueryOptions<TModel, boolean>,
52
52
  'orderBy'
53
- > {}
53
+ >;
54
54
 
55
55
  // Import schema types for schema-aware modifiers
56
56
  import type {
@@ -139,6 +139,7 @@ export type RelationshipFields<TModel extends GenericModel> = {
139
139
  * Simplified to directly access the nested structure
140
140
  */
141
141
  export type InferRelatedModelFromMetadata<
142
+ // oxlint-disable-next-line no-unused-vars -- Schema is used as a generic constraint
142
143
  Schema extends GenericSchema,
143
144
  TableName extends string,
144
145
  FieldName extends string,