sonamu 0.5.4 → 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.
- package/dist/api/code-converters.d.ts +8 -5
- package/dist/api/code-converters.d.ts.map +1 -1
- package/dist/api/code-converters.js +1 -1
- package/dist/api/code-converters.js.map +1 -1
- package/dist/api/context.d.ts +9 -2
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/sonamu.d.ts +1 -0
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +1 -1
- package/dist/api/sonamu.js.map +1 -1
- package/dist/bin/build-config.d.ts +4 -0
- package/dist/bin/build-config.d.ts.map +1 -1
- package/dist/bin/build-config.js +1 -1
- package/dist/bin/build-config.js.map +1 -1
- package/dist/bin/cli-wrapper.js +1 -1
- package/dist/bin/cli-wrapper.js.map +1 -1
- package/dist/database/puri.d.ts +1 -0
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +1 -1
- package/dist/database/puri.js.map +1 -1
- package/dist/database/puri.types.d.ts +1 -1
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/types/types.d.ts +11 -2
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js.map +1 -1
- package/package.json +5 -2
- package/src/api/code-converters.ts +41 -31
- package/src/api/context.ts +11 -2
- package/src/api/sonamu.ts +43 -2
- package/src/bin/build-config.ts +7 -3
- package/src/bin/cli-wrapper.ts +31 -12
- package/src/database/puri.ts +19 -0
- package/src/database/puri.types.ts +4 -2
- package/src/types/types.ts +18 -2
- package/dist/entity/migrator.d.ts +0 -135
- package/dist/entity/migrator.d.ts.map +0 -1
- package/dist/entity/migrator.js +0 -2
- package/dist/entity/migrator.js.map +0 -1
|
@@ -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":"AAAA,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7E,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,GACnC;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,EAAE,GAChC,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACxB,CAAC,CAAC;AAGR,MAAM,MAAM,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS,SAAS,WAAW,GACpE,IAAI,GACJ,SAAS,GAAG,IAAI,CAAC;AAErB,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACb,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AACV,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,IACf,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,IAAI,GAC5C,KAAK,GACL,CAAC,SAAS,CAAC,GACT,IAAI,GACJ,KAAK,CAAC;AACd,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CACnE,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,GAAG,SAAS,CACjB;CACF,GAAG,OAAO,CAAC;KACT,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC,CAAC;AAGH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAGhD,MAAM,MAAM,sBAAsB,CAChC,OAAO,EACP,CAAC,SAAS,MAAM,OAAO,GAAG,MAAM,EAChC,SAAS,GAAG,GAAG,EACf,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"puri.types.d.ts","sourceRoot":"","sources":["../../src/database/puri.types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -4,10 +4,13 @@ import type { FastifyFormbodyOptions } from "@fastify/formbody";
|
|
|
4
4
|
import type { FastifyInstance, FastifyReply, FastifyRequest, FastifyServerOptions } from "fastify";
|
|
5
5
|
import type { QsPluginOptions } from "fastify-qs";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import type {
|
|
7
|
+
import type { ApiDecoratorOptions, AuthContext, Context } from "../api";
|
|
8
8
|
import type { FastifyMultipartOptions } from "@fastify/multipart";
|
|
9
9
|
import type { Driver } from "../file-storage/driver";
|
|
10
10
|
import type { SsePluginOptions } from "fastify-sse-v2/lib/types";
|
|
11
|
+
import type { FastifyStaticOptions } from "@fastify/static";
|
|
12
|
+
import { SecureSessionPluginOptions } from "@fastify/secure-session";
|
|
13
|
+
import { DeserializeFunction, SerializeFunction } from "@fastify/passport/dist/Authenticator";
|
|
11
14
|
export type EnumsLabel<T extends string, L extends "ko" | "en"> = {
|
|
12
15
|
[key in T]: {
|
|
13
16
|
[lang in L]: string;
|
|
@@ -561,7 +564,7 @@ export type ManyToManyBaseSchema<FromIdKey extends string, ToIdKey extends strin
|
|
|
561
564
|
[K in `${ToIdKey}_id`]: number;
|
|
562
565
|
};
|
|
563
566
|
export type SonamuFastifyConfig = {
|
|
564
|
-
contextProvider: (defaultContext: Pick<Context, "request" | "reply" | "headers" | "createSSE"
|
|
567
|
+
contextProvider: (defaultContext: Pick<Context, "request" | "reply" | "headers" | "createSSE"> & AuthContext, request: FastifyRequest, reply: FastifyReply) => Context;
|
|
565
568
|
guardHandler: (guard: GuardKey, request: FastifyRequest, api: {
|
|
566
569
|
typeParameters: ApiParamType.TypeParam[];
|
|
567
570
|
parameters: ApiParam[];
|
|
@@ -597,8 +600,14 @@ export type SonamuServerOptions = {
|
|
|
597
600
|
multipart?: boolean | FastifyMultipartOptions;
|
|
598
601
|
qs?: boolean | QsPluginOptions;
|
|
599
602
|
sse?: boolean | SsePluginOptions;
|
|
603
|
+
static?: boolean | FastifyStaticOptions;
|
|
604
|
+
session?: boolean | SecureSessionPluginOptions;
|
|
600
605
|
custom?: (server: FastifyInstance) => void;
|
|
601
606
|
};
|
|
607
|
+
auth?: boolean | {
|
|
608
|
+
userSerializer: SerializeFunction<unknown, unknown>;
|
|
609
|
+
userDeserializer: DeserializeFunction<unknown, unknown>;
|
|
610
|
+
};
|
|
602
611
|
apiConfig: SonamuFastifyConfig;
|
|
603
612
|
storage?: Driver;
|
|
604
613
|
lifecycle?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/types.ts"],"sourcesContent":["import type { GuardKey } from \"./../api/decorators\";\nimport type { FastifyCorsOptions } from \"@fastify/cors\";\nimport type { FastifyFormbodyOptions } from \"@fastify/formbody\";\nimport type {\n FastifyInstance,\n FastifyReply,\n FastifyRequest,\n FastifyServerOptions,\n} from \"fastify\";\nimport type { QsPluginOptions } from \"fastify-qs\";\nimport { z } from \"zod\";\nimport type { Context, ApiDecoratorOptions } from \"../api\";\nimport type { FastifyMultipartOptions } from \"@fastify/multipart\";\nimport type { Driver } from \"../file-storage/driver\";\nimport type { SsePluginOptions } from \"fastify-sse-v2/lib/types\";\n\n/*\n Enums\n*/\nexport type EnumsLabel<T extends string, L extends \"ko\" | \"en\"> = {\n [key in T]: { [lang in L]: string };\n};\nexport type EnumsLabelKo<T extends string> = EnumsLabel<T, \"ko\">;\n\n/*\n Custom Scalars\n*/\nexport const SQLDateTimeString = z\n .string()\n .regex(/([0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})*)$/, {\n message: \"잘못된 SQLDate 타입\",\n })\n .min(10)\n .max(19)\n .describe(\"SQLDateTimeString\");\nexport type SQLDateTimeString = z.infer<typeof SQLDateTimeString>;\n\n/*\n Utility Types\n*/\nexport function zArrayable<T extends z.ZodTypeAny>(\n shape: T\n): z.ZodUnion<[T, z.ZodArray<T>]> {\n return z.union([shape, shape.array()]);\n}\nexport type DistributiveOmit<T, K extends keyof any> = T extends any\n ? Omit<T, K>\n : never;\n\n/*\n Model-Defintion\n*/\nexport type CommonProp = {\n name: string;\n nullable?: boolean;\n toFilter?: true;\n desc?: string;\n dbDefault?: string;\n};\nexport type IntegerProp = CommonProp & {\n type: \"integer\";\n unsigned?: true;\n};\nexport type BigIntegerProp = CommonProp & {\n type: \"bigInteger\";\n unsigned?: true;\n};\nexport type TextProp = CommonProp & {\n type: \"text\";\n textType: \"text\" | \"mediumtext\" | \"longtext\";\n};\nexport type StringProp = CommonProp & {\n type: \"string\";\n length: number;\n};\nexport type EnumProp = CommonProp & {\n type: \"enum\";\n length: number;\n id: string;\n};\nexport type FloatProp = CommonProp & {\n type: \"float\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type DoubleProp = CommonProp & {\n type: \"double\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type DecimalProp = CommonProp & {\n type: \"decimal\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type BooleanProp = CommonProp & {\n type: \"boolean\";\n};\nexport type DateProp = CommonProp & {\n type: \"date\";\n};\nexport type DateTimeProp = CommonProp & {\n type: \"datetime\";\n};\nexport type TimeProp = CommonProp & {\n type: \"time\";\n};\nexport type TimestampProp = CommonProp & {\n type: \"timestamp\";\n};\nexport type JsonProp = CommonProp & {\n type: \"json\";\n id: string;\n};\nexport type UuidProp = CommonProp & {\n type: \"uuid\";\n};\nexport type VirtualProp = CommonProp & {\n type: \"virtual\";\n id: string;\n};\n\nexport type RelationType =\n | \"HasMany\"\n | \"BelongsToOne\"\n | \"ManyToMany\"\n | \"OneToOne\";\nexport type RelationOn =\n | \"CASCADE\"\n | \"SET NULL\"\n | \"NO ACTION\"\n | \"SET DEFAULT\"\n | \"RESTRICT\";\ntype _RelationProp = {\n type: \"relation\";\n name: string;\n with: string;\n nullable?: boolean; // DEFAULT: false\n toFilter?: true; // DEFAULT: false\n desc?: string;\n};\nexport type OneToOneRelationProp = _RelationProp & {\n relationType: \"OneToOne\";\n customJoinClause?: string;\n} & (\n | {\n hasJoinColumn: true;\n useConstraint?: boolean; // DEFAULT: true\n onUpdate?: RelationOn; // DEFAULT: RESTRICT\n onDelete?: RelationOn; // DEFAULT: RESTRICT\n }\n | {\n hasJoinColumn: false;\n }\n );\nexport type BelongsToOneRelationProp = _RelationProp & {\n relationType: \"BelongsToOne\";\n customJoinClause?: string;\n useConstraint?: boolean; // DEFAULT: true\n onUpdate?: RelationOn; // DEFAULT: RESTRICT\n onDelete?: RelationOn; // DEFAULT: RESTRICT\n};\nexport type HasManyRelationProp = _RelationProp & {\n relationType: \"HasMany\";\n joinColumn: string;\n fromColumn?: string;\n};\nexport type ManyToManyRelationProp = _RelationProp & {\n relationType: \"ManyToMany\";\n joinTable: `${string}__${string}`;\n onUpdate: RelationOn;\n onDelete: RelationOn;\n};\nexport type RelationProp =\n | OneToOneRelationProp\n | BelongsToOneRelationProp\n | HasManyRelationProp\n | ManyToManyRelationProp;\n\nexport type EntityProp =\n | IntegerProp\n | BigIntegerProp\n | TextProp\n | StringProp\n | FloatProp\n | DoubleProp\n | DecimalProp\n | BooleanProp\n | DateProp\n | DateTimeProp\n | TimeProp\n | TimestampProp\n | JsonProp\n | UuidProp\n | EnumProp\n | VirtualProp\n | RelationProp;\n\nexport type EntityIndex = {\n type: \"index\" | \"unique\" | \"fulltext\";\n columns: string[];\n name?: string;\n parser?: \"built-in\" | \"ngram\";\n};\nexport type EntityJson = {\n id: string;\n parentId?: string;\n table: string;\n title?: string;\n props: EntityProp[];\n indexes: EntityIndex[];\n subsets: {\n [subset: string]: string[];\n };\n enums: {\n [enumId: string]: {\n [key: string]: string;\n };\n };\n};\nexport type EntitySubsetRow = {\n field: string;\n has: {\n [key: string]: boolean;\n };\n children: EntitySubsetRow[];\n prefixes: string[];\n relationEntity?: string;\n isOpen?: boolean;\n};\nexport type FlattenSubsetRow = Omit<EntitySubsetRow, \"children\">;\n\n// SMD Legacy\nexport type SMDInput<T extends string> = {\n id: string;\n parentId?: string;\n table?: string;\n title?: string;\n props?: EntityProp[];\n indexes?: EntityIndex[];\n subsets?: {\n [subset: string]: T[];\n };\n};\n\n/*\n PropNode\n*/\n\nexport type EntityPropNode =\n | {\n nodeType: \"plain\";\n prop: EntityProp;\n }\n | {\n nodeType: \"object\" | \"array\";\n prop?: EntityProp;\n children: EntityPropNode[];\n };\n\n/*\n Prop Type Guards\n*/\nexport function isIntegerProp(p: any): p is IntegerProp {\n return p?.type === \"integer\";\n}\nexport function isBigIntegerProp(p: any): p is BigIntegerProp {\n return p?.type === \"bigInteger\";\n}\nexport function isTextProp(p: any): p is TextProp {\n return p?.type === \"text\";\n}\nexport function isStringProp(p: any): p is StringProp {\n return p?.type === \"string\";\n}\nexport function isEnumProp(p: any): p is EnumProp {\n return p?.type === \"enum\";\n}\nexport function isFloatProp(p: any): p is FloatProp {\n return p?.type === \"float\";\n}\nexport function isDoubleProp(p: any): p is DoubleProp {\n return p?.type === \"double\";\n}\nexport function isDecimalProp(p: any): p is DecimalProp {\n return p?.type === \"decimal\";\n}\nexport function isBooleanProp(p: any): p is BooleanProp {\n return p?.type === \"boolean\";\n}\nexport function isDateProp(p: any): p is DateProp {\n return p?.type === \"date\";\n}\nexport function isDateTimeProp(p: any): p is DateTimeProp {\n return p?.type === \"datetime\";\n}\nexport function isTimeProp(p: any): p is TimeProp {\n return p?.type === \"time\";\n}\nexport function isTimestampProp(p: any): p is TimestampProp {\n return p?.type === \"timestamp\";\n}\nexport function isJsonProp(p: any): p is JsonProp {\n return p?.type === \"json\";\n}\nexport function isUuidProp(p: any): p is UuidProp {\n return p?.type === \"uuid\";\n}\nexport function isVirtualProp(p: any): p is VirtualProp {\n return p?.type === \"virtual\";\n}\nexport function isRelationProp(p: any): p is RelationProp {\n return p?.type === \"relation\";\n}\nexport function isOneToOneRelationProp(p: any): p is OneToOneRelationProp {\n return p?.relationType === \"OneToOne\";\n}\nexport function isBelongsToOneRelationProp(\n p: any\n): p is BelongsToOneRelationProp {\n return p?.relationType === \"BelongsToOne\";\n}\nexport function isHasManyRelationProp(p: any): p is HasManyRelationProp {\n return p?.relationType === \"HasMany\";\n}\nexport function isManyToManyRelationProp(p: any): p is ManyToManyRelationProp {\n return p?.relationType === \"ManyToMany\";\n}\n\ntype JoinClause =\n | {\n from: string;\n to: string;\n }\n | {\n custom: string;\n };\nexport function isCustomJoinClause(p: any): p is { custom: string } {\n return p?.custom;\n}\n\n/* 서브셋 */\n// type SubsetLoader = {\n// as: string;\n// table: string;\n// manyJoin: {\n// fromTable: string;\n// fromCol: string;\n// idField: string;\n// toTable: string;\n// toCol: string;\n// through?: {\n// table: string;\n// fromCol: string;\n// toCol: string;\n// };\n// };\n// oneJoins: ({\n// as: string;\n// join: \"inner\" | \"outer\";\n// table: string;\n// } & JoinClause)[];\n// select: (string | Knex.Raw)[];\n// loaders?: SubsetLoader[];\n// };\n// export type SubsetQuery = {\n// select: (string | Knex.Raw)[];\n// virtual: string[];\n// joins: ({\n// as: string;\n// join: \"inner\" | \"outer\";\n// table: string;\n// } & JoinClause)[];\n// loaders: SubsetLoader[];\n// };\n\ntype SubsetLoader = {\n as: string;\n table: string;\n manyJoin: {\n fromTable: string;\n fromCol: string;\n idField: string;\n toTable: string;\n toCol: string;\n through?: {\n table: string;\n fromCol: string;\n toCol: string;\n };\n };\n oneJoins: ({\n as: string;\n join: \"inner\" | \"outer\";\n table: string;\n } & JoinClause)[];\n select: string[];\n loaders?: SubsetLoader[];\n};\n\nexport type SubsetQuery = {\n select: string[];\n virtual: string[];\n joins: ({\n as: string;\n join: \"inner\" | \"outer\";\n table: string;\n } & JoinClause)[];\n loaders: SubsetLoader[];\n};\n\n/* BaseModel */\nexport const SonamuQueryMode = z.enum([\"both\", \"list\", \"count\"]);\nexport type SonamuQueryMode = z.infer<typeof SonamuQueryMode>;\n\n/* Knex Migration */\nexport type KnexError = {\n code: string;\n errno: number;\n sql: string;\n sqlMessage: string;\n sqlState: string;\n};\nexport function isKnexError(e: any): e is KnexError {\n return e.code && e.sqlMessage && e.sqlState;\n}\n\nexport type KnexColumnType =\n | \"string\"\n | \"text\"\n | \"smalltext\"\n | \"mediumtext\"\n | \"longtext\"\n | \"integer\"\n | \"bigInteger\"\n | \"decimal\"\n | \"timestamp\"\n | \"boolean\"\n | \"foreign\"\n | \"uuid\"\n | \"json\"\n | \"float\"\n | \"date\"\n | \"time\"\n | \"datetime\";\nexport type MigrationColumn = {\n name: string;\n type: KnexColumnType;\n nullable: boolean;\n unsigned?: boolean;\n length?: number;\n defaultTo?: string;\n precision?: number;\n scale?: number;\n};\nexport type MigrationIndex = {\n columns: string[];\n type: \"unique\" | \"index\" | \"fulltext\";\n parser?: \"built-in\" | \"ngram\";\n};\nexport type MigrationForeign = {\n columns: string[];\n to: string;\n onUpdate: RelationOn;\n onDelete: RelationOn;\n};\nexport type MigrationJoinTable = {\n table: string;\n indexes: MigrationIndex[];\n columns: MigrationColumn[];\n foreigns: MigrationForeign[];\n};\nexport type MigrationSet = {\n table: string;\n columns: MigrationColumn[];\n indexes: MigrationIndex[];\n foreigns: MigrationForeign[];\n};\nexport type MigrationSetAndJoinTable = MigrationSet & {\n joinTables: MigrationJoinTable[];\n};\nexport type GenMigrationCode = {\n title: string;\n table: string;\n type: \"normal\" | \"foreign\";\n formatted: string | null;\n};\n\n/* Api */\nexport type ApiParam = {\n name: string;\n type: ApiParamType;\n optional: boolean;\n defaultDef?: string;\n};\nexport namespace ApiParamType {\n export type Object = {\n t: \"object\";\n props: ApiParam[];\n };\n export type Union = {\n t: \"union\";\n types: ApiParamType[];\n };\n export type Intersection = {\n t: \"intersection\";\n types: ApiParamType[];\n };\n export type StringLiteral = {\n t: \"string-literal\";\n value: string;\n };\n export type NumericLiteral = {\n t: \"numeric-literal\";\n value: number;\n };\n export type Array = {\n t: \"array\";\n elementsType: ApiParamType;\n };\n export type Ref = {\n t: \"ref\";\n id: string;\n args?: ApiParamType[];\n };\n export type IndexedAccess = {\n t: \"indexed-access\";\n object: ApiParamType;\n index: ApiParamType;\n };\n export type TupleType = {\n t: \"tuple-type\";\n elements: ApiParamType[];\n };\n export type Pick = Ref & {\n t: \"ref\";\n id: \"Pick\";\n };\n export type Omit = Ref & {\n t: \"ref\";\n id: \"Omit\";\n };\n export type Partial = Ref & {\n t: \"ref\";\n id: \"Partial\";\n };\n export type Promise = Ref & {\n t: \"ref\";\n id: \"Promise\";\n };\n export type Context = Ref & {\n t: \"ref\";\n id: \"Context\";\n };\n export type TypeParam = {\n t: \"type-param\";\n id: string;\n constraint?: ApiParamType;\n };\n\n export function isObject(v: any): v is ApiParamType.Object {\n return v?.t === \"object\";\n }\n export function isUnion(v: any): v is ApiParamType.Union {\n return v?.t === \"union\";\n }\n export function isIntersection(v: any): v is ApiParamType.Intersection {\n return v?.t === \"intersection\";\n }\n export function isStringLiteral(v: any): v is ApiParamType.StringLiteral {\n return v?.t === \"string-literal\";\n }\n export function isNumericLiteral(v: any): v is ApiParamType.NumericLiteral {\n return v?.t === \"numeric-literal\";\n }\n export function isArray(v: any): v is ApiParamType.Array {\n return v?.t === \"array\";\n }\n export function isRef(v: any): v is ApiParamType.Ref {\n return v?.t === \"ref\";\n }\n export function isIndexedAccess(v: any): v is ApiParamType.IndexedAccess {\n return v?.t === \"indexed-access\";\n }\n export function isTupleType(v: any): v is ApiParamType.TupleType {\n return v?.t === \"tuple-type\";\n }\n export function isPick(v: any): v is ApiParamType.Pick {\n return v?.t === \"ref\" && v.id === \"Pick\";\n }\n export function isOmit(v: any): v is ApiParamType.Omit {\n return v?.t === \"ref\" && v.id === \"Omit\";\n }\n export function isPartial(v: any): v is ApiParamType.Partial {\n return v?.t === \"ref\" && v.id === \"Partial\";\n }\n export function isPromise(v: any): v is ApiParamType.Promise {\n return v?.t === \"ref\" && v.id === \"Promise\";\n }\n export function isContext(v: any): v is ApiParamType.Context {\n return v?.t === \"ref\" && v.id === \"Context\";\n }\n export function isRefKnex(v: any): v is ApiParamType.Ref {\n return v?.t === \"ref\" && v.id === \"Knex\";\n }\n export function isTypeParam(v: any): v is ApiParamType.TypeParam {\n return v?.t === \"type-param\";\n }\n}\nexport type ApiParamType =\n | \"string\"\n | \"number\"\n | \"boolean\"\n | \"null\"\n | \"undefined\"\n | \"void\"\n | \"any\"\n | \"unknown\"\n | \"true\"\n | \"false\"\n | ApiParamType.StringLiteral\n | ApiParamType.NumericLiteral\n | ApiParamType.Object\n | ApiParamType.Union\n | ApiParamType.Intersection\n | ApiParamType.Array\n | ApiParamType.Ref\n | ApiParamType.IndexedAccess\n | ApiParamType.TypeParam\n | ApiParamType.TupleType;\n\n/* Template */\n// 셀프 참조 타입이므로 Zod 생략하고 직접 정의\nexport const RenderingNode = z.any();\nexport type RenderingNode = {\n name: string;\n label: string;\n renderType:\n | \"string-plain\"\n | \"string-image\"\n | \"string-datetime\"\n | \"string-date\"\n | \"datetime\"\n | \"number-plain\"\n | \"number-id\"\n | \"number-fk_id\"\n | \"boolean\"\n | \"enums\"\n | \"array\"\n | \"array-images\"\n | \"object\"\n | \"object-pick\"\n | \"record\";\n zodType: z.ZodTypeAny;\n element?: RenderingNode;\n children?: RenderingNode[];\n config?: {\n picked: string;\n };\n optional?: boolean;\n nullable?: boolean;\n};\n\nexport const TemplateOptions = z.object({\n entity: z.object({\n entityId: z.string(),\n parentId: z.string().optional(),\n title: z.string(),\n table: z.string().optional(),\n props: z.array(z.object({})).optional(),\n indexes: z.array(z.object({})).optional(),\n subsets: z.object({}).optional(),\n enums: z.object({}).optional(),\n }),\n init_types: z.object({\n entityId: z.string(),\n }),\n generated: z.object({}),\n generated_sso: z.object({}),\n generated_http: z.object({\n entityId: z.string(),\n }),\n model: z.object({\n entityId: z.string(),\n defaultSearchField: z.string(),\n defaultOrderBy: z.string(),\n }),\n model_test: z.object({\n entityId: z.string(),\n }),\n bridge: z.object({\n entityId: z.string(),\n }),\n service: z.object({\n namesRecord: z.object({\n fs: z.string(),\n fsPlural: z.string(),\n camel: z.string(),\n camelPlural: z.string(),\n capital: z.string(),\n capitalPlural: z.string(),\n upper: z.string(),\n constant: z.string(),\n }),\n modelTsPath: z.string(),\n }),\n view_list: z.object({\n entityId: z.string(),\n extra: z.unknown(),\n }),\n view_list_columns: z.object({\n entityId: z.string(),\n columns: z\n .object({\n name: z.string(),\n label: z.string(),\n tc: z.string(),\n })\n .array(),\n columnImports: z.string(),\n }),\n view_search_input: z.object({\n entityId: z.string(),\n }),\n view_form: z.object({\n entityId: z.string(),\n }),\n view_id_all_select: z.object({\n entityId: z.string(),\n }),\n view_id_async_select: z.object({\n entityId: z.string(),\n textField: z.string(),\n }),\n view_enums_select: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n view_enums_dropdown: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n view_enums_buttonset: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n});\nexport type TemplateOptions = z.infer<typeof TemplateOptions>;\n\nexport const TemplateKey = z.enum([\n \"entity\",\n \"init_types\",\n \"generated\",\n \"generated_sso\",\n \"generated_http\",\n \"model\",\n \"model_test\",\n \"bridge\",\n \"service\",\n \"view_list\",\n \"view_list_columns\",\n \"view_search_input\",\n \"view_form\",\n \"view_id_all_select\",\n \"view_id_async_select\",\n \"view_enums_select\",\n \"view_enums_dropdown\",\n \"view_enums_buttonset\",\n]);\nexport type TemplateKey = z.infer<typeof TemplateKey>;\n\nexport const GenerateOptions = z.object({\n overwrite: z.boolean().optional(),\n});\nexport type GenerateOptions = z.infer<typeof GenerateOptions>;\n\nexport const PathAndCode = z.object({\n path: z.string(),\n code: z.string(),\n});\nexport type PathAndCode = z.infer<typeof PathAndCode>;\n\nexport type FixtureSearchOptions = {\n entityId: string;\n field: string;\n value: string;\n searchType: \"equals\" | \"like\";\n};\n\nexport type FixtureRecord = {\n fixtureId: string;\n entityId: string;\n id: number;\n columns: {\n [key: string]: {\n prop: EntityProp;\n value: any;\n };\n };\n fetchedRecords: string[];\n belongsRecords: string[];\n target?: FixtureRecord; // Import 대상 DB 레코드(id가 같은)\n unique?: FixtureRecord; // Import 대상 DB 레코드(unique key가 같은)\n override?: boolean;\n};\n\nexport type FixtureImportResult = {\n entityId: string;\n data: {\n [key: string]: any;\n };\n};\n\nexport type RelationNode = {\n fixtureId: string;\n entityId: string;\n related: Set<string>;\n};\n\nexport interface DatabaseSchemaExtend {}\nexport type ManyToManyBaseSchema<\n FromIdKey extends string,\n ToIdKey extends string,\n> = {\n id: number;\n} & {\n [K in `${FromIdKey}_id`]: number;\n} & {\n [K in `${ToIdKey}_id`]: number;\n};\n\nexport type SonamuFastifyConfig = {\n contextProvider: (\n defaultContext: Pick<\n Context,\n \"request\" | \"reply\" | \"headers\" | \"createSSE\"\n >,\n request: FastifyRequest,\n reply: FastifyReply\n ) => Context;\n guardHandler: (\n guard: GuardKey,\n request: FastifyRequest,\n api: {\n typeParameters: ApiParamType.TypeParam[];\n parameters: ApiParam[];\n returnType: ApiParamType;\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n }\n ) => void;\n cache?: {\n get: (key: string) => Promise<unknown | null>;\n put: (key: string, value: unknown, ttl?: number) => Promise<void>;\n resolveKey: (\n path: string,\n reqBody: {\n [key: string]: unknown;\n }\n ) =>\n | {\n cache: false;\n }\n | {\n cache: true;\n key: string;\n ttl?: number;\n };\n };\n};\n\nexport type SonamuServerOptions = {\n fastify?: FastifyServerOptions;\n\n listen?: {\n port: number;\n host?: string;\n };\n\n plugins?: {\n cors?: boolean | FastifyCorsOptions;\n formbody?: boolean | FastifyFormbodyOptions;\n multipart?: boolean | FastifyMultipartOptions;\n qs?: boolean | QsPluginOptions;\n sse?: boolean | SsePluginOptions;\n\n custom?: (server: FastifyInstance) => void;\n };\n\n apiConfig: SonamuFastifyConfig;\n\n storage?: Driver;\n\n lifecycle?: {\n onStart?: (server: FastifyInstance) => Promise<void> | void;\n onShutdown?: (server: FastifyInstance) => Promise<void> | void;\n onError?: (\n error: Error,\n request: FastifyRequest,\n reply: FastifyReply\n ) => Promise<void> | void;\n };\n};\n"],"names":["GenerateOptions","PathAndCode","RenderingNode","SQLDateTimeString","SonamuQueryMode","TemplateKey","TemplateOptions","isBelongsToOneRelationProp","isBigIntegerProp","isBooleanProp","isCustomJoinClause","isDateProp","isDateTimeProp","isDecimalProp","isDoubleProp","isEnumProp","isFloatProp","isHasManyRelationProp","isIntegerProp","isJsonProp","isKnexError","isManyToManyRelationProp","isOneToOneRelationProp","isRelationProp","isStringProp","isTextProp","isTimeProp","isTimestampProp","isUuidProp","isVirtualProp","zArrayable","z","string","regex","message","min","max","describe","shape","union","array","p","type","relationType","custom","enum","e","code","sqlMessage","sqlState","ApiParamType","isObject","v","t","isUnion","isIntersection","isStringLiteral","isNumericLiteral","isArray","isRef","isIndexedAccess","isTupleType","isPick","id","isOmit","isPartial","isPromise","isContext","isRefKnex","isTypeParam","any","object","entity","entityId","parentId","optional","title","table","props","indexes","subsets","enums","init_types","generated","generated_sso","generated_http","model","defaultSearchField","defaultOrderBy","model_test","bridge","service","namesRecord","fs","fsPlural","camel","camelPlural","capital","capitalPlural","upper","constant","modelTsPath","view_list","extra","unknown","view_list_columns","columns","name","label","tc","columnImports","view_search_input","view_form","view_id_all_select","view_id_async_select","textField","view_enums_select","enumId","view_enums_dropdown","view_enums_buttonset","overwrite","boolean","path"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/types/types.ts"],"sourcesContent":["import type { GuardKey } from \"./../api/decorators\";\nimport type { FastifyCorsOptions } from \"@fastify/cors\";\nimport type { FastifyFormbodyOptions } from \"@fastify/formbody\";\nimport type {\n FastifyInstance,\n FastifyReply,\n FastifyRequest,\n FastifyServerOptions,\n} from \"fastify\";\nimport type { QsPluginOptions } from \"fastify-qs\";\nimport { z } from \"zod\";\nimport type { ApiDecoratorOptions, AuthContext, Context } from \"../api\";\nimport type { FastifyMultipartOptions } from \"@fastify/multipart\";\nimport type { Driver } from \"../file-storage/driver\";\nimport type { SsePluginOptions } from \"fastify-sse-v2/lib/types\";\nimport type { FastifyStaticOptions } from \"@fastify/static\";\nimport { SecureSessionPluginOptions } from \"@fastify/secure-session\";\nimport {\n DeserializeFunction,\n SerializeFunction,\n} from \"@fastify/passport/dist/Authenticator\";\n\n/*\n Enums\n*/\nexport type EnumsLabel<T extends string, L extends \"ko\" | \"en\"> = {\n [key in T]: { [lang in L]: string };\n};\nexport type EnumsLabelKo<T extends string> = EnumsLabel<T, \"ko\">;\n\n/*\n Custom Scalars\n*/\nexport const SQLDateTimeString = z\n .string()\n .regex(/([0-9]{4}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})*)$/, {\n message: \"잘못된 SQLDate 타입\",\n })\n .min(10)\n .max(19)\n .describe(\"SQLDateTimeString\");\nexport type SQLDateTimeString = z.infer<typeof SQLDateTimeString>;\n\n/*\n Utility Types\n*/\nexport function zArrayable<T extends z.ZodTypeAny>(\n shape: T\n): z.ZodUnion<[T, z.ZodArray<T>]> {\n return z.union([shape, shape.array()]);\n}\nexport type DistributiveOmit<T, K extends keyof any> = T extends any\n ? Omit<T, K>\n : never;\n\n/*\n Model-Defintion\n*/\nexport type CommonProp = {\n name: string;\n nullable?: boolean;\n toFilter?: true;\n desc?: string;\n dbDefault?: string;\n};\nexport type IntegerProp = CommonProp & {\n type: \"integer\";\n unsigned?: true;\n};\nexport type BigIntegerProp = CommonProp & {\n type: \"bigInteger\";\n unsigned?: true;\n};\nexport type TextProp = CommonProp & {\n type: \"text\";\n textType: \"text\" | \"mediumtext\" | \"longtext\";\n};\nexport type StringProp = CommonProp & {\n type: \"string\";\n length: number;\n};\nexport type EnumProp = CommonProp & {\n type: \"enum\";\n length: number;\n id: string;\n};\nexport type FloatProp = CommonProp & {\n type: \"float\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type DoubleProp = CommonProp & {\n type: \"double\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type DecimalProp = CommonProp & {\n type: \"decimal\";\n unsigned?: true;\n precision: number;\n scale: number;\n};\nexport type BooleanProp = CommonProp & {\n type: \"boolean\";\n};\nexport type DateProp = CommonProp & {\n type: \"date\";\n};\nexport type DateTimeProp = CommonProp & {\n type: \"datetime\";\n};\nexport type TimeProp = CommonProp & {\n type: \"time\";\n};\nexport type TimestampProp = CommonProp & {\n type: \"timestamp\";\n};\nexport type JsonProp = CommonProp & {\n type: \"json\";\n id: string;\n};\nexport type UuidProp = CommonProp & {\n type: \"uuid\";\n};\nexport type VirtualProp = CommonProp & {\n type: \"virtual\";\n id: string;\n};\n\nexport type RelationType =\n | \"HasMany\"\n | \"BelongsToOne\"\n | \"ManyToMany\"\n | \"OneToOne\";\nexport type RelationOn =\n | \"CASCADE\"\n | \"SET NULL\"\n | \"NO ACTION\"\n | \"SET DEFAULT\"\n | \"RESTRICT\";\ntype _RelationProp = {\n type: \"relation\";\n name: string;\n with: string;\n nullable?: boolean; // DEFAULT: false\n toFilter?: true; // DEFAULT: false\n desc?: string;\n};\nexport type OneToOneRelationProp = _RelationProp & {\n relationType: \"OneToOne\";\n customJoinClause?: string;\n} & (\n | {\n hasJoinColumn: true;\n useConstraint?: boolean; // DEFAULT: true\n onUpdate?: RelationOn; // DEFAULT: RESTRICT\n onDelete?: RelationOn; // DEFAULT: RESTRICT\n }\n | {\n hasJoinColumn: false;\n }\n );\nexport type BelongsToOneRelationProp = _RelationProp & {\n relationType: \"BelongsToOne\";\n customJoinClause?: string;\n useConstraint?: boolean; // DEFAULT: true\n onUpdate?: RelationOn; // DEFAULT: RESTRICT\n onDelete?: RelationOn; // DEFAULT: RESTRICT\n};\nexport type HasManyRelationProp = _RelationProp & {\n relationType: \"HasMany\";\n joinColumn: string;\n fromColumn?: string;\n};\nexport type ManyToManyRelationProp = _RelationProp & {\n relationType: \"ManyToMany\";\n joinTable: `${string}__${string}`;\n onUpdate: RelationOn;\n onDelete: RelationOn;\n};\nexport type RelationProp =\n | OneToOneRelationProp\n | BelongsToOneRelationProp\n | HasManyRelationProp\n | ManyToManyRelationProp;\n\nexport type EntityProp =\n | IntegerProp\n | BigIntegerProp\n | TextProp\n | StringProp\n | FloatProp\n | DoubleProp\n | DecimalProp\n | BooleanProp\n | DateProp\n | DateTimeProp\n | TimeProp\n | TimestampProp\n | JsonProp\n | UuidProp\n | EnumProp\n | VirtualProp\n | RelationProp;\n\nexport type EntityIndex = {\n type: \"index\" | \"unique\" | \"fulltext\";\n columns: string[];\n name?: string;\n parser?: \"built-in\" | \"ngram\";\n};\nexport type EntityJson = {\n id: string;\n parentId?: string;\n table: string;\n title?: string;\n props: EntityProp[];\n indexes: EntityIndex[];\n subsets: {\n [subset: string]: string[];\n };\n enums: {\n [enumId: string]: {\n [key: string]: string;\n };\n };\n};\nexport type EntitySubsetRow = {\n field: string;\n has: {\n [key: string]: boolean;\n };\n children: EntitySubsetRow[];\n prefixes: string[];\n relationEntity?: string;\n isOpen?: boolean;\n};\nexport type FlattenSubsetRow = Omit<EntitySubsetRow, \"children\">;\n\n// SMD Legacy\nexport type SMDInput<T extends string> = {\n id: string;\n parentId?: string;\n table?: string;\n title?: string;\n props?: EntityProp[];\n indexes?: EntityIndex[];\n subsets?: {\n [subset: string]: T[];\n };\n};\n\n/*\n PropNode\n*/\n\nexport type EntityPropNode =\n | {\n nodeType: \"plain\";\n prop: EntityProp;\n }\n | {\n nodeType: \"object\" | \"array\";\n prop?: EntityProp;\n children: EntityPropNode[];\n };\n\n/*\n Prop Type Guards\n*/\nexport function isIntegerProp(p: any): p is IntegerProp {\n return p?.type === \"integer\";\n}\nexport function isBigIntegerProp(p: any): p is BigIntegerProp {\n return p?.type === \"bigInteger\";\n}\nexport function isTextProp(p: any): p is TextProp {\n return p?.type === \"text\";\n}\nexport function isStringProp(p: any): p is StringProp {\n return p?.type === \"string\";\n}\nexport function isEnumProp(p: any): p is EnumProp {\n return p?.type === \"enum\";\n}\nexport function isFloatProp(p: any): p is FloatProp {\n return p?.type === \"float\";\n}\nexport function isDoubleProp(p: any): p is DoubleProp {\n return p?.type === \"double\";\n}\nexport function isDecimalProp(p: any): p is DecimalProp {\n return p?.type === \"decimal\";\n}\nexport function isBooleanProp(p: any): p is BooleanProp {\n return p?.type === \"boolean\";\n}\nexport function isDateProp(p: any): p is DateProp {\n return p?.type === \"date\";\n}\nexport function isDateTimeProp(p: any): p is DateTimeProp {\n return p?.type === \"datetime\";\n}\nexport function isTimeProp(p: any): p is TimeProp {\n return p?.type === \"time\";\n}\nexport function isTimestampProp(p: any): p is TimestampProp {\n return p?.type === \"timestamp\";\n}\nexport function isJsonProp(p: any): p is JsonProp {\n return p?.type === \"json\";\n}\nexport function isUuidProp(p: any): p is UuidProp {\n return p?.type === \"uuid\";\n}\nexport function isVirtualProp(p: any): p is VirtualProp {\n return p?.type === \"virtual\";\n}\nexport function isRelationProp(p: any): p is RelationProp {\n return p?.type === \"relation\";\n}\nexport function isOneToOneRelationProp(p: any): p is OneToOneRelationProp {\n return p?.relationType === \"OneToOne\";\n}\nexport function isBelongsToOneRelationProp(\n p: any\n): p is BelongsToOneRelationProp {\n return p?.relationType === \"BelongsToOne\";\n}\nexport function isHasManyRelationProp(p: any): p is HasManyRelationProp {\n return p?.relationType === \"HasMany\";\n}\nexport function isManyToManyRelationProp(p: any): p is ManyToManyRelationProp {\n return p?.relationType === \"ManyToMany\";\n}\n\ntype JoinClause =\n | {\n from: string;\n to: string;\n }\n | {\n custom: string;\n };\nexport function isCustomJoinClause(p: any): p is { custom: string } {\n return p?.custom;\n}\n\n/* 서브셋 */\n// type SubsetLoader = {\n// as: string;\n// table: string;\n// manyJoin: {\n// fromTable: string;\n// fromCol: string;\n// idField: string;\n// toTable: string;\n// toCol: string;\n// through?: {\n// table: string;\n// fromCol: string;\n// toCol: string;\n// };\n// };\n// oneJoins: ({\n// as: string;\n// join: \"inner\" | \"outer\";\n// table: string;\n// } & JoinClause)[];\n// select: (string | Knex.Raw)[];\n// loaders?: SubsetLoader[];\n// };\n// export type SubsetQuery = {\n// select: (string | Knex.Raw)[];\n// virtual: string[];\n// joins: ({\n// as: string;\n// join: \"inner\" | \"outer\";\n// table: string;\n// } & JoinClause)[];\n// loaders: SubsetLoader[];\n// };\n\ntype SubsetLoader = {\n as: string;\n table: string;\n manyJoin: {\n fromTable: string;\n fromCol: string;\n idField: string;\n toTable: string;\n toCol: string;\n through?: {\n table: string;\n fromCol: string;\n toCol: string;\n };\n };\n oneJoins: ({\n as: string;\n join: \"inner\" | \"outer\";\n table: string;\n } & JoinClause)[];\n select: string[];\n loaders?: SubsetLoader[];\n};\n\nexport type SubsetQuery = {\n select: string[];\n virtual: string[];\n joins: ({\n as: string;\n join: \"inner\" | \"outer\";\n table: string;\n } & JoinClause)[];\n loaders: SubsetLoader[];\n};\n\n/* BaseModel */\nexport const SonamuQueryMode = z.enum([\"both\", \"list\", \"count\"]);\nexport type SonamuQueryMode = z.infer<typeof SonamuQueryMode>;\n\n/* Knex Migration */\nexport type KnexError = {\n code: string;\n errno: number;\n sql: string;\n sqlMessage: string;\n sqlState: string;\n};\nexport function isKnexError(e: any): e is KnexError {\n return e.code && e.sqlMessage && e.sqlState;\n}\n\nexport type KnexColumnType =\n | \"string\"\n | \"text\"\n | \"smalltext\"\n | \"mediumtext\"\n | \"longtext\"\n | \"integer\"\n | \"bigInteger\"\n | \"decimal\"\n | \"timestamp\"\n | \"boolean\"\n | \"foreign\"\n | \"uuid\"\n | \"json\"\n | \"float\"\n | \"date\"\n | \"time\"\n | \"datetime\";\nexport type MigrationColumn = {\n name: string;\n type: KnexColumnType;\n nullable: boolean;\n unsigned?: boolean;\n length?: number;\n defaultTo?: string;\n precision?: number;\n scale?: number;\n};\nexport type MigrationIndex = {\n columns: string[];\n type: \"unique\" | \"index\" | \"fulltext\";\n parser?: \"built-in\" | \"ngram\";\n};\nexport type MigrationForeign = {\n columns: string[];\n to: string;\n onUpdate: RelationOn;\n onDelete: RelationOn;\n};\nexport type MigrationJoinTable = {\n table: string;\n indexes: MigrationIndex[];\n columns: MigrationColumn[];\n foreigns: MigrationForeign[];\n};\nexport type MigrationSet = {\n table: string;\n columns: MigrationColumn[];\n indexes: MigrationIndex[];\n foreigns: MigrationForeign[];\n};\nexport type MigrationSetAndJoinTable = MigrationSet & {\n joinTables: MigrationJoinTable[];\n};\nexport type GenMigrationCode = {\n title: string;\n table: string;\n type: \"normal\" | \"foreign\";\n formatted: string | null;\n};\n\n/* Api */\nexport type ApiParam = {\n name: string;\n type: ApiParamType;\n optional: boolean;\n defaultDef?: string;\n};\nexport namespace ApiParamType {\n export type Object = {\n t: \"object\";\n props: ApiParam[];\n };\n export type Union = {\n t: \"union\";\n types: ApiParamType[];\n };\n export type Intersection = {\n t: \"intersection\";\n types: ApiParamType[];\n };\n export type StringLiteral = {\n t: \"string-literal\";\n value: string;\n };\n export type NumericLiteral = {\n t: \"numeric-literal\";\n value: number;\n };\n export type Array = {\n t: \"array\";\n elementsType: ApiParamType;\n };\n export type Ref = {\n t: \"ref\";\n id: string;\n args?: ApiParamType[];\n };\n export type IndexedAccess = {\n t: \"indexed-access\";\n object: ApiParamType;\n index: ApiParamType;\n };\n export type TupleType = {\n t: \"tuple-type\";\n elements: ApiParamType[];\n };\n export type Pick = Ref & {\n t: \"ref\";\n id: \"Pick\";\n };\n export type Omit = Ref & {\n t: \"ref\";\n id: \"Omit\";\n };\n export type Partial = Ref & {\n t: \"ref\";\n id: \"Partial\";\n };\n export type Promise = Ref & {\n t: \"ref\";\n id: \"Promise\";\n };\n export type Context = Ref & {\n t: \"ref\";\n id: \"Context\";\n };\n export type TypeParam = {\n t: \"type-param\";\n id: string;\n constraint?: ApiParamType;\n };\n\n export function isObject(v: any): v is ApiParamType.Object {\n return v?.t === \"object\";\n }\n export function isUnion(v: any): v is ApiParamType.Union {\n return v?.t === \"union\";\n }\n export function isIntersection(v: any): v is ApiParamType.Intersection {\n return v?.t === \"intersection\";\n }\n export function isStringLiteral(v: any): v is ApiParamType.StringLiteral {\n return v?.t === \"string-literal\";\n }\n export function isNumericLiteral(v: any): v is ApiParamType.NumericLiteral {\n return v?.t === \"numeric-literal\";\n }\n export function isArray(v: any): v is ApiParamType.Array {\n return v?.t === \"array\";\n }\n export function isRef(v: any): v is ApiParamType.Ref {\n return v?.t === \"ref\";\n }\n export function isIndexedAccess(v: any): v is ApiParamType.IndexedAccess {\n return v?.t === \"indexed-access\";\n }\n export function isTupleType(v: any): v is ApiParamType.TupleType {\n return v?.t === \"tuple-type\";\n }\n export function isPick(v: any): v is ApiParamType.Pick {\n return v?.t === \"ref\" && v.id === \"Pick\";\n }\n export function isOmit(v: any): v is ApiParamType.Omit {\n return v?.t === \"ref\" && v.id === \"Omit\";\n }\n export function isPartial(v: any): v is ApiParamType.Partial {\n return v?.t === \"ref\" && v.id === \"Partial\";\n }\n export function isPromise(v: any): v is ApiParamType.Promise {\n return v?.t === \"ref\" && v.id === \"Promise\";\n }\n export function isContext(v: any): v is ApiParamType.Context {\n return v?.t === \"ref\" && v.id === \"Context\";\n }\n export function isRefKnex(v: any): v is ApiParamType.Ref {\n return v?.t === \"ref\" && v.id === \"Knex\";\n }\n export function isTypeParam(v: any): v is ApiParamType.TypeParam {\n return v?.t === \"type-param\";\n }\n}\nexport type ApiParamType =\n | \"string\"\n | \"number\"\n | \"boolean\"\n | \"null\"\n | \"undefined\"\n | \"void\"\n | \"any\"\n | \"unknown\"\n | \"true\"\n | \"false\"\n | ApiParamType.StringLiteral\n | ApiParamType.NumericLiteral\n | ApiParamType.Object\n | ApiParamType.Union\n | ApiParamType.Intersection\n | ApiParamType.Array\n | ApiParamType.Ref\n | ApiParamType.IndexedAccess\n | ApiParamType.TypeParam\n | ApiParamType.TupleType;\n\n/* Template */\n// 셀프 참조 타입이므로 Zod 생략하고 직접 정의\nexport const RenderingNode = z.any();\nexport type RenderingNode = {\n name: string;\n label: string;\n renderType:\n | \"string-plain\"\n | \"string-image\"\n | \"string-datetime\"\n | \"string-date\"\n | \"datetime\"\n | \"number-plain\"\n | \"number-id\"\n | \"number-fk_id\"\n | \"boolean\"\n | \"enums\"\n | \"array\"\n | \"array-images\"\n | \"object\"\n | \"object-pick\"\n | \"record\";\n zodType: z.ZodTypeAny;\n element?: RenderingNode;\n children?: RenderingNode[];\n config?: {\n picked: string;\n };\n optional?: boolean;\n nullable?: boolean;\n};\n\nexport const TemplateOptions = z.object({\n entity: z.object({\n entityId: z.string(),\n parentId: z.string().optional(),\n title: z.string(),\n table: z.string().optional(),\n props: z.array(z.object({})).optional(),\n indexes: z.array(z.object({})).optional(),\n subsets: z.object({}).optional(),\n enums: z.object({}).optional(),\n }),\n init_types: z.object({\n entityId: z.string(),\n }),\n generated: z.object({}),\n generated_sso: z.object({}),\n generated_http: z.object({\n entityId: z.string(),\n }),\n model: z.object({\n entityId: z.string(),\n defaultSearchField: z.string(),\n defaultOrderBy: z.string(),\n }),\n model_test: z.object({\n entityId: z.string(),\n }),\n bridge: z.object({\n entityId: z.string(),\n }),\n service: z.object({\n namesRecord: z.object({\n fs: z.string(),\n fsPlural: z.string(),\n camel: z.string(),\n camelPlural: z.string(),\n capital: z.string(),\n capitalPlural: z.string(),\n upper: z.string(),\n constant: z.string(),\n }),\n modelTsPath: z.string(),\n }),\n view_list: z.object({\n entityId: z.string(),\n extra: z.unknown(),\n }),\n view_list_columns: z.object({\n entityId: z.string(),\n columns: z\n .object({\n name: z.string(),\n label: z.string(),\n tc: z.string(),\n })\n .array(),\n columnImports: z.string(),\n }),\n view_search_input: z.object({\n entityId: z.string(),\n }),\n view_form: z.object({\n entityId: z.string(),\n }),\n view_id_all_select: z.object({\n entityId: z.string(),\n }),\n view_id_async_select: z.object({\n entityId: z.string(),\n textField: z.string(),\n }),\n view_enums_select: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n view_enums_dropdown: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n view_enums_buttonset: z.object({\n entityId: z.string(),\n enumId: z.string(),\n }),\n});\nexport type TemplateOptions = z.infer<typeof TemplateOptions>;\n\nexport const TemplateKey = z.enum([\n \"entity\",\n \"init_types\",\n \"generated\",\n \"generated_sso\",\n \"generated_http\",\n \"model\",\n \"model_test\",\n \"bridge\",\n \"service\",\n \"view_list\",\n \"view_list_columns\",\n \"view_search_input\",\n \"view_form\",\n \"view_id_all_select\",\n \"view_id_async_select\",\n \"view_enums_select\",\n \"view_enums_dropdown\",\n \"view_enums_buttonset\",\n]);\nexport type TemplateKey = z.infer<typeof TemplateKey>;\n\nexport const GenerateOptions = z.object({\n overwrite: z.boolean().optional(),\n});\nexport type GenerateOptions = z.infer<typeof GenerateOptions>;\n\nexport const PathAndCode = z.object({\n path: z.string(),\n code: z.string(),\n});\nexport type PathAndCode = z.infer<typeof PathAndCode>;\n\nexport type FixtureSearchOptions = {\n entityId: string;\n field: string;\n value: string;\n searchType: \"equals\" | \"like\";\n};\n\nexport type FixtureRecord = {\n fixtureId: string;\n entityId: string;\n id: number;\n columns: {\n [key: string]: {\n prop: EntityProp;\n value: any;\n };\n };\n fetchedRecords: string[];\n belongsRecords: string[];\n target?: FixtureRecord; // Import 대상 DB 레코드(id가 같은)\n unique?: FixtureRecord; // Import 대상 DB 레코드(unique key가 같은)\n override?: boolean;\n};\n\nexport type FixtureImportResult = {\n entityId: string;\n data: {\n [key: string]: any;\n };\n};\n\nexport type RelationNode = {\n fixtureId: string;\n entityId: string;\n related: Set<string>;\n};\n\nexport interface DatabaseSchemaExtend {}\nexport type ManyToManyBaseSchema<\n FromIdKey extends string,\n ToIdKey extends string,\n> = {\n id: number;\n} & {\n [K in `${FromIdKey}_id`]: number;\n} & {\n [K in `${ToIdKey}_id`]: number;\n};\n\nexport type SonamuFastifyConfig = {\n contextProvider: (\n defaultContext: Pick<\n Context,\n \"request\" | \"reply\" | \"headers\" | \"createSSE\"\n > &\n AuthContext,\n request: FastifyRequest,\n reply: FastifyReply\n ) => Context;\n guardHandler: (\n guard: GuardKey,\n request: FastifyRequest,\n api: {\n typeParameters: ApiParamType.TypeParam[];\n parameters: ApiParam[];\n returnType: ApiParamType;\n modelName: string;\n methodName: string;\n path: string;\n options: ApiDecoratorOptions;\n }\n ) => void;\n cache?: {\n get: (key: string) => Promise<unknown | null>;\n put: (key: string, value: unknown, ttl?: number) => Promise<void>;\n resolveKey: (\n path: string,\n reqBody: {\n [key: string]: unknown;\n }\n ) =>\n | {\n cache: false;\n }\n | {\n cache: true;\n key: string;\n ttl?: number;\n };\n };\n};\n\nexport type SonamuServerOptions = {\n fastify?: FastifyServerOptions;\n\n listen?: {\n port: number;\n host?: string;\n };\n\n plugins?: {\n cors?: boolean | FastifyCorsOptions;\n formbody?: boolean | FastifyFormbodyOptions;\n multipart?: boolean | FastifyMultipartOptions;\n qs?: boolean | QsPluginOptions;\n sse?: boolean | SsePluginOptions;\n static?: boolean | FastifyStaticOptions;\n session?: boolean | SecureSessionPluginOptions;\n\n custom?: (server: FastifyInstance) => void;\n };\n\n auth?:\n | boolean\n | {\n userSerializer: SerializeFunction<unknown, unknown>;\n userDeserializer: DeserializeFunction<unknown, unknown>;\n };\n\n apiConfig: SonamuFastifyConfig;\n\n storage?: Driver;\n\n lifecycle?: {\n onStart?: (server: FastifyInstance) => Promise<void> | void;\n onShutdown?: (server: FastifyInstance) => Promise<void> | void;\n onError?: (\n error: Error,\n request: FastifyRequest,\n reply: FastifyReply\n ) => Promise<void> | void;\n };\n};\n"],"names":["GenerateOptions","PathAndCode","RenderingNode","SQLDateTimeString","SonamuQueryMode","TemplateKey","TemplateOptions","isBelongsToOneRelationProp","isBigIntegerProp","isBooleanProp","isCustomJoinClause","isDateProp","isDateTimeProp","isDecimalProp","isDoubleProp","isEnumProp","isFloatProp","isHasManyRelationProp","isIntegerProp","isJsonProp","isKnexError","isManyToManyRelationProp","isOneToOneRelationProp","isRelationProp","isStringProp","isTextProp","isTimeProp","isTimestampProp","isUuidProp","isVirtualProp","zArrayable","z","string","regex","message","min","max","describe","shape","union","array","p","type","relationType","custom","enum","e","code","sqlMessage","sqlState","ApiParamType","isObject","v","t","isUnion","isIntersection","isStringLiteral","isNumericLiteral","isArray","isRef","isIndexedAccess","isTupleType","isPick","id","isOmit","isPartial","isPromise","isContext","isRefKnex","isTypeParam","any","object","entity","entityId","parentId","optional","title","table","props","indexes","subsets","enums","init_types","generated","generated_sso","generated_http","model","defaultSearchField","defaultOrderBy","model_test","bridge","service","namesRecord","fs","fsPlural","camel","camelPlural","capital","capitalPlural","upper","constant","modelTsPath","view_list","extra","unknown","view_list_columns","columns","name","label","tc","columnImports","view_search_input","view_form","view_id_all_select","view_id_async_select","textField","view_enums_select","enumId","view_enums_dropdown","view_enums_buttonset","overwrite","boolean","path"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sonamu",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"description": "Sonamu — TypeScript Fullstack API Framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -35,6 +35,9 @@
|
|
|
35
35
|
"@fastify/cors": "^8.1.0",
|
|
36
36
|
"@fastify/formbody": "^7.1.0",
|
|
37
37
|
"@fastify/multipart": "^8",
|
|
38
|
+
"@fastify/passport": "^2.2.0",
|
|
39
|
+
"@fastify/secure-session": "^5.2.0",
|
|
40
|
+
"@fastify/static": "^7",
|
|
38
41
|
"@swc/core": "^1.13.19",
|
|
39
42
|
"chalk": "^4.1.2",
|
|
40
43
|
"chokidar": "^4.0.3",
|
|
@@ -77,7 +80,7 @@
|
|
|
77
80
|
"typescript": "^5.2.2"
|
|
78
81
|
},
|
|
79
82
|
"peerDependencies": {
|
|
80
|
-
"@sonamu-kit/react-sui": "^0.1.
|
|
83
|
+
"@sonamu-kit/react-sui": "^0.1.17",
|
|
81
84
|
"fastify": "^4.23.2",
|
|
82
85
|
"knex": "^3.1.0",
|
|
83
86
|
"mysql2": "^3.6.1",
|