sonamu 0.5.5 → 0.5.6

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.
@@ -1,3 +1,7 @@
1
+ /**
2
+ * 빌드 결과물이 담길 디렉토리 경로
3
+ */
4
+ export declare const BUILD_DIR = "dist";
1
5
  /**
2
6
  * SWC 빌드 명령어
3
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../../src/bin/build-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,gKACiI,CAAC;AAEhK;;GAEG;AACH,eAAO,MAAM,sBAAsB,iBAAiB,CAAC"}
1
+ {"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../../src/bin/build-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,iBAAiB,gKAAwK,CAAC;AAEvM;;GAEG;AACH,eAAO,MAAM,sBAAsB,iBAAiB,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get SWC_BUILD_COMMAND(){return SWC_BUILD_COMMAND},get TSC_TYPE_CHECK_COMMAND(){return TSC_TYPE_CHECK_COMMAND}});var SWC_BUILD_COMMAND="swc src -d dist --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5";var TSC_TYPE_CHECK_COMMAND="tsc --noEmit";
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get BUILD_DIR(){return BUILD_DIR},get SWC_BUILD_COMMAND(){return SWC_BUILD_COMMAND},get TSC_TYPE_CHECK_COMMAND(){return TSC_TYPE_CHECK_COMMAND}});var BUILD_DIR="dist";var SWC_BUILD_COMMAND="swc src -d ".concat(BUILD_DIR," --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5");var TSC_TYPE_CHECK_COMMAND="tsc --noEmit";
2
2
  //# sourceMappingURL=build-config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/build-config.ts"],"sourcesContent":["/**\n * SWC 빌드 명령어\n */\nexport const SWC_BUILD_COMMAND =\n \"swc src -d dist --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5\";\n\n/**\n * TSC 타입 체크 명령어\n */\nexport const TSC_TYPE_CHECK_COMMAND = \"tsc --noEmit\";\n"],"names":["SWC_BUILD_COMMAND","TSC_TYPE_CHECK_COMMAND"],"mappings":"mPAGaA,2BAAAA,uBAMAC,gCAAAA,0BANN,IAAMD,kBACX,8JAKK,IAAMC,uBAAyB"}
