@access-dlsu/leapify 0.260506.1 → 0.260507.1
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/app.d.ts.map +1 -1
- package/dist/{bun-sqlite-dialect-na--YwnN-QDBSQQTR.cjs → bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs} +10 -10
- package/dist/{bun-sqlite-dialect-na--YwnN-QDBSQQTR.cjs.map → bun-sqlite-dialect-na--YwnN-NIYANHVJ.cjs.map} +1 -1
- package/dist/{bun-sqlite-dialect-na--YwnN-CVHVB5NF.js → bun-sqlite-dialect-na--YwnN-XVQNOKSL.js} +4 -4
- package/dist/{bun-sqlite-dialect-na--YwnN-CVHVB5NF.js.map → bun-sqlite-dialect-na--YwnN-XVQNOKSL.js.map} +1 -1
- package/dist/chunk-5JKLV7IE.cjs +649 -649
- package/dist/chunk-5JKLV7IE.cjs.map +1 -1
- package/dist/{chunk-DPPGYCX3.cjs → chunk-5OQD5ALM.cjs} +8 -4
- package/dist/chunk-5OQD5ALM.cjs.map +1 -0
- package/dist/{chunk-UWXYXU7J.cjs → chunk-6MMWL46O.cjs} +379 -375
- package/dist/chunk-6MMWL46O.cjs.map +1 -0
- package/dist/{chunk-EIF2O2BG.js → chunk-FUCJEA2S.js} +18 -9
- package/dist/chunk-FUCJEA2S.js.map +1 -0
- package/dist/chunk-GNRL67OU.js +649 -649
- package/dist/chunk-GNRL67OU.js.map +1 -1
- package/dist/{chunk-ZYHBHSSO.js → chunk-JIZPYG6H.js} +7 -3
- package/dist/chunk-JIZPYG6H.js.map +1 -0
- package/dist/{chunk-XY4KBWXT.cjs → chunk-JQSZJWBN.cjs} +13 -4
- package/dist/chunk-JQSZJWBN.cjs.map +1 -0
- package/dist/{chunk-FTSMZYD7.js → chunk-MY37YE52.js} +13 -4
- package/dist/chunk-MY37YE52.js.map +1 -0
- package/dist/{chunk-57ANXUP7.cjs → chunk-OK6RVPEH.cjs} +319 -310
- package/dist/chunk-OK6RVPEH.cjs.map +1 -0
- package/dist/{chunk-SXBTHGIL.js → chunk-XJSWMHDL.js} +7 -3
- package/dist/chunk-XJSWMHDL.js.map +1 -0
- package/dist/client/index.cjs +69 -0
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.ts +51 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +69 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +33 -15
- package/dist/client/types.d.ts.map +1 -1
- package/dist/cron/reminder-emails.d.ts.map +1 -1
- package/dist/{d1-sqlite-dialect-C2B7YsIT-CEUMIZZI.js → d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js} +4 -4
- package/dist/{d1-sqlite-dialect-C2B7YsIT-CEUMIZZI.js.map → d1-sqlite-dialect-C2B7YsIT-6TVV7EJ5.js.map} +1 -1
- package/dist/{d1-sqlite-dialect-C2B7YsIT-JUX3YYMX.cjs → d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs} +7 -7
- package/dist/{d1-sqlite-dialect-C2B7YsIT-JUX3YYMX.cjs.map → d1-sqlite-dialect-C2B7YsIT-PE74FLHQ.cjs.map} +1 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/schema/events.d.ts +65 -58
- package/dist/db/schema/events.d.ts.map +1 -1
- package/dist/db/schema/faqs.d.ts +0 -17
- package/dist/db/schema/faqs.d.ts.map +1 -1
- package/dist/db/schema/index.d.ts +1 -0
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/organizations.d.ts +125 -0
- package/dist/db/schema/organizations.d.ts.map +1 -0
- package/dist/db/schema/themes.d.ts +0 -19
- package/dist/db/schema/themes.d.ts.map +1 -1
- package/dist/index.cjs +1927 -1005
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1915 -995
- package/dist/index.js.map +1 -1
- package/dist/kysely-adapter-C76KJVG7.js +10 -0
- package/dist/{kysely-adapter-6CZEASJQ.js.map → kysely-adapter-C76KJVG7.js.map} +1 -1
- package/dist/kysely-adapter-TGY4UUP5.cjs +27 -0
- package/dist/{kysely-adapter-5ZCECLNV.cjs.map → kysely-adapter-TGY4UUP5.cjs.map} +1 -1
- package/dist/{node-sqlite-dialect-QUBEEKKU.cjs → node-sqlite-dialect-B3H37T3R.cjs} +10 -10
- package/dist/{node-sqlite-dialect-QUBEEKKU.cjs.map → node-sqlite-dialect-B3H37T3R.cjs.map} +1 -1
- package/dist/{node-sqlite-dialect-HEMUZ4B2.js → node-sqlite-dialect-GDP7ZE54.js} +4 -4
- package/dist/{node-sqlite-dialect-HEMUZ4B2.js.map → node-sqlite-dialect-GDP7ZE54.js.map} +1 -1
- package/dist/queues/handlers.d.ts.map +1 -1
- package/dist/routes/events.d.ts.map +1 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/organizations.d.ts +4 -0
- package/dist/routes/organizations.d.ts.map +1 -0
- package/dist/routes/themes.d.ts.map +1 -1
- package/dist/routes/users.d.ts.map +1 -1
- package/dist/services/contentful-management.d.ts +6 -21
- package/dist/services/contentful-management.d.ts.map +1 -1
- package/dist/services/resend.d.ts +2 -1
- package/dist/services/resend.d.ts.map +1 -1
- package/dist/services/snapshot.d.ts +14 -9
- package/dist/services/snapshot.d.ts.map +1 -1
- package/dist/worker.js +2755 -1808
- package/dist/worker.js.map +1 -1
- package/package.json +2 -1
- package/dist/chunk-57ANXUP7.cjs.map +0 -1
- package/dist/chunk-DPPGYCX3.cjs.map +0 -1
- package/dist/chunk-EIF2O2BG.js.map +0 -1
- package/dist/chunk-FTSMZYD7.js.map +0 -1
- package/dist/chunk-SXBTHGIL.js.map +0 -1
- package/dist/chunk-UWXYXU7J.cjs.map +0 -1
- package/dist/chunk-XY4KBWXT.cjs.map +0 -1
- package/dist/chunk-ZYHBHSSO.js.map +0 -1
- package/dist/kysely-adapter-5ZCECLNV.cjs +0 -27
- package/dist/kysely-adapter-6CZEASJQ.js +0 -10
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/kysely/dist/esm/util/object-utils.js","../node_modules/kysely/dist/esm/operation-node/create-table-node.js","../node_modules/kysely/dist/esm/operation-node/insert-query-node.js","../node_modules/kysely/dist/esm/operation-node/operation-node-visitor.js","../node_modules/kysely/dist/esm/operation-node/operator-node.js","../node_modules/kysely/dist/esm/operation-node/parens-node.js","../node_modules/kysely/dist/esm/operation-node/raw-node.js","../node_modules/kysely/dist/esm/operation-node/identifier-node.js","../node_modules/kysely/dist/esm/operation-node/schemable-identifier-node.js","../node_modules/kysely/dist/esm/operation-node/create-view-node.js","../node_modules/kysely/dist/esm/operation-node/set-operation-node.js","../node_modules/kysely/dist/esm/operation-node/when-node.js","../node_modules/kysely/dist/esm/util/log-once.js","../node_modules/kysely/dist/esm/query-compiler/default-query-compiler.js","../node_modules/kysely/dist/esm/operation-node/alias-node.js","../node_modules/kysely/dist/esm/operation-node/and-node.js","../node_modules/kysely/dist/esm/operation-node/or-node.js","../node_modules/kysely/dist/esm/operation-node/on-node.js","../node_modules/kysely/dist/esm/operation-node/join-node.js","../node_modules/kysely/dist/esm/operation-node/list-node.js","../node_modules/kysely/dist/esm/util/require-all-props.js","../node_modules/kysely/dist/esm/operation-node/operation-node-transformer.js","../node_modules/kysely/dist/esm/operation-node/table-node.js","../node_modules/kysely/dist/esm/operation-node/using-node.js","../node_modules/kysely/dist/esm/plugin/with-schema/with-schema-transformer.js","../node_modules/kysely/dist/esm/plugin/with-schema/with-schema-plugin.js","../node_modules/kysely/dist/esm/migration/migrator.js"],"names":[],"mappings":"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","file":"chunk-XY4KBWXT.cjs","sourcesContent":["/// <reference types=\"./object-utils.d.ts\" />\nexport function isEmpty(obj) {\n if (Array.isArray(obj) || isString(obj) || isBuffer(obj)) {\n return obj.length === 0;\n }\n else if (obj) {\n return Object.keys(obj).length === 0;\n }\n return false;\n}\nexport function isUndefined(obj) {\n return typeof obj === 'undefined' || obj === undefined;\n}\nexport function isString(obj) {\n return typeof obj === 'string';\n}\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\nexport function isBoolean(obj) {\n return typeof obj === 'boolean';\n}\nexport function isNull(obj) {\n return obj === null;\n}\nexport function isDate(obj) {\n return obj instanceof Date;\n}\nexport function isBigInt(obj) {\n return typeof obj === 'bigint';\n}\n// Don't change the returnd type to `obj is Buffer` to not create a\n// hard dependency to node.\nexport function isBuffer(obj) {\n return typeof Buffer !== 'undefined' && Buffer.isBuffer(obj);\n}\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\nexport function isObject(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nexport function isArrayBufferOrView(obj) {\n return obj instanceof ArrayBuffer || ArrayBuffer.isView(obj);\n}\nexport function isPlainObject(obj) {\n if (!isObject(obj) || getTag(obj) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(obj) === null) {\n return true;\n }\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n}\nexport function getLast(arr) {\n return arr[arr.length - 1];\n}\nexport function freeze(obj) {\n return Object.freeze(obj);\n}\nexport function asArray(arg) {\n if (isReadonlyArray(arg)) {\n return arg;\n }\n else {\n return [arg];\n }\n}\nexport function asReadonlyArray(arg) {\n if (isReadonlyArray(arg)) {\n return arg;\n }\n else {\n return freeze([arg]);\n }\n}\nexport function isReadonlyArray(arg) {\n return Array.isArray(arg);\n}\nexport function noop(obj) {\n return obj;\n}\nexport function compare(obj1, obj2) {\n if (isReadonlyArray(obj1) && isReadonlyArray(obj2)) {\n return compareArrays(obj1, obj2);\n }\n else if (isObject(obj1) && isObject(obj2)) {\n return compareObjects(obj1, obj2);\n }\n return obj1 === obj2;\n}\nfunction compareArrays(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0; i < arr1.length; ++i) {\n if (!compare(arr1[i], arr2[i])) {\n return false;\n }\n }\n return true;\n}\nfunction compareObjects(obj1, obj2) {\n if (isBuffer(obj1) && isBuffer(obj2)) {\n return compareBuffers(obj1, obj2);\n }\n else if (isDate(obj1) && isDate(obj2)) {\n return compareDates(obj1, obj2);\n }\n return compareGenericObjects(obj1, obj2);\n}\nfunction compareBuffers(buf1, buf2) {\n return Buffer.compare(buf1, buf2) === 0;\n}\nfunction compareDates(date1, date2) {\n return date1.getTime() === date2.getTime();\n}\nfunction compareGenericObjects(obj1, obj2) {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n if (!compare(obj1[key], obj2[key])) {\n return false;\n }\n }\n return true;\n}\nconst toString = Object.prototype.toString;\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return toString.call(value);\n}\n","/// <reference types=\"./create-table-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nexport const ON_COMMIT_ACTIONS = ['preserve rows', 'delete rows', 'drop'];\n/**\n * @internal\n */\nexport const CreateTableNode = freeze({\n is(node) {\n return node.kind === 'CreateTableNode';\n },\n create(table) {\n return freeze({\n kind: 'CreateTableNode',\n table,\n columns: freeze([]),\n });\n },\n cloneWithColumn(createTable, column) {\n return freeze({\n ...createTable,\n columns: freeze([...createTable.columns, column]),\n });\n },\n cloneWithConstraint(createTable, constraint) {\n return freeze({\n ...createTable,\n constraints: createTable.constraints\n ? freeze([...createTable.constraints, constraint])\n : freeze([constraint]),\n });\n },\n cloneWithFrontModifier(createTable, modifier) {\n return freeze({\n ...createTable,\n frontModifiers: createTable.frontModifiers\n ? freeze([...createTable.frontModifiers, modifier])\n : freeze([modifier]),\n });\n },\n cloneWithEndModifier(createTable, modifier) {\n return freeze({\n ...createTable,\n endModifiers: createTable.endModifiers\n ? freeze([...createTable.endModifiers, modifier])\n : freeze([modifier]),\n });\n },\n cloneWith(createTable, params) {\n return freeze({\n ...createTable,\n ...params,\n });\n },\n});\n","/// <reference types=\"./insert-query-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const InsertQueryNode = freeze({\n is(node) {\n return node.kind === 'InsertQueryNode';\n },\n create(into, withNode, replace) {\n return freeze({\n kind: 'InsertQueryNode',\n into,\n ...(withNode && { with: withNode }),\n replace,\n });\n },\n createWithoutInto() {\n return freeze({\n kind: 'InsertQueryNode',\n });\n },\n cloneWith(insertQuery, props) {\n return freeze({\n ...insertQuery,\n ...props,\n });\n },\n});\n","/// <reference types=\"./operation-node-visitor.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nexport class OperationNodeVisitor {\n nodeStack = [];\n get parentNode() {\n return this.nodeStack[this.nodeStack.length - 2];\n }\n #visitors = freeze({\n AliasNode: this.visitAlias.bind(this),\n ColumnNode: this.visitColumn.bind(this),\n IdentifierNode: this.visitIdentifier.bind(this),\n SchemableIdentifierNode: this.visitSchemableIdentifier.bind(this),\n RawNode: this.visitRaw.bind(this),\n ReferenceNode: this.visitReference.bind(this),\n SelectQueryNode: this.visitSelectQuery.bind(this),\n SelectionNode: this.visitSelection.bind(this),\n TableNode: this.visitTable.bind(this),\n FromNode: this.visitFrom.bind(this),\n SelectAllNode: this.visitSelectAll.bind(this),\n AndNode: this.visitAnd.bind(this),\n OrNode: this.visitOr.bind(this),\n ValueNode: this.visitValue.bind(this),\n ValueListNode: this.visitValueList.bind(this),\n PrimitiveValueListNode: this.visitPrimitiveValueList.bind(this),\n ParensNode: this.visitParens.bind(this),\n JoinNode: this.visitJoin.bind(this),\n OperatorNode: this.visitOperator.bind(this),\n WhereNode: this.visitWhere.bind(this),\n InsertQueryNode: this.visitInsertQuery.bind(this),\n DeleteQueryNode: this.visitDeleteQuery.bind(this),\n ReturningNode: this.visitReturning.bind(this),\n CreateTableNode: this.visitCreateTable.bind(this),\n AddColumnNode: this.visitAddColumn.bind(this),\n ColumnDefinitionNode: this.visitColumnDefinition.bind(this),\n DropTableNode: this.visitDropTable.bind(this),\n DataTypeNode: this.visitDataType.bind(this),\n OrderByNode: this.visitOrderBy.bind(this),\n OrderByItemNode: this.visitOrderByItem.bind(this),\n GroupByNode: this.visitGroupBy.bind(this),\n GroupByItemNode: this.visitGroupByItem.bind(this),\n UpdateQueryNode: this.visitUpdateQuery.bind(this),\n ColumnUpdateNode: this.visitColumnUpdate.bind(this),\n LimitNode: this.visitLimit.bind(this),\n OffsetNode: this.visitOffset.bind(this),\n OnConflictNode: this.visitOnConflict.bind(this),\n OnDuplicateKeyNode: this.visitOnDuplicateKey.bind(this),\n CreateIndexNode: this.visitCreateIndex.bind(this),\n DropIndexNode: this.visitDropIndex.bind(this),\n ListNode: this.visitList.bind(this),\n PrimaryKeyConstraintNode: this.visitPrimaryKeyConstraint.bind(this),\n UniqueConstraintNode: this.visitUniqueConstraint.bind(this),\n ReferencesNode: this.visitReferences.bind(this),\n CheckConstraintNode: this.visitCheckConstraint.bind(this),\n WithNode: this.visitWith.bind(this),\n CommonTableExpressionNode: this.visitCommonTableExpression.bind(this),\n CommonTableExpressionNameNode: this.visitCommonTableExpressionName.bind(this),\n HavingNode: this.visitHaving.bind(this),\n CreateSchemaNode: this.visitCreateSchema.bind(this),\n DropSchemaNode: this.visitDropSchema.bind(this),\n AlterTableNode: this.visitAlterTable.bind(this),\n DropColumnNode: this.visitDropColumn.bind(this),\n RenameColumnNode: this.visitRenameColumn.bind(this),\n AlterColumnNode: this.visitAlterColumn.bind(this),\n ModifyColumnNode: this.visitModifyColumn.bind(this),\n AddConstraintNode: this.visitAddConstraint.bind(this),\n DropConstraintNode: this.visitDropConstraint.bind(this),\n RenameConstraintNode: this.visitRenameConstraint.bind(this),\n ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),\n CreateViewNode: this.visitCreateView.bind(this),\n RefreshMaterializedViewNode: this.visitRefreshMaterializedView.bind(this),\n DropViewNode: this.visitDropView.bind(this),\n GeneratedNode: this.visitGenerated.bind(this),\n DefaultValueNode: this.visitDefaultValue.bind(this),\n OnNode: this.visitOn.bind(this),\n ValuesNode: this.visitValues.bind(this),\n SelectModifierNode: this.visitSelectModifier.bind(this),\n CreateTypeNode: this.visitCreateType.bind(this),\n DropTypeNode: this.visitDropType.bind(this),\n ExplainNode: this.visitExplain.bind(this),\n DefaultInsertValueNode: this.visitDefaultInsertValue.bind(this),\n AggregateFunctionNode: this.visitAggregateFunction.bind(this),\n OverNode: this.visitOver.bind(this),\n PartitionByNode: this.visitPartitionBy.bind(this),\n PartitionByItemNode: this.visitPartitionByItem.bind(this),\n SetOperationNode: this.visitSetOperation.bind(this),\n BinaryOperationNode: this.visitBinaryOperation.bind(this),\n UnaryOperationNode: this.visitUnaryOperation.bind(this),\n UsingNode: this.visitUsing.bind(this),\n FunctionNode: this.visitFunction.bind(this),\n CaseNode: this.visitCase.bind(this),\n WhenNode: this.visitWhen.bind(this),\n JSONReferenceNode: this.visitJSONReference.bind(this),\n JSONPathNode: this.visitJSONPath.bind(this),\n JSONPathLegNode: this.visitJSONPathLeg.bind(this),\n JSONOperatorChainNode: this.visitJSONOperatorChain.bind(this),\n TupleNode: this.visitTuple.bind(this),\n MergeQueryNode: this.visitMergeQuery.bind(this),\n MatchedNode: this.visitMatched.bind(this),\n AddIndexNode: this.visitAddIndex.bind(this),\n CastNode: this.visitCast.bind(this),\n FetchNode: this.visitFetch.bind(this),\n TopNode: this.visitTop.bind(this),\n OutputNode: this.visitOutput.bind(this),\n OrActionNode: this.visitOrAction.bind(this),\n CollateNode: this.visitCollate.bind(this),\n });\n visitNode = (node) => {\n this.nodeStack.push(node);\n this.#visitors[node.kind](node);\n this.nodeStack.pop();\n };\n}\n","/// <reference types=\"./operator-node.d.ts\" />\nimport { freeze, isString } from '../util/object-utils.js';\nexport const COMPARISON_OPERATORS = [\n '=',\n '==',\n '!=',\n '<>',\n '>',\n '>=',\n '<',\n '<=',\n 'in',\n 'not in',\n 'is',\n 'is not',\n 'like',\n 'not like',\n 'match',\n 'ilike',\n 'not ilike',\n '@>',\n '<@',\n '^@',\n '&&',\n '?',\n '?&',\n '?|',\n '!<',\n '!>',\n '<=>',\n '!~',\n '~',\n '~*',\n '!~*',\n '@@',\n '@@@',\n '!!',\n '<->',\n 'regexp',\n 'is distinct from',\n 'is not distinct from',\n];\nexport const ARITHMETIC_OPERATORS = [\n '+',\n '-',\n '*',\n '/',\n '%',\n '^',\n '&',\n '|',\n '#',\n '<<',\n '>>',\n];\nexport const JSON_OPERATORS = ['->', '->>'];\nexport const BINARY_OPERATORS = [\n ...COMPARISON_OPERATORS,\n ...ARITHMETIC_OPERATORS,\n '&&',\n '||',\n];\nexport const UNARY_FILTER_OPERATORS = ['exists', 'not exists'];\nexport const UNARY_OPERATORS = ['not', '-', ...UNARY_FILTER_OPERATORS];\nexport const OPERATORS = [\n ...BINARY_OPERATORS,\n ...JSON_OPERATORS,\n ...UNARY_OPERATORS,\n 'between',\n 'between symmetric',\n];\n/**\n * @internal\n */\nexport const OperatorNode = freeze({\n is(node) {\n return node.kind === 'OperatorNode';\n },\n create(operator) {\n return freeze({\n kind: 'OperatorNode',\n operator,\n });\n },\n});\nexport function isOperator(op) {\n return isString(op) && OPERATORS.includes(op);\n}\nexport function isBinaryOperator(op) {\n return isString(op) && BINARY_OPERATORS.includes(op);\n}\nexport function isComparisonOperator(op) {\n return isString(op) && COMPARISON_OPERATORS.includes(op);\n}\nexport function isArithmeticOperator(op) {\n return isString(op) && ARITHMETIC_OPERATORS.includes(op);\n}\nexport function isJSONOperator(op) {\n return isString(op) && JSON_OPERATORS.includes(op);\n}\n","/// <reference types=\"./parens-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const ParensNode = freeze({\n is(node) {\n return node.kind === 'ParensNode';\n },\n create(node) {\n return freeze({\n kind: 'ParensNode',\n node,\n });\n },\n});\n","/// <reference types=\"./raw-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const RawNode = freeze({\n is(node) {\n return node.kind === 'RawNode';\n },\n create(sqlFragments, parameters) {\n return freeze({\n kind: 'RawNode',\n sqlFragments: freeze(sqlFragments),\n parameters: freeze(parameters),\n });\n },\n createWithSql(sql) {\n return RawNode.create([sql], []);\n },\n createWithChild(child) {\n return RawNode.create(['', ''], [child]);\n },\n createWithChildren(children) {\n return RawNode.create(new Array(children.length + 1).fill(''), children);\n },\n});\n","/// <reference types=\"./identifier-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const IdentifierNode = freeze({\n is(node) {\n return node.kind === 'IdentifierNode';\n },\n create(name) {\n return freeze({\n kind: 'IdentifierNode',\n name,\n });\n },\n});\n","/// <reference types=\"./schemable-identifier-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { IdentifierNode } from './identifier-node.js';\n/**\n * @internal\n */\nexport const SchemableIdentifierNode = freeze({\n is(node) {\n return node.kind === 'SchemableIdentifierNode';\n },\n create(identifier) {\n return freeze({\n kind: 'SchemableIdentifierNode',\n identifier: IdentifierNode.create(identifier),\n });\n },\n createWithSchema(schema, identifier) {\n return freeze({\n kind: 'SchemableIdentifierNode',\n schema: IdentifierNode.create(schema),\n identifier: IdentifierNode.create(identifier),\n });\n },\n});\n","/// <reference types=\"./create-view-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { SchemableIdentifierNode } from './schemable-identifier-node.js';\n/**\n * @internal\n */\nexport const CreateViewNode = freeze({\n is(node) {\n return node.kind === 'CreateViewNode';\n },\n create(name) {\n return freeze({\n kind: 'CreateViewNode',\n name: SchemableIdentifierNode.create(name),\n });\n },\n cloneWith(createView, params) {\n return freeze({\n ...createView,\n ...params,\n });\n },\n});\n","/// <reference types=\"./set-operation-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const SetOperationNode = freeze({\n is(node) {\n return node.kind === 'SetOperationNode';\n },\n create(operator, expression, all) {\n return freeze({\n kind: 'SetOperationNode',\n operator,\n expression,\n all,\n });\n },\n});\n","/// <reference types=\"./when-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const WhenNode = freeze({\n is(node) {\n return node.kind === 'WhenNode';\n },\n create(condition) {\n return freeze({\n kind: 'WhenNode',\n condition,\n });\n },\n cloneWithResult(whenNode, result) {\n return freeze({\n ...whenNode,\n result,\n });\n },\n});\n","/// <reference types=\"./log-once.d.ts\" />\nconst LOGGED_MESSAGES = new Set();\n/**\n * Use for system-level logging, such as deprecation messages.\n * Logs a message and ensures it won't be logged again.\n */\nexport function logOnce(message) {\n if (LOGGED_MESSAGES.has(message)) {\n return;\n }\n LOGGED_MESSAGES.add(message);\n console.log(message);\n}\n","/// <reference types=\"./default-query-compiler.d.ts\" />\nimport { CreateTableNode } from '../operation-node/create-table-node.js';\nimport { InsertQueryNode } from '../operation-node/insert-query-node.js';\nimport { OperationNodeVisitor } from '../operation-node/operation-node-visitor.js';\nimport { OperatorNode } from '../operation-node/operator-node.js';\nimport { ParensNode } from '../operation-node/parens-node.js';\nimport { RawNode } from '../operation-node/raw-node.js';\nimport { freeze, isString, isNumber, isBoolean, isNull, isDate, isBigInt, } from '../util/object-utils.js';\nimport { CreateViewNode } from '../operation-node/create-view-node.js';\nimport { SetOperationNode } from '../operation-node/set-operation-node.js';\nimport { WhenNode } from '../operation-node/when-node.js';\nimport { logOnce } from '../util/log-once.js';\nconst LIT_WRAP_REGEX = /'/g;\nexport class DefaultQueryCompiler extends OperationNodeVisitor {\n #sql = '';\n #parameters = [];\n get numParameters() {\n return this.#parameters.length;\n }\n compileQuery(node, queryId) {\n this.#sql = '';\n this.#parameters = [];\n this.nodeStack.splice(0, this.nodeStack.length);\n this.visitNode(node);\n return freeze({\n query: node,\n queryId,\n sql: this.getSql(),\n parameters: [...this.#parameters],\n });\n }\n getSql() {\n return this.#sql;\n }\n visitSelectQuery(node) {\n const wrapInParens = this.parentNode !== undefined &&\n !ParensNode.is(this.parentNode) &&\n !InsertQueryNode.is(this.parentNode) &&\n !CreateTableNode.is(this.parentNode) &&\n !CreateViewNode.is(this.parentNode) &&\n !SetOperationNode.is(this.parentNode);\n if (this.parentNode === undefined && node.explain) {\n this.visitNode(node.explain);\n this.append(' ');\n }\n if (wrapInParens) {\n this.append('(');\n }\n if (node.with) {\n this.visitNode(node.with);\n this.append(' ');\n }\n this.append('select');\n if (node.distinctOn) {\n this.append(' ');\n this.compileDistinctOn(node.distinctOn);\n }\n if (node.frontModifiers?.length) {\n this.append(' ');\n this.compileList(node.frontModifiers, ' ');\n }\n if (node.top) {\n this.append(' ');\n this.visitNode(node.top);\n }\n if (node.selections) {\n this.append(' ');\n this.compileList(node.selections);\n }\n if (node.from) {\n this.append(' ');\n this.visitNode(node.from);\n }\n if (node.joins) {\n this.append(' ');\n this.compileList(node.joins, ' ');\n }\n if (node.where) {\n this.append(' ');\n this.visitNode(node.where);\n }\n if (node.groupBy) {\n this.append(' ');\n this.visitNode(node.groupBy);\n }\n if (node.having) {\n this.append(' ');\n this.visitNode(node.having);\n }\n if (node.setOperations) {\n this.append(' ');\n this.compileList(node.setOperations, ' ');\n }\n if (node.orderBy) {\n this.append(' ');\n this.visitNode(node.orderBy);\n }\n if (node.limit) {\n this.append(' ');\n this.visitNode(node.limit);\n }\n if (node.offset) {\n this.append(' ');\n this.visitNode(node.offset);\n }\n if (node.fetch) {\n this.append(' ');\n this.visitNode(node.fetch);\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(this.sortSelectModifiers([...node.endModifiers]), ' ');\n }\n if (wrapInParens) {\n this.append(')');\n }\n }\n visitFrom(node) {\n this.append('from ');\n this.compileList(node.froms);\n }\n visitSelection(node) {\n this.visitNode(node.selection);\n }\n visitColumn(node) {\n this.visitNode(node.column);\n }\n compileDistinctOn(expressions) {\n this.append('distinct on (');\n this.compileList(expressions);\n this.append(')');\n }\n compileList(nodes, separator = ', ') {\n const lastIndex = nodes.length - 1;\n for (let i = 0; i <= lastIndex; i++) {\n this.visitNode(nodes[i]);\n if (i < lastIndex) {\n this.append(separator);\n }\n }\n }\n visitWhere(node) {\n this.append('where ');\n this.visitNode(node.where);\n }\n visitHaving(node) {\n this.append('having ');\n this.visitNode(node.having);\n }\n visitInsertQuery(node) {\n const wrapInParens = this.parentNode !== undefined &&\n !ParensNode.is(this.parentNode) &&\n !RawNode.is(this.parentNode) &&\n !WhenNode.is(this.parentNode);\n if (this.parentNode === undefined && node.explain) {\n this.visitNode(node.explain);\n this.append(' ');\n }\n if (wrapInParens) {\n this.append('(');\n }\n if (node.with) {\n this.visitNode(node.with);\n this.append(' ');\n }\n this.append(node.replace ? 'replace' : 'insert');\n // TODO: remove in 0.29.\n if (node.ignore) {\n logOnce('`InsertQueryNode.ignore` is deprecated. Use `InsertQueryNode.orAction` instead.');\n this.append(' ignore');\n }\n if (node.orAction) {\n this.append(' ');\n this.visitNode(node.orAction);\n }\n if (node.top) {\n this.append(' ');\n this.visitNode(node.top);\n }\n if (node.into) {\n this.append(' into ');\n this.visitNode(node.into);\n }\n if (node.columns) {\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n }\n if (node.output) {\n this.append(' ');\n this.visitNode(node.output);\n }\n if (node.values) {\n this.append(' ');\n this.visitNode(node.values);\n }\n if (node.defaultValues) {\n this.append(' ');\n this.append('default values');\n }\n if (node.onConflict) {\n this.append(' ');\n this.visitNode(node.onConflict);\n }\n if (node.onDuplicateKey) {\n this.append(' ');\n this.visitNode(node.onDuplicateKey);\n }\n if (node.returning) {\n this.append(' ');\n this.visitNode(node.returning);\n }\n if (wrapInParens) {\n this.append(')');\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n }\n visitValues(node) {\n this.append('values ');\n this.compileList(node.values);\n }\n visitDeleteQuery(node) {\n const wrapInParens = this.parentNode !== undefined &&\n !ParensNode.is(this.parentNode) &&\n !RawNode.is(this.parentNode);\n if (this.parentNode === undefined && node.explain) {\n this.visitNode(node.explain);\n this.append(' ');\n }\n if (wrapInParens) {\n this.append('(');\n }\n if (node.with) {\n this.visitNode(node.with);\n this.append(' ');\n }\n this.append('delete ');\n if (node.top) {\n this.visitNode(node.top);\n this.append(' ');\n }\n this.visitNode(node.from);\n if (node.output) {\n this.append(' ');\n this.visitNode(node.output);\n }\n if (node.using) {\n this.append(' ');\n this.visitNode(node.using);\n }\n if (node.joins) {\n this.append(' ');\n this.compileList(node.joins, ' ');\n }\n if (node.where) {\n this.append(' ');\n this.visitNode(node.where);\n }\n if (node.orderBy) {\n this.append(' ');\n this.visitNode(node.orderBy);\n }\n if (node.limit) {\n this.append(' ');\n this.visitNode(node.limit);\n }\n if (node.returning) {\n this.append(' ');\n this.visitNode(node.returning);\n }\n if (wrapInParens) {\n this.append(')');\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n }\n visitReturning(node) {\n this.append('returning ');\n this.compileList(node.selections);\n }\n visitAlias(node) {\n this.visitNode(node.node);\n this.append(' as ');\n this.visitNode(node.alias);\n }\n visitReference(node) {\n if (node.table) {\n this.visitNode(node.table);\n this.append('.');\n }\n this.visitNode(node.column);\n }\n visitSelectAll(_) {\n this.append('*');\n }\n visitIdentifier(node) {\n this.append(this.getLeftIdentifierWrapper());\n this.compileUnwrappedIdentifier(node);\n this.append(this.getRightIdentifierWrapper());\n }\n compileUnwrappedIdentifier(node) {\n if (!isString(node.name)) {\n throw new Error('a non-string identifier was passed to compileUnwrappedIdentifier.');\n }\n this.append(this.sanitizeIdentifier(node.name));\n }\n visitAnd(node) {\n this.visitNode(node.left);\n this.append(' and ');\n this.visitNode(node.right);\n }\n visitOr(node) {\n this.visitNode(node.left);\n this.append(' or ');\n this.visitNode(node.right);\n }\n visitValue(node) {\n if (node.immediate) {\n this.appendImmediateValue(node.value);\n }\n else {\n this.appendValue(node.value);\n }\n }\n visitValueList(node) {\n this.append('(');\n this.compileList(node.values);\n this.append(')');\n }\n visitTuple(node) {\n this.append('(');\n this.compileList(node.values);\n this.append(')');\n }\n visitPrimitiveValueList(node) {\n this.append('(');\n const { values } = node;\n for (let i = 0; i < values.length; ++i) {\n this.appendValue(values[i]);\n if (i !== values.length - 1) {\n this.append(', ');\n }\n }\n this.append(')');\n }\n visitParens(node) {\n this.append('(');\n this.visitNode(node.node);\n this.append(')');\n }\n visitJoin(node) {\n this.append(JOIN_TYPE_SQL[node.joinType]);\n this.append(' ');\n this.visitNode(node.table);\n if (node.on) {\n this.append(' ');\n this.visitNode(node.on);\n }\n }\n visitOn(node) {\n this.append('on ');\n this.visitNode(node.on);\n }\n visitRaw(node) {\n const { sqlFragments, parameters: params } = node;\n for (let i = 0; i < sqlFragments.length; ++i) {\n this.append(sqlFragments[i]);\n if (params.length > i) {\n this.visitNode(params[i]);\n }\n }\n }\n visitOperator(node) {\n this.append(node.operator);\n }\n visitTable(node) {\n this.visitNode(node.table);\n }\n visitSchemableIdentifier(node) {\n if (node.schema) {\n this.visitNode(node.schema);\n this.append('.');\n }\n this.visitNode(node.identifier);\n }\n visitCreateTable(node) {\n this.append('create ');\n if (node.frontModifiers?.length) {\n this.compileList(node.frontModifiers, ' ');\n this.append(' ');\n }\n if (node.temporary) {\n this.append('temporary ');\n }\n this.append('table ');\n if (node.ifNotExists) {\n this.append('if not exists ');\n }\n this.visitNode(node.table);\n if (!node.selectQuery) {\n this.append(' (');\n this.compileList([...node.columns, ...(node.constraints ?? [])]);\n this.append(')');\n }\n if (node.onCommit) {\n this.append(' on commit ');\n this.append(node.onCommit);\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n if (node.selectQuery) {\n this.append(' as ');\n this.visitNode(node.selectQuery);\n }\n }\n visitColumnDefinition(node) {\n if (node.ifNotExists) {\n this.append('if not exists ');\n }\n this.visitNode(node.column);\n this.append(' ');\n this.visitNode(node.dataType);\n if (node.unsigned) {\n this.append(' unsigned');\n }\n if (node.frontModifiers && node.frontModifiers.length > 0) {\n this.append(' ');\n this.compileList(node.frontModifiers, ' ');\n }\n if (node.generated) {\n this.append(' ');\n this.visitNode(node.generated);\n }\n if (node.identity) {\n this.append(' identity');\n }\n if (node.defaultTo) {\n this.append(' ');\n this.visitNode(node.defaultTo);\n }\n if (node.notNull) {\n this.append(' not null');\n }\n if (node.unique) {\n this.append(' unique');\n }\n if (node.nullsNotDistinct) {\n this.append(' nulls not distinct');\n }\n if (node.primaryKey) {\n this.append(' primary key');\n }\n if (node.autoIncrement) {\n this.append(' ');\n this.append(this.getAutoIncrement());\n }\n if (node.references) {\n this.append(' ');\n this.visitNode(node.references);\n }\n if (node.check) {\n this.append(' ');\n this.visitNode(node.check);\n }\n if (node.endModifiers && node.endModifiers.length > 0) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n }\n getAutoIncrement() {\n return 'auto_increment';\n }\n visitReferences(node) {\n this.append('references ');\n this.visitNode(node.table);\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n if (node.onDelete) {\n this.append(' on delete ');\n this.append(node.onDelete);\n }\n if (node.onUpdate) {\n this.append(' on update ');\n this.append(node.onUpdate);\n }\n }\n visitDropTable(node) {\n this.append('drop table ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.table);\n if (node.cascade) {\n this.append(' cascade');\n }\n }\n visitDataType(node) {\n this.append(node.dataType);\n }\n visitOrderBy(node) {\n this.append('order by ');\n this.compileList(node.items);\n }\n visitOrderByItem(node) {\n this.visitNode(node.orderBy);\n if (node.collation) {\n this.append(' ');\n this.visitNode(node.collation);\n }\n if (node.direction) {\n this.append(' ');\n this.visitNode(node.direction);\n }\n if (node.nulls) {\n this.append(' nulls ');\n this.append(node.nulls);\n }\n }\n visitGroupBy(node) {\n this.append('group by ');\n this.compileList(node.items);\n }\n visitGroupByItem(node) {\n this.visitNode(node.groupBy);\n }\n visitUpdateQuery(node) {\n const wrapInParens = this.parentNode !== undefined &&\n !ParensNode.is(this.parentNode) &&\n !RawNode.is(this.parentNode) &&\n !WhenNode.is(this.parentNode);\n if (this.parentNode === undefined && node.explain) {\n this.visitNode(node.explain);\n this.append(' ');\n }\n if (wrapInParens) {\n this.append('(');\n }\n if (node.with) {\n this.visitNode(node.with);\n this.append(' ');\n }\n this.append('update ');\n if (node.top) {\n this.visitNode(node.top);\n this.append(' ');\n }\n if (node.table) {\n this.visitNode(node.table);\n this.append(' ');\n }\n this.append('set ');\n if (node.updates) {\n this.compileList(node.updates);\n }\n if (node.output) {\n this.append(' ');\n this.visitNode(node.output);\n }\n if (node.from) {\n this.append(' ');\n this.visitNode(node.from);\n }\n if (node.joins) {\n if (!node.from) {\n throw new Error(\"Joins in an update query are only supported as a part of a PostgreSQL 'update set from join' query. If you want to create a MySQL 'update join set' query, see https://kysely.dev/docs/examples/update/my-sql-joins\");\n }\n this.append(' ');\n this.compileList(node.joins, ' ');\n }\n if (node.where) {\n this.append(' ');\n this.visitNode(node.where);\n }\n if (node.returning) {\n this.append(' ');\n this.visitNode(node.returning);\n }\n if (node.orderBy) {\n this.append(' ');\n this.visitNode(node.orderBy);\n }\n if (node.limit) {\n this.append(' ');\n this.visitNode(node.limit);\n }\n if (wrapInParens) {\n this.append(')');\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n }\n visitColumnUpdate(node) {\n this.visitNode(node.column);\n this.append(' = ');\n this.visitNode(node.value);\n }\n visitLimit(node) {\n this.append('limit ');\n this.visitNode(node.limit);\n }\n visitOffset(node) {\n this.append('offset ');\n this.visitNode(node.offset);\n }\n visitOnConflict(node) {\n this.append('on conflict');\n if (node.columns) {\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n }\n else if (node.constraint) {\n this.append(' on constraint ');\n this.visitNode(node.constraint);\n }\n else if (node.indexExpression) {\n this.append(' (');\n this.visitNode(node.indexExpression);\n this.append(')');\n }\n if (node.indexWhere) {\n this.append(' ');\n this.visitNode(node.indexWhere);\n }\n if (node.doNothing === true) {\n this.append(' do nothing');\n }\n else if (node.updates) {\n this.append(' do update set ');\n this.compileList(node.updates);\n if (node.updateWhere) {\n this.append(' ');\n this.visitNode(node.updateWhere);\n }\n }\n }\n visitOnDuplicateKey(node) {\n this.append('on duplicate key update ');\n this.compileList(node.updates);\n }\n visitCreateIndex(node) {\n this.append('create ');\n if (node.unique) {\n this.append('unique ');\n }\n this.append('index ');\n if (node.ifNotExists) {\n this.append('if not exists ');\n }\n this.visitNode(node.name);\n if (node.table) {\n this.append(' on ');\n this.visitNode(node.table);\n }\n if (node.using) {\n this.append(' using ');\n this.visitNode(node.using);\n }\n if (node.columns) {\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n }\n if (node.nullsNotDistinct) {\n this.append(' nulls not distinct');\n }\n if (node.where) {\n this.append(' ');\n this.visitNode(node.where);\n }\n }\n visitDropIndex(node) {\n this.append('drop index ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.name);\n if (node.table) {\n this.append(' on ');\n this.visitNode(node.table);\n }\n if (node.cascade) {\n this.append(' cascade');\n }\n }\n visitCreateSchema(node) {\n this.append('create schema ');\n if (node.ifNotExists) {\n this.append('if not exists ');\n }\n this.visitNode(node.schema);\n }\n visitDropSchema(node) {\n this.append('drop schema ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.schema);\n if (node.cascade) {\n this.append(' cascade');\n }\n }\n visitPrimaryKeyConstraint(node) {\n if (node.name) {\n this.append('constraint ');\n this.visitNode(node.name);\n this.append(' ');\n }\n this.append('primary key (');\n this.compileList(node.columns);\n this.append(')');\n this.buildDeferrable(node);\n }\n buildDeferrable(node) {\n if (node.deferrable !== undefined) {\n if (node.deferrable) {\n this.append(' deferrable');\n }\n else {\n this.append(' not deferrable');\n }\n }\n if (node.initiallyDeferred !== undefined) {\n if (node.initiallyDeferred) {\n this.append(' initially deferred');\n }\n else {\n this.append(' initially immediate');\n }\n }\n }\n visitUniqueConstraint(node) {\n if (node.name) {\n this.append('constraint ');\n this.visitNode(node.name);\n this.append(' ');\n }\n this.append('unique');\n if (node.nullsNotDistinct) {\n this.append(' nulls not distinct');\n }\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n this.buildDeferrable(node);\n }\n visitCheckConstraint(node) {\n if (node.name) {\n this.append('constraint ');\n this.visitNode(node.name);\n this.append(' ');\n }\n this.append('check (');\n this.visitNode(node.expression);\n this.append(')');\n }\n visitForeignKeyConstraint(node) {\n if (node.name) {\n this.append('constraint ');\n this.visitNode(node.name);\n this.append(' ');\n }\n this.append('foreign key (');\n this.compileList(node.columns);\n this.append(') ');\n this.visitNode(node.references);\n if (node.onDelete) {\n this.append(' on delete ');\n this.append(node.onDelete);\n }\n if (node.onUpdate) {\n this.append(' on update ');\n this.append(node.onUpdate);\n }\n this.buildDeferrable(node);\n }\n visitList(node) {\n this.compileList(node.items);\n }\n visitWith(node) {\n this.append('with ');\n if (node.recursive) {\n this.append('recursive ');\n }\n this.compileList(node.expressions);\n }\n visitCommonTableExpression(node) {\n this.visitNode(node.name);\n this.append(' as ');\n if (isBoolean(node.materialized)) {\n if (!node.materialized) {\n this.append('not ');\n }\n this.append('materialized ');\n }\n this.visitNode(node.expression);\n }\n visitCommonTableExpressionName(node) {\n this.visitNode(node.table);\n if (node.columns) {\n this.append('(');\n this.compileList(node.columns);\n this.append(')');\n }\n }\n visitAlterTable(node) {\n this.append('alter table ');\n this.visitNode(node.table);\n this.append(' ');\n if (node.renameTo) {\n this.append('rename to ');\n this.visitNode(node.renameTo);\n }\n if (node.setSchema) {\n this.append('set schema ');\n this.visitNode(node.setSchema);\n }\n if (node.addConstraint) {\n this.visitNode(node.addConstraint);\n }\n if (node.dropConstraint) {\n this.visitNode(node.dropConstraint);\n }\n if (node.renameConstraint) {\n this.visitNode(node.renameConstraint);\n }\n if (node.columnAlterations) {\n this.compileColumnAlterations(node.columnAlterations);\n }\n if (node.addIndex) {\n this.visitNode(node.addIndex);\n }\n if (node.dropIndex) {\n this.visitNode(node.dropIndex);\n }\n }\n visitAddColumn(node) {\n this.append('add column ');\n this.visitNode(node.column);\n }\n visitRenameColumn(node) {\n this.append('rename column ');\n this.visitNode(node.column);\n this.append(' to ');\n this.visitNode(node.renameTo);\n }\n visitDropColumn(node) {\n this.append('drop column ');\n this.visitNode(node.column);\n }\n visitAlterColumn(node) {\n this.append('alter column ');\n this.visitNode(node.column);\n this.append(' ');\n if (node.dataType) {\n if (this.announcesNewColumnDataType()) {\n this.append('type ');\n }\n this.visitNode(node.dataType);\n if (node.dataTypeExpression) {\n this.append('using ');\n this.visitNode(node.dataTypeExpression);\n }\n }\n if (node.setDefault) {\n this.append('set default ');\n this.visitNode(node.setDefault);\n }\n if (node.dropDefault) {\n this.append('drop default');\n }\n if (node.setNotNull) {\n this.append('set not null');\n }\n if (node.dropNotNull) {\n this.append('drop not null');\n }\n }\n visitModifyColumn(node) {\n this.append('modify column ');\n this.visitNode(node.column);\n }\n visitAddConstraint(node) {\n this.append('add ');\n this.visitNode(node.constraint);\n }\n visitDropConstraint(node) {\n this.append('drop constraint ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.constraintName);\n if (node.modifier === 'cascade') {\n this.append(' cascade');\n }\n else if (node.modifier === 'restrict') {\n this.append(' restrict');\n }\n }\n visitRenameConstraint(node) {\n this.append('rename constraint ');\n this.visitNode(node.oldName);\n this.append(' to ');\n this.visitNode(node.newName);\n }\n visitSetOperation(node) {\n this.append(node.operator);\n this.append(' ');\n if (node.all) {\n this.append('all ');\n }\n this.visitNode(node.expression);\n }\n visitCreateView(node) {\n this.append('create ');\n if (node.orReplace) {\n this.append('or replace ');\n }\n if (node.materialized) {\n this.append('materialized ');\n }\n if (node.temporary) {\n this.append('temporary ');\n }\n this.append('view ');\n if (node.ifNotExists) {\n this.append('if not exists ');\n }\n this.visitNode(node.name);\n this.append(' ');\n if (node.columns) {\n this.append('(');\n this.compileList(node.columns);\n this.append(') ');\n }\n if (node.as) {\n this.append('as ');\n this.visitNode(node.as);\n }\n }\n visitRefreshMaterializedView(node) {\n this.append('refresh materialized view ');\n if (node.concurrently) {\n this.append('concurrently ');\n }\n this.visitNode(node.name);\n if (node.withNoData) {\n this.append(' with no data');\n }\n else {\n this.append(' with data');\n }\n }\n visitDropView(node) {\n this.append('drop ');\n if (node.materialized) {\n this.append('materialized ');\n }\n this.append('view ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.name);\n if (node.cascade) {\n this.append(' cascade');\n }\n }\n visitGenerated(node) {\n this.append('generated ');\n if (node.always) {\n this.append('always ');\n }\n if (node.byDefault) {\n this.append('by default ');\n }\n this.append('as ');\n if (node.identity) {\n this.append('identity');\n }\n if (node.expression) {\n this.append('(');\n this.visitNode(node.expression);\n this.append(')');\n }\n if (node.stored) {\n this.append(' stored');\n }\n }\n visitDefaultValue(node) {\n this.append('default ');\n this.visitNode(node.defaultValue);\n }\n visitSelectModifier(node) {\n if (node.rawModifier) {\n this.visitNode(node.rawModifier);\n }\n else {\n this.append(SELECT_MODIFIER_SQL[node.modifier]);\n }\n if (node.of) {\n this.append(' of ');\n this.compileList(node.of, ', ');\n }\n }\n visitCreateType(node) {\n this.append('create type ');\n this.visitNode(node.name);\n if (node.enum) {\n this.append(' as enum ');\n this.visitNode(node.enum);\n }\n }\n visitDropType(node) {\n this.append('drop type ');\n if (node.ifExists) {\n this.append('if exists ');\n }\n this.visitNode(node.name);\n }\n visitExplain(node) {\n this.append('explain');\n if (node.options || node.format) {\n this.append(' ');\n this.append(this.getLeftExplainOptionsWrapper());\n if (node.options) {\n this.visitNode(node.options);\n if (node.format) {\n this.append(this.getExplainOptionsDelimiter());\n }\n }\n if (node.format) {\n this.append('format');\n this.append(this.getExplainOptionAssignment());\n this.append(node.format);\n }\n this.append(this.getRightExplainOptionsWrapper());\n }\n }\n visitDefaultInsertValue(_) {\n this.append('default');\n }\n visitAggregateFunction(node) {\n this.append(node.func);\n this.append('(');\n if (node.distinct) {\n this.append('distinct ');\n }\n this.compileList(node.aggregated);\n if (node.orderBy) {\n this.append(' ');\n this.visitNode(node.orderBy);\n }\n this.append(')');\n if (node.withinGroup) {\n this.append(' within group (');\n this.visitNode(node.withinGroup);\n this.append(')');\n }\n if (node.filter) {\n this.append(' filter(');\n this.visitNode(node.filter);\n this.append(')');\n }\n if (node.over) {\n this.append(' ');\n this.visitNode(node.over);\n }\n }\n visitOver(node) {\n this.append('over(');\n if (node.partitionBy) {\n this.visitNode(node.partitionBy);\n if (node.orderBy) {\n this.append(' ');\n }\n }\n if (node.orderBy) {\n this.visitNode(node.orderBy);\n }\n this.append(')');\n }\n visitPartitionBy(node) {\n this.append('partition by ');\n this.compileList(node.items);\n }\n visitPartitionByItem(node) {\n this.visitNode(node.partitionBy);\n }\n visitBinaryOperation(node) {\n this.visitNode(node.leftOperand);\n this.append(' ');\n this.visitNode(node.operator);\n this.append(' ');\n this.visitNode(node.rightOperand);\n }\n visitUnaryOperation(node) {\n this.visitNode(node.operator);\n if (!this.isMinusOperator(node.operator)) {\n this.append(' ');\n }\n this.visitNode(node.operand);\n }\n isMinusOperator(node) {\n return OperatorNode.is(node) && node.operator === '-';\n }\n visitUsing(node) {\n this.append('using ');\n this.compileList(node.tables);\n }\n visitFunction(node) {\n this.append(node.func);\n this.append('(');\n this.compileList(node.arguments);\n this.append(')');\n }\n visitCase(node) {\n this.append('case');\n if (node.value) {\n this.append(' ');\n this.visitNode(node.value);\n }\n if (node.when) {\n this.append(' ');\n this.compileList(node.when, ' ');\n }\n if (node.else) {\n this.append(' else ');\n this.visitNode(node.else);\n }\n this.append(' end');\n if (node.isStatement) {\n this.append(' case');\n }\n }\n visitWhen(node) {\n this.append('when ');\n this.visitNode(node.condition);\n if (node.result) {\n this.append(' then ');\n this.visitNode(node.result);\n }\n }\n visitJSONReference(node) {\n this.visitNode(node.reference);\n this.visitNode(node.traversal);\n }\n visitJSONPath(node) {\n if (node.inOperator) {\n this.visitNode(node.inOperator);\n }\n this.append(\"'$\");\n for (const pathLeg of node.pathLegs) {\n this.visitNode(pathLeg);\n }\n this.append(\"'\");\n }\n visitJSONPathLeg(node) {\n const isArrayLocation = node.type === 'ArrayLocation';\n this.append(isArrayLocation ? '[' : '.');\n this.append(typeof node.value === 'string'\n ? this.sanitizeStringLiteral(node.value)\n : String(node.value));\n if (isArrayLocation) {\n this.append(']');\n }\n }\n visitJSONOperatorChain(node) {\n for (let i = 0, len = node.values.length; i < len; i++) {\n if (i === len - 1) {\n this.visitNode(node.operator);\n }\n else {\n this.append('->');\n }\n this.visitNode(node.values[i]);\n }\n }\n visitMergeQuery(node) {\n if (node.with) {\n this.visitNode(node.with);\n this.append(' ');\n }\n this.append('merge ');\n if (node.top) {\n this.visitNode(node.top);\n this.append(' ');\n }\n this.append('into ');\n this.visitNode(node.into);\n if (node.using) {\n this.append(' ');\n this.visitNode(node.using);\n }\n if (node.whens) {\n this.append(' ');\n this.compileList(node.whens, ' ');\n }\n if (node.returning) {\n this.append(' ');\n this.visitNode(node.returning);\n }\n if (node.output) {\n this.append(' ');\n this.visitNode(node.output);\n }\n if (node.endModifiers?.length) {\n this.append(' ');\n this.compileList(node.endModifiers, ' ');\n }\n }\n visitMatched(node) {\n if (node.not) {\n this.append('not ');\n }\n this.append('matched');\n if (node.bySource) {\n this.append(' by source');\n }\n }\n visitAddIndex(node) {\n this.append('add ');\n if (node.unique) {\n this.append('unique ');\n }\n this.append('index ');\n this.visitNode(node.name);\n if (node.columns) {\n this.append(' (');\n this.compileList(node.columns);\n this.append(')');\n }\n if (node.using) {\n this.append(' using ');\n this.visitNode(node.using);\n }\n }\n visitCast(node) {\n this.append('cast(');\n this.visitNode(node.expression);\n this.append(' as ');\n this.visitNode(node.dataType);\n this.append(')');\n }\n visitFetch(node) {\n this.append('fetch next ');\n this.visitNode(node.rowCount);\n this.append(` rows ${node.modifier}`);\n }\n visitOutput(node) {\n this.append('output ');\n this.compileList(node.selections);\n }\n visitTop(node) {\n this.append(`top(${node.expression})`);\n if (node.modifiers) {\n this.append(` ${node.modifiers}`);\n }\n }\n visitOrAction(node) {\n this.append(node.action);\n }\n visitCollate(node) {\n this.append('collate ');\n this.visitNode(node.collation);\n }\n append(str) {\n this.#sql += str;\n }\n appendValue(parameter) {\n this.addParameter(parameter);\n this.append(this.getCurrentParameterPlaceholder());\n }\n getLeftIdentifierWrapper() {\n return '\"';\n }\n getRightIdentifierWrapper() {\n return '\"';\n }\n getCurrentParameterPlaceholder() {\n return '$' + this.numParameters;\n }\n getLeftExplainOptionsWrapper() {\n return '(';\n }\n getExplainOptionAssignment() {\n return ' ';\n }\n getExplainOptionsDelimiter() {\n return ', ';\n }\n getRightExplainOptionsWrapper() {\n return ')';\n }\n sanitizeIdentifier(identifier) {\n const leftWrap = this.getLeftIdentifierWrapper();\n const rightWrap = this.getRightIdentifierWrapper();\n let sanitized = '';\n for (const c of identifier) {\n sanitized += c;\n if (c === leftWrap) {\n sanitized += leftWrap;\n }\n else if (c === rightWrap) {\n sanitized += rightWrap;\n }\n }\n return sanitized;\n }\n sanitizeStringLiteral(value) {\n return value.replace(LIT_WRAP_REGEX, \"''\");\n }\n addParameter(parameter) {\n this.#parameters.push(parameter);\n }\n appendImmediateValue(value) {\n if (isString(value)) {\n this.appendStringLiteral(value);\n }\n else if (isNumber(value) || isBoolean(value) || isBigInt(value)) {\n this.append(value.toString());\n }\n else if (isNull(value)) {\n this.append('null');\n }\n else if (isDate(value)) {\n this.appendImmediateValue(value.toISOString());\n }\n else {\n throw new Error(`invalid immediate value ${value}`);\n }\n }\n appendStringLiteral(value) {\n this.append(\"'\");\n this.append(this.sanitizeStringLiteral(value));\n this.append(\"'\");\n }\n sortSelectModifiers(arr) {\n arr.sort((left, right) => left.modifier && right.modifier\n ? SELECT_MODIFIER_PRIORITY[left.modifier] -\n SELECT_MODIFIER_PRIORITY[right.modifier]\n : 1);\n return freeze(arr);\n }\n compileColumnAlterations(columnAlterations) {\n this.compileList(columnAlterations);\n }\n /**\n * controls whether the dialect adds a \"type\" keyword before a column's new data\n * type in an ALTER TABLE statement.\n */\n announcesNewColumnDataType() {\n return true;\n }\n}\nconst SELECT_MODIFIER_SQL = freeze({\n ForKeyShare: 'for key share',\n ForNoKeyUpdate: 'for no key update',\n ForUpdate: 'for update',\n ForShare: 'for share',\n NoWait: 'nowait',\n SkipLocked: 'skip locked',\n Distinct: 'distinct',\n});\nconst SELECT_MODIFIER_PRIORITY = freeze({\n ForKeyShare: 1,\n ForNoKeyUpdate: 1,\n ForUpdate: 1,\n ForShare: 1,\n NoWait: 2,\n SkipLocked: 2,\n Distinct: 0,\n});\nconst JOIN_TYPE_SQL = freeze({\n InnerJoin: 'inner join',\n LeftJoin: 'left join',\n RightJoin: 'right join',\n FullJoin: 'full join',\n CrossJoin: 'cross join',\n LateralInnerJoin: 'inner join lateral',\n LateralLeftJoin: 'left join lateral',\n LateralCrossJoin: 'cross join lateral',\n OuterApply: 'outer apply',\n CrossApply: 'cross apply',\n Using: 'using',\n});\n","/// <reference types=\"./alias-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const AliasNode = freeze({\n is(node) {\n return node.kind === 'AliasNode';\n },\n create(node, alias) {\n return freeze({\n kind: 'AliasNode',\n node,\n alias,\n });\n },\n});\n","/// <reference types=\"./and-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const AndNode = freeze({\n is(node) {\n return node.kind === 'AndNode';\n },\n create(left, right) {\n return freeze({\n kind: 'AndNode',\n left,\n right,\n });\n },\n});\n","/// <reference types=\"./or-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const OrNode = freeze({\n is(node) {\n return node.kind === 'OrNode';\n },\n create(left, right) {\n return freeze({\n kind: 'OrNode',\n left,\n right,\n });\n },\n});\n","/// <reference types=\"./on-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { AndNode } from './and-node.js';\nimport { OrNode } from './or-node.js';\n/**\n * @internal\n */\nexport const OnNode = freeze({\n is(node) {\n return node.kind === 'OnNode';\n },\n create(filter) {\n return freeze({\n kind: 'OnNode',\n on: filter,\n });\n },\n cloneWithOperation(onNode, operator, operation) {\n return freeze({\n ...onNode,\n on: operator === 'And'\n ? AndNode.create(onNode.on, operation)\n : OrNode.create(onNode.on, operation),\n });\n },\n});\n","/// <reference types=\"./join-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { OnNode } from './on-node.js';\n/**\n * @internal\n */\nexport const JoinNode = freeze({\n is(node) {\n return node.kind === 'JoinNode';\n },\n create(joinType, table) {\n return freeze({\n kind: 'JoinNode',\n joinType,\n table,\n on: undefined,\n });\n },\n createWithOn(joinType, table, on) {\n return freeze({\n kind: 'JoinNode',\n joinType,\n table,\n on: OnNode.create(on),\n });\n },\n cloneWithOn(joinNode, operation) {\n return freeze({\n ...joinNode,\n on: joinNode.on\n ? OnNode.cloneWithOperation(joinNode.on, 'And', operation)\n : OnNode.create(operation),\n });\n },\n});\n","/// <reference types=\"./list-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const ListNode = freeze({\n is(node) {\n return node.kind === 'ListNode';\n },\n create(items) {\n return freeze({\n kind: 'ListNode',\n items: freeze(items),\n });\n },\n});\n","/// <reference types=\"./require-all-props.d.ts\" />\n/**\n * Helper function to check listed properties according to given type. Check if all properties has been used when object is initialised.\n *\n * Example use:\n *\n * ```ts\n * type SomeType = { propA: string; propB?: number; }\n *\n * // propB has to be mentioned even it is optional. It still should be initialized with undefined.\n * const a: SomeType = requireAllProps<SomeType>({ propA: \"value A\", propB: undefined });\n *\n * // checked type is implicit for variable.\n * const b = requireAllProps<SomeType>({ propA: \"value A\", propB: undefined });\n * ```\n *\n * Wrong use of this helper:\n *\n * 1. Omit checked type - all checked properties will be expect as of type never\n *\n * ```ts\n * type SomeType = { propA: string; propB?: number; }\n * // const z: SomeType = requireAllProps({ propC: \"no type will work\" }); // Property 'propA' is missing in type '{ propC: string; }' but required in type 'SomeType'.\n * ```\n *\n * 2. Apply to spreaded object - there is no way how to check in compile time if spreaded object contains all properties\n *\n * ```ts\n * type SomeType = { propA: string; propB?: number; }\n * const y: SomeType = { propA: \"\" }; // valid object according to SomeType declaration\n * // const x = requireAllProps<SomeType>({ ...y }); // Argument of type '{ propA: string; propB?: number; }' is not assignable to parameter of type 'AllProps<SomeType>'.\n * ```\n *\n * @param obj object to check if all properties has been used\n * @returns untouched obj parameter is returned\n */\nexport function requireAllProps(obj) {\n return obj;\n}\n","/// <reference types=\"./operation-node-transformer.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { requireAllProps } from '../util/require-all-props.js';\n/**\n * Transforms an operation node tree into another one.\n *\n * Kysely queries are expressed internally as a tree of objects (operation nodes).\n * `OperationNodeTransformer` takes such a tree as its input and returns a\n * transformed deep copy of it. By default the `OperationNodeTransformer`\n * does nothing. You need to override one or more methods to make it do\n * something.\n *\n * There's a method for each node type. For example if you'd like to convert\n * each identifier (table name, column name, alias etc.) from camelCase to\n * snake_case, you'd do something like this:\n *\n * ```ts\n * import { type IdentifierNode, OperationNodeTransformer } from 'kysely'\n * import snakeCase from 'lodash/snakeCase'\n *\n * class CamelCaseTransformer extends OperationNodeTransformer {\n * override transformIdentifier(node: IdentifierNode): IdentifierNode {\n * node = super.transformIdentifier(node)\n *\n * return {\n * ...node,\n * name: snakeCase(node.name),\n * }\n * }\n * }\n *\n * const transformer = new CamelCaseTransformer()\n *\n * const query = db.selectFrom('person').select(['first_name', 'last_name'])\n *\n * const tree = transformer.transformNode(query.toOperationNode())\n * ```\n */\nexport class OperationNodeTransformer {\n nodeStack = [];\n #transformers = freeze({\n AliasNode: this.transformAlias.bind(this),\n ColumnNode: this.transformColumn.bind(this),\n IdentifierNode: this.transformIdentifier.bind(this),\n SchemableIdentifierNode: this.transformSchemableIdentifier.bind(this),\n RawNode: this.transformRaw.bind(this),\n ReferenceNode: this.transformReference.bind(this),\n SelectQueryNode: this.transformSelectQuery.bind(this),\n SelectionNode: this.transformSelection.bind(this),\n TableNode: this.transformTable.bind(this),\n FromNode: this.transformFrom.bind(this),\n SelectAllNode: this.transformSelectAll.bind(this),\n AndNode: this.transformAnd.bind(this),\n OrNode: this.transformOr.bind(this),\n ValueNode: this.transformValue.bind(this),\n ValueListNode: this.transformValueList.bind(this),\n PrimitiveValueListNode: this.transformPrimitiveValueList.bind(this),\n ParensNode: this.transformParens.bind(this),\n JoinNode: this.transformJoin.bind(this),\n OperatorNode: this.transformOperator.bind(this),\n WhereNode: this.transformWhere.bind(this),\n InsertQueryNode: this.transformInsertQuery.bind(this),\n DeleteQueryNode: this.transformDeleteQuery.bind(this),\n ReturningNode: this.transformReturning.bind(this),\n CreateTableNode: this.transformCreateTable.bind(this),\n AddColumnNode: this.transformAddColumn.bind(this),\n ColumnDefinitionNode: this.transformColumnDefinition.bind(this),\n DropTableNode: this.transformDropTable.bind(this),\n DataTypeNode: this.transformDataType.bind(this),\n OrderByNode: this.transformOrderBy.bind(this),\n OrderByItemNode: this.transformOrderByItem.bind(this),\n GroupByNode: this.transformGroupBy.bind(this),\n GroupByItemNode: this.transformGroupByItem.bind(this),\n UpdateQueryNode: this.transformUpdateQuery.bind(this),\n ColumnUpdateNode: this.transformColumnUpdate.bind(this),\n LimitNode: this.transformLimit.bind(this),\n OffsetNode: this.transformOffset.bind(this),\n OnConflictNode: this.transformOnConflict.bind(this),\n OnDuplicateKeyNode: this.transformOnDuplicateKey.bind(this),\n CreateIndexNode: this.transformCreateIndex.bind(this),\n DropIndexNode: this.transformDropIndex.bind(this),\n ListNode: this.transformList.bind(this),\n PrimaryKeyConstraintNode: this.transformPrimaryKeyConstraint.bind(this),\n UniqueConstraintNode: this.transformUniqueConstraint.bind(this),\n ReferencesNode: this.transformReferences.bind(this),\n CheckConstraintNode: this.transformCheckConstraint.bind(this),\n WithNode: this.transformWith.bind(this),\n CommonTableExpressionNode: this.transformCommonTableExpression.bind(this),\n CommonTableExpressionNameNode: this.transformCommonTableExpressionName.bind(this),\n HavingNode: this.transformHaving.bind(this),\n CreateSchemaNode: this.transformCreateSchema.bind(this),\n DropSchemaNode: this.transformDropSchema.bind(this),\n AlterTableNode: this.transformAlterTable.bind(this),\n DropColumnNode: this.transformDropColumn.bind(this),\n RenameColumnNode: this.transformRenameColumn.bind(this),\n AlterColumnNode: this.transformAlterColumn.bind(this),\n ModifyColumnNode: this.transformModifyColumn.bind(this),\n AddConstraintNode: this.transformAddConstraint.bind(this),\n DropConstraintNode: this.transformDropConstraint.bind(this),\n RenameConstraintNode: this.transformRenameConstraint.bind(this),\n ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),\n CreateViewNode: this.transformCreateView.bind(this),\n RefreshMaterializedViewNode: this.transformRefreshMaterializedView.bind(this),\n DropViewNode: this.transformDropView.bind(this),\n GeneratedNode: this.transformGenerated.bind(this),\n DefaultValueNode: this.transformDefaultValue.bind(this),\n OnNode: this.transformOn.bind(this),\n ValuesNode: this.transformValues.bind(this),\n SelectModifierNode: this.transformSelectModifier.bind(this),\n CreateTypeNode: this.transformCreateType.bind(this),\n DropTypeNode: this.transformDropType.bind(this),\n ExplainNode: this.transformExplain.bind(this),\n DefaultInsertValueNode: this.transformDefaultInsertValue.bind(this),\n AggregateFunctionNode: this.transformAggregateFunction.bind(this),\n OverNode: this.transformOver.bind(this),\n PartitionByNode: this.transformPartitionBy.bind(this),\n PartitionByItemNode: this.transformPartitionByItem.bind(this),\n SetOperationNode: this.transformSetOperation.bind(this),\n BinaryOperationNode: this.transformBinaryOperation.bind(this),\n UnaryOperationNode: this.transformUnaryOperation.bind(this),\n UsingNode: this.transformUsing.bind(this),\n FunctionNode: this.transformFunction.bind(this),\n CaseNode: this.transformCase.bind(this),\n WhenNode: this.transformWhen.bind(this),\n JSONReferenceNode: this.transformJSONReference.bind(this),\n JSONPathNode: this.transformJSONPath.bind(this),\n JSONPathLegNode: this.transformJSONPathLeg.bind(this),\n JSONOperatorChainNode: this.transformJSONOperatorChain.bind(this),\n TupleNode: this.transformTuple.bind(this),\n MergeQueryNode: this.transformMergeQuery.bind(this),\n MatchedNode: this.transformMatched.bind(this),\n AddIndexNode: this.transformAddIndex.bind(this),\n CastNode: this.transformCast.bind(this),\n FetchNode: this.transformFetch.bind(this),\n TopNode: this.transformTop.bind(this),\n OutputNode: this.transformOutput.bind(this),\n OrActionNode: this.transformOrAction.bind(this),\n CollateNode: this.transformCollate.bind(this),\n });\n transformNode(node, queryId) {\n if (!node) {\n return node;\n }\n this.nodeStack.push(node);\n const out = this.transformNodeImpl(node, queryId);\n this.nodeStack.pop();\n return freeze(out);\n }\n transformNodeImpl(node, queryId) {\n return this.#transformers[node.kind](node, queryId);\n }\n transformNodeList(list, queryId) {\n if (!list) {\n return list;\n }\n return freeze(list.map((node) => this.transformNode(node, queryId)));\n }\n transformSelectQuery(node, queryId) {\n return requireAllProps({\n kind: 'SelectQueryNode',\n from: this.transformNode(node.from, queryId),\n selections: this.transformNodeList(node.selections, queryId),\n distinctOn: this.transformNodeList(node.distinctOn, queryId),\n joins: this.transformNodeList(node.joins, queryId),\n groupBy: this.transformNode(node.groupBy, queryId),\n orderBy: this.transformNode(node.orderBy, queryId),\n where: this.transformNode(node.where, queryId),\n frontModifiers: this.transformNodeList(node.frontModifiers, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n limit: this.transformNode(node.limit, queryId),\n offset: this.transformNode(node.offset, queryId),\n with: this.transformNode(node.with, queryId),\n having: this.transformNode(node.having, queryId),\n explain: this.transformNode(node.explain, queryId),\n setOperations: this.transformNodeList(node.setOperations, queryId),\n fetch: this.transformNode(node.fetch, queryId),\n top: this.transformNode(node.top, queryId),\n });\n }\n transformSelection(node, queryId) {\n return requireAllProps({\n kind: 'SelectionNode',\n selection: this.transformNode(node.selection, queryId),\n });\n }\n transformColumn(node, queryId) {\n return requireAllProps({\n kind: 'ColumnNode',\n column: this.transformNode(node.column, queryId),\n });\n }\n transformAlias(node, queryId) {\n return requireAllProps({\n kind: 'AliasNode',\n node: this.transformNode(node.node, queryId),\n alias: this.transformNode(node.alias, queryId),\n });\n }\n transformTable(node, queryId) {\n return requireAllProps({\n kind: 'TableNode',\n table: this.transformNode(node.table, queryId),\n });\n }\n transformFrom(node, queryId) {\n return requireAllProps({\n kind: 'FromNode',\n froms: this.transformNodeList(node.froms, queryId),\n });\n }\n transformReference(node, queryId) {\n return requireAllProps({\n kind: 'ReferenceNode',\n column: this.transformNode(node.column, queryId),\n table: this.transformNode(node.table, queryId),\n });\n }\n transformAnd(node, queryId) {\n return requireAllProps({\n kind: 'AndNode',\n left: this.transformNode(node.left, queryId),\n right: this.transformNode(node.right, queryId),\n });\n }\n transformOr(node, queryId) {\n return requireAllProps({\n kind: 'OrNode',\n left: this.transformNode(node.left, queryId),\n right: this.transformNode(node.right, queryId),\n });\n }\n transformValueList(node, queryId) {\n return requireAllProps({\n kind: 'ValueListNode',\n values: this.transformNodeList(node.values, queryId),\n });\n }\n transformParens(node, queryId) {\n return requireAllProps({\n kind: 'ParensNode',\n node: this.transformNode(node.node, queryId),\n });\n }\n transformJoin(node, queryId) {\n return requireAllProps({\n kind: 'JoinNode',\n joinType: node.joinType,\n table: this.transformNode(node.table, queryId),\n on: this.transformNode(node.on, queryId),\n });\n }\n transformRaw(node, queryId) {\n return requireAllProps({\n kind: 'RawNode',\n sqlFragments: freeze([...node.sqlFragments]),\n parameters: this.transformNodeList(node.parameters, queryId),\n });\n }\n transformWhere(node, queryId) {\n return requireAllProps({\n kind: 'WhereNode',\n where: this.transformNode(node.where, queryId),\n });\n }\n transformInsertQuery(node, queryId) {\n return requireAllProps({\n kind: 'InsertQueryNode',\n into: this.transformNode(node.into, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n values: this.transformNode(node.values, queryId),\n returning: this.transformNode(node.returning, queryId),\n onConflict: this.transformNode(node.onConflict, queryId),\n onDuplicateKey: this.transformNode(node.onDuplicateKey, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n with: this.transformNode(node.with, queryId),\n ignore: node.ignore,\n orAction: this.transformNode(node.orAction, queryId),\n replace: node.replace,\n explain: this.transformNode(node.explain, queryId),\n defaultValues: node.defaultValues,\n top: this.transformNode(node.top, queryId),\n output: this.transformNode(node.output, queryId),\n });\n }\n transformValues(node, queryId) {\n return requireAllProps({\n kind: 'ValuesNode',\n values: this.transformNodeList(node.values, queryId),\n });\n }\n transformDeleteQuery(node, queryId) {\n return requireAllProps({\n kind: 'DeleteQueryNode',\n from: this.transformNode(node.from, queryId),\n using: this.transformNode(node.using, queryId),\n joins: this.transformNodeList(node.joins, queryId),\n where: this.transformNode(node.where, queryId),\n returning: this.transformNode(node.returning, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n with: this.transformNode(node.with, queryId),\n orderBy: this.transformNode(node.orderBy, queryId),\n limit: this.transformNode(node.limit, queryId),\n explain: this.transformNode(node.explain, queryId),\n top: this.transformNode(node.top, queryId),\n output: this.transformNode(node.output, queryId),\n });\n }\n transformReturning(node, queryId) {\n return requireAllProps({\n kind: 'ReturningNode',\n selections: this.transformNodeList(node.selections, queryId),\n });\n }\n transformCreateTable(node, queryId) {\n return requireAllProps({\n kind: 'CreateTableNode',\n table: this.transformNode(node.table, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n constraints: this.transformNodeList(node.constraints, queryId),\n temporary: node.temporary,\n ifNotExists: node.ifNotExists,\n onCommit: node.onCommit,\n frontModifiers: this.transformNodeList(node.frontModifiers, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n selectQuery: this.transformNode(node.selectQuery, queryId),\n });\n }\n transformColumnDefinition(node, queryId) {\n return requireAllProps({\n kind: 'ColumnDefinitionNode',\n column: this.transformNode(node.column, queryId),\n dataType: this.transformNode(node.dataType, queryId),\n references: this.transformNode(node.references, queryId),\n primaryKey: node.primaryKey,\n autoIncrement: node.autoIncrement,\n unique: node.unique,\n notNull: node.notNull,\n unsigned: node.unsigned,\n defaultTo: this.transformNode(node.defaultTo, queryId),\n check: this.transformNode(node.check, queryId),\n generated: this.transformNode(node.generated, queryId),\n frontModifiers: this.transformNodeList(node.frontModifiers, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n nullsNotDistinct: node.nullsNotDistinct,\n identity: node.identity,\n ifNotExists: node.ifNotExists,\n });\n }\n transformAddColumn(node, queryId) {\n return requireAllProps({\n kind: 'AddColumnNode',\n column: this.transformNode(node.column, queryId),\n });\n }\n transformDropTable(node, queryId) {\n return requireAllProps({\n kind: 'DropTableNode',\n table: this.transformNode(node.table, queryId),\n ifExists: node.ifExists,\n cascade: node.cascade,\n });\n }\n transformOrderBy(node, queryId) {\n return requireAllProps({\n kind: 'OrderByNode',\n items: this.transformNodeList(node.items, queryId),\n });\n }\n transformOrderByItem(node, queryId) {\n return requireAllProps({\n kind: 'OrderByItemNode',\n orderBy: this.transformNode(node.orderBy, queryId),\n direction: this.transformNode(node.direction, queryId),\n collation: this.transformNode(node.collation, queryId),\n nulls: node.nulls,\n });\n }\n transformGroupBy(node, queryId) {\n return requireAllProps({\n kind: 'GroupByNode',\n items: this.transformNodeList(node.items, queryId),\n });\n }\n transformGroupByItem(node, queryId) {\n return requireAllProps({\n kind: 'GroupByItemNode',\n groupBy: this.transformNode(node.groupBy, queryId),\n });\n }\n transformUpdateQuery(node, queryId) {\n return requireAllProps({\n kind: 'UpdateQueryNode',\n table: this.transformNode(node.table, queryId),\n from: this.transformNode(node.from, queryId),\n joins: this.transformNodeList(node.joins, queryId),\n where: this.transformNode(node.where, queryId),\n updates: this.transformNodeList(node.updates, queryId),\n returning: this.transformNode(node.returning, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n with: this.transformNode(node.with, queryId),\n explain: this.transformNode(node.explain, queryId),\n limit: this.transformNode(node.limit, queryId),\n top: this.transformNode(node.top, queryId),\n output: this.transformNode(node.output, queryId),\n orderBy: this.transformNode(node.orderBy, queryId),\n });\n }\n transformColumnUpdate(node, queryId) {\n return requireAllProps({\n kind: 'ColumnUpdateNode',\n column: this.transformNode(node.column, queryId),\n value: this.transformNode(node.value, queryId),\n });\n }\n transformLimit(node, queryId) {\n return requireAllProps({\n kind: 'LimitNode',\n limit: this.transformNode(node.limit, queryId),\n });\n }\n transformOffset(node, queryId) {\n return requireAllProps({\n kind: 'OffsetNode',\n offset: this.transformNode(node.offset, queryId),\n });\n }\n transformOnConflict(node, queryId) {\n return requireAllProps({\n kind: 'OnConflictNode',\n columns: this.transformNodeList(node.columns, queryId),\n constraint: this.transformNode(node.constraint, queryId),\n indexExpression: this.transformNode(node.indexExpression, queryId),\n indexWhere: this.transformNode(node.indexWhere, queryId),\n updates: this.transformNodeList(node.updates, queryId),\n updateWhere: this.transformNode(node.updateWhere, queryId),\n doNothing: node.doNothing,\n });\n }\n transformOnDuplicateKey(node, queryId) {\n return requireAllProps({\n kind: 'OnDuplicateKeyNode',\n updates: this.transformNodeList(node.updates, queryId),\n });\n }\n transformCreateIndex(node, queryId) {\n return requireAllProps({\n kind: 'CreateIndexNode',\n name: this.transformNode(node.name, queryId),\n table: this.transformNode(node.table, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n unique: node.unique,\n using: this.transformNode(node.using, queryId),\n ifNotExists: node.ifNotExists,\n where: this.transformNode(node.where, queryId),\n nullsNotDistinct: node.nullsNotDistinct,\n });\n }\n transformList(node, queryId) {\n return requireAllProps({\n kind: 'ListNode',\n items: this.transformNodeList(node.items, queryId),\n });\n }\n transformDropIndex(node, queryId) {\n return requireAllProps({\n kind: 'DropIndexNode',\n name: this.transformNode(node.name, queryId),\n table: this.transformNode(node.table, queryId),\n ifExists: node.ifExists,\n cascade: node.cascade,\n });\n }\n transformPrimaryKeyConstraint(node, queryId) {\n return requireAllProps({\n kind: 'PrimaryKeyConstraintNode',\n columns: this.transformNodeList(node.columns, queryId),\n name: this.transformNode(node.name, queryId),\n deferrable: node.deferrable,\n initiallyDeferred: node.initiallyDeferred,\n });\n }\n transformUniqueConstraint(node, queryId) {\n return requireAllProps({\n kind: 'UniqueConstraintNode',\n columns: this.transformNodeList(node.columns, queryId),\n name: this.transformNode(node.name, queryId),\n nullsNotDistinct: node.nullsNotDistinct,\n deferrable: node.deferrable,\n initiallyDeferred: node.initiallyDeferred,\n });\n }\n transformForeignKeyConstraint(node, queryId) {\n return requireAllProps({\n kind: 'ForeignKeyConstraintNode',\n columns: this.transformNodeList(node.columns, queryId),\n references: this.transformNode(node.references, queryId),\n name: this.transformNode(node.name, queryId),\n onDelete: node.onDelete,\n onUpdate: node.onUpdate,\n deferrable: node.deferrable,\n initiallyDeferred: node.initiallyDeferred,\n });\n }\n transformSetOperation(node, queryId) {\n return requireAllProps({\n kind: 'SetOperationNode',\n operator: node.operator,\n expression: this.transformNode(node.expression, queryId),\n all: node.all,\n });\n }\n transformReferences(node, queryId) {\n return requireAllProps({\n kind: 'ReferencesNode',\n table: this.transformNode(node.table, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n onDelete: node.onDelete,\n onUpdate: node.onUpdate,\n });\n }\n transformCheckConstraint(node, queryId) {\n return requireAllProps({\n kind: 'CheckConstraintNode',\n expression: this.transformNode(node.expression, queryId),\n name: this.transformNode(node.name, queryId),\n });\n }\n transformWith(node, queryId) {\n return requireAllProps({\n kind: 'WithNode',\n expressions: this.transformNodeList(node.expressions, queryId),\n recursive: node.recursive,\n });\n }\n transformCommonTableExpression(node, queryId) {\n return requireAllProps({\n kind: 'CommonTableExpressionNode',\n name: this.transformNode(node.name, queryId),\n materialized: node.materialized,\n expression: this.transformNode(node.expression, queryId),\n });\n }\n transformCommonTableExpressionName(node, queryId) {\n return requireAllProps({\n kind: 'CommonTableExpressionNameNode',\n table: this.transformNode(node.table, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n });\n }\n transformHaving(node, queryId) {\n return requireAllProps({\n kind: 'HavingNode',\n having: this.transformNode(node.having, queryId),\n });\n }\n transformCreateSchema(node, queryId) {\n return requireAllProps({\n kind: 'CreateSchemaNode',\n schema: this.transformNode(node.schema, queryId),\n ifNotExists: node.ifNotExists,\n });\n }\n transformDropSchema(node, queryId) {\n return requireAllProps({\n kind: 'DropSchemaNode',\n schema: this.transformNode(node.schema, queryId),\n ifExists: node.ifExists,\n cascade: node.cascade,\n });\n }\n transformAlterTable(node, queryId) {\n return requireAllProps({\n kind: 'AlterTableNode',\n table: this.transformNode(node.table, queryId),\n renameTo: this.transformNode(node.renameTo, queryId),\n setSchema: this.transformNode(node.setSchema, queryId),\n columnAlterations: this.transformNodeList(node.columnAlterations, queryId),\n addConstraint: this.transformNode(node.addConstraint, queryId),\n dropConstraint: this.transformNode(node.dropConstraint, queryId),\n renameConstraint: this.transformNode(node.renameConstraint, queryId),\n addIndex: this.transformNode(node.addIndex, queryId),\n dropIndex: this.transformNode(node.dropIndex, queryId),\n });\n }\n transformDropColumn(node, queryId) {\n return requireAllProps({\n kind: 'DropColumnNode',\n column: this.transformNode(node.column, queryId),\n });\n }\n transformRenameColumn(node, queryId) {\n return requireAllProps({\n kind: 'RenameColumnNode',\n column: this.transformNode(node.column, queryId),\n renameTo: this.transformNode(node.renameTo, queryId),\n });\n }\n transformAlterColumn(node, queryId) {\n return requireAllProps({\n kind: 'AlterColumnNode',\n column: this.transformNode(node.column, queryId),\n dataType: this.transformNode(node.dataType, queryId),\n dataTypeExpression: this.transformNode(node.dataTypeExpression, queryId),\n setDefault: this.transformNode(node.setDefault, queryId),\n dropDefault: node.dropDefault,\n setNotNull: node.setNotNull,\n dropNotNull: node.dropNotNull,\n });\n }\n transformModifyColumn(node, queryId) {\n return requireAllProps({\n kind: 'ModifyColumnNode',\n column: this.transformNode(node.column, queryId),\n });\n }\n transformAddConstraint(node, queryId) {\n return requireAllProps({\n kind: 'AddConstraintNode',\n constraint: this.transformNode(node.constraint, queryId),\n });\n }\n transformDropConstraint(node, queryId) {\n return requireAllProps({\n kind: 'DropConstraintNode',\n constraintName: this.transformNode(node.constraintName, queryId),\n ifExists: node.ifExists,\n modifier: node.modifier,\n });\n }\n transformRenameConstraint(node, queryId) {\n return requireAllProps({\n kind: 'RenameConstraintNode',\n oldName: this.transformNode(node.oldName, queryId),\n newName: this.transformNode(node.newName, queryId),\n });\n }\n transformCreateView(node, queryId) {\n return requireAllProps({\n kind: 'CreateViewNode',\n name: this.transformNode(node.name, queryId),\n temporary: node.temporary,\n orReplace: node.orReplace,\n ifNotExists: node.ifNotExists,\n materialized: node.materialized,\n columns: this.transformNodeList(node.columns, queryId),\n as: this.transformNode(node.as, queryId),\n });\n }\n transformRefreshMaterializedView(node, queryId) {\n return requireAllProps({\n kind: 'RefreshMaterializedViewNode',\n name: this.transformNode(node.name, queryId),\n concurrently: node.concurrently,\n withNoData: node.withNoData,\n });\n }\n transformDropView(node, queryId) {\n return requireAllProps({\n kind: 'DropViewNode',\n name: this.transformNode(node.name, queryId),\n ifExists: node.ifExists,\n materialized: node.materialized,\n cascade: node.cascade,\n });\n }\n transformGenerated(node, queryId) {\n return requireAllProps({\n kind: 'GeneratedNode',\n byDefault: node.byDefault,\n always: node.always,\n identity: node.identity,\n stored: node.stored,\n expression: this.transformNode(node.expression, queryId),\n });\n }\n transformDefaultValue(node, queryId) {\n return requireAllProps({\n kind: 'DefaultValueNode',\n defaultValue: this.transformNode(node.defaultValue, queryId),\n });\n }\n transformOn(node, queryId) {\n return requireAllProps({\n kind: 'OnNode',\n on: this.transformNode(node.on, queryId),\n });\n }\n transformSelectModifier(node, queryId) {\n return requireAllProps({\n kind: 'SelectModifierNode',\n modifier: node.modifier,\n rawModifier: this.transformNode(node.rawModifier, queryId),\n of: this.transformNodeList(node.of, queryId),\n });\n }\n transformCreateType(node, queryId) {\n return requireAllProps({\n kind: 'CreateTypeNode',\n name: this.transformNode(node.name, queryId),\n enum: this.transformNode(node.enum, queryId),\n });\n }\n transformDropType(node, queryId) {\n return requireAllProps({\n kind: 'DropTypeNode',\n name: this.transformNode(node.name, queryId),\n ifExists: node.ifExists,\n });\n }\n transformExplain(node, queryId) {\n return requireAllProps({\n kind: 'ExplainNode',\n format: node.format,\n options: this.transformNode(node.options, queryId),\n });\n }\n transformSchemableIdentifier(node, queryId) {\n return requireAllProps({\n kind: 'SchemableIdentifierNode',\n schema: this.transformNode(node.schema, queryId),\n identifier: this.transformNode(node.identifier, queryId),\n });\n }\n transformAggregateFunction(node, queryId) {\n return requireAllProps({\n kind: 'AggregateFunctionNode',\n func: node.func,\n aggregated: this.transformNodeList(node.aggregated, queryId),\n distinct: node.distinct,\n orderBy: this.transformNode(node.orderBy, queryId),\n withinGroup: this.transformNode(node.withinGroup, queryId),\n filter: this.transformNode(node.filter, queryId),\n over: this.transformNode(node.over, queryId),\n });\n }\n transformOver(node, queryId) {\n return requireAllProps({\n kind: 'OverNode',\n orderBy: this.transformNode(node.orderBy, queryId),\n partitionBy: this.transformNode(node.partitionBy, queryId),\n });\n }\n transformPartitionBy(node, queryId) {\n return requireAllProps({\n kind: 'PartitionByNode',\n items: this.transformNodeList(node.items, queryId),\n });\n }\n transformPartitionByItem(node, queryId) {\n return requireAllProps({\n kind: 'PartitionByItemNode',\n partitionBy: this.transformNode(node.partitionBy, queryId),\n });\n }\n transformBinaryOperation(node, queryId) {\n return requireAllProps({\n kind: 'BinaryOperationNode',\n leftOperand: this.transformNode(node.leftOperand, queryId),\n operator: this.transformNode(node.operator, queryId),\n rightOperand: this.transformNode(node.rightOperand, queryId),\n });\n }\n transformUnaryOperation(node, queryId) {\n return requireAllProps({\n kind: 'UnaryOperationNode',\n operator: this.transformNode(node.operator, queryId),\n operand: this.transformNode(node.operand, queryId),\n });\n }\n transformUsing(node, queryId) {\n return requireAllProps({\n kind: 'UsingNode',\n tables: this.transformNodeList(node.tables, queryId),\n });\n }\n transformFunction(node, queryId) {\n return requireAllProps({\n kind: 'FunctionNode',\n func: node.func,\n arguments: this.transformNodeList(node.arguments, queryId),\n });\n }\n transformCase(node, queryId) {\n return requireAllProps({\n kind: 'CaseNode',\n value: this.transformNode(node.value, queryId),\n when: this.transformNodeList(node.when, queryId),\n else: this.transformNode(node.else, queryId),\n isStatement: node.isStatement,\n });\n }\n transformWhen(node, queryId) {\n return requireAllProps({\n kind: 'WhenNode',\n condition: this.transformNode(node.condition, queryId),\n result: this.transformNode(node.result, queryId),\n });\n }\n transformJSONReference(node, queryId) {\n return requireAllProps({\n kind: 'JSONReferenceNode',\n reference: this.transformNode(node.reference, queryId),\n traversal: this.transformNode(node.traversal, queryId),\n });\n }\n transformJSONPath(node, queryId) {\n return requireAllProps({\n kind: 'JSONPathNode',\n inOperator: this.transformNode(node.inOperator, queryId),\n pathLegs: this.transformNodeList(node.pathLegs, queryId),\n });\n }\n transformJSONPathLeg(node, _queryId) {\n return requireAllProps({\n kind: 'JSONPathLegNode',\n type: node.type,\n value: node.value,\n });\n }\n transformJSONOperatorChain(node, queryId) {\n return requireAllProps({\n kind: 'JSONOperatorChainNode',\n operator: this.transformNode(node.operator, queryId),\n values: this.transformNodeList(node.values, queryId),\n });\n }\n transformTuple(node, queryId) {\n return requireAllProps({\n kind: 'TupleNode',\n values: this.transformNodeList(node.values, queryId),\n });\n }\n transformMergeQuery(node, queryId) {\n return requireAllProps({\n kind: 'MergeQueryNode',\n into: this.transformNode(node.into, queryId),\n using: this.transformNode(node.using, queryId),\n whens: this.transformNodeList(node.whens, queryId),\n with: this.transformNode(node.with, queryId),\n top: this.transformNode(node.top, queryId),\n endModifiers: this.transformNodeList(node.endModifiers, queryId),\n output: this.transformNode(node.output, queryId),\n returning: this.transformNode(node.returning, queryId),\n });\n }\n transformMatched(node, _queryId) {\n return requireAllProps({\n kind: 'MatchedNode',\n not: node.not,\n bySource: node.bySource,\n });\n }\n transformAddIndex(node, queryId) {\n return requireAllProps({\n kind: 'AddIndexNode',\n name: this.transformNode(node.name, queryId),\n columns: this.transformNodeList(node.columns, queryId),\n unique: node.unique,\n using: this.transformNode(node.using, queryId),\n ifNotExists: node.ifNotExists,\n });\n }\n transformCast(node, queryId) {\n return requireAllProps({\n kind: 'CastNode',\n expression: this.transformNode(node.expression, queryId),\n dataType: this.transformNode(node.dataType, queryId),\n });\n }\n transformFetch(node, queryId) {\n return requireAllProps({\n kind: 'FetchNode',\n rowCount: this.transformNode(node.rowCount, queryId),\n modifier: node.modifier,\n });\n }\n transformTop(node, _queryId) {\n return requireAllProps({\n kind: 'TopNode',\n expression: node.expression,\n modifiers: node.modifiers,\n });\n }\n transformOutput(node, queryId) {\n return requireAllProps({\n kind: 'OutputNode',\n selections: this.transformNodeList(node.selections, queryId),\n });\n }\n transformDataType(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformSelectAll(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformIdentifier(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformValue(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformPrimitiveValueList(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformOperator(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformDefaultInsertValue(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformOrAction(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n transformCollate(node, _queryId) {\n // An Object.freezed leaf node. No need to clone.\n return node;\n }\n}\n","/// <reference types=\"./table-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\nimport { SchemableIdentifierNode } from './schemable-identifier-node.js';\n/**\n * @internal\n */\nexport const TableNode = freeze({\n is(node) {\n return node.kind === 'TableNode';\n },\n create(table) {\n return freeze({\n kind: 'TableNode',\n table: SchemableIdentifierNode.create(table),\n });\n },\n createWithSchema(schema, table) {\n return freeze({\n kind: 'TableNode',\n table: SchemableIdentifierNode.createWithSchema(schema, table),\n });\n },\n});\n","/// <reference types=\"./using-node.d.ts\" />\nimport { freeze } from '../util/object-utils.js';\n/**\n * @internal\n */\nexport const UsingNode = freeze({\n is(node) {\n return node.kind === 'UsingNode';\n },\n create(tables) {\n return freeze({\n kind: 'UsingNode',\n tables: freeze(tables),\n });\n },\n cloneWithTables(using, tables) {\n return freeze({\n ...using,\n tables: freeze([...using.tables, ...tables]),\n });\n },\n});\n","/// <reference types=\"./with-schema-transformer.d.ts\" />\nimport { AliasNode } from '../../operation-node/alias-node.js';\nimport { IdentifierNode } from '../../operation-node/identifier-node.js';\nimport { JoinNode } from '../../operation-node/join-node.js';\nimport { ListNode } from '../../operation-node/list-node.js';\nimport { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';\nimport { SchemableIdentifierNode } from '../../operation-node/schemable-identifier-node.js';\nimport { TableNode } from '../../operation-node/table-node.js';\nimport { UsingNode } from '../../operation-node/using-node.js';\nimport { freeze } from '../../util/object-utils.js';\n// This object exist only so that we get a type error when a new RootOperationNode\n// is added. If you get a type error here, make sure to add the new root node and\n// handle it correctly in the transformer.\n//\n// DO NOT REFACTOR THIS EVEN IF IT SEEMS USELESS TO YOU!\nconst ROOT_OPERATION_NODES = freeze({\n AlterTableNode: true,\n CreateIndexNode: true,\n CreateSchemaNode: true,\n CreateTableNode: true,\n CreateTypeNode: true,\n CreateViewNode: true,\n RefreshMaterializedViewNode: true,\n DeleteQueryNode: true,\n DropIndexNode: true,\n DropSchemaNode: true,\n DropTableNode: true,\n DropTypeNode: true,\n DropViewNode: true,\n InsertQueryNode: true,\n RawNode: true,\n SelectQueryNode: true,\n UpdateQueryNode: true,\n MergeQueryNode: true,\n});\nconst SCHEMALESS_FUNCTIONS = {\n json_agg: true,\n to_json: true,\n};\nexport class WithSchemaTransformer extends OperationNodeTransformer {\n #schema;\n #schemableIds = new Set();\n #ctes = new Set();\n constructor(schema) {\n super();\n this.#schema = schema;\n }\n transformNodeImpl(node, queryId) {\n if (!this.#isRootOperationNode(node)) {\n return super.transformNodeImpl(node, queryId);\n }\n const ctes = this.#collectCTEs(node);\n for (const cte of ctes) {\n this.#ctes.add(cte);\n }\n const tables = this.#collectSchemableIds(node);\n for (const table of tables) {\n this.#schemableIds.add(table);\n }\n const transformed = super.transformNodeImpl(node, queryId);\n for (const table of tables) {\n this.#schemableIds.delete(table);\n }\n for (const cte of ctes) {\n this.#ctes.delete(cte);\n }\n return transformed;\n }\n transformSchemableIdentifier(node, queryId) {\n const transformed = super.transformSchemableIdentifier(node, queryId);\n if (transformed.schema || !this.#schemableIds.has(node.identifier.name)) {\n return transformed;\n }\n return {\n ...transformed,\n schema: IdentifierNode.create(this.#schema),\n };\n }\n transformReferences(node, queryId) {\n const transformed = super.transformReferences(node, queryId);\n if (transformed.table.table.schema) {\n return transformed;\n }\n return {\n ...transformed,\n table: TableNode.createWithSchema(this.#schema, transformed.table.table.identifier.name),\n };\n }\n transformAggregateFunction(node, queryId) {\n return {\n ...super.transformAggregateFunction({ ...node, aggregated: [] }, queryId),\n aggregated: this.#transformTableArgsWithoutSchemas(node, queryId, 'aggregated'),\n };\n }\n transformFunction(node, queryId) {\n return {\n ...super.transformFunction({ ...node, arguments: [] }, queryId),\n arguments: this.#transformTableArgsWithoutSchemas(node, queryId, 'arguments'),\n };\n }\n transformSelectModifier(node, queryId) {\n return {\n ...super.transformSelectModifier({ ...node, of: undefined }, queryId),\n of: node.of?.map((item) => TableNode.is(item) && !item.table.schema\n ? {\n ...item,\n table: this.transformIdentifier(item.table.identifier, queryId),\n }\n : this.transformNode(item, queryId)),\n };\n }\n #transformTableArgsWithoutSchemas(node, queryId, argsKey) {\n return SCHEMALESS_FUNCTIONS[node.func]\n ? node[argsKey].map((arg) => !TableNode.is(arg) || arg.table.schema\n ? this.transformNode(arg, queryId)\n : {\n ...arg,\n table: this.transformIdentifier(arg.table.identifier, queryId),\n })\n : this.transformNodeList(node[argsKey], queryId);\n }\n #isRootOperationNode(node) {\n return node.kind in ROOT_OPERATION_NODES;\n }\n #collectSchemableIds(node) {\n const schemableIds = new Set();\n if ('name' in node && node.name && SchemableIdentifierNode.is(node.name)) {\n this.#collectSchemableId(node.name, schemableIds);\n }\n if ('from' in node && node.from) {\n for (const from of node.from.froms) {\n this.#collectSchemableIdsFromTableExpr(from, schemableIds);\n }\n }\n if ('into' in node && node.into) {\n this.#collectSchemableIdsFromTableExpr(node.into, schemableIds);\n }\n if ('table' in node && node.table) {\n this.#collectSchemableIdsFromTableExpr(node.table, schemableIds);\n }\n if ('joins' in node && node.joins) {\n for (const join of node.joins) {\n this.#collectSchemableIdsFromTableExpr(join.table, schemableIds);\n }\n }\n if ('using' in node && node.using) {\n if (JoinNode.is(node.using)) {\n this.#collectSchemableIdsFromTableExpr(node.using.table, schemableIds);\n }\n else {\n this.#collectSchemableIdsFromTableExpr(node.using, schemableIds);\n }\n }\n return schemableIds;\n }\n #collectCTEs(node) {\n const ctes = new Set();\n if ('with' in node && node.with) {\n this.#collectCTEIds(node.with, ctes);\n }\n return ctes;\n }\n #collectSchemableIdsFromTableExpr(node, schemableIds) {\n if (TableNode.is(node)) {\n return this.#collectSchemableId(node.table, schemableIds);\n }\n if (AliasNode.is(node) && TableNode.is(node.node)) {\n return this.#collectSchemableId(node.node.table, schemableIds);\n }\n if (ListNode.is(node)) {\n for (const table of node.items) {\n this.#collectSchemableIdsFromTableExpr(table, schemableIds);\n }\n return;\n }\n if (UsingNode.is(node)) {\n for (const table of node.tables) {\n this.#collectSchemableIdsFromTableExpr(table, schemableIds);\n }\n return;\n }\n }\n #collectSchemableId(node, schemableIds) {\n const id = node.identifier.name;\n if (!this.#schemableIds.has(id) && !this.#ctes.has(id)) {\n schemableIds.add(id);\n }\n }\n #collectCTEIds(node, ctes) {\n for (const expr of node.expressions) {\n const cteId = expr.name.table.table.identifier.name;\n if (!this.#ctes.has(cteId)) {\n ctes.add(cteId);\n }\n }\n }\n}\n","/// <reference types=\"./with-schema-plugin.d.ts\" />\nimport { WithSchemaTransformer } from './with-schema-transformer.js';\nexport class WithSchemaPlugin {\n #transformer;\n constructor(schema) {\n this.#transformer = new WithSchemaTransformer(schema);\n }\n transformQuery(args) {\n return this.#transformer.transformNode(args.node, args.queryId);\n }\n async transformResult(args) {\n return args.result;\n }\n}\n","/// <reference types=\"./migrator.d.ts\" />\nimport { NoopPlugin } from '../plugin/noop-plugin.js';\nimport { WithSchemaPlugin } from '../plugin/with-schema/with-schema-plugin.js';\nimport { freeze, getLast, isObject } from '../util/object-utils.js';\nexport const DEFAULT_MIGRATION_TABLE = 'kysely_migration';\nexport const DEFAULT_MIGRATION_LOCK_TABLE = 'kysely_migration_lock';\nexport const DEFAULT_ALLOW_UNORDERED_MIGRATIONS = false;\nexport const MIGRATION_LOCK_ID = 'migration_lock';\nexport const NO_MIGRATIONS = freeze({ __noMigrations__: true });\n/**\n * A class for running migrations.\n *\n * ### Example\n *\n * This example uses the {@link FileMigrationProvider} that reads migrations\n * files from a single folder. You can easily implement your own\n * {@link MigrationProvider} if you want to provide migrations some\n * other way.\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import * as Sqlite from 'better-sqlite3'\n * import {\n * FileMigrationProvider,\n * Kysely,\n * Migrator,\n * SqliteDialect\n * } from 'kysely'\n *\n * const db = new Kysely<any>({\n * dialect: new SqliteDialect({\n * database: Sqlite(':memory:')\n * })\n * })\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * // Path to the folder that contains all your migrations.\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n * ```\n */\nexport class Migrator {\n #props;\n constructor(props) {\n this.#props = freeze(props);\n }\n /**\n * Returns a {@link MigrationInfo} object for each migration.\n *\n * The returned array is sorted by migration name.\n */\n async getMigrations() {\n const tableExists = await this.#doesTableExist(this.#migrationTable);\n const executedMigrations = tableExists\n ? await this.#props.db\n .withPlugin(this.#schemaPlugin)\n .selectFrom(this.#migrationTable)\n .select(['name', 'timestamp'])\n .$narrowType()\n .execute()\n : [];\n const migrations = await this.#resolveMigrations();\n return migrations.map(({ name, ...migration }) => {\n const executed = executedMigrations.find((it) => it.name === name);\n return {\n name,\n migration,\n executedAt: executed ? new Date(executed.timestamp) : undefined,\n };\n });\n }\n /**\n * Runs all migrations that have not yet been run.\n *\n * This method returns a {@link MigrationResultSet} instance and _never_ throws.\n * {@link MigrationResultSet.error} holds the error if something went wrong.\n * {@link MigrationResultSet.results} contains information about which migrations\n * were executed and which failed. See the examples below.\n *\n * This method goes through all possible migrations provided by the provider and runs the\n * ones whose names come alphabetically after the last migration that has been run. If the\n * list of executed migrations doesn't match the beginning of the list of possible migrations\n * an error is returned.\n *\n * ### Examples\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import * as Sqlite from 'better-sqlite3'\n * import { FileMigrationProvider, Migrator } from 'kysely'\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n *\n * const { error, results } = await migrator.migrateToLatest()\n *\n * results?.forEach((it) => {\n * if (it.status === 'Success') {\n * console.log(`migration \"${it.migrationName}\" was executed successfully`)\n * } else if (it.status === 'Error') {\n * console.error(`failed to execute migration \"${it.migrationName}\"`)\n * }\n * })\n *\n * if (error) {\n * console.error('failed to run `migrateToLatest`')\n * console.error(error)\n * }\n * ```\n */\n async migrateToLatest() {\n return this.#migrate(() => ({ direction: 'Up', step: Infinity }));\n }\n /**\n * Migrate up/down to a specific migration.\n *\n * This method returns a {@link MigrationResultSet} instance and _never_ throws.\n * {@link MigrationResultSet.error} holds the error if something went wrong.\n * {@link MigrationResultSet.results} contains information about which migrations\n * were executed and which failed.\n *\n * ### Examples\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import { FileMigrationProvider, Migrator } from 'kysely'\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * // Path to the folder that contains all your migrations.\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n *\n * await migrator.migrateTo('some_migration')\n * ```\n *\n * If you specify the name of the first migration, this method migrates\n * down to the first migration, but doesn't run the `down` method of\n * the first migration. In case you want to migrate all the way down,\n * you can use a special constant `NO_MIGRATIONS`:\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import { FileMigrationProvider, Migrator, NO_MIGRATIONS } from 'kysely'\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * // Path to the folder that contains all your migrations.\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n *\n * await migrator.migrateTo(NO_MIGRATIONS)\n * ```\n */\n async migrateTo(targetMigrationName) {\n return this.#migrate(({ migrations, executedMigrations, pendingMigrations, }) => {\n if (isObject(targetMigrationName) &&\n targetMigrationName.__noMigrations__ === true) {\n return { direction: 'Down', step: Infinity };\n }\n if (!migrations.find((m) => m.name === targetMigrationName)) {\n throw new Error(`migration \"${targetMigrationName}\" doesn't exist`);\n }\n const executedIndex = executedMigrations.indexOf(targetMigrationName);\n const pendingIndex = pendingMigrations.findIndex((m) => m.name === targetMigrationName);\n if (executedIndex !== -1) {\n return {\n direction: 'Down',\n step: executedMigrations.length - executedIndex - 1,\n };\n }\n else if (pendingIndex !== -1) {\n return { direction: 'Up', step: pendingIndex + 1 };\n }\n else {\n throw new Error(`migration \"${targetMigrationName}\" isn't executed or pending`);\n }\n });\n }\n /**\n * Migrate one step up.\n *\n * This method returns a {@link MigrationResultSet} instance and _never_ throws.\n * {@link MigrationResultSet.error} holds the error if something went wrong.\n * {@link MigrationResultSet.results} contains information about which migrations\n * were executed and which failed.\n *\n * ### Examples\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import { FileMigrationProvider, Migrator } from 'kysely'\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * // Path to the folder that contains all your migrations.\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n *\n * await migrator.migrateUp()\n * ```\n */\n async migrateUp() {\n return this.#migrate(() => ({ direction: 'Up', step: 1 }));\n }\n /**\n * Migrate one step down.\n *\n * This method returns a {@link MigrationResultSet} instance and _never_ throws.\n * {@link MigrationResultSet.error} holds the error if something went wrong.\n * {@link MigrationResultSet.results} contains information about which migrations\n * were executed and which failed.\n *\n * ### Examples\n *\n * ```ts\n * import { promises as fs } from 'node:fs'\n * import path from 'node:path'\n * import { FileMigrationProvider, Migrator } from 'kysely'\n *\n * const migrator = new Migrator({\n * db,\n * provider: new FileMigrationProvider({\n * fs,\n * // Path to the folder that contains all your migrations.\n * migrationFolder: 'some/path/to/migrations',\n * path,\n * })\n * })\n *\n * await migrator.migrateDown()\n * ```\n */\n async migrateDown() {\n return this.#migrate(() => ({ direction: 'Down', step: 1 }));\n }\n async #migrate(getMigrationDirectionAndStep) {\n try {\n await this.#ensureMigrationTableSchemaExists();\n await this.#ensureMigrationTableExists();\n await this.#ensureMigrationLockTableExists();\n await this.#ensureLockRowExists();\n return await this.#runMigrations(getMigrationDirectionAndStep);\n }\n catch (error) {\n if (error instanceof MigrationResultSetError) {\n return error.resultSet;\n }\n return { error };\n }\n }\n get #migrationTableSchema() {\n return this.#props.migrationTableSchema;\n }\n get #migrationTable() {\n return this.#props.migrationTableName ?? DEFAULT_MIGRATION_TABLE;\n }\n get #migrationLockTable() {\n return this.#props.migrationLockTableName ?? DEFAULT_MIGRATION_LOCK_TABLE;\n }\n get #allowUnorderedMigrations() {\n return (this.#props.allowUnorderedMigrations ?? DEFAULT_ALLOW_UNORDERED_MIGRATIONS);\n }\n get #schemaPlugin() {\n if (this.#migrationTableSchema) {\n return new WithSchemaPlugin(this.#migrationTableSchema);\n }\n return new NoopPlugin();\n }\n async #ensureMigrationTableSchemaExists() {\n if (!this.#migrationTableSchema) {\n // Use default schema. Nothing to do.\n return;\n }\n const schemaExists = await this.#doesSchemaExist();\n if (schemaExists) {\n return;\n }\n try {\n await this.#createIfNotExists(this.#props.db.schema.createSchema(this.#migrationTableSchema));\n }\n catch (error) {\n const schemaExists = await this.#doesSchemaExist();\n // At least on PostgreSQL, `if not exists` doesn't guarantee the `create schema`\n // query doesn't throw if the schema already exits. That's why we check if\n // the schema exist here and ignore the error if it does.\n if (!schemaExists) {\n throw error;\n }\n }\n }\n async #ensureMigrationTableExists() {\n const tableExists = await this.#doesTableExist(this.#migrationTable);\n if (tableExists) {\n return;\n }\n try {\n await this.#createIfNotExists(this.#props.db.schema\n .withPlugin(this.#schemaPlugin)\n .createTable(this.#migrationTable)\n .addColumn('name', 'varchar(255)', (col) => col.notNull().primaryKey())\n // The migration run time as ISO string. This is not a real date type as we\n // can't know which data type is supported by all future dialects.\n .addColumn('timestamp', 'varchar(255)', (col) => col.notNull()));\n }\n catch (error) {\n const tableExists = await this.#doesTableExist(this.#migrationTable);\n // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table`\n // query doesn't throw if the table already exits. That's why we check if\n // the table exist here and ignore the error if it does.\n if (!tableExists) {\n throw error;\n }\n }\n }\n async #ensureMigrationLockTableExists() {\n const tableExists = await this.#doesTableExist(this.#migrationLockTable);\n if (tableExists) {\n return;\n }\n try {\n await this.#createIfNotExists(this.#props.db.schema\n .withPlugin(this.#schemaPlugin)\n .createTable(this.#migrationLockTable)\n .addColumn('id', 'varchar(255)', (col) => col.notNull().primaryKey())\n .addColumn('is_locked', 'integer', (col) => col.notNull().defaultTo(0)));\n }\n catch (error) {\n const tableExists = await this.#doesTableExist(this.#migrationLockTable);\n // At least on PostgreSQL, `if not exists` doesn't guarantee the `create table`\n // query doesn't throw if the table already exits. That's why we check if\n // the table exist here and ignore the error if it does.\n if (!tableExists) {\n throw error;\n }\n }\n }\n async #ensureLockRowExists() {\n const lockRowExists = await this.#doesLockRowExists();\n if (lockRowExists) {\n return;\n }\n try {\n await this.#props.db\n .withPlugin(this.#schemaPlugin)\n .insertInto(this.#migrationLockTable)\n .values({ id: MIGRATION_LOCK_ID, is_locked: 0 })\n .execute();\n }\n catch (error) {\n const lockRowExists = await this.#doesLockRowExists();\n if (!lockRowExists) {\n throw error;\n }\n }\n }\n async #doesSchemaExist() {\n const schemas = await this.#props.db.introspection.getSchemas();\n return schemas.some((it) => it.name === this.#migrationTableSchema);\n }\n async #doesTableExist(tableName) {\n const schema = this.#migrationTableSchema;\n const tables = await this.#props.db.introspection.getTables({\n withInternalKyselyTables: true,\n });\n return tables.some((it) => it.name === tableName && (!schema || it.schema === schema));\n }\n async #doesLockRowExists() {\n const lockRow = await this.#props.db\n .withPlugin(this.#schemaPlugin)\n .selectFrom(this.#migrationLockTable)\n .where('id', '=', MIGRATION_LOCK_ID)\n .select('id')\n .executeTakeFirst();\n return !!lockRow;\n }\n async #runMigrations(getMigrationDirectionAndStep) {\n const adapter = this.#props.db.getExecutor().adapter;\n const lockOptions = freeze({\n lockTable: this.#props.migrationLockTableName ?? DEFAULT_MIGRATION_LOCK_TABLE,\n lockRowId: MIGRATION_LOCK_ID,\n lockTableSchema: this.#props.migrationTableSchema,\n });\n const run = async (db) => {\n try {\n await adapter.acquireMigrationLock(db, lockOptions);\n const state = await this.#getState(db);\n if (state.migrations.length === 0) {\n return { results: [] };\n }\n const { direction, step } = getMigrationDirectionAndStep(state);\n if (step <= 0) {\n return { results: [] };\n }\n if (direction === 'Down') {\n return await this.#migrateDown(db, state, step);\n }\n else if (direction === 'Up') {\n return await this.#migrateUp(db, state, step);\n }\n return { results: [] };\n }\n finally {\n await adapter.releaseMigrationLock(db, lockOptions);\n }\n };\n if (adapter.supportsTransactionalDdl && !this.#props.disableTransactions) {\n return this.#props.db.transaction().execute(run);\n }\n else {\n return this.#props.db.connection().execute(run);\n }\n }\n async #getState(db) {\n const migrations = await this.#resolveMigrations();\n const executedMigrations = await this.#getExecutedMigrations(db);\n this.#ensureNoMissingMigrations(migrations, executedMigrations);\n if (!this.#allowUnorderedMigrations) {\n this.#ensureMigrationsInOrder(migrations, executedMigrations);\n }\n const pendingMigrations = this.#getPendingMigrations(migrations, executedMigrations);\n return freeze({\n migrations,\n executedMigrations,\n lastMigration: getLast(executedMigrations),\n pendingMigrations,\n });\n }\n #getPendingMigrations(migrations, executedMigrations) {\n return migrations.filter((migration) => {\n return !executedMigrations.includes(migration.name);\n });\n }\n async #resolveMigrations() {\n const allMigrations = await this.#props.provider.getMigrations();\n return Object.keys(allMigrations)\n .sort()\n .map((name) => ({\n ...allMigrations[name],\n name,\n }));\n }\n async #getExecutedMigrations(db) {\n const executedMigrations = await db\n .withPlugin(this.#schemaPlugin)\n .selectFrom(this.#migrationTable)\n .select(['name', 'timestamp'])\n .$narrowType()\n .execute();\n const nameComparator = this.#props.nameComparator || ((a, b) => a.localeCompare(b));\n return (executedMigrations\n // https://github.com/kysely-org/kysely/issues/843\n .sort((a, b) => {\n if (a.timestamp === b.timestamp) {\n return nameComparator(a.name, b.name);\n }\n return (new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());\n })\n .map((it) => it.name));\n }\n #ensureNoMissingMigrations(migrations, executedMigrations) {\n // Ensure all executed migrations exist in the `migrations` list.\n for (const executed of executedMigrations) {\n if (!migrations.some((it) => it.name === executed)) {\n throw new Error(`corrupted migrations: previously executed migration ${executed} is missing`);\n }\n }\n }\n #ensureMigrationsInOrder(migrations, executedMigrations) {\n // Ensure the executed migrations are the first ones in the migration list.\n for (let i = 0; i < executedMigrations.length; ++i) {\n if (migrations[i].name !== executedMigrations[i]) {\n throw new Error(`corrupted migrations: expected previously executed migration ${executedMigrations[i]} to be at index ${i} but ${migrations[i].name} was found in its place. New migrations must always have a name that comes alphabetically after the last executed migration.`);\n }\n }\n }\n async #migrateDown(db, state, step) {\n const migrationsToRollback = state.executedMigrations\n .slice()\n .reverse()\n .slice(0, step)\n .map((name) => {\n return state.migrations.find((it) => it.name === name);\n });\n const results = migrationsToRollback.map((migration) => {\n return {\n migrationName: migration.name,\n direction: 'Down',\n status: 'NotExecuted',\n };\n });\n for (let i = 0; i < results.length; ++i) {\n const migration = migrationsToRollback[i];\n try {\n if (migration.down) {\n await migration.down(db);\n await db\n .withPlugin(this.#schemaPlugin)\n .deleteFrom(this.#migrationTable)\n .where('name', '=', migration.name)\n .execute();\n results[i] = {\n migrationName: migration.name,\n direction: 'Down',\n status: 'Success',\n };\n }\n }\n catch (error) {\n results[i] = {\n migrationName: migration.name,\n direction: 'Down',\n status: 'Error',\n };\n throw new MigrationResultSetError({\n error,\n results,\n });\n }\n }\n return { results };\n }\n async #migrateUp(db, state, step) {\n const migrationsToRun = state.pendingMigrations.slice(0, step);\n const results = migrationsToRun.map((migration) => {\n return {\n migrationName: migration.name,\n direction: 'Up',\n status: 'NotExecuted',\n };\n });\n for (let i = 0; i < results.length; i++) {\n const migration = state.pendingMigrations[i];\n try {\n await migration.up(db);\n await db\n .withPlugin(this.#schemaPlugin)\n .insertInto(this.#migrationTable)\n .values({\n name: migration.name,\n timestamp: new Date().toISOString(),\n })\n .execute();\n results[i] = {\n migrationName: migration.name,\n direction: 'Up',\n status: 'Success',\n };\n }\n catch (error) {\n results[i] = {\n migrationName: migration.name,\n direction: 'Up',\n status: 'Error',\n };\n throw new MigrationResultSetError({\n error,\n results,\n });\n }\n }\n return { results };\n }\n async #createIfNotExists(qb) {\n if (this.#props.db.getExecutor().adapter.supportsCreateIfNotExists) {\n qb = qb.ifNotExists();\n }\n await qb.execute();\n }\n}\nclass MigrationResultSetError extends Error {\n #resultSet;\n constructor(result) {\n super();\n this.#resultSet = result;\n }\n get resultSet() {\n return this.#resultSet;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.js","../node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js","../node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js"],"names":[],"mappings":";;;AAEA,IAAM,aAAA,GAAgB,IAAA;AACf,IAAM,mBAAA,GAAN,cAAkC,oBAAA,CAAqB;AAAA,EAC1D,cAAc,IAAA,EAAM;AAChB,IAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AACjB,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,MAAM,CAAA;AAAA,EAC3B;AAAA,EACA,8BAAA,GAAiC;AAC7B,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,4BAAA,GAA+B;AAC3B,IAAA,OAAO,EAAA;AAAA,EACX;AAAA,EACA,6BAAA,GAAgC;AAC5B,IAAA,OAAO,EAAA;AAAA,EACX;AAAA,EACA,wBAAA,GAA2B;AACvB,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,yBAAA,GAA4B;AACxB,IAAA,OAAO,GAAA;AAAA,EACX;AAAA,EACA,gBAAA,GAAmB;AACf,IAAA,OAAO,eAAA;AAAA,EACX;AAAA,EACA,mBAAmB,UAAA,EAAY;AAC3B,IAAA,OAAO,UAAA,CAAW,OAAA,CAAQ,aAAA,EAAe,IAAI,CAAA;AAAA,EACjD;AAAA,EACA,wBAAwB,CAAA,EAAG;AAEvB,IAAA,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,EACtB;AACJ;;;AC1BO,IAAM,qBAAN,MAAyB;AAAA,EAC5B,IAAI,yBAAA,GAA4B;AAC5B,IAAA,OAAO,IAAA;AAAA,EACX;AAAA,EACA,IAAI,wBAAA,GAA2B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,iBAAA,GAAoB;AACpB,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,cAAA,GAAiB;AACjB,IAAA,OAAO,KAAA;AAAA,EACX;AACJ;;;AClBO,IAAM,aAAA,GAAN,cAA4B,kBAAA,CAAmB;AAAA,EAClD,IAAI,wBAAA,GAA2B;AAC3B,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EACA,IAAI,iBAAA,GAAoB;AACpB,IAAA,OAAO,IAAA;AAAA,EACX;AAAA,EACA,MAAM,oBAAA,CAAqB,GAAA,EAAK,IAAA,EAAM;AAAA,EAItC;AAAA,EACA,MAAM,oBAAA,CAAqB,GAAA,EAAK,IAAA,EAAM;AAAA,EAItC;AACJ","file":"chunk-ZYHBHSSO.js","sourcesContent":["/// <reference types=\"./sqlite-query-compiler.d.ts\" />\nimport { DefaultQueryCompiler } from '../../query-compiler/default-query-compiler.js';\nconst ID_WRAP_REGEX = /\"/g;\nexport class SqliteQueryCompiler extends DefaultQueryCompiler {\n visitOrAction(node) {\n this.append('or ');\n this.append(node.action);\n }\n getCurrentParameterPlaceholder() {\n return '?';\n }\n getLeftExplainOptionsWrapper() {\n return '';\n }\n getRightExplainOptionsWrapper() {\n return '';\n }\n getLeftIdentifierWrapper() {\n return '\"';\n }\n getRightIdentifierWrapper() {\n return '\"';\n }\n getAutoIncrement() {\n return 'autoincrement';\n }\n sanitizeIdentifier(identifier) {\n return identifier.replace(ID_WRAP_REGEX, '\"\"');\n }\n visitDefaultInsertValue(_) {\n // sqlite doesn't support the `default` keyword in inserts.\n this.append('null');\n }\n}\n","/// <reference types=\"./dialect-adapter-base.d.ts\" />\n/**\n * A basic implementation of `DialectAdapter` with sensible default values.\n * Third-party dialects can extend this instead of implementing the `DialectAdapter`\n * interface from scratch. That way all new settings will get default values when\n * they are added and there will be less breaking changes.\n */\nexport class DialectAdapterBase {\n get supportsCreateIfNotExists() {\n return true;\n }\n get supportsTransactionalDdl() {\n return false;\n }\n get supportsReturning() {\n return false;\n }\n get supportsOutput() {\n return false;\n }\n}\n","/// <reference types=\"./sqlite-adapter.d.ts\" />\nimport { DialectAdapterBase } from '../dialect-adapter-base.js';\nexport class SqliteAdapter extends DialectAdapterBase {\n get supportsTransactionalDdl() {\n return false;\n }\n get supportsReturning() {\n return true;\n }\n async acquireMigrationLock(_db, _opt) {\n // SQLite only has one connection that's reserved by the migration system\n // for the whole time between acquireMigrationLock and releaseMigrationLock.\n // We don't need to do anything here.\n }\n async releaseMigrationLock(_db, _opt) {\n // SQLite only has one connection that's reserved by the migration system\n // for the whole time between acquireMigrationLock and releaseMigrationLock.\n // We don't need to do anything here.\n }\n}\n"]}
|