🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@kuindji/sql-type-parser

Package Overview
Dependencies
Maintainers
1
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kuindji/sql-type-parser - npm Package Compare versions

Comparing version
0.4.20
to
0.4.21
+95
dist/conditional/index.d.ts
/**
* Conditional SQL Module
*
* Provides type-safe conditional SQL processing with:
* - Conditional blocks: `/*if:condition* /.../*endif* /`
* - Named parameters: `:paramName`
* - Full result type inference with optionality
*
* @example
* ```typescript
* import { createConditionalQuery } from '@kuindji/sql-type-parser/conditional'
*
* const query = createConditionalQuery<MySchema>()
*
* const result = query(
* `SELECT id, name
* /*if:includeEmail* /, email/*endif* /
* FROM users
* /*if:withOrders* /
* LEFT JOIN orders o ON o.user_id = users.id
* /*endif* /
* WHERE id = :userId
* /*if:activeOnly* /AND active = true/*endif* /`,
* { includeEmail: true, withOrders: false, activeOnly: true },
* { userId: 123 }
* )
*
* // result.sql: "SELECT id, name, email FROM users WHERE id = $1 AND active = true"
* // result.params: [123]
* // Type: { id: number; name: string; email: string | undefined }
* ```
*/
import type { DatabaseSchema } from "../common/schema.js";
import type { QueryParamValue } from "./runtime.js";
import type { ConditionalQueryResult, ValidateConditionalSQL } from "./matcher.js";
import { type ConditionalSQLOutput } from "./runtime.js";
export type { ConditionalQueryResult, ProcessedSQL, ValidateConditionalSQL, } from "./matcher.js";
export type { AllConditionsFalse, AllConditionsTrue, ConditionalColumn, ConditionalLeftJoinColumn, EvalCondition, ExtractParamNames, GetPath, IsTruthy, ProcessConditionalSQL, ValidateParams, } from "./types.js";
export { conditionalSQL, normalizeWhitespace, processConditionalSQL, processParams, type ConditionalSQLOptions, type ConditionalSQLOutput, type QueryParamValue, } from "./runtime.js";
/**
* Branded output type that carries result type information.
*/
export interface TypedConditionalSQLOutput<Result> extends ConditionalSQLOutput {
/** Type brand for result inference (not used at runtime) */
readonly __resultType?: Result;
}
/**
* Create a type-safe conditional query function for a schema.
*
* The returned function processes SQL templates with conditional blocks
* and parameters, returning both the processed SQL and a typed result.
*
* @example
* ```typescript
* const query = createConditionalQuery<MySchema>()
*
* const { sql, params } = query(
* `SELECT id, name /*if:extra* /, extra/*endif* / FROM users WHERE id = :id`,
* { extra: true },
* { id: 1 }
* )
* ```
*/
export declare function createConditionalQuery<Schema extends DatabaseSchema>(): <Template extends string, Conditions extends Record<string, unknown>, Params extends Record<string, QueryParamValue> = {}>(template: Template, conditions: Conditions, params?: Params) => TypedConditionalSQLOutput<ConditionalQueryResult<Template, Conditions, Schema>>;
/**
* Extract the result type from a TypedConditionalSQLOutput.
*/
export type ExtractResultType<T> = T extends TypedConditionalSQLOutput<infer R> ? R : never;
/**
* Validate a conditional SQL query at compile time.
* Returns the template if valid, or an error message type if invalid.
*/
export type ValidConditionalQuery<Template extends string, Conditions extends Record<string, unknown>, Schema extends DatabaseSchema> = ValidateConditionalSQL<Template, Conditions, Schema> extends true ? Template : `[SQL Error] ${ValidateConditionalSQL<Template, Conditions, Schema> & string}`;
/**
* Helper to specify condition types statically for better type inference.
*
* Use this when you want to pre-define condition shapes that can be
* reused across multiple queries.
*
* @example
* ```typescript
* type MyConditions = {
* includeDeleted: boolean
* withOrders: boolean
* }
*
* const query = createConditionalQuery<MySchema>()
* const typedQuery = withConditions<MyConditions>(query)
*
* // Now conditions are typed as MyConditions
* const result = typedQuery(template, { includeDeleted: true, withOrders: false }, params)
* ```
*/
export declare function withConditions<StaticConditions extends Record<string, unknown>>(queryFn: ReturnType<typeof createConditionalQuery>): <Template extends string, Params extends Record<string, QueryParamValue> = {}>(template: Template, conditions: StaticConditions, params?: Params) => TypedConditionalSQLOutput<ConditionalQueryResult<Template, StaticConditions, DatabaseSchema>>;
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conditional/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACR,sBAAsB,EAEtB,sBAAsB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEH,KAAK,oBAAoB,EAC5B,MAAM,cAAc,CAAC;AAMtB,YAAY,EACR,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,GACzB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACR,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,qBAAqB,EACrB,cAAc,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACvB,MAAM,cAAc,CAAC;AAMtB;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,MAAM,CAAE,SAAQ,oBAAoB;IAC3E,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,cAAc,MAU5D,QAAQ,SAAS,MAAM,EACvB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,iBAEpC,QAAQ,cACN,UAAU,WACb,MAAM,KAChB,yBAAyB,CACxB,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CACvD,CAQJ;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,yBAAyB,CAClE,MAAM,CAAC,CACV,GAAG,CAAC,GACC,KAAK,CAAC;AAMZ;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAC7B,QAAQ,SAAS,MAAM,EACvB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,MAAM,SAAS,cAAc,IAC7B,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,IAAI,GAC/D,QAAQ,GACR,eAAe,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;AAMrF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3E,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,IAG9C,QAAQ,SAAS,MAAM,EACvB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,EAEnD,UAAU,QAAQ,EAClB,YAAY,gBAAgB,EAC5B,SAAS,MAAM,mGAItB"}
/**
* Conditional SQL Module
*
* Provides type-safe conditional SQL processing with:
* - Conditional blocks: `/*if:condition* /.../*endif* /`
* - Named parameters: `:paramName`
* - Full result type inference with optionality
*
* @example
* ```typescript
* import { createConditionalQuery } from '@kuindji/sql-type-parser/conditional'
*
* const query = createConditionalQuery<MySchema>()
*
* const result = query(
* `SELECT id, name
* /*if:includeEmail* /, email/*endif* /
* FROM users
* /*if:withOrders* /
* LEFT JOIN orders o ON o.user_id = users.id
* /*endif* /
* WHERE id = :userId
* /*if:activeOnly* /AND active = true/*endif* /`,
* { includeEmail: true, withOrders: false, activeOnly: true },
* { userId: 123 }
* )
*
* // result.sql: "SELECT id, name, email FROM users WHERE id = $1 AND active = true"
* // result.params: [123]
* // Type: { id: number; name: string; email: string | undefined }
* ```
*/
import { conditionalSQL, } from "./runtime.js";
export { conditionalSQL, normalizeWhitespace, processConditionalSQL, processParams, } from "./runtime.js";
/**
* Create a type-safe conditional query function for a schema.
*
* The returned function processes SQL templates with conditional blocks
* and parameters, returning both the processed SQL and a typed result.
*
* @example
* ```typescript
* const query = createConditionalQuery<MySchema>()
*
* const { sql, params } = query(
* `SELECT id, name /*if:extra* /, extra/*endif* / FROM users WHERE id = :id`,
* { extra: true },
* { id: 1 }
* )
* ```
*/
export function createConditionalQuery() {
/**
* Process a conditional SQL template.
*
* @param template - SQL template with conditional blocks and :params
* @param conditions - Object with condition values (must use `as const` for type inference)
* @param params - Object with parameter values
* @returns Processed SQL and params with inferred result type
*/
function query(template, conditions, params) {
const result = conditionalSQL(template, conditions, params ?? {});
return result;
}
return query;
}
// ============================================================================
// Static Type Helpers
// ============================================================================
/**
* Helper to specify condition types statically for better type inference.
*
* Use this when you want to pre-define condition shapes that can be
* reused across multiple queries.
*
* @example
* ```typescript
* type MyConditions = {
* includeDeleted: boolean
* withOrders: boolean
* }
*
* const query = createConditionalQuery<MySchema>()
* const typedQuery = withConditions<MyConditions>(query)
*
* // Now conditions are typed as MyConditions
* const result = typedQuery(template, { includeDeleted: true, withOrders: false }, params)
* ```
*/
export function withConditions(queryFn) {
return (template, conditions, params) => {
return queryFn(template, conditions, params);
};
}
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conditional/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AASH,OAAO,EACH,cAAc,GAEjB,MAAM,cAAc,CAAC;AAyBtB,OAAO,EACH,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GAIhB,MAAM,cAAc,CAAC;AActB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB;IAClC;;;;;;;OAOG;IACH,SAAS,KAAK,CAKV,QAAkB,EAClB,UAAsB,EACtB,MAAe;QAIf,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,MAEN,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AA0BD,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAC1B,OAAkD;IAElD,OAAO,CAIH,QAAkB,EAClB,UAA4B,EAC5B,MAAe,EACjB,EAAE;QACA,OAAO,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC;AACN,CAAC"}
/**
* Conditional SQL Matcher
*
* Integrates conditional SQL processing with the existing schema matcher.
* Handles optionality for columns in conditional blocks.
*/
import type { DatabaseSchema } from "../common/schema.js";
import type { Flatten, MatchError } from "../common/utils.js";
import type { QueryResult } from "../select/matcher/index.js";
import type { AllConditionsFalse, AllConditionsTrue, ProcessConditionalSQL } from "./types.js";
/**
* Compute the result type for a conditional SQL query.
*
* Strategy:
* 1. Process SQL with all conditions TRUE → get "full" column set
* 2. Process SQL with all conditions FALSE → get "base" column set
* 3. Columns in full but not in base → mark as `| undefined`
* 4. LEFT/FULL JOIN columns get `| null` (from base QueryResult)
*
* For conditional LEFT JOINs, columns get both: `T | null | undefined`
*/
export type ConditionalQueryResult<Template extends string, Conditions extends Record<string, unknown>, Schema extends DatabaseSchema> = ProcessConditionalSQL<Template, AllConditionsTrue<Conditions>> extends infer FullSQL extends string ? ProcessConditionalSQL<Template, AllConditionsFalse<Conditions>> extends infer BaseSQL extends string ? QueryResult<FullSQL, Schema> extends infer FullResult ? FullResult extends MatchError<string> ? FullResult : QueryResult<BaseSQL, Schema> extends infer BaseResult ? BaseResult extends MatchError<string> ? FullResult : MergeConditionalResults<FullResult, BaseResult> : FullResult : MatchError<"Failed to match full SQL"> : MatchError<"Failed to process base SQL"> : MatchError<"Failed to process full SQL">;
/**
* Merge full and base results, marking conditional columns as optional.
*
* - Columns in both full and base: keep as-is
* - Columns only in full: add `| undefined`
*/
export type MergeConditionalResults<Full, Base> = Flatten<{
[K in keyof Full as K extends keyof Base ? K : never]: Full[K];
} & {
[K in keyof Full as K extends keyof Base ? never : K]: Full[K] | undefined;
}>;
/**
* The processed SQL string type based on actual conditions.
*/
export type ProcessedSQL<Template extends string, Conditions extends Record<string, unknown>> = ProcessConditionalSQL<Template, Conditions>;
/**
* Validate a conditional SQL query.
*
* Validates the "full" version (all conditions true) to ensure
* all possible columns and tables are valid.
*/
export type ValidateConditionalSQL<Template extends string, Conditions extends Record<string, unknown>, Schema extends DatabaseSchema> = ProcessConditionalSQL<Template, AllConditionsTrue<Conditions>> extends infer FullSQL extends string ? QueryResult<FullSQL, Schema> extends MatchError<infer Msg> ? Msg : true : "Failed to process SQL";
//# sourceMappingURL=matcher.d.ts.map
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/conditional/matcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACR,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACxB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,CAC9B,QAAQ,SAAS,MAAM,EACvB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,MAAM,SAAS,cAAc,IAG7B,qBAAqB,CACjB,QAAQ,EACR,iBAAiB,CAAC,UAAU,CAAC,CAChC,SAAS,MAAM,OAAO,SAAS,MAAM,GAEhC,qBAAqB,CACnB,QAAQ,EACR,kBAAkB,CAAC,UAAU,CAAC,CACjC,SAAS,MAAM,OAAO,SAAS,MAAM,GAEhC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,MAAM,UAAU,GACjD,UAAU,SAAS,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,GAClD,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,MAAM,UAAU,GACjD,UAAU,SAAS,UAAU,CAAC,MAAM,CAAC,GAEjC,UAAU,GACd,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,GACnD,UAAU,GACd,UAAU,CAAC,0BAA0B,CAAC,GAC1C,UAAU,CAAC,4BAA4B,CAAC,GACxC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,CAAC,IAAI,EAAE,IAAI,IAAI,OAAO,CAEnD;KACG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;CACjE,GAEC;KACG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAC9C,IAAI,CAAC,CAAC,CAAC,GACP,SAAS;CAClB,CACJ,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,YAAY,CACpB,QAAQ,SAAS,MAAM,EACvB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC1C,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAMhD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,CAC9B,QAAQ,SAAS,MAAM,EACvB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,MAAM,SAAS,cAAc,IAC7B,qBAAqB,CACrB,QAAQ,EACR,iBAAiB,CAAC,UAAU,CAAC,CAChC,SAAS,MAAM,OAAO,SAAS,MAAM,GAChC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAChE,IAAI,GACJ,uBAAuB,CAAC"}
/**
* Conditional SQL Matcher
*
* Integrates conditional SQL processing with the existing schema matcher.
* Handles optionality for columns in conditional blocks.
*/
export {};
//# sourceMappingURL=matcher.js.map
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/conditional/matcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
/**
* Conditional SQL Runtime Implementation
*
* Runtime processing of SQL templates with conditional blocks
* and parameter substitution.
*/
export type QueryParamValue = string | number | boolean | null;
export interface ConditionalSQLOptions {
/**
* If true, preserves conditional comment markers in output.
* Useful for debugging.
* @default false
*/
preserveMarkers?: boolean;
}
export interface ConditionalSQLOutput {
/** The processed SQL string with conditions applied */
sql: string;
/** The parameter values in order of appearance */
params: QueryParamValue[];
}
/**
* Process conditional blocks in a SQL template.
*
* @param template - SQL template with `/*if:condition* /.../*endif* /` blocks
* @param conditions - Object with condition values
* @returns Processed SQL string
*/
export declare function processConditionalSQL(template: string, conditions: Record<string, unknown>): string;
/**
* Extract named parameters from SQL and convert to positional placeholders.
*
* @param sql - SQL string with :paramName placeholders
* @param params - Object with parameter values
* @returns Object with processed SQL and ordered params array
*/
export declare function processParams(sql: string, params: Record<string, QueryParamValue>): ConditionalSQLOutput;
/**
* Process a conditional SQL template with both conditions and parameters.
*
* @param template - SQL template with conditional blocks and :params
* @param conditions - Object with condition values
* @param params - Object with parameter values
* @returns Processed SQL and params array
*/
export declare function conditionalSQL(template: string, conditions: Record<string, unknown>, params?: Record<string, QueryParamValue>): ConditionalSQLOutput;
/**
* Normalize whitespace in SQL (collapse multiple spaces/newlines).
* Useful for comparing or logging processed SQL.
*/
export declare function normalizeWhitespace(sql: string): string;
//# sourceMappingURL=runtime.d.ts.map
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/conditional/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACjC,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B;AA0BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,MAAM,CA6BR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACxC,oBAAoB,CA4BtB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAM,GAC7C,oBAAoB,CAMtB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOvD"}
/**
* Conditional SQL Runtime Implementation
*
* Runtime processing of SQL templates with conditional blocks
* and parameter substitution.
*/
// ============================================================================
// Core Runtime Implementation
// ============================================================================
/**
* Get a nested value from an object using dot notation.
*/
function getNestedValue(obj, path) {
const keys = path.split(".");
let current = obj;
for (const key of keys) {
if (current === null || current === undefined) {
return undefined;
}
if (typeof current !== "object") {
return undefined;
}
current = current[key];
}
return current;
}
/**
* Process conditional blocks in a SQL template.
*
* @param template - SQL template with `/*if:condition* /.../*endif* /` blocks
* @param conditions - Object with condition values
* @returns Processed SQL string
*/
export function processConditionalSQL(template, conditions) {
// Pattern matches /*if:condition*/ ... /*endif*/
// Uses negative lookahead to match innermost conditions first
const pattern = /\/\*if:(!?[\w.]+)\*\/((?:(?!\/\*if:)[\s\S])*?)\/\*endif\*\//g;
let result = template;
let hasMatches = true;
// Process iteratively to handle nested conditions
while (hasMatches) {
hasMatches = false;
result = result.replace(pattern, (_, condition, content) => {
hasMatches = true;
const isNegated = condition.startsWith("!");
const key = isNegated ? condition.slice(1) : condition;
const value = getNestedValue(conditions, key);
const isTruthy = Boolean(value);
return (isNegated ? !isTruthy : isTruthy) ? content : "";
});
}
return result;
}
/**
* Extract named parameters from SQL and convert to positional placeholders.
*
* @param sql - SQL string with :paramName placeholders
* @param params - Object with parameter values
* @returns Object with processed SQL and ordered params array
*/
export function processParams(sql, params) {
// Find all param references in order of first appearance
const paramRegex = /:([a-zA-Z_][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])/g;
const usedParams = [];
let match;
while ((match = paramRegex.exec(sql)) !== null) {
const name = match[1];
if (name in params && !usedParams.includes(name)) {
usedParams.push(name);
}
}
// Replace each param with positional placeholder
let processedSql = sql;
for (let i = 0; i < usedParams.length; i++) {
const name = usedParams[i];
const regex = new RegExp(`:${name}(?![a-zA-Z0-9_])`, "g");
processedSql = processedSql.replace(regex, `$${i + 1}`);
}
// Extract param values in order
const paramValues = usedParams.map(name => params[name]);
return {
sql: processedSql,
params: paramValues,
};
}
/**
* Process a conditional SQL template with both conditions and parameters.
*
* @param template - SQL template with conditional blocks and :params
* @param conditions - Object with condition values
* @param params - Object with parameter values
* @returns Processed SQL and params array
*/
export function conditionalSQL(template, conditions, params = {}) {
// Step 1: Process conditional blocks
const conditionalProcessed = processConditionalSQL(template, conditions);
// Step 2: Process parameters
return processParams(conditionalProcessed, params);
}
/**
* Normalize whitespace in SQL (collapse multiple spaces/newlines).
* Useful for comparing or logging processed SQL.
*/
export function normalizeWhitespace(sql) {
return sql
.replace(/\s+/g, " ")
.replace(/\s*,\s*/g, ", ")
.replace(/\s*\(\s*/g, "(")
.replace(/\s*\)\s*/g, ")")
.trim();
}
//# sourceMappingURL=runtime.js.map
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/conditional/runtime.ts"],"names":[],"mappings":"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"}
/**
* Conditional SQL Types
*
* Type-level processing of SQL templates with conditional blocks.
* Uses `/* if:condition * /.../* endif * /` syntax (without spaces in actual usage).
*
* Conditional blocks affect:
* - The resulting SQL string (excluded when condition is false)
* - Result type optionality (columns in conditional blocks get `| undefined`)
* - LEFT JOIN nullability: columns from LEFT/FULL JOINed tables get `| null`
*
* For conditional LEFT JOINs, columns get both: `T | null | undefined`
*/
/**
* Get a nested value type from an object type using dot notation path.
* @example GetPath<{ user: { isAdmin: true } }, "user.isAdmin"> // true
*/
export type GetPath<T, Path extends string> = Path extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? GetPath<T[Key], Rest> : undefined : Path extends keyof T ? T[Path] : undefined;
/**
* Check if a type is considered "truthy" at the type level.
*/
export type IsTruthy<T> = [
T
] extends [false | 0 | "" | null | undefined] ? false : [T] extends [never] ? false : [T] extends [boolean] ? ([boolean] extends [T] ? boolean : true) : [T] extends [string] ? ([string] extends [T] ? boolean : true) : [T] extends [number] ? ([number] extends [T] ? boolean : true) : true;
/**
* Evaluate a condition string against a data type.
* Supports negation with `!` prefix.
*/
export type EvalCondition<Cond extends string, Data> = Cond extends `!${infer Key}` ? IsTruthy<GetPath<Data, Key>> extends true ? false : IsTruthy<GetPath<Data, Key>> extends false ? true : boolean : IsTruthy<GetPath<Data, Cond>>;
/**
* Check if a string contains a specific pattern.
*/
type Contains<S extends string, Pattern extends string> = S extends `${string}${Pattern}${string}` ? true : false;
/**
* Check if any condition in the data object has an indeterminate type.
*/
type HasIndeterminateCondition<Template extends string, Data extends Record<string, unknown>> = Template extends `${string}/*if:${infer Cond}*/${infer Rest}` ? EvalCondition<Cond, Data> extends boolean ? boolean extends EvalCondition<Cond, Data> ? true : HasIndeterminateCondition<Rest, Data> : HasIndeterminateCondition<Rest, Data> : false;
/**
* Process the innermost conditional block.
* This handles nested conditions by processing from inside out.
*/
type ProcessInnermost<Template extends string, Data extends Record<string, unknown>> = Template extends `${infer Before}/*if:${infer Cond}*/${infer Content}/*endif*/${infer After}` ? Contains<Content, "/*if:"> extends true ? `${Before}/*if:${Cond}*/${ProcessInnermost<`${Content}/*endif*/${After}`, Data>}` : EvalCondition<Cond, Data> extends true ? `${Before}${Content}${After}` : EvalCondition<Cond, Data> extends false ? `${Before}${After}` : string : Template;
/**
* Recursively process all conditional blocks until none remain.
*/
export type ProcessConditionalSQL<Template extends string, Data extends Record<string, unknown>, Depth extends number[] = []> = HasIndeterminateCondition<Template, Data> extends true ? string : Depth["length"] extends 20 ? Template : Contains<Template, "/*if:"> extends true ? ProcessConditionalSQL<ProcessInnermost<Template, Data>, Data, [
...Depth,
0
]> : Template;
/**
* Create a version of Data where all boolean-like values are true.
* Used to compute the "maximum" result type (all conditional columns included).
*/
export type AllConditionsTrue<Data extends Record<string, unknown>> = {
[K in keyof Data]: Data[K] extends Record<string, unknown> ? AllConditionsTrue<Data[K]> : true;
};
/**
* Create a version of Data where all boolean-like values are false.
* Used to compute the "minimum" result type (no conditional columns).
*/
export type AllConditionsFalse<Data extends Record<string, unknown>> = {
[K in keyof Data]: Data[K] extends Record<string, unknown> ? AllConditionsFalse<Data[K]> : false;
};
/**
* Marker for columns that come from conditional SELECT clauses.
* These should be typed as `T | undefined` in the result.
*/
export type ConditionalColumn<T> = T | undefined;
/**
* Marker for columns from conditional LEFT JOINs.
* These should be typed as `T | null | undefined` in the result.
*/
export type ConditionalLeftJoinColumn<T> = T | null | undefined;
/**
* Extract conditional block markers from SQL for optionality tracking.
* Returns a structure describing which parts are conditional.
*/
export type ExtractConditionalInfo<Template extends string> = Template extends `${infer _Before}/*if:${infer Cond}*/${infer Content}/*endif*/${infer After}` ? {
condition: Cond;
content: Content;
hasSelect: Contains<Content, "SELECT"> extends true ? true : Contains<Content, "select"> extends true ? true : Contains<Content, ",">;
hasJoin: Contains<Content, "JOIN">;
isLeftJoin: Contains<Content, "LEFT JOIN"> extends true ? true : Contains<Content, "left join">;
rest: ExtractConditionalInfo<After>;
} : null;
/**
* The result type after processing conditional SQL.
* Contains both the processed SQL string and metadata for type inference.
*/
export interface ConditionalSQLResult<ProcessedSQL extends string, FullSQL extends string, ConditionalColumns extends string[] = []> {
/** The processed SQL string after applying conditions */
readonly sql: ProcessedSQL;
/** The full SQL (all conditions true) for type inference */
readonly fullSql: FullSQL;
/** Column names that are conditional (for | undefined) */
readonly conditionalColumns: ConditionalColumns;
}
/**
* Extract parameter names from a SQL string.
* Parameters are in the format :paramName
*/
export type ExtractParamNames<SQL extends string, Acc extends string[] = []> = SQL extends `${string}:${infer Name}${infer Rest}` ? Name extends `${infer ParamName}${" " | "," | ")" | "\n" | "\t"}` ? ExtractParamNames<Rest, [...Acc, ParamName]> : ExtractParamNames<Rest, [...Acc, Name]> : Acc;
/**
* Validate that all required params are provided.
*/
export type ValidateParams<SQL extends string, Params extends Record<string, unknown>> = ExtractParamNames<SQL> extends infer Names extends string[] ? Names[number] extends keyof Params ? true : `Missing parameter: ${Exclude<Names[number], keyof Params>}` : true;
export {};
//# sourceMappingURL=types.d.ts.map
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/conditional/types.ts"],"names":[],"mappings":"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"}
/**
* Conditional SQL Types
*
* Type-level processing of SQL templates with conditional blocks.
* Uses `/* if:condition * /.../* endif * /` syntax (without spaces in actual usage).
*
* Conditional blocks affect:
* - The resulting SQL string (excluded when condition is false)
* - Result type optionality (columns in conditional blocks get `| undefined`)
* - LEFT JOIN nullability: columns from LEFT/FULL JOINed tables get `| null`
*
* For conditional LEFT JOINs, columns get both: `T | null | undefined`
*/
export {};
//# sourceMappingURL=types.js.map
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/conditional/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
+2
-0