1
+ {"version":3,"sources":["../../src/bin/build-config.ts"],"sourcesContent":["/**\n * 빌드 결과물이 담길 디렉토리 경로\n */\nexport const BUILD_DIR = \"dist\";\n\n/**\n * SWC 빌드 명령어\n */\nexport const SWC_BUILD_COMMAND = `swc src -d ${BUILD_DIR} --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5`;\n\n/**\n * TSC 타입 체크 명령어\n */\nexport const TSC_TYPE_CHECK_COMMAND = `tsc --noEmit`;\n"],"names":["BUILD_DIR","SWC_BUILD_COMMAND","TSC_TYPE_CHECK_COMMAND"],"mappings":"mPAGaA,mBAAAA,eAKAC,2BAAAA,uBAKAC,gCAAAA,0BAVN,IAAMF,UAAY,OAKlB,IAAMC,kBAAoB,AAAC,cAAuB,OAAVD,UAAU,gJAKlD,IAAME,uBAAyB"}
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env ts-node
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _child_process=require("child_process");var _path=require("path");var _fs=require("fs");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));var _buildconfig=require("./build-config");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var scriptPath=(0,_path.resolve)(__dirname,"cli.js");var args=process.argv.slice(2);function build(){var checkTypes=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false;try{(0,_child_process.execSync)(_buildconfig.SWC_BUILD_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Build failed."),error);process.exit(1)}if(checkTypes){try{console.log(_chalk.default.blue("Checking types with tsc..."));(0,_child_process.execSync)(_buildconfig.TSC_TYPE_CHECK_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Type check failed."),error);process.exit(1)}}}if(args[0]==="build"){console.log(_chalk.default.blue("Building the project..."));build(true);console.log(_chalk.default.green("Build completed successfully."));process.exit(0)}if(args[0]==="dev:serve"){build()}if(!(0,_fs.existsSync)(scriptPath)){console.error("Error: Script not found at ".concat(scriptPath));process.exit(1)}var result=(0,_child_process.spawnSync)(process.execPath,["-r","source-map-support/register","--no-warnings",scriptPath].concat(_to_consumable_array(args)),{stdio:"inherit"});var _result_status;process.exit((_result_status=result.status)!==null&&_result_status!==void 0?_result_status:1);
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _child_process=require("child_process");var _path=require("path");var _fs=require("fs");var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));var _buildconfig=require("./build-config");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var scriptPath=(0,_path.resolve)(__dirname,"cli.js");var args=process.argv.slice(2);function build(){try{console.log(_chalk.default.blue("Removing build directory..."));if((0,_fs.existsSync)(_buildconfig.BUILD_DIR)){(0,_fs.rmSync)(_buildconfig.BUILD_DIR,{recursive:true,force:true})}}catch(error){console.error(_chalk.default.red("Remove build directory failed."),error);process.exit(1)}try{console.log(_chalk.default.blue("Building with swc..."));(0,_child_process.execSync)(_buildconfig.SWC_BUILD_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Build failed."),error);process.exit(1)}}function checkTypes(){try{console.log(_chalk.default.blue("Checking types with tsc..."));(0,_child_process.execSync)(_buildconfig.TSC_TYPE_CHECK_COMMAND,{cwd:process.cwd(),stdio:"inherit"})}catch(error){console.error(_chalk.default.red("Type check failed."),error);process.exit(1)}}if(args[0]==="build"){console.log(_chalk.default.blue("Building the project..."));build();checkTypes();console.log(_chalk.default.green("Build completed successfully."));process.exit(0)}if(args[0]==="dev:serve"){build()}if(!(0,_fs.existsSync)(scriptPath)){console.error("Error: Script not found at ".concat(scriptPath));process.exit(1)}var result=(0,_child_process.spawnSync)(process.execPath,["-r","source-map-support/register","--no-warnings",scriptPath].concat(_to_consumable_array(args)),{stdio:"inherit"});var _result_status;process.exit((_result_status=result.status)!==null&&_result_status!==void 0?_result_status:1);
3
3
  //# sourceMappingURL=cli-wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/cli-wrapper.ts"],"sourcesContent":["#!/usr/bin/env ts-node\n\nimport { spawnSync, execSync } from \"child_process\";\nimport { resolve } from \"path\";\nimport { existsSync } from \"fs\";\nimport chalk from \"chalk\";\nimport { SWC_BUILD_COMMAND, TSC_TYPE_CHECK_COMMAND } from \"./build-config\";\n\nconst scriptPath = resolve(__dirname, \"cli.js\");\nconst args = process.argv.slice(2);\n\n// build 명령어는 dist 없이도 실행 가능하도록 cli.ts 외부에서 처리(Sonamu.init에서 dist 필요)\nfunction build(checkTypes: boolean = false) {\n try {\n execSync(SWC_BUILD_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Build failed.\"), error);\n process.exit(1);\n }\n\n if (checkTypes) {\n try {\n console.log(chalk.blue(\"Checking types with tsc...\"));\n execSync(TSC_TYPE_CHECK_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Type check failed.\"), error);\n process.exit(1);\n }\n }\n}\n\nif (args[0] === \"build\") {\n console.log(chalk.blue(\"Building the project...\"));\n build(true);\n console.log(chalk.green(\"Build completed successfully.\"));\n process.exit(0);\n}\n\nif (args[0] === \"dev:serve\") {\n build();\n}\n\nif (!existsSync(scriptPath)) {\n console.error(`Error: Script not found at ${scriptPath}`);\n process.exit(1);\n}\n\nconst result = spawnSync(\n process.execPath,\n [\"-r\", \"source-map-support/register\", \"--no-warnings\", scriptPath, ...args],\n {\n stdio: \"inherit\",\n }\n);\n\nprocess.exit(result.status ?? 1);\n"],"names":["scriptPath","resolve","__dirname","args","process","argv","slice","build","checkTypes","execSync","SWC_BUILD_COMMAND","cwd","stdio","error","console","chalk","red","exit","log","blue","TSC_TYPE_CHECK_COMMAND","green","existsSync","result","spawnSync","execPath","status"],"mappings":";iGAEoC,mCACZ,wBACG,+DACT,mCACwC,6rCAE1D,IAAMA,WAAaC,GAAAA,aAAO,EAACC,UAAW,UACtC,IAAMC,KAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC,GAGhC,SAASC,YAAMC,WAAAA,uDAAsB,MACnC,GAAI,CACFC,GAAAA,uBAAQ,EAACC,8BAAiB,CAAE,CAAEC,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EACrE,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,iBAAkBH,OAC1CT,QAAQa,IAAI,CAAC,EACf,CAEA,GAAIT,WAAY,CACd,GAAI,CACFM,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,+BACvBV,GAAAA,uBAAQ,EAACW,mCAAsB,CAAE,CAAET,IAAKP,QAAQO,GAAG,GAAIC,MAAO,SAAU,EAC1E,CAAE,MAAOC,MAAO,CACdC,QAAQD,KAAK,CAACE,cAAK,CAACC,GAAG,CAAC,sBAAuBH,OAC/CT,QAAQa,IAAI,CAAC,EACf,CACF,CACF,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,QAAS,CACvBW,QAAQI,GAAG,CAACH,cAAK,CAACI,IAAI,CAAC,4BACvBZ,MAAM,MACNO,QAAQI,GAAG,CAACH,cAAK,CAACM,KAAK,CAAC,kCACxBjB,QAAQa,IAAI,CAAC,EACf,CAEA,GAAId,IAAI,CAAC,EAAE,GAAK,YAAa,CAC3BI,OACF,CAEA,GAAI,CAACe,GAAAA,cAAU,EAACtB,YAAa,CAC3Bc,QAAQD,KAAK,CAAC,AAAC,8BAAwC,OAAXb,aAC5CI,QAAQa,IAAI,CAAC,EACf,CAEA,IAAMM,OAASC,GAAAA,wBAAS,EACtBpB,QAAQqB,QAAQ,CAChB,CAAC,KAAM,8BAA+B,gBAAiBzB,WAAoB,CAA3E,OAAmE,qBAAGG,OACtE,CACES,MAAO,SACT,OAGWW,eAAbnB,QAAQa,IAAI,CAACM,CAAAA,eAAAA,OAAOG,MAAM,UAAbH,wBAAAA,eAAiB"}
1
+ {"version":3,"sources":["../../src/bin/cli-wrapper.ts"],"sourcesContent":["#!/usr/bin/env ts-node\n\nimport { spawnSync, execSync } from \"child_process\";\nimport { resolve } from \"path\";\nimport { existsSync, rmSync } from \"fs\";\nimport chalk from \"chalk\";\nimport {\n BUILD_DIR,\n SWC_BUILD_COMMAND,\n TSC_TYPE_CHECK_COMMAND,\n} from \"./build-config\";\n\nconst scriptPath = resolve(__dirname, \"cli.js\");\nconst args = process.argv.slice(2);\n\n// build 명령어는 dist 없이도 실행 가능하도록 cli.ts 외부에서 처리(Sonamu.init에서 dist 필요)\nfunction build() {\n try {\n console.log(chalk.blue(\"Removing build directory...\"));\n if (existsSync(BUILD_DIR)) {\n rmSync(BUILD_DIR, { recursive: true, force: true });\n }\n } catch (error) {\n console.error(chalk.red(\"Remove build directory failed.\"), error);\n process.exit(1);\n }\n\n try {\n console.log(chalk.blue(\"Building with swc...\"));\n execSync(SWC_BUILD_COMMAND, { cwd: process.cwd(), stdio: \"inherit\" });\n } catch (error) {\n console.error(chalk.red(\"Build failed.\"), error);\n process.exit(1);\n }\n}\n\nfunction checkTypes() {\n try {\n console.log(chalk.blue(\"Checking types with tsc...\"));\n execSync(TSC_TYPE_CHECK_COMMAND, {\n cwd: process.cwd(),\n stdio: \"inherit\",\n });\n } catch (error) {\n console.error(chalk.red(\"Type check failed.\"), error);\n process.exit(1);\n }\n}\n\nif (args[0] === \"build\") {\n console.log(chalk.blue(\"Building the project...\"));\n build();\n checkTypes();\n console.log(chalk.green(\"Build completed successfully.\"));\n process.exit(0);\n}\n\nif (args[0] === \"dev:serve\") {\n build();\n}\n\nif (!existsSync(scriptPath)) {\n console.error(`Error: Script not found at ${scriptPath}`);\n process.exit(1);\n}\n\nconst result = spawnSync(\n process.execPath,\n [\"-r\", \"source-map-support/register\", \"--no-warnings\", scriptPath, ...args],\n {\n stdio: \"inherit\",\n }\n);\n\nprocess.exit(result.status ?? 1);\n"],"names":["scriptPath","resolve","__dirname","args","process","argv","slice","build","console","log","chalk","blue","existsSync","BUILD_DIR","rmSync","recursive","force","error","red","exit","execSync","SWC_BUILD_COMMAND","cwd","stdio","checkTypes","TSC_TYPE_CHECK_COMMAND","green","result","spawnSync","execPath","status"],"mappings":";iGAEoC,mCACZ,wBACW,+DACjB,mCAKX,6rCAEP,IAAMA,WAAaC,GAAAA,aAAO,EAACC,UAAW,UACtC,IAAMC,KAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC,GAGhC,SAASC,QACP,GAAI,CACFC,QAAQC,GAAG,CAACC,cAAK,CAACC,IAAI,CAAC,gCACvB,GAAIC,GAAAA,cAAU,EAACC,sBAAS,EAAG,CACzBC,GAAAA,UAAM,EAACD,sBAAS,CAAE,CAAEE,UAAW,KAAMC,MAAO,IAAK,EACnD,CACF,CAAE,MAAOC,MAAO,CACdT,QAAQS,KAAK,CAACP,cAAK,CAACQ,GAAG,CAAC,kCAAmCD,OAC3Db,QAAQe,IAAI,CAAC,EACf,CAEA,GAAI,CACFX,QAAQC,GAAG,CAACC,cAAK,CAACC,IAAI,CAAC,yBACvBS,GAAAA,uBAAQ,EAACC,8BAAiB,CAAE,CAAEC,IAAKlB,QAAQkB,GAAG,GAAIC,MAAO,SAAU,EACrE,CAAE,MAAON,MAAO,CACdT,QAAQS,KAAK,CAACP,cAAK,CAACQ,GAAG,CAAC,iBAAkBD,OAC1Cb,QAAQe,IAAI,CAAC,EACf,CACF,CAEA,SAASK,aACP,GAAI,CACFhB,QAAQC,GAAG,CAACC,cAAK,CAACC,IAAI,CAAC,+BACvBS,GAAAA,uBAAQ,EAACK,mCAAsB,CAAE,CAC/BH,IAAKlB,QAAQkB,GAAG,GAChBC,MAAO,SACT,EACF,CAAE,MAAON,MAAO,CACdT,QAAQS,KAAK,CAACP,cAAK,CAACQ,GAAG,CAAC,sBAAuBD,OAC/Cb,QAAQe,IAAI,CAAC,EACf,CACF,CAEA,GAAIhB,IAAI,CAAC,EAAE,GAAK,QAAS,CACvBK,QAAQC,GAAG,CAACC,cAAK,CAACC,IAAI,CAAC,4BACvBJ,QACAiB,aACAhB,QAAQC,GAAG,CAACC,cAAK,CAACgB,KAAK,CAAC,kCACxBtB,QAAQe,IAAI,CAAC,EACf,CAEA,GAAIhB,IAAI,CAAC,EAAE,GAAK,YAAa,CAC3BI,OACF,CAEA,GAAI,CAACK,GAAAA,cAAU,EAACZ,YAAa,CAC3BQ,QAAQS,KAAK,CAAC,AAAC,8BAAwC,OAAXjB,aAC5CI,QAAQe,IAAI,CAAC,EACf,CAEA,IAAMQ,OAASC,GAAAA,wBAAS,EACtBxB,QAAQyB,QAAQ,CAChB,CAAC,KAAM,8BAA+B,gBAAiB7B,WAAoB,CAA3E,OAAmE,qBAAGG,OACtE,CACEoB,MAAO,SACT,OAGWI,eAAbvB,QAAQe,IAAI,CAACQ,CAAAA,eAAAA,OAAOG,MAAM,UAAbH,wBAAAA,eAAiB"}
@@ -47,6 +47,7 @@ export declare class Puri<TSchema, TTable extends keyof TSchema | string, TOrigi
47
47
  firstOrFail(): Promise<TResult>;
48
48
  at(index: number): Promise<Expand<TResult> | undefined>;
49
49
  assertAt(index: number): Promise<Expand<TResult>>;
50
+ pluck<TColumn extends ResultAvailableColumns<TSchema, TTable, TOriginal, TResult, TJoined>>(column: TColumn): Promise<ExtractColumnType<TSchema, TTable, TColumn & string, TOriginal, TJoined>[]>;
50
51
  insert(data: TTable extends keyof TSchema ? InsertData<TSchema[TTable]> : unknown): Promise<number[]>;
51
52
  update(data: Partial<TTable extends keyof TSchema ? TSchema[TTable] : unknown>): Promise<number>;
52
53
  delete(): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"puri.d.ts","sourceRoot":"","sources":["../../src/database/puri.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puri.d.ts","sourceRoot":"","sources":["../../src/database/puri.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,cAAc,CAAC;AAItB,qBAAa,IAAI,CACf,OAAO,EACP,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,EACrC,SAAS,GAAG,MAAM,SAAS,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,EACpE,OAAO,GAAG,MAAM,SAAS,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,EAClE,OAAO,GAAG,WAAW;IAenB,OAAO,CAAC,IAAI;IAbd,OAAO,CAAC,SAAS,CAAoB;gBAInC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO;gBAG1D,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EACjD,KAAK,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,KAAK;IAiB/C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,MAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;IAQzD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIjD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIjD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIjD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIjD,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;IAQvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAQnD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IASnD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIpD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;IAIpD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC;IAItD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAKhD,MAAM,CAAC,OAAO,SAAS,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACtE,SAAS,EAAE,OAAO,GACjB,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAC/D,OAAO,CACR;IA8BD,SAAS,IAAI,IAAI,CACf,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,SAAS,MAAM,OAAO,GACxB,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GACzB,OAAO,GAAG,OAAO,EACrB,OAAO,CACR;IAMD,KAAK,CACH,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IACrD,KAAK,CAAC,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACzE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IACrD,KAAK,CAAC,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACzE,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,kBAAkB,GAAG,MAAM,EACrC,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAgCrD,OAAO,CACL,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,iBAAiB,CACvB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,EAAE,GACF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IASrD,UAAU,CACR,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,iBAAiB,CACvB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,EAAE,GACF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IASrD,UAAU,CACR,OAAO,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAEpE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAMrD,UAAU,CACR,QAAQ,EAAE,CACR,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAUrD,YAAY,CACV,QAAQ,EAAE,CACR,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAWrD,IAAI,CACF,UAAU,SAAS,MAAM,OAAO,EAChC,QAAQ,SAAS,gBAAgB,CAC/B,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAClD,EACD,QAAQ,SAAS,gBAAgB,CAC/B,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAClD,EAED,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,GACd,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAC9D;IACD,IAAI,CAAC,UAAU,SAAS,MAAM,OAAO,EACnC,KAAK,EAAE,UAAU,EACjB,YAAY,EAAE,CACZ,UAAU,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KAC7D,IAAI,GACR,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAC9D;IACD,IAAI,CAAC,UAAU,EAAE,MAAM,SAAS,MAAM,EACpC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAClD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CACrC;IACD,IAAI,CACF,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IA2BrD,QAAQ,CACN,UAAU,SAAS,MAAM,OAAO,EAChC,QAAQ,SAAS,gBAAgB,CAC/B,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAClD,EACD,QAAQ,SAAS,gBAAgB,CAC/B,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAClD,EAED,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,GACd,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAC3D;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,SAAS,MAAM,EACxC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,EAClD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CACL,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAC9C;IACD,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAiBrD,OAAO,CACL,OAAO,SAAS,sBAAsB,CACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,CACR,EAED,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,KAAK,GAAG,MAAM,GACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAUrD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAKxE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAMzE,OAAO,CACL,QAAQ,SAAS,sBAAsB,CACrC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,CACR,EACD,GAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAQ7E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAC7E,MAAM,CACJ,OAAO,SAAS,sBAAsB,CACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,CACR,EAED,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,GAAG,GACT,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAQrD,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAC7B,WAAW,CAAC,EACR,CAAC,CACC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GACtD,IAAI,EACR,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAIvC,KAAK,CAAC,QAAQ,GAAG,KAAK,EACpB,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GACtE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;IAItC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAK5D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAI7C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ/B,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAKvD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAUjD,KAAK,CACT,OAAO,SAAS,sBAAsB,CACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,CACR,EAED,MAAM,EAAE,OAAO,GACd,OAAO,CACR,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAC3E;IAQK,MAAM,CACV,IAAI,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,GACzE,OAAO,CAAC,MAAM,EAAE,CAAC;IAId,MAAM,CACV,IAAI,EAAE,OAAO,CAAC,MAAM,SAAS,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GACtE,OAAO,CAAC,MAAM,CAAC;IAIZ,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,OAAO,IAAI,MAAM;IAIjB,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAO3D,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IA+GtC,GAAG,IAAI,IAAI,CAAC,YAAY;IAIxB,SAAS,CACP,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IAQrD,SAAS,CACP,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;CAOtD;AAGD,cAAM,UAAU,CACd,OAAO,EACP,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,EACrC,SAAS,GAAG,GAAG,EACf,OAAO,GAAG,WAAW;IAET,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,IAAI,CAAC,YAAY;IAE9C,KAAK,CACH,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAC9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,KAAK,CAAC,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACzE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,KAAK,CAAC,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EACzE,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,kBAAkB,GAAG,MAAM,EACrC,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAMnE,OAAO,CACL,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAC9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,OAAO,CACL,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,OAAO,CACL,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,kBAAkB,GAAG,MAAM,EACrC,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,GACA,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAMrE,OAAO,CACL,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,iBAAiB,CACvB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,EAAE,GACF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IASlD,SAAS,CACP,OAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAErE,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,iBAAiB,CACvB,OAAO,EACP,MAAM,EACN,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,OAAO,CACR,EAAE,GACF,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAUlD,UAAU,CACR,QAAQ,EAAE,CACR,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAUlD,YAAY,CACV,QAAQ,EAAE,CACR,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GACnD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CASnD;AAED,qBAAa,eAAe,CAC1B,OAAO,EACP,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,EACrC,SAAS,GAAG,GAAG,EACf,OAAO,GAAG,WAAW;IAET,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,IAAI,CAAC,UAAU;IAE7C,EAAE,CACA,QAAQ,EAAE,CACR,UAAU,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KAC7D,IAAI,GACR,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IACvD,EAAE,CACA,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,GACT,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAMvD,IAAI,CACF,QAAQ,EAAE,CACR,UAAU,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,KAC7D,IAAI,GACR,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IACvD,IAAI,CACF,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,GACT,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAKxD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get JoinClauseGroup(){return JoinClauseGroup},get Puri(){return Puri}});var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var Puri=/*#__PURE__*/function(){"use strict";function Puri(knex,tableNameOrSubquery,alias){_class_call_check(this,Puri);_define_property(this,"knex",void 0);_define_property(this,"knexQuery",void 0);this.knex=knex;if(typeof tableNameOrSubquery==="string"){this.knexQuery=knex(tableNameOrSubquery).from(tableNameOrSubquery)}else{this.knexQuery=knex.from(tableNameOrSubquery.raw().as(alias))}}_create_class(Puri,[{key:"select",value:function select(selectObj){var selectClauses=[];var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=Object.entries(selectObj)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _step_value=_sliced_to_array(_step.value,2),alias=_step_value[0],columnOrFunction=_step_value[1];if((typeof columnOrFunction==="undefined"?"undefined":_type_of(columnOrFunction))==="object"&&columnOrFunction._type==="sql_function"){selectClauses.push(this.knex.raw("".concat(columnOrFunction._sql," as ").concat(alias)))}else{var columnPath=columnOrFunction;if(alias===columnPath){selectClauses.push(columnPath)}else{selectClauses.push("".concat(columnPath," as ").concat(alias))}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}this.knexQuery.select(selectClauses);return this}},{key:"selectAll",value:function selectAll(){this.knexQuery.select("*");return this}},{key:"where",value:function where(columnOrConditions,operatorOrValue,value){if((typeof columnOrConditions==="undefined"?"undefined":_type_of(columnOrConditions))==="object"){this.knexQuery.where(columnOrConditions)}else if(arguments.length===2){if(operatorOrValue===null){this.knexQuery.whereNull(columnOrConditions);return this}this.knexQuery.where(columnOrConditions,operatorOrValue)}else if(arguments.length===3){if(value===null){if(operatorOrValue==="!="){this.knexQuery.whereNotNull(columnOrConditions);return this}else if(operatorOrValue==="="){this.knexQuery.whereNull(columnOrConditions);return this}}this.knexQuery.where(columnOrConditions,operatorOrValue,value)}else{this.knexQuery.where(columnOrConditions)}return this}},{key:"whereIn",value:function whereIn(column,values){this.knexQuery.whereIn(column,values);return this}},{key:"whereNotIn",value:function whereNotIn(column,values){this.knexQuery.whereNotIn(column,values);return this}},{key:"whereMatch",value:function whereMatch(column,value){this.knexQuery.whereRaw("MATCH (".concat(String(column),") AGAINST (?)"),[value]);return this}},{key:"whereGroup",value:function whereGroup(callback){this.knexQuery.where(function(builder){var group=new WhereGroup(builder);callback(group)});return this}},{key:"orWhereGroup",value:function orWhereGroup(callback){this.knexQuery.orWhere(function(builder){var group=new WhereGroup(builder);callback(group)});return this}},{key:"join",value:function join(tableOrSubquery){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}if(_instanceof(tableOrSubquery,Puri)){var _args=_sliced_to_array(args,3),alias=_args[0],left=_args[1],right=_args[2];this.knexQuery.join(tableOrSubquery.raw().as(alias),left,right)}else if(args.length===2&&typeof args[0]==="string"&&typeof args[1]==="string"){var _args1=_sliced_to_array(args,2),left1=_args1[0],right1=_args1[1];this.knexQuery.join(tableOrSubquery,left1,right1)}else if(args.length===1&&typeof args[0]==="function"){var joinCallback=args[0];this.knexQuery.join(tableOrSubquery,function(joinClause){joinCallback(new JoinClauseGroup(joinClause))})}else{throw new Error("Invalid arguments")}return this}},{key:"leftJoin",value:function leftJoin(tableOrSubquery){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}if(_instanceof(tableOrSubquery,Puri)){var _args=_sliced_to_array(args,3),alias=_args[0],left=_args[1],right=_args[2];this.knexQuery.leftJoin(tableOrSubquery.raw().as(alias),left,right)}else{var _args1=_sliced_to_array(args,2),left1=_args1[0],right1=_args1[1];this.knexQuery.leftJoin(tableOrSubquery,left1,right1)}return this}},{key:"orderBy",value:function orderBy(column){var direction=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"asc";this.knexQuery.orderBy(column,direction);return this}},{key:"limit",value:function limit(count){this.knexQuery.limit(count);return this}},{key:"offset",value:function offset(count){this.knexQuery.offset(count);return this}},{key:"groupBy",value:function groupBy(){for(var _len=arguments.length,columns=new Array(_len),_key=0;_key<_len;_key++){columns[_key]=arguments[_key]}var _this_knexQuery;(_this_knexQuery=this.knexQuery).groupBy.apply(_this_knexQuery,_to_consumable_array(columns));return this}},{key:"having",value:function having(){for(var _len=arguments.length,conditions=new Array(_len),_key=0;_key<_len;_key++){conditions[_key]=arguments[_key]}var _this_knexQuery;(_this_knexQuery=this.knexQuery).having.apply(_this_knexQuery,_to_consumable_array(conditions));return this}},{key:"then",value:function then(onfulfilled,onrejected){return this.knexQuery.then(onfulfilled,onrejected)}},{key:"catch",value:function _catch(onrejected){return this.knexQuery.catch(onrejected)}},{key:"finally",value:function _finally(onfinally){return this.knexQuery.finally(onfinally)}},{key:"first",value:function first(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.first()]})}).call(this)}},{key:"firstOrFail",value:function firstOrFail(){return _async_to_generator(function(){var result;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.knexQuery.first()];case 1:result=_state.sent();if(!result){throw new Error("No results found")}return[2,result]}})}).call(this)}},{key:"at",value:function at(index){return _async_to_generator(function(){var results;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this];case 1:results=_state.sent();return[2,results[index]]}})}).call(this)}},{key:"assertAt",value:function assertAt(index){return _async_to_generator(function(){var results,result;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this];case 1:results=_state.sent();result=results[index];if(result===undefined){throw new Error("No result found at index ".concat(index))}return[2,result]}})}).call(this)}},{key:"insert",value:function insert(data){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.insert(data)]})}).call(this)}},{key:"update",value:function update(data){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.update(data)]})}).call(this)}},{key:"delete",value:function _delete(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.delete()]})}).call(this)}},{key:"toQuery",value:function toQuery(){return this.knexQuery.toQuery()}},{key:"debug",value:function debug(){console.log("".concat(_chalk.default.cyan("[Puri Debug]")," ").concat(_chalk.default.yellow(this.formatSQL(this.toQuery()))));return this}},{key:"formatSQL",value:function formatSQL(unformatted){var keywords=["SELECT","FROM","WHERE","INSERT","INTO","VALUES","UPDATE","DELETE","CREATE","TABLE","ALTER","DROP","JOIN","ON","INNER","LEFT","RIGHT","FULL","OUTER","GROUP","BY","ORDER","HAVING","DISTINCT","LIMIT","OFFSET","AS","AND","OR","NOT","IN","LIKE","IS","NULL","CASE","WHEN","THEN","ELSE","END","UNION","ALL","EXISTS","BETWEEN"];var formatted=unformatted;keywords.forEach(function(keyword){var regex=new RegExp("\\b".concat(keyword,"\\b"),"gi");formatted=formatted.replace(regex,keyword.toUpperCase())});var majorClauses=["SELECT","FROM","WHERE","GROUP BY","ORDER BY","HAVING","LIMIT","UNION"];majorClauses.forEach(function(clause){var regex=new RegExp("\\s+(".concat(clause,")\\s+"),"gi");formatted=formatted.replace(regex,"\n".concat(clause.toUpperCase()," "))});formatted=formatted.replace(/\s+((?:INNER|LEFT|RIGHT|FULL OUTER)\s+)?JOIN\s+/gi,"\n$1JOIN ");formatted=formatted.replace(/\s+(AND|OR)\s+/gi,"\n $1 ");var lines=formatted.split("\n");var indentedLines=[];var indentLevel=0;var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=lines[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var line=_step.value;var trimmedLine=line.trim();if(!trimmedLine)continue;var closingParens=(trimmedLine.match(/\)/g)||[]).length;var openingParens=(trimmedLine.match(/\(/g)||[]).length;if(closingParens>0&&openingParens===0){indentLevel=Math.max(0,indentLevel-closingParens)}var indent=" ".repeat(indentLevel);indentedLines.push(indent+trimmedLine);if(openingParens>closingParens){indentLevel+=openingParens-closingParens}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}return indentedLines.join("\n").trim()}},{key:"raw",value:function raw(){return this.knexQuery}},{key:"increment",value:function increment(column,value){if(value<=0){throw new Error("Increment value must be greater than 0")}this.knexQuery.increment(column,value);return this}},{key:"decrement",value:function decrement(column,value){if(value<=0){throw new Error("Decrement value must be greater than 0")}this.knexQuery.decrement(column,value);return this}}],[{key:"count",value:function count(){var column=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"*";return{_type:"sql_function",_return:"number",_sql:"COUNT(".concat(column,")")}}},{key:"sum",value:function sum(column){return{_type:"sql_function",_return:"number",_sql:"SUM(".concat(column,")")}}},{key:"avg",value:function avg(column){return{_type:"sql_function",_return:"number",_sql:"AVG(".concat(column,")")}}},{key:"max",value:function max(column){return{_type:"sql_function",_return:"number",_sql:"MAX(".concat(column,")")}}},{key:"min",value:function min(column){return{_type:"sql_function",_return:"number",_sql:"MIN(".concat(column,")")}}},{key:"concat",value:function concat(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return{_type:"sql_function",_return:"string",_sql:"CONCAT(".concat(args.join(", "),")")}}},{key:"upper",value:function upper(column){return{_type:"sql_function",_return:"string",_sql:"UPPER(".concat(column,")")}}},{key:"lower",value:function lower(column){return{_type:"sql_function",_return:"string",_sql:"LOWER(".concat(column,")")}}},{key:"rawString",value:function rawString(sql){return{_type:"sql_function",_return:"string",_sql:sql}}},{key:"rawNumber",value:function rawNumber(sql){return{_type:"sql_function",_return:"number",_sql:sql}}},{key:"rawBoolean",value:function rawBoolean(sql){return{_type:"sql_function",_return:"boolean",_sql:sql}}},{key:"rawDate",value:function rawDate(sql){return{_type:"sql_function",_return:"date",_sql:sql}}}]);return Puri}();var WhereGroup=/*#__PURE__*/function(){"use strict";function WhereGroup(builder){_class_call_check(this,WhereGroup);_define_property(this,"builder",void 0);this.builder=builder}_create_class(WhereGroup,[{key:"where",value:function where(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_builder;(_this_builder=this.builder).where.apply(_this_builder,[args[0]].concat(_to_consumable_array(args.slice(1))));return this}},{key:"orWhere",value:function orWhere(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_builder;(_this_builder=this.builder).orWhere.apply(_this_builder,[args[0]].concat(_to_consumable_array(args.slice(1))));return this}},{key:"whereIn",value:function whereIn(column,values){this.builder.whereIn(column,values);return this}},{key:"orWhereIn",value:function orWhereIn(column,values){this.builder.orWhereIn(column,values);return this}},{key:"whereGroup",value:function whereGroup(callback){this.builder.where(function(subBuilder){var subGroup=new WhereGroup(subBuilder);callback(subGroup)});return this}},{key:"orWhereGroup",value:function orWhereGroup(callback){this.builder.orWhere(function(subBuilder){var subGroup=new WhereGroup(subBuilder);callback(subGroup)});return this}}]);return WhereGroup}();var JoinClauseGroup=/*#__PURE__*/function(){"use strict";function JoinClauseGroup(callback){_class_call_check(this,JoinClauseGroup);_define_property(this,"callback",void 0);this.callback=callback}_create_class(JoinClauseGroup,[{key:"on",value:function on(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_callback;(_this_callback=this.callback).on.apply(_this_callback,_to_consumable_array(args));return this}},{key:"orOn",value:function orOn(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_callback;(_this_callback=this.callback).orOn.apply(_this_callback,_to_consumable_array(args));return this}}]);return JoinClauseGroup}();
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get JoinClauseGroup(){return JoinClauseGroup},get Puri(){return Puri}});var _chalk=/*#__PURE__*/_interop_require_default(require("chalk"));function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var Puri=/*#__PURE__*/function(){"use strict";function Puri(knex,tableNameOrSubquery,alias){_class_call_check(this,Puri);_define_property(this,"knex",void 0);_define_property(this,"knexQuery",void 0);this.knex=knex;if(typeof tableNameOrSubquery==="string"){this.knexQuery=knex(tableNameOrSubquery).from(tableNameOrSubquery)}else{this.knexQuery=knex.from(tableNameOrSubquery.raw().as(alias))}}_create_class(Puri,[{key:"select",value:function select(selectObj){var selectClauses=[];var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=Object.entries(selectObj)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _step_value=_sliced_to_array(_step.value,2),alias=_step_value[0],columnOrFunction=_step_value[1];if((typeof columnOrFunction==="undefined"?"undefined":_type_of(columnOrFunction))==="object"&&columnOrFunction._type==="sql_function"){selectClauses.push(this.knex.raw("".concat(columnOrFunction._sql," as ").concat(alias)))}else{var columnPath=columnOrFunction;if(alias===columnPath){selectClauses.push(columnPath)}else{selectClauses.push("".concat(columnPath," as ").concat(alias))}}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}this.knexQuery.select(selectClauses);return this}},{key:"selectAll",value:function selectAll(){this.knexQuery.select("*");return this}},{key:"where",value:function where(columnOrConditions,operatorOrValue,value){if((typeof columnOrConditions==="undefined"?"undefined":_type_of(columnOrConditions))==="object"){this.knexQuery.where(columnOrConditions)}else if(arguments.length===2){if(operatorOrValue===null){this.knexQuery.whereNull(columnOrConditions);return this}this.knexQuery.where(columnOrConditions,operatorOrValue)}else if(arguments.length===3){if(value===null){if(operatorOrValue==="!="){this.knexQuery.whereNotNull(columnOrConditions);return this}else if(operatorOrValue==="="){this.knexQuery.whereNull(columnOrConditions);return this}}this.knexQuery.where(columnOrConditions,operatorOrValue,value)}else{this.knexQuery.where(columnOrConditions)}return this}},{key:"whereIn",value:function whereIn(column,values){this.knexQuery.whereIn(column,values);return this}},{key:"whereNotIn",value:function whereNotIn(column,values){this.knexQuery.whereNotIn(column,values);return this}},{key:"whereMatch",value:function whereMatch(column,value){this.knexQuery.whereRaw("MATCH (".concat(String(column),") AGAINST (?)"),[value]);return this}},{key:"whereGroup",value:function whereGroup(callback){this.knexQuery.where(function(builder){var group=new WhereGroup(builder);callback(group)});return this}},{key:"orWhereGroup",value:function orWhereGroup(callback){this.knexQuery.orWhere(function(builder){var group=new WhereGroup(builder);callback(group)});return this}},{key:"join",value:function join(tableOrSubquery){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}if(_instanceof(tableOrSubquery,Puri)){var _args=_sliced_to_array(args,3),alias=_args[0],left=_args[1],right=_args[2];this.knexQuery.join(tableOrSubquery.raw().as(alias),left,right)}else if(args.length===2&&typeof args[0]==="string"&&typeof args[1]==="string"){var _args1=_sliced_to_array(args,2),left1=_args1[0],right1=_args1[1];this.knexQuery.join(tableOrSubquery,left1,right1)}else if(args.length===1&&typeof args[0]==="function"){var joinCallback=args[0];this.knexQuery.join(tableOrSubquery,function(joinClause){joinCallback(new JoinClauseGroup(joinClause))})}else{throw new Error("Invalid arguments")}return this}},{key:"leftJoin",value:function leftJoin(tableOrSubquery){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}if(_instanceof(tableOrSubquery,Puri)){var _args=_sliced_to_array(args,3),alias=_args[0],left=_args[1],right=_args[2];this.knexQuery.leftJoin(tableOrSubquery.raw().as(alias),left,right)}else{var _args1=_sliced_to_array(args,2),left1=_args1[0],right1=_args1[1];this.knexQuery.leftJoin(tableOrSubquery,left1,right1)}return this}},{key:"orderBy",value:function orderBy(column){var direction=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"asc";this.knexQuery.orderBy(column,direction);return this}},{key:"limit",value:function limit(count){this.knexQuery.limit(count);return this}},{key:"offset",value:function offset(count){this.knexQuery.offset(count);return this}},{key:"groupBy",value:function groupBy(){for(var _len=arguments.length,columns=new Array(_len),_key=0;_key<_len;_key++){columns[_key]=arguments[_key]}var _this_knexQuery;(_this_knexQuery=this.knexQuery).groupBy.apply(_this_knexQuery,_to_consumable_array(columns));return this}},{key:"having",value:function having(){for(var _len=arguments.length,conditions=new Array(_len),_key=0;_key<_len;_key++){conditions[_key]=arguments[_key]}var _this_knexQuery;(_this_knexQuery=this.knexQuery).having.apply(_this_knexQuery,_to_consumable_array(conditions));return this}},{key:"then",value:function then(onfulfilled,onrejected){return this.knexQuery.then(onfulfilled,onrejected)}},{key:"catch",value:function _catch(onrejected){return this.knexQuery.catch(onrejected)}},{key:"finally",value:function _finally(onfinally){return this.knexQuery.finally(onfinally)}},{key:"first",value:function first(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.first()]})}).call(this)}},{key:"firstOrFail",value:function firstOrFail(){return _async_to_generator(function(){var result;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this.knexQuery.first()];case 1:result=_state.sent();if(!result){throw new Error("No results found")}return[2,result]}})}).call(this)}},{key:"at",value:function at(index){return _async_to_generator(function(){var results;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this];case 1:results=_state.sent();return[2,results[index]]}})}).call(this)}},{key:"assertAt",value:function assertAt(index){return _async_to_generator(function(){var results,result;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,this];case 1:results=_state.sent();result=results[index];if(result===undefined){throw new Error("No result found at index ".concat(index))}return[2,result]}})}).call(this)}},{key:"pluck",value:function pluck(column){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.pluck(column)]})}).call(this)}},{key:"insert",value:function insert(data){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.insert(data)]})}).call(this)}},{key:"update",value:function update(data){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.update(data)]})}).call(this)}},{key:"delete",value:function _delete(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,this.knexQuery.delete()]})}).call(this)}},{key:"toQuery",value:function toQuery(){return this.knexQuery.toQuery()}},{key:"debug",value:function debug(){console.log("".concat(_chalk.default.cyan("[Puri Debug]")," ").concat(_chalk.default.yellow(this.formatSQL(this.toQuery()))));return this}},{key:"formatSQL",value:function formatSQL(unformatted){var keywords=["SELECT","FROM","WHERE","INSERT","INTO","VALUES","UPDATE","DELETE","CREATE","TABLE","ALTER","DROP","JOIN","ON","INNER","LEFT","RIGHT","FULL","OUTER","GROUP","BY","ORDER","HAVING","DISTINCT","LIMIT","OFFSET","AS","AND","OR","NOT","IN","LIKE","IS","NULL","CASE","WHEN","THEN","ELSE","END","UNION","ALL","EXISTS","BETWEEN"];var formatted=unformatted;keywords.forEach(function(keyword){var regex=new RegExp("\\b".concat(keyword,"\\b"),"gi");formatted=formatted.replace(regex,keyword.toUpperCase())});var majorClauses=["SELECT","FROM","WHERE","GROUP BY","ORDER BY","HAVING","LIMIT","UNION"];majorClauses.forEach(function(clause){var regex=new RegExp("\\s+(".concat(clause,")\\s+"),"gi");formatted=formatted.replace(regex,"\n".concat(clause.toUpperCase()," "))});formatted=formatted.replace(/\s+((?:INNER|LEFT|RIGHT|FULL OUTER)\s+)?JOIN\s+/gi,"\n$1JOIN ");formatted=formatted.replace(/\s+(AND|OR)\s+/gi,"\n $1 ");var lines=formatted.split("\n");var indentedLines=[];var indentLevel=0;var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=lines[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var line=_step.value;var trimmedLine=line.trim();if(!trimmedLine)continue;var closingParens=(trimmedLine.match(/\)/g)||[]).length;var openingParens=(trimmedLine.match(/\(/g)||[]).length;if(closingParens>0&&openingParens===0){indentLevel=Math.max(0,indentLevel-closingParens)}var indent=" ".repeat(indentLevel);indentedLines.push(indent+trimmedLine);if(openingParens>closingParens){indentLevel+=openingParens-closingParens}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}return indentedLines.join("\n").trim()}},{key:"raw",value:function raw(){return this.knexQuery}},{key:"increment",value:function increment(column,value){if(value<=0){throw new Error("Increment value must be greater than 0")}this.knexQuery.increment(column,value);return this}},{key:"decrement",value:function decrement(column,value){if(value<=0){throw new Error("Decrement value must be greater than 0")}this.knexQuery.decrement(column,value);return this}}],[{key:"count",value:function count(){var column=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"*";return{_type:"sql_function",_return:"number",_sql:"COUNT(".concat(column,")")}}},{key:"sum",value:function sum(column){return{_type:"sql_function",_return:"number",_sql:"SUM(".concat(column,")")}}},{key:"avg",value:function avg(column){return{_type:"sql_function",_return:"number",_sql:"AVG(".concat(column,")")}}},{key:"max",value:function max(column){return{_type:"sql_function",_return:"number",_sql:"MAX(".concat(column,")")}}},{key:"min",value:function min(column){return{_type:"sql_function",_return:"number",_sql:"MIN(".concat(column,")")}}},{key:"concat",value:function concat(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return{_type:"sql_function",_return:"string",_sql:"CONCAT(".concat(args.join(", "),")")}}},{key:"upper",value:function upper(column){return{_type:"sql_function",_return:"string",_sql:"UPPER(".concat(column,")")}}},{key:"lower",value:function lower(column){return{_type:"sql_function",_return:"string",_sql:"LOWER(".concat(column,")")}}},{key:"rawString",value:function rawString(sql){return{_type:"sql_function",_return:"string",_sql:sql}}},{key:"rawNumber",value:function rawNumber(sql){return{_type:"sql_function",_return:"number",_sql:sql}}},{key:"rawBoolean",value:function rawBoolean(sql){return{_type:"sql_function",_return:"boolean",_sql:sql}}},{key:"rawDate",value:function rawDate(sql){return{_type:"sql_function",_return:"date",_sql:sql}}}]);return Puri}();var WhereGroup=/*#__PURE__*/function(){"use strict";function WhereGroup(builder){_class_call_check(this,WhereGroup);_define_property(this,"builder",void 0);this.builder=builder}_create_class(WhereGroup,[{key:"where",value:function where(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_builder;(_this_builder=this.builder).where.apply(_this_builder,[args[0]].concat(_to_consumable_array(args.slice(1))));return this}},{key:"orWhere",value:function orWhere(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_builder;(_this_builder=this.builder).orWhere.apply(_this_builder,[args[0]].concat(_to_consumable_array(args.slice(1))));return this}},{key:"whereIn",value:function whereIn(column,values){this.builder.whereIn(column,values);return this}},{key:"orWhereIn",value:function orWhereIn(column,values){this.builder.orWhereIn(column,values);return this}},{key:"whereGroup",value:function whereGroup(callback){this.builder.where(function(subBuilder){var subGroup=new WhereGroup(subBuilder);callback(subGroup)});return this}},{key:"orWhereGroup",value:function orWhereGroup(callback){this.builder.orWhere(function(subBuilder){var subGroup=new WhereGroup(subBuilder);callback(subGroup)});return this}}]);return WhereGroup}();var JoinClauseGroup=/*#__PURE__*/function(){"use strict";function JoinClauseGroup(callback){_class_call_check(this,JoinClauseGroup);_define_property(this,"callback",void 0);this.callback=callback}_create_class(JoinClauseGroup,[{key:"on",value:function on(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_callback;(_this_callback=this.callback).on.apply(_this_callback,_to_consumable_array(args));return this}},{key:"orOn",value:function orOn(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}var _this_callback;(_this_callback=this.callback).orOn.apply(_this_callback,_to_consumable_array(args));return this}}]);return JoinClauseGroup}();
2
2
  //# sourceMappingURL=puri.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/database/puri.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n AvailableColumns,\n ComparisonOperator,\n EmptyRecord,\n Expand,\n ExtractColumnType,\n FulltextColumns,\n InsertData,\n MergeJoined,\n ParseSelectObject,\n ResultAvailableColumns,\n SelectObject,\n SqlFunction,\n WhereCondition,\n} from \"./puri.types\";\nimport chalk from \"chalk\";\n\n// 메인 Puri 클래스\nexport class Puri<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = TTable extends keyof TSchema ? TSchema[TTable] : unknown,\n TResult = TTable extends keyof TSchema ? TSchema[TTable] : unknown,\n TJoined = EmptyRecord,\n> {\n private knexQuery: Knex.QueryBuilder;\n\n // 생성자 시그니처들\n constructor(\n knex: Knex,\n tableName: TTable extends keyof TSchema ? TTable : unknown\n );\n constructor(\n knex: Knex,\n subquery: Puri<TSchema, any, any, TOriginal, any>,\n alias: TTable extends string ? TTable : never\n );\n constructor(\n private knex: Knex,\n tableNameOrSubquery: any,\n alias?: TTable extends string ? TTable : never\n ) {\n if (typeof tableNameOrSubquery === \"string\") {\n // 일반 테이블로 시작\n this.knexQuery = knex(tableNameOrSubquery).from(tableNameOrSubquery);\n } else {\n // 서브쿼리로 시작\n this.knexQuery = knex.from(tableNameOrSubquery.raw().as(alias));\n }\n }\n\n // Static SQL helper functions\n static count(column: string = \"*\"): SqlFunction<\"number\"> {\n return {\n _type: \"sql_function\",\n _return: \"number\",\n _sql: `COUNT(${column})`,\n };\n }\n\n static sum(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `SUM(${column})` };\n }\n\n static avg(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `AVG(${column})` };\n }\n\n static max(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `MAX(${column})` };\n }\n\n static min(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `MIN(${column})` };\n }\n\n static concat(...args: string[]): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `CONCAT(${args.join(\", \")})`,\n };\n }\n\n static upper(column: string): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `UPPER(${column})`,\n };\n }\n\n static lower(column: string): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `LOWER(${column})`,\n };\n }\n\n // Raw functions\n static rawString(sql: string): SqlFunction<\"string\"> {\n return { _type: \"sql_function\", _return: \"string\", _sql: sql };\n }\n\n static rawNumber(sql: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: sql };\n }\n\n static rawBoolean(sql: string): SqlFunction<\"boolean\"> {\n return { _type: \"sql_function\", _return: \"boolean\", _sql: sql };\n }\n\n static rawDate(sql: string): SqlFunction<\"date\"> {\n return { _type: \"sql_function\", _return: \"date\", _sql: sql };\n }\n\n // Alias 기반 Select\n select<TSelect extends SelectObject<TSchema, TTable, TOriginal, TJoined>>(\n selectObj: TSelect\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n ParseSelectObject<TSchema, TTable, TSelect, TOriginal, TJoined>,\n TJoined\n > {\n const selectClauses: (string | Knex.Raw)[] = [];\n\n for (const [alias, columnOrFunction] of Object.entries(selectObj)) {\n if (\n typeof columnOrFunction === \"object\" &&\n columnOrFunction._type === \"sql_function\"\n ) {\n // SQL 함수인 경우\n selectClauses.push(\n this.knex.raw(`${columnOrFunction._sql} as ${alias}`)\n );\n } else {\n // 일반 컬럼인 경우\n const columnPath = columnOrFunction as string;\n if (alias === columnPath) {\n // alias와 컬럼명이 같으면 alias 생략\n selectClauses.push(columnPath);\n } else {\n // alias 지정\n selectClauses.push(`${columnPath} as ${alias}`);\n }\n }\n }\n\n this.knexQuery.select(selectClauses);\n return this as any;\n }\n\n // 전체 선택 (편의 메서드)\n selectAll(): Puri<\n TSchema,\n TTable,\n TOriginal,\n TTable extends keyof TSchema\n ? TSchema[TTable] & TJoined\n : TResult & TJoined,\n TJoined\n > {\n this.knexQuery.select(\"*\");\n return this as any;\n }\n\n // Where 조건 (조인된 테이블 컬럼도 지원)\n where(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where(\n columnOrConditions: any,\n operatorOrValue?: any,\n value?: any\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (typeof columnOrConditions === \"object\") {\n this.knexQuery.where(columnOrConditions);\n } else if (arguments.length === 2) {\n if (operatorOrValue === null) {\n this.knexQuery.whereNull(columnOrConditions);\n return this;\n }\n this.knexQuery.where(columnOrConditions, operatorOrValue);\n } else if (arguments.length === 3) {\n if (value === null) {\n if (operatorOrValue === \"!=\") {\n this.knexQuery.whereNotNull(columnOrConditions);\n return this;\n } else if (operatorOrValue === \"=\") {\n this.knexQuery.whereNull(columnOrConditions);\n return this;\n }\n }\n this.knexQuery.where(columnOrConditions, operatorOrValue, value);\n } else {\n this.knexQuery.where(columnOrConditions);\n }\n return this;\n }\n\n // WhereIn (조인된 테이블 컬럼도 지원)\n whereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n whereIn(\n column: string,\n values: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereIn(column, values);\n return this;\n }\n\n whereNotIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n whereNotIn(\n column: string,\n values: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereNotIn(column, values);\n return this;\n }\n\n whereMatch<\n TColumn extends FulltextColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereRaw(`MATCH (${String(column)}) AGAINST (?)`, [value]);\n return this;\n }\n\n // WhereGroup (괄호 그룹핑 지원)\n whereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.where((builder) => {\n const group = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n builder\n );\n callback(group);\n });\n return this;\n }\n\n orWhereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.orWhere((builder) => {\n const group = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n builder\n );\n callback(group);\n });\n return this;\n }\n\n // Join\n join<\n TJoinTable extends keyof TSchema,\n TLColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n TRColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n >(\n table: TJoinTable,\n left: TLColumn,\n right: TRColumn\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n MergeJoined<TJoined, Record<TJoinTable, TSchema[TJoinTable]>>\n >;\n join<TJoinTable extends keyof TSchema>(\n table: TJoinTable,\n joinCallback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n MergeJoined<TJoined, Record<TJoinTable, TSchema[TJoinTable]>>\n >;\n join<TSubResult, TAlias extends string>(\n subquery: Puri<TSchema, any, any, TSubResult, any>,\n alias: TAlias,\n left: string,\n right: string\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TAlias, TSubResult>\n >;\n join(\n table: string,\n left: string,\n right: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n join(\n tableOrSubquery: string | keyof TSchema | Puri<TSchema, any, any, any, any>,\n ...args: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, any> {\n if (tableOrSubquery instanceof Puri) {\n // 서브쿼리 조인: join(subquery, alias, left, right)\n const [alias, left, right] = args;\n this.knexQuery.join(tableOrSubquery.raw().as(alias), left, right);\n } else if (\n args.length === 2 &&\n typeof args[0] === \"string\" &&\n typeof args[1] === \"string\"\n ) {\n const [left, right] = args;\n this.knexQuery.join(tableOrSubquery as string, left, right);\n } else if (args.length === 1 && typeof args[0] === \"function\") {\n const joinCallback = args[0];\n this.knexQuery.join(tableOrSubquery as string, (joinClause) => {\n joinCallback(new JoinClauseGroup(joinClause));\n });\n } else {\n throw new Error(\"Invalid arguments\");\n }\n return this as any;\n }\n\n leftJoin<\n TJoinTable extends keyof TSchema,\n TLColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n TRColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n >(\n table: TJoinTable,\n left: TLColumn,\n right: TRColumn\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TJoinTable, Partial<TSchema[TJoinTable]>>\n >;\n leftJoin<TSubResult, TAlias extends string>(\n subquery: Puri<TSchema, any, any, TSubResult, any>,\n alias: TAlias,\n left: string,\n right: string\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TAlias, Partial<TSubResult>>\n >;\n leftJoin(\n table: string,\n left: string,\n right: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n leftJoin(\n tableOrSubquery: string | keyof TSchema | Puri<TSchema, any, any, any, any>,\n ...args: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, any> {\n if (tableOrSubquery instanceof Puri) {\n // 서브쿼리 조인: leftJoin(subquery, alias, left, right)\n const [alias, left, right] = args;\n this.knexQuery.leftJoin(tableOrSubquery.raw().as(alias), left, right);\n } else {\n const [left, right] = args;\n this.knexQuery.leftJoin(tableOrSubquery as string, left, right);\n }\n return this as any;\n }\n\n // OrderBy\n orderBy<\n TColumn extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(\n column: TColumn,\n direction: \"asc\" | \"desc\"\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n orderBy(\n column: string,\n direction: \"asc\" | \"desc\" = \"asc\"\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.orderBy(column, direction);\n return this;\n }\n\n // 기본 쿼리 메서드들\n limit(count: number): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.limit(count);\n return this;\n }\n\n offset(count: number): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.offset(count);\n return this;\n }\n\n // Group by (조인된 테이블 컬럼도 지원)\n groupBy<\n TColumns extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(...columns: TColumns[]): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n groupBy(\n ...columns: string[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.groupBy(...(columns as string[]));\n return this;\n }\n\n having(condition: string): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n having<\n TColumn extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(\n condition: TColumn,\n operator: ComparisonOperator,\n value: any\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n having(\n ...conditions: string[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.having(...(conditions as [string, string, string]));\n return this;\n }\n // 실행 메서드들 - thenable 구현\n then<TResult1, TResult2 = never>(\n onfulfilled?:\n | ((\n value: Expand<TResult>[]\n ) => Expand<TResult1> | PromiseLike<Expand<TResult1>>)\n | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<Expand<TResult1> | TResult2> {\n return this.knexQuery.then(onfulfilled as any, onrejected);\n }\n\n catch<TResult2 = never>(\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<Expand<TResult> | TResult2> {\n return this.knexQuery.catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | null): Promise<Expand<TResult>> {\n return this.knexQuery.finally(onfinally);\n }\n\n // 안전한 실행 메서드들\n async first(): Promise<Expand<TResult> | undefined> {\n return this.knexQuery.first() as Promise<Expand<TResult> | undefined>;\n }\n\n async firstOrFail(): Promise<TResult> {\n const result = await this.knexQuery.first();\n if (!result) {\n throw new Error(\"No results found\");\n }\n return result as TResult;\n }\n\n async at(index: number): Promise<Expand<TResult> | undefined> {\n const results = await this;\n return results[index] as Expand<TResult> | undefined;\n }\n\n async assertAt(index: number): Promise<Expand<TResult>> {\n const results = await this;\n const result = results[index];\n if (result === undefined) {\n throw new Error(`No result found at index ${index}`);\n }\n return result;\n }\n\n // Insert/Update/Delete\n // TODO(Haze, 251030): InsertData<T>에서 nullable type을 제대로 처리하지 못하는 것 같음.\n async insert(\n data: TTable extends keyof TSchema ? InsertData<TSchema[TTable]> : unknown\n ): Promise<number[]> {\n return this.knexQuery.insert(data);\n }\n\n async update(\n data: Partial<TTable extends keyof TSchema ? TSchema[TTable] : unknown>\n ): Promise<number> {\n return this.knexQuery.update(data);\n }\n\n async delete(): Promise<number> {\n return this.knexQuery.delete();\n }\n\n toQuery(): string {\n return this.knexQuery.toQuery();\n }\n\n debug(): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n console.log(\n `${chalk.cyan(\"[Puri Debug]\")} ${chalk.yellow(this.formatSQL(this.toQuery()))}`\n );\n return this;\n }\n\n formatSQL(unformatted: string): string {\n // SQL 예약어 목록\n const keywords = [\n \"SELECT\",\n \"FROM\",\n \"WHERE\",\n \"INSERT\",\n \"INTO\",\n \"VALUES\",\n \"UPDATE\",\n \"DELETE\",\n \"CREATE\",\n \"TABLE\",\n \"ALTER\",\n \"DROP\",\n \"JOIN\",\n \"ON\",\n \"INNER\",\n \"LEFT\",\n \"RIGHT\",\n \"FULL\",\n \"OUTER\",\n \"GROUP\",\n \"BY\",\n \"ORDER\",\n \"HAVING\",\n \"DISTINCT\",\n \"LIMIT\",\n \"OFFSET\",\n \"AS\",\n \"AND\",\n \"OR\",\n \"NOT\",\n \"IN\",\n \"LIKE\",\n \"IS\",\n \"NULL\",\n \"CASE\",\n \"WHEN\",\n \"THEN\",\n \"ELSE\",\n \"END\",\n \"UNION\",\n \"ALL\",\n \"EXISTS\",\n \"BETWEEN\",\n ];\n\n let formatted = unformatted;\n\n // 예약어를 대문자로 변환\n keywords.forEach((keyword) => {\n const regex = new RegExp(`\\\\b${keyword}\\\\b`, \"gi\");\n formatted = formatted.replace(regex, keyword.toUpperCase());\n });\n\n // 주요 절 앞에 줄바꿈 추가\n const majorClauses = [\n \"SELECT\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"ORDER BY\",\n \"HAVING\",\n \"LIMIT\",\n \"UNION\",\n ];\n majorClauses.forEach((clause) => {\n const regex = new RegExp(`\\\\s+(${clause})\\\\s+`, \"gi\");\n formatted = formatted.replace(regex, `\\n${clause.toUpperCase()} `);\n });\n\n // JOIN 절 처리\n formatted = formatted.replace(\n /\\s+((?:INNER|LEFT|RIGHT|FULL OUTER)\\s+)?JOIN\\s+/gi,\n \"\\n$1JOIN \"\n );\n\n // AND, OR 조건 처리\n formatted = formatted.replace(/\\s+(AND|OR)\\s+/gi, \"\\n $1 \");\n\n // 괄호 처리 및 들여쓰기\n const lines = formatted.split(\"\\n\");\n const indentedLines = [];\n let indentLevel = 0;\n\n for (let line of lines) {\n const trimmedLine = line.trim();\n if (!trimmedLine) continue;\n\n // 닫는 괄호가 있으면 들여쓰기 레벨 감소\n const closingParens = (trimmedLine.match(/\\)/g) || []).length;\n const openingParens = (trimmedLine.match(/\\(/g) || []).length;\n\n if (closingParens > 0 && openingParens === 0) {\n indentLevel = Math.max(0, indentLevel - closingParens);\n }\n\n // 현재 들여쓰기 적용\n const indent = \" \".repeat(indentLevel);\n indentedLines.push(indent + trimmedLine);\n\n // 여는 괄호가 있으면 들여쓰기 레벨 증가\n if (openingParens > closingParens) {\n indentLevel += openingParens - closingParens;\n }\n }\n\n return indentedLines.join(\"\\n\").trim();\n }\n\n raw(): Knex.QueryBuilder {\n return this.knexQuery;\n }\n\n increment<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: number\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (value <= 0) {\n throw new Error(\"Increment value must be greater than 0\");\n }\n this.knexQuery.increment(column, value);\n return this;\n }\n\n decrement<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: number\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (value <= 0) {\n throw new Error(\"Decrement value must be greater than 0\");\n }\n this.knexQuery.decrement(column, value);\n return this;\n }\n}\n\n// 11. Database 클래스\nclass WhereGroup<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = any,\n TJoined = EmptyRecord,\n> {\n constructor(private builder: Knex.QueryBuilder) {}\n\n where(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where(raw: string): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where(...args: any[]): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.where(args[0], ...args.slice(1));\n return this;\n }\n\n orWhere(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere(raw: string): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere(...args: any[]): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhere(args[0], ...args.slice(1));\n return this;\n }\n\n whereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n whereIn(\n column: string,\n values: any[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.whereIn(column, values);\n return this;\n }\n\n orWhereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhereIn(\n column: string,\n values: any[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhereIn(column, values);\n return this;\n }\n\n // 중첩 그룹 지원\n whereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.where((subBuilder) => {\n const subGroup = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n subBuilder\n );\n callback(subGroup);\n });\n return this;\n }\n\n orWhereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhere((subBuilder) => {\n const subGroup = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n subBuilder\n );\n callback(subGroup);\n });\n return this;\n }\n}\n\nexport class JoinClauseGroup<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = any,\n TJoined = EmptyRecord,\n> {\n constructor(private callback: Knex.JoinClause) {}\n\n on(\n callback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n on(\n column: string,\n value: any\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n on(...args: any[]): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined> {\n this.callback.on(...(args as [string, string]));\n return this;\n }\n\n orOn(\n callback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n orOn(\n column: string,\n value: any\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n orOn(...args: any[]): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined> {\n this.callback.orOn(...(args as [string, string]));\n return this;\n }\n}\n"],"names":["JoinClauseGroup","Puri","knex","tableNameOrSubquery","alias","knexQuery","from","raw","as","select","selectObj","selectClauses","Object","entries","columnOrFunction","_type","push","_sql","columnPath","selectAll","where","columnOrConditions","operatorOrValue","value","arguments","length","whereNull","whereNotNull","whereIn","column","values","whereNotIn","whereMatch","whereRaw","String","whereGroup","callback","builder","group","WhereGroup","orWhereGroup","orWhere","join","tableOrSubquery","args","left","right","joinCallback","joinClause","Error","leftJoin","orderBy","direction","limit","count","offset","groupBy","columns","having","conditions","then","onfulfilled","onrejected","catch","finally","onfinally","first","firstOrFail","result","at","index","results","assertAt","undefined","insert","data","update","delete","toQuery","debug","console","log","chalk","cyan","yellow","formatSQL","unformatted","keywords","formatted","forEach","keyword","regex","RegExp","replace","toUpperCase","majorClauses","clause","lines","split","indentedLines","indentLevel","line","trimmedLine","trim","closingParens","match","openingParens","Math","max","indent","repeat","increment","decrement","_return","sum","avg","min","concat","upper","lower","rawString","sql","rawNumber","rawBoolean","rawDate","slice","orWhereIn","subBuilder","subGroup","on","orOn"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/database/puri.ts"],"sourcesContent":["import type { Knex } from \"knex\";\nimport type {\n AvailableColumns,\n ComparisonOperator,\n EmptyRecord,\n Expand,\n ExtractColumnType,\n FulltextColumns,\n InsertData,\n MergeJoined,\n ParseSelectObject,\n ResultAvailableColumns,\n SelectObject,\n SqlFunction,\n WhereCondition,\n} from \"./puri.types\";\nimport chalk from \"chalk\";\n\n// 메인 Puri 클래스\nexport class Puri<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = TTable extends keyof TSchema ? TSchema[TTable] : unknown,\n TResult = TTable extends keyof TSchema ? TSchema[TTable] : unknown,\n TJoined = EmptyRecord,\n> {\n private knexQuery: Knex.QueryBuilder;\n\n // 생성자 시그니처들\n constructor(\n knex: Knex,\n tableName: TTable extends keyof TSchema ? TTable : unknown\n );\n constructor(\n knex: Knex,\n subquery: Puri<TSchema, any, any, TOriginal, any>,\n alias: TTable extends string ? TTable : never\n );\n constructor(\n private knex: Knex,\n tableNameOrSubquery: any,\n alias?: TTable extends string ? TTable : never\n ) {\n if (typeof tableNameOrSubquery === \"string\") {\n // 일반 테이블로 시작\n this.knexQuery = knex(tableNameOrSubquery).from(tableNameOrSubquery);\n } else {\n // 서브쿼리로 시작\n this.knexQuery = knex.from(tableNameOrSubquery.raw().as(alias));\n }\n }\n\n // Static SQL helper functions\n static count(column: string = \"*\"): SqlFunction<\"number\"> {\n return {\n _type: \"sql_function\",\n _return: \"number\",\n _sql: `COUNT(${column})`,\n };\n }\n\n static sum(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `SUM(${column})` };\n }\n\n static avg(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `AVG(${column})` };\n }\n\n static max(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `MAX(${column})` };\n }\n\n static min(column: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: `MIN(${column})` };\n }\n\n static concat(...args: string[]): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `CONCAT(${args.join(\", \")})`,\n };\n }\n\n static upper(column: string): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `UPPER(${column})`,\n };\n }\n\n static lower(column: string): SqlFunction<\"string\"> {\n return {\n _type: \"sql_function\",\n _return: \"string\",\n _sql: `LOWER(${column})`,\n };\n }\n\n // Raw functions\n static rawString(sql: string): SqlFunction<\"string\"> {\n return { _type: \"sql_function\", _return: \"string\", _sql: sql };\n }\n\n static rawNumber(sql: string): SqlFunction<\"number\"> {\n return { _type: \"sql_function\", _return: \"number\", _sql: sql };\n }\n\n static rawBoolean(sql: string): SqlFunction<\"boolean\"> {\n return { _type: \"sql_function\", _return: \"boolean\", _sql: sql };\n }\n\n static rawDate(sql: string): SqlFunction<\"date\"> {\n return { _type: \"sql_function\", _return: \"date\", _sql: sql };\n }\n\n // Alias 기반 Select\n select<TSelect extends SelectObject<TSchema, TTable, TOriginal, TJoined>>(\n selectObj: TSelect\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n ParseSelectObject<TSchema, TTable, TSelect, TOriginal, TJoined>,\n TJoined\n > {\n const selectClauses: (string | Knex.Raw)[] = [];\n\n for (const [alias, columnOrFunction] of Object.entries(selectObj)) {\n if (\n typeof columnOrFunction === \"object\" &&\n columnOrFunction._type === \"sql_function\"\n ) {\n // SQL 함수인 경우\n selectClauses.push(\n this.knex.raw(`${columnOrFunction._sql} as ${alias}`)\n );\n } else {\n // 일반 컬럼인 경우\n const columnPath = columnOrFunction as string;\n if (alias === columnPath) {\n // alias와 컬럼명이 같으면 alias 생략\n selectClauses.push(columnPath);\n } else {\n // alias 지정\n selectClauses.push(`${columnPath} as ${alias}`);\n }\n }\n }\n\n this.knexQuery.select(selectClauses);\n return this as any;\n }\n\n // 전체 선택 (편의 메서드)\n selectAll(): Puri<\n TSchema,\n TTable,\n TOriginal,\n TTable extends keyof TSchema\n ? TSchema[TTable] & TJoined\n : TResult & TJoined,\n TJoined\n > {\n this.knexQuery.select(\"*\");\n return this as any;\n }\n\n // Where 조건 (조인된 테이블 컬럼도 지원)\n where(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n where(\n columnOrConditions: any,\n operatorOrValue?: any,\n value?: any\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (typeof columnOrConditions === \"object\") {\n this.knexQuery.where(columnOrConditions);\n } else if (arguments.length === 2) {\n if (operatorOrValue === null) {\n this.knexQuery.whereNull(columnOrConditions);\n return this;\n }\n this.knexQuery.where(columnOrConditions, operatorOrValue);\n } else if (arguments.length === 3) {\n if (value === null) {\n if (operatorOrValue === \"!=\") {\n this.knexQuery.whereNotNull(columnOrConditions);\n return this;\n } else if (operatorOrValue === \"=\") {\n this.knexQuery.whereNull(columnOrConditions);\n return this;\n }\n }\n this.knexQuery.where(columnOrConditions, operatorOrValue, value);\n } else {\n this.knexQuery.where(columnOrConditions);\n }\n return this;\n }\n\n // WhereIn (조인된 테이블 컬럼도 지원)\n whereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n whereIn(\n column: string,\n values: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereIn(column, values);\n return this;\n }\n\n whereNotIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n whereNotIn(\n column: string,\n values: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereNotIn(column, values);\n return this;\n }\n\n whereMatch<\n TColumn extends FulltextColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.whereRaw(`MATCH (${String(column)}) AGAINST (?)`, [value]);\n return this;\n }\n\n // WhereGroup (괄호 그룹핑 지원)\n whereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.where((builder) => {\n const group = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n builder\n );\n callback(group);\n });\n return this;\n }\n\n orWhereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.orWhere((builder) => {\n const group = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n builder\n );\n callback(group);\n });\n return this;\n }\n\n // Join\n join<\n TJoinTable extends keyof TSchema,\n TLColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n TRColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n >(\n table: TJoinTable,\n left: TLColumn,\n right: TRColumn\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n MergeJoined<TJoined, Record<TJoinTable, TSchema[TJoinTable]>>\n >;\n join<TJoinTable extends keyof TSchema>(\n table: TJoinTable,\n joinCallback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n MergeJoined<TJoined, Record<TJoinTable, TSchema[TJoinTable]>>\n >;\n join<TSubResult, TAlias extends string>(\n subquery: Puri<TSchema, any, any, TSubResult, any>,\n alias: TAlias,\n left: string,\n right: string\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TAlias, TSubResult>\n >;\n join(\n table: string,\n left: string,\n right: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n join(\n tableOrSubquery: string | keyof TSchema | Puri<TSchema, any, any, any, any>,\n ...args: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, any> {\n if (tableOrSubquery instanceof Puri) {\n // 서브쿼리 조인: join(subquery, alias, left, right)\n const [alias, left, right] = args;\n this.knexQuery.join(tableOrSubquery.raw().as(alias), left, right);\n } else if (\n args.length === 2 &&\n typeof args[0] === \"string\" &&\n typeof args[1] === \"string\"\n ) {\n const [left, right] = args;\n this.knexQuery.join(tableOrSubquery as string, left, right);\n } else if (args.length === 1 && typeof args[0] === \"function\") {\n const joinCallback = args[0];\n this.knexQuery.join(tableOrSubquery as string, (joinClause) => {\n joinCallback(new JoinClauseGroup(joinClause));\n });\n } else {\n throw new Error(\"Invalid arguments\");\n }\n return this as any;\n }\n\n leftJoin<\n TJoinTable extends keyof TSchema,\n TLColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n TRColumn extends AvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TJoined & Record<TJoinTable, TSchema[TJoinTable]>\n >,\n >(\n table: TJoinTable,\n left: TLColumn,\n right: TRColumn\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TJoinTable, Partial<TSchema[TJoinTable]>>\n >;\n leftJoin<TSubResult, TAlias extends string>(\n subquery: Puri<TSchema, any, any, TSubResult, any>,\n alias: TAlias,\n left: string,\n right: string\n ): Puri<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined & Record<TAlias, Partial<TSubResult>>\n >;\n leftJoin(\n table: string,\n left: string,\n right: string\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n leftJoin(\n tableOrSubquery: string | keyof TSchema | Puri<TSchema, any, any, any, any>,\n ...args: any[]\n ): Puri<TSchema, TTable, TOriginal, TResult, any> {\n if (tableOrSubquery instanceof Puri) {\n // 서브쿼리 조인: leftJoin(subquery, alias, left, right)\n const [alias, left, right] = args;\n this.knexQuery.leftJoin(tableOrSubquery.raw().as(alias), left, right);\n } else {\n const [left, right] = args;\n this.knexQuery.leftJoin(tableOrSubquery as string, left, right);\n }\n return this as any;\n }\n\n // OrderBy\n orderBy<\n TColumn extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(\n column: TColumn,\n direction: \"asc\" | \"desc\"\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n orderBy(\n column: string,\n direction: \"asc\" | \"desc\" = \"asc\"\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.orderBy(column, direction);\n return this;\n }\n\n // 기본 쿼리 메서드들\n limit(count: number): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.limit(count);\n return this;\n }\n\n offset(count: number): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.offset(count);\n return this;\n }\n\n // Group by (조인된 테이블 컬럼도 지원)\n groupBy<\n TColumns extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(...columns: TColumns[]): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n groupBy(\n ...columns: string[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.groupBy(...(columns as string[]));\n return this;\n }\n\n having(condition: string): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n having<\n TColumn extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(\n condition: TColumn,\n operator: ComparisonOperator,\n value: any\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined>;\n having(\n ...conditions: string[]\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n this.knexQuery.having(...(conditions as [string, string, string]));\n return this;\n }\n // 실행 메서드들 - thenable 구현\n then<TResult1, TResult2 = never>(\n onfulfilled?:\n | ((\n value: Expand<TResult>[]\n ) => Expand<TResult1> | PromiseLike<Expand<TResult1>>)\n | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<Expand<TResult1> | TResult2> {\n return this.knexQuery.then(onfulfilled as any, onrejected);\n }\n\n catch<TResult2 = never>(\n onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null\n ): Promise<Expand<TResult> | TResult2> {\n return this.knexQuery.catch(onrejected);\n }\n\n finally(onfinally?: (() => void) | null): Promise<Expand<TResult>> {\n return this.knexQuery.finally(onfinally);\n }\n\n // 안전한 실행 메서드들\n async first(): Promise<Expand<TResult> | undefined> {\n return this.knexQuery.first() as Promise<Expand<TResult> | undefined>;\n }\n\n async firstOrFail(): Promise<TResult> {\n const result = await this.knexQuery.first();\n if (!result) {\n throw new Error(\"No results found\");\n }\n return result as TResult;\n }\n\n async at(index: number): Promise<Expand<TResult> | undefined> {\n const results = await this;\n return results[index] as Expand<TResult> | undefined;\n }\n\n async assertAt(index: number): Promise<Expand<TResult>> {\n const results = await this;\n const result = results[index];\n if (result === undefined) {\n throw new Error(`No result found at index ${index}`);\n }\n return result;\n }\n\n // Pluck\n async pluck<\n TColumn extends ResultAvailableColumns<\n TSchema,\n TTable,\n TOriginal,\n TResult,\n TJoined\n >,\n >(\n column: TColumn\n ): Promise<\n ExtractColumnType<TSchema, TTable, TColumn & string, TOriginal, TJoined>[]\n > {\n return this.knexQuery.pluck(column) as Promise<\n ExtractColumnType<TSchema, TTable, TColumn & string, TOriginal, TJoined>[]\n >;\n }\n\n // Insert/Update/Delete\n // TODO(Haze, 251030): InsertData<T>에서 nullable type을 제대로 처리하지 못하는 것 같음.\n async insert(\n data: TTable extends keyof TSchema ? InsertData<TSchema[TTable]> : unknown\n ): Promise<number[]> {\n return this.knexQuery.insert(data);\n }\n\n async update(\n data: Partial<TTable extends keyof TSchema ? TSchema[TTable] : unknown>\n ): Promise<number> {\n return this.knexQuery.update(data);\n }\n\n async delete(): Promise<number> {\n return this.knexQuery.delete();\n }\n\n toQuery(): string {\n return this.knexQuery.toQuery();\n }\n\n debug(): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n console.log(\n `${chalk.cyan(\"[Puri Debug]\")} ${chalk.yellow(this.formatSQL(this.toQuery()))}`\n );\n return this;\n }\n\n formatSQL(unformatted: string): string {\n // SQL 예약어 목록\n const keywords = [\n \"SELECT\",\n \"FROM\",\n \"WHERE\",\n \"INSERT\",\n \"INTO\",\n \"VALUES\",\n \"UPDATE\",\n \"DELETE\",\n \"CREATE\",\n \"TABLE\",\n \"ALTER\",\n \"DROP\",\n \"JOIN\",\n \"ON\",\n \"INNER\",\n \"LEFT\",\n \"RIGHT\",\n \"FULL\",\n \"OUTER\",\n \"GROUP\",\n \"BY\",\n \"ORDER\",\n \"HAVING\",\n \"DISTINCT\",\n \"LIMIT\",\n \"OFFSET\",\n \"AS\",\n \"AND\",\n \"OR\",\n \"NOT\",\n \"IN\",\n \"LIKE\",\n \"IS\",\n \"NULL\",\n \"CASE\",\n \"WHEN\",\n \"THEN\",\n \"ELSE\",\n \"END\",\n \"UNION\",\n \"ALL\",\n \"EXISTS\",\n \"BETWEEN\",\n ];\n\n let formatted = unformatted;\n\n // 예약어를 대문자로 변환\n keywords.forEach((keyword) => {\n const regex = new RegExp(`\\\\b${keyword}\\\\b`, \"gi\");\n formatted = formatted.replace(regex, keyword.toUpperCase());\n });\n\n // 주요 절 앞에 줄바꿈 추가\n const majorClauses = [\n \"SELECT\",\n \"FROM\",\n \"WHERE\",\n \"GROUP BY\",\n \"ORDER BY\",\n \"HAVING\",\n \"LIMIT\",\n \"UNION\",\n ];\n majorClauses.forEach((clause) => {\n const regex = new RegExp(`\\\\s+(${clause})\\\\s+`, \"gi\");\n formatted = formatted.replace(regex, `\\n${clause.toUpperCase()} `);\n });\n\n // JOIN 절 처리\n formatted = formatted.replace(\n /\\s+((?:INNER|LEFT|RIGHT|FULL OUTER)\\s+)?JOIN\\s+/gi,\n \"\\n$1JOIN \"\n );\n\n // AND, OR 조건 처리\n formatted = formatted.replace(/\\s+(AND|OR)\\s+/gi, \"\\n $1 \");\n\n // 괄호 처리 및 들여쓰기\n const lines = formatted.split(\"\\n\");\n const indentedLines = [];\n let indentLevel = 0;\n\n for (let line of lines) {\n const trimmedLine = line.trim();\n if (!trimmedLine) continue;\n\n // 닫는 괄호가 있으면 들여쓰기 레벨 감소\n const closingParens = (trimmedLine.match(/\\)/g) || []).length;\n const openingParens = (trimmedLine.match(/\\(/g) || []).length;\n\n if (closingParens > 0 && openingParens === 0) {\n indentLevel = Math.max(0, indentLevel - closingParens);\n }\n\n // 현재 들여쓰기 적용\n const indent = \" \".repeat(indentLevel);\n indentedLines.push(indent + trimmedLine);\n\n // 여는 괄호가 있으면 들여쓰기 레벨 증가\n if (openingParens > closingParens) {\n indentLevel += openingParens - closingParens;\n }\n }\n\n return indentedLines.join(\"\\n\").trim();\n }\n\n raw(): Knex.QueryBuilder {\n return this.knexQuery;\n }\n\n increment<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: number\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (value <= 0) {\n throw new Error(\"Increment value must be greater than 0\");\n }\n this.knexQuery.increment(column, value);\n return this;\n }\n\n decrement<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: number\n ): Puri<TSchema, TTable, TOriginal, TResult, TJoined> {\n if (value <= 0) {\n throw new Error(\"Decrement value must be greater than 0\");\n }\n this.knexQuery.decrement(column, value);\n return this;\n }\n}\n\n// 11. Database 클래스\nclass WhereGroup<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = any,\n TJoined = EmptyRecord,\n> {\n constructor(private builder: Knex.QueryBuilder) {}\n\n where(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where<TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>>(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where(raw: string): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n where(...args: any[]): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.where(args[0], ...args.slice(1));\n return this;\n }\n\n orWhere(\n conditions: WhereCondition<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n operator: ComparisonOperator | \"like\",\n value: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere(raw: string): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhere(...args: any[]): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhere(args[0], ...args.slice(1));\n return this;\n }\n\n whereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n whereIn(\n column: string,\n values: any[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.whereIn(column, values);\n return this;\n }\n\n orWhereIn<\n TColumn extends AvailableColumns<TSchema, TTable, TOriginal, TJoined>,\n >(\n column: TColumn,\n values: ExtractColumnType<\n TSchema,\n TTable,\n TColumn & string,\n TOriginal,\n TJoined\n >[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined>;\n orWhereIn(\n column: string,\n values: any[]\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhereIn(column, values);\n return this;\n }\n\n // 중첩 그룹 지원\n whereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.where((subBuilder) => {\n const subGroup = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n subBuilder\n );\n callback(subGroup);\n });\n return this;\n }\n\n orWhereGroup(\n callback: (\n group: WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ) => WhereGroup<TSchema, TTable, TOriginal, TJoined>\n ): WhereGroup<TSchema, TTable, TOriginal, TJoined> {\n this.builder.orWhere((subBuilder) => {\n const subGroup = new WhereGroup<TSchema, TTable, TOriginal, TJoined>(\n subBuilder\n );\n callback(subGroup);\n });\n return this;\n }\n}\n\nexport class JoinClauseGroup<\n TSchema,\n TTable extends keyof TSchema | string,\n TOriginal = any,\n TJoined = EmptyRecord,\n> {\n constructor(private callback: Knex.JoinClause) {}\n\n on(\n callback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n on(\n column: string,\n value: any\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n on(...args: any[]): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined> {\n this.callback.on(...(args as [string, string]));\n return this;\n }\n\n orOn(\n callback: (\n joinClause: JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>\n ) => void\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n orOn(\n column: string,\n value: any\n ): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined>;\n orOn(...args: any[]): JoinClauseGroup<TSchema, TTable, TOriginal, TJoined> {\n this.callback.orOn(...(args as [string, string]));\n return this;\n }\n}\n"],"names":["JoinClauseGroup","Puri","knex","tableNameOrSubquery","alias","knexQuery","from","raw","as","select","selectObj","selectClauses","Object","entries","columnOrFunction","_type","push","_sql","columnPath","selectAll","where","columnOrConditions","operatorOrValue","value","arguments","length","whereNull","whereNotNull","whereIn","column","values","whereNotIn","whereMatch","whereRaw","String","whereGroup","callback","builder","group","WhereGroup","orWhereGroup","orWhere","join","tableOrSubquery","args","left","right","joinCallback","joinClause","Error","leftJoin","orderBy","direction","limit","count","offset","groupBy","columns","having","conditions","then","onfulfilled","onrejected","catch","finally","onfinally","first","firstOrFail","result","at","index","results","assertAt","undefined","pluck","insert","data","update","delete","toQuery","debug","console","log","chalk","cyan","yellow","formatSQL","unformatted","keywords","formatted","forEach","keyword","regex","RegExp","replace","toUpperCase","majorClauses","clause","lines","split","indentedLines","indentLevel","line","trimmedLine","trim","closingParens","match","openingParens","Math","max","indent","repeat","increment","decrement","_return","sum","avg","min","concat","upper","lower","rawString","sql","rawNumber","rawBoolean","rawDate","slice","orWhereIn","subBuilder","subGroup","on","orOn"],"mappings":"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"}
@@ -13,7 +13,7 @@ type NullableToOptional<T> = {
13
13
  [K in keyof T as T[K] extends null | undefined ? never : K]: T[K];
14
14
  }>;
15
15
  export type EmptyRecord = Record<string, never>;
16
- export type ResultAvailableColumns<TSchema, T extends keyof TSchema | string, TOriginal = any, TResult = any, TJoined = EmptyRecord> = AvailableColumns<TSchema, T, TOriginal, TJoined> | `${keyof TResult & string}`;
16
+ export type ResultAvailableColumns<TSchema, T extends keyof TSchema | string, TOriginal = any, TResult = any, TJoined = EmptyRecord> = Exclude<AvailableColumns<TSchema, T, TOriginal, TJoined> | `${keyof TResult & string}`, "__fulltext__" | `${T & string}.__fulltext__`>;
17
17
  export type AvailableColumns<TSchema, T extends keyof TSchema | string, TOriginal = any, TJoined = EmptyRecord> = T extends keyof TSchema ? (Extends<TJoined, Record<string, any>> extends false ? keyof TSchema[T] : {
18
18
  [K in keyof TJoined]: TJoined[K] extends Record<string, any> ? `${string & K}.${keyof TJoined[K] & string}` : never;
19
19
  }[keyof TJoined]) | `${T & string}.${keyof TSchema[T] & string}` : keyof TOriginal | `${T & string}.${keyof TOriginal & string}` | (Extends<TJoined, Record<string, any>> extends true ? {
@@ -1 +1 @@
1
- {"version":3,"file":"puri.types.d.ts","sourceRoot":"","sources":["../../src/database/puri.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puri.types.d.ts","sourceRoot":"","sources":["../../src/database/puri.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonamu",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "Sonamu — TypeScript Fullstack API Framework",
5
5
  "keywords": [
6
6
  "typescript",
@@ -80,7 +80,7 @@
80
80
  "typescript": "^5.2.2"
81
81
  },
82
82
  "peerDependencies": {
83
- "@sonamu-kit/react-sui": "^0.1.14",
83
+ "@sonamu-kit/react-sui": "^0.1.17",
84
84
  "fastify": "^4.23.2",
85
85
  "knex": "^3.1.0",
86
86
  "mysql2": "^3.6.1",
@@ -1,10 +1,14 @@
1
+ /**
2
+ * 빌드 결과물이 담길 디렉토리 경로
3
+ */
4
+ export const BUILD_DIR = "dist";
5
+
1
6
  /**
2
7
  * SWC 빌드 명령어
3
8
  */
4
- export const SWC_BUILD_COMMAND =
5
- "swc src -d dist --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5";
9
+ export const SWC_BUILD_COMMAND = `swc src -d ${BUILD_DIR} --strip-leading-paths --source-maps -C module.type=commonjs -C jsc.parser.syntax=typescript -C jsc.parser.decorators=true -C jsc.target=es5`;
6
10
 
7
11
  /**
8
12
  * TSC 타입 체크 명령어
9
13
  */
10
- export const TSC_TYPE_CHECK_COMMAND = "tsc --noEmit";
14
+ export const TSC_TYPE_CHECK_COMMAND = `tsc --noEmit`;
@@ -2,36 +2,55 @@
2
2
 
3
3
  import { spawnSync, execSync } from "child_process";
4
4
  import { resolve } from "path";
5
- import { existsSync } from "fs";
5
+ import { existsSync, rmSync } from "fs";
6
6
  import chalk from "chalk";
7
- import { SWC_BUILD_COMMAND, TSC_TYPE_CHECK_COMMAND } from "./build-config";
7
+ import {
8
+ BUILD_DIR,
9
+ SWC_BUILD_COMMAND,
10
+ TSC_TYPE_CHECK_COMMAND,
11
+ } from "./build-config";
8
12
 
9
13
  const scriptPath = resolve(__dirname, "cli.js");
10
14
  const args = process.argv.slice(2);
11
15
 
12
16
  // build 명령어는 dist 없이도 실행 가능하도록 cli.ts 외부에서 처리(Sonamu.init에서 dist 필요)
13
- function build(checkTypes: boolean = false) {
17
+ function build() {
14
18
  try {
19
+ console.log(chalk.blue("Removing build directory..."));
20
+ if (existsSync(BUILD_DIR)) {
21
+ rmSync(BUILD_DIR, { recursive: true, force: true });
22
+ }
23
+ } catch (error) {
24
+ console.error(chalk.red("Remove build directory failed."), error);
25
+ process.exit(1);
26
+ }
27
+
28
+ try {
29
+ console.log(chalk.blue("Building with swc..."));
15
30
  execSync(SWC_BUILD_COMMAND, { cwd: process.cwd(), stdio: "inherit" });
16
31
  } catch (error) {
17
32
  console.error(chalk.red("Build failed."), error);
18
33
  process.exit(1);
19
34
  }
35
+ }
20
36
 
21
- if (checkTypes) {
22
- try {
23
- console.log(chalk.blue("Checking types with tsc..."));
24
- execSync(TSC_TYPE_CHECK_COMMAND, { cwd: process.cwd(), stdio: "inherit" });
25
- } catch (error) {
26
- console.error(chalk.red("Type check failed."), error);
27
- process.exit(1);
28
- }
37
+ function checkTypes() {
38
+ try {
39
+ console.log(chalk.blue("Checking types with tsc..."));
40
+ execSync(TSC_TYPE_CHECK_COMMAND, {
41
+ cwd: process.cwd(),
42
+ stdio: "inherit",
43
+ });
44
+ } catch (error) {
45
+ console.error(chalk.red("Type check failed."), error);
46
+ process.exit(1);
29
47
  }
30
48
  }
31
49
 
32
50
  if (args[0] === "build") {
33
51
  console.log(chalk.blue("Building the project..."));
34
- build(true);
52
+ build();
53
+ checkTypes();
35
54
  console.log(chalk.green("Build completed successfully."));
36
55
  process.exit(0);
37
56
  }