@@ -40,2 +40,4 @@ /**

export type { IsValidSelect, MergeOverrides, SelectBuilderResult, SelectBuilderResultArray, SelectResult, SelectResultArray, ValidQuery, ValidQueryBuilder, } from "./db.js";
export { conditionalSQL, createConditionalQuery, normalizeWhitespace, processConditionalSQL, processParams, withConditions, } from "./conditional/index.js";
export type { AllConditionsFalse, AllConditionsTrue, ConditionalColumn, ConditionalLeftJoinColumn, ConditionalQueryResult, ConditionalSQLOptions, ConditionalSQLOutput, EvalCondition, ExtractParamNames, ExtractResultType, GetPath, IsTruthy, ProcessConditionalSQL, ProcessedSQL, TypedConditionalSQLOutput, ValidateConditionalSQL, ValidateParams, ValidConditionalQuery, } from "./conditional/index.js";
//# sourceMappingURL=index.d.ts.map
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -43,2 +43,6 @@ /**

export { createSelectFn } from "./db.js";
// ============================================================================
// Conditional SQL
// ============================================================================
export { conditionalSQL, createConditionalQuery, normalizeWhitespace, processConditionalSQL, processParams, withConditions, } from "./conditional/index.js";
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA6GH,6CAA6C;AAC7C,OAAO;AACH,uBAAuB;AACvB,oBAAoB;AACpB,wBAAwB;AACxB,mBAAmB;AACnB,eAAe;EAClB,MAAM,mBAAmB,CAAC;AAgD3B,2CAA2C;AAC3C,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC;AAkG3B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA6GH,6CAA6C;AAC7C,OAAO;AACH,uBAAuB;AACvB,oBAAoB;AACpB,wBAAwB;AACxB,mBAAmB;AACnB,eAAe;EAClB,MAAM,mBAAmB,CAAC;AAgD3B,2CAA2C;AAC3C,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,GAC3B,MAAM,mBAAmB,CAAC;AAkG3B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAYzC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,OAAO,EACH,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,cAAc,GACjB,MAAM,wBAAwB,CAAC"}

@@ -61,3 +61,17 @@ /**

export type ExpressionType<Schema extends DatabaseSchema, State extends AnyBuilderStateTag, Expr extends string> = ExtractFinalCast<Expr> extends infer Cast extends string ? CastReturnType<NormalizeCastTarget<Cast>> : Expr extends `CAST(${string} AS ${infer Cast})${string}` ? CastReturnType<NormalizeCastTarget<Cast>> : Expr extends `COUNT${string}` ? number : Expr extends `(SELECT COUNT${string})` ? number : ColumnTypeForExpr<Schema, State, Expr> extends never ? unknown : ColumnTypeForExpr<Schema, State, Expr>;
export type ColumnRow<Schema extends DatabaseSchema, State extends AnyBuilderStateTag, Col extends string> = SplitAlias<Col> extends [
/**
* Expand all columns from a table given its resolved name.
* Returns all columns from the table in the default schema.
*/
export type ExpandTableColumns<Schema extends DatabaseSchema, TableName extends string> = TableName extends keyof SchemaTables<Schema> ? SchemaTables<Schema>[TableName] : {};
/**
* Expand alias.* wildcard to all columns from the aliased table.
* Resolves the alias using contextSQL, then expands all columns.
*/
export type ExpandAliasWildcard<Schema extends DatabaseSchema, State extends AnyBuilderStateTag, Alias extends string> = ResolveAliasToTable<State["contextSQL"], StripIdentifierQuotes<Alias>> extends infer ResolvedTable extends string ? ExpandTableColumns<Schema, ResolvedTable> : StripIdentifierQuotes<Alias> extends keyof SchemaTables<Schema> ? SchemaTables<Schema>[StripIdentifierQuotes<Alias>] : {};
/**
* Expand * wildcard to all columns from the primary FROM table.
*/
export type ExpandAllWildcard<Schema extends DatabaseSchema, State extends AnyBuilderStateTag> = PrimaryTable<Schema, State> extends infer FromTable extends string ? ExpandTableColumns<Schema, FromTable> : {};
export type ColumnRow<Schema extends DatabaseSchema, State extends AnyBuilderStateTag, Col extends string> = TrimStr<Col> extends "*" ? ExpandAllWildcard<Schema, State> : TrimStr<Col> extends `${infer Alias}.*` ? ExpandAliasWildcard<Schema, State, Alias> : SplitAlias<Col> extends [
infer Expr extends string,

@@ -64,0 +78,0 @@ infer Alias extends string | undefined

@@ -1,1 +0,1 @@

{"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../../../src/select/builder-types/helpers/schema-utils.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../../../src/select/builder-types/helpers/schema-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,OAAO,EACV,MAAM,mBAAmB,CAAC;AAM3B,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,cAAc,IACvD,MAAM,CAAC,eAAe,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;AAEvE,MAAM,MAAM,YAAY,CACpB,MAAM,SAAS,cAAc,IAC7B,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEjD,MAAM,MAAM,WAAW,CACnB,MAAM,SAAS,cAAc,IAC7B,OAAO,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAMhD,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,CAC5B,MAAM,SAAS,cAAc,EAC7B,OAAO,SAAS,MAAM,IACtB;KACC,KAAK,IAAI,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,SAAS,MAAM,YAAY,CACrE,MAAM,CACT,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GACzC,KAAK;CACd,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,GACvC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAC7B,CAAC,GACD,OAAO,CAAC;AAEd,MAAM,MAAM,mBAAmB,CAC3B,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,MAAM,EACpB,OAAO,SAAS,MAAM,IACtB,KAAK,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GACtC,OAAO,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAC7C,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GACxC,OAAO,GACP,OAAO,CAAC;AAMd;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAC3B,OAAO,SAAS,MAAM,GAAG,SAAS,EAClC,KAAK,SAAS,MAAM,IACpB,OAAO,SAAS,MAAM,GACpB,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,GAChD,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,GAC3D,CAAC,GACL,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,GACrC,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAC5B,OAAO,SAAS,MAAM,EACtB,KAAK,SAAS,MAAM,IACpB,OAAO,SAAS,GAAG,MAAM,QAAQ,MAAM,WAAW,EAAE,GAClD,6BAA6B,CAAC,WAAW,CAAC,SACxC,MAAM,SAAS,SAAS,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,GACpE,KAAK,GACL,KAAK,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,6BAA6B,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAC3D,GAAG,MAAM,MAAM,eAAe,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GACtD,CAAC,SAAS,GAAG,MAAM,MAAM,cAAc,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GACjE,CAAC,SAAS,GAAG,MAAM,MAAM,eAAe,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,MAAM,cAAc,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GACjE,CAAC,SAAS,GAAG,MAAM,MAAM,eAAe,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC5D,CAAC,SAAS,GAAG,MAAM,MAAM,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC7D,CAAC,SAAS,GAAG,MAAM,MAAM,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC7D,CAAC,SAAS,GAAG,MAAM,MAAM,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC7D,CAAC,SAAS,GAAG,MAAM,MAAM,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC7D,CAAC,SAAS,GAAG,MAAM,MAAM,WAAW,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC9D,CAAC,SAAS,GAAG,MAAM,MAAM,WAAW,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC9D,CAAC,SAAS,GAAG,MAAM,MAAM,UAAU,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAC7D,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,eAAe,CACvB,IAAI,SAAS,MAAM,EACnB,KAAK,SAAS,MAAM,IAGpB,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,OAAO,MAAM,UAAU,EAAE,GACvD,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACpE,KAAK,GAEL,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,OAAO,MAAM,UAAU,EAAE,GACzD,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,GAC7B,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACpC,KAAK,GAET,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,UAAU,EAAE,GACtD,OAAO,CAAC,UAAU,CAAC,SAAS,KAAK,GAC7B,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GACpC,KAAK,GACT,KAAK,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAC9C,GAAG,MAAM,OAAO,IAAI,MAAM,KAAK,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAC9D,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAC7B,OAAO,SAAS,MAAM,EACtB,KAAK,SAAS,MAAM,IACpB,OAAO,SAAS,GAAG,MAAM,QAAQ,MAAM,WAAW,OAAO,MAAM,OAAO,EAAE,GACtE,6BAA6B,CAAC,WAAW,CAAC,SACxC,MAAM,QAAQ,SAAS,MAAM,GAC3B,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,GACnE,qBAAqB,CAAC,QAAQ,OAAO,EAAE,EAAE,KAAK,CAAC,GACnD,qBAAqB,CAAC,QAAQ,OAAO,EAAE,EAAE,KAAK,CAAC,GAC/C,KAAK,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,YAAY,CACpB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,IAChC,KAAK,CAAC,WAAW,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GAAG,IAAI,GACzD,KAAK,CAAC,YAAY,CAAC,SAAS,QAAQ,MAAM,OAAO,EAAE,GAC/C,aAAa,CAAC,OAAO,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CAAE,GAAG,CAAC,GACrE,KAAK,GACT,KAAK,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,8BAA8B,CACtC,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,EAChC,YAAY,SAAS,MAAM,IAG3B,qBAAqB,CAAC,YAAY,CAAC,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GAChE,qBAAqB,CAAC,YAAY,CAAC,GAEnC,mBAAmB,CACjB,KAAK,CAAC,YAAY,CAAC,EACnB,YAAY,CACf,SAAS,MAAM,QAAQ,SAAS,MAAM,GAAG,QAAQ,GAChD,KAAK,CAAC;AAMhB,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,CACzB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,EAChC,IAAI,SAAS,MAAM,IACnB,UAAU,CAAC,IAAI,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,GACvE,IAAI,SAAS,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,MAAM,GAC5C,IAAI,SAAS,QAAQ,MAAM,EAAE,GAAG,MAAM,GACtC,IAAI,SAAS,GAAG,MAAM,YAAY,IAAI,MAAM,EAAE,GAC1C,8BAA8B,CAC5B,MAAM,EACN,KAAK,EACL,YAAY,CACf,SAAS,MAAM,aAAa,SAAS,MAAM,GAAG,mBAAmB,CAC1D,MAAM,EACN,aAAa,EACb,uBAAuB,CAAC,IAAI,CAAC,CAChC,SAAS,MAAM,OAAO,SAAS,OAAO,GACjC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,oBAAoB,CAChD,MAAM,EACN,uBAAuB,CAAC,IAAI,CAAC,CAChC,GACH,OAAO,GACX,OAAO,GACX,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,GAC/D,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GACzD,mBAAmB,CACjB,MAAM,EACN,IAAI,EACJ,uBAAuB,CAAC,IAAI,CAAC,CAChC,SAAS,MAAM,QAAQ,SAAS,OAAO,GAClC,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC5B,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,GAC/D,QAAQ,GACZ,OAAO,GACX,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AAElE,MAAM,MAAM,cAAc,CACtB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,EAChC,IAAI,SAAS,MAAM,IACnB,gBAAgB,CAAC,IAAI,CAAC,SAAS,MAAM,IAAI,SAAS,MAAM,GACtD,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GACzC,IAAI,SAAS,QAAQ,MAAM,OAAO,MAAM,IAAI,IAAI,MAAM,EAAE,GACpD,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAC7C,IAAI,SAAS,QAAQ,MAAM,EAAE,GAAG,MAAM,GACtC,IAAI,SAAS,gBAAgB,MAAM,GAAG,GAAG,MAAM,GAC/C,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,GAC9D,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAE7C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAC1B,MAAM,SAAS,cAAc,EAC7B,SAAS,SAAS,MAAM,IACxB,SAAS,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GAC1C,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAC/B,EAAE,CAAC;AAET;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAC3B,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,EAChC,KAAK,SAAS,MAAM,IACpB,mBAAmB,CACnB,KAAK,CAAC,YAAY,CAAC,EACnB,qBAAqB,CAAC,KAAK,CAAC,CAC/B,SAAS,MAAM,aAAa,SAAS,MAAM,GACtC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,GACzC,qBAAqB,CAAC,KAAK,CAAC,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GAC3D,YAAY,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,GACtD,EAAE,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,iBAAiB,CACzB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,IAChC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,MAAM,SAAS,SAAS,MAAM,GAChE,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,GACrC,EAAE,CAAC;AAET,MAAM,MAAM,SAAS,CACjB,MAAM,SAAS,cAAc,EAC7B,KAAK,SAAS,kBAAkB,EAChC,GAAG,SAAS,MAAM,IAClB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,GACtB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,GAChC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,GACnC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAC7C,UAAU,CAAC,GAAG,CAAC,SAAS;IACtB,MAAM,IAAI,SAAS,MAAM;IACzB,MAAM,KAAK,SAAS,MAAM,GAAG,SAAS;CACzC,GAAG;KAEQ,CAAC,IAAI,KAAK,SAAS,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAClD,uBAAuB,CAAC,IAAI,CAAC,GACpC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;CACzC,GACH;KACG,CAAC,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,cAAc,CAC/C,MAAM,EACN,KAAK,EACL,GAAG,CACN;CACJ,CAAC"}

@@ -76,7 +76,30 @@ /**

/**
* Nullify all columns in a table context for outer joins.
* For { alias: { col1: T1, col2: T2 } } → { alias: { col1: T1 | null, col2: T2 | null } }
*/
type NullifyTableColumns<T> = {
[Alias in keyof T]: {
[Col in keyof T[Alias]]: T[Alias][Col] | null;
};
};
/**
* Join types that produce nullable columns on the joined table.
* - LEFT JOIN: joined (right) table columns may be null when no match
* - FULL JOIN: both sides may be null, we can only apply to joined table here
*
* Note: RIGHT JOIN should make the FROM table nullable, not the joined table.
* This requires a different approach (tracking nullable aliases separately).
* For now, RIGHT JOIN is treated like INNER JOIN for nullability purposes.
*/
type NullableJoinType = "LEFT" | "LEFT OUTER" | "FULL" | "FULL OUTER";
/**
* Merge JOIN tables into the context
* Note: We don't flatten during recursion to reduce type depth.
* The intersection is only flattened once at the end.
*
* For LEFT and FULL joins, columns from the joined table are marked as nullable
* because they may be NULL when there's no matching row.
*/
export type MergeJoinContexts<Context, Joins extends JoinClause[], Schema extends DatabaseSchema, CTEContext = {}> = Joins extends [infer First, ...infer Rest] ? First extends JoinClause<infer _Type, infer JoinTable, infer _On> ? ResolveTableSource<JoinTable, Schema, CTEContext> extends infer JoinContext ? JoinContext extends MatchError<string> ? JoinContext : Rest extends JoinClause[] ? MergeJoinContexts<Context & JoinContext, Rest, Schema, CTEContext> : Context & JoinContext : never : Context : Context;
export type MergeJoinContexts<Context, Joins extends JoinClause[], Schema extends DatabaseSchema, CTEContext = {}> = Joins extends [infer First, ...infer Rest] ? First extends JoinClause<infer Type, infer JoinTable, infer _On> ? ResolveTableSource<JoinTable, Schema, CTEContext> extends infer JoinContext ? JoinContext extends MatchError<string> ? JoinContext : Type extends NullableJoinType ? Rest extends JoinClause[] ? MergeJoinContexts<Context & NullifyTableColumns<JoinContext>, Rest, Schema, CTEContext> : Context & NullifyTableColumns<JoinContext> : Rest extends JoinClause[] ? MergeJoinContexts<Context & JoinContext, Rest, Schema, CTEContext> : Context & JoinContext : never : Context : Context;
export {};
//# sourceMappingURL=context.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/select/matcher/context.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/select/matcher/context.ts"],"names":[],"mappings":"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"}
{
"name": "@kuindji/sql-type-parser",
"version": "0.4.20",
"version": "0.4.21",
"description": "Type-level SQL parser for TypeScript",

@@ -5,0 +5,0 @@ "author": "Ivan Kuindzhi",