From b446eb2efadf5749ec375cb77e0b67fa64e61b5b Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:10:03 -0700 Subject: [PATCH 01/14] enums --- enums/13/README.md | 92 +++ enums/13/jest.config.js | 18 + enums/13/package.json | 39 + enums/13/scripts/pg-proto-parser.ts | 17 + enums/13/src/index.ts | 997 +++++++++++++++++++++++ enums/13/tsconfig.esm.json | 9 + enums/13/tsconfig.json | 9 + enums/14/README.md | 92 +++ enums/14/jest.config.js | 18 + enums/14/package.json | 39 + enums/14/scripts/pg-proto-parser.ts | 17 + enums/14/src/index.ts | 1017 ++++++++++++++++++++++++ enums/14/tsconfig.esm.json | 9 + enums/14/tsconfig.json | 9 + enums/15/README.md | 92 +++ enums/15/jest.config.js | 18 + enums/15/package.json | 39 + enums/15/scripts/pg-proto-parser.ts | 17 + enums/15/src/index.ts | 1039 ++++++++++++++++++++++++ enums/15/tsconfig.esm.json | 9 + enums/15/tsconfig.json | 9 + enums/16/README.md | 92 +++ enums/16/jest.config.js | 18 + enums/16/package.json | 39 + enums/16/scripts/pg-proto-parser.ts | 17 + enums/16/src/index.ts | 1076 +++++++++++++++++++++++++ enums/16/tsconfig.esm.json | 9 + enums/16/tsconfig.json | 9 + enums/17/README.md | 92 +++ enums/17/jest.config.js | 18 + enums/17/package.json | 39 + enums/17/scripts/pg-proto-parser.ts | 17 + enums/17/src/index.ts | 1144 +++++++++++++++++++++++++++ enums/17/tsconfig.esm.json | 9 + enums/17/tsconfig.json | 9 + package.json | 4 +- pnpm-lock.yaml | 37 +- pnpm-workspace.yaml | 7 +- scripts/build-enums.js | 96 +++ scripts/prepare-enums.js | 108 +++ 40 files changed, 6442 insertions(+), 3 deletions(-) create mode 100644 enums/13/README.md create mode 100644 enums/13/jest.config.js create mode 100644 enums/13/package.json create mode 100644 enums/13/scripts/pg-proto-parser.ts create mode 100644 enums/13/src/index.ts create mode 100644 enums/13/tsconfig.esm.json create mode 100644 enums/13/tsconfig.json create mode 100644 enums/14/README.md create mode 100644 enums/14/jest.config.js create mode 100644 enums/14/package.json create mode 100644 enums/14/scripts/pg-proto-parser.ts create mode 100644 enums/14/src/index.ts create mode 100644 enums/14/tsconfig.esm.json create mode 100644 enums/14/tsconfig.json create mode 100644 enums/15/README.md create mode 100644 enums/15/jest.config.js create mode 100644 enums/15/package.json create mode 100644 enums/15/scripts/pg-proto-parser.ts create mode 100644 enums/15/src/index.ts create mode 100644 enums/15/tsconfig.esm.json create mode 100644 enums/15/tsconfig.json create mode 100644 enums/16/README.md create mode 100644 enums/16/jest.config.js create mode 100644 enums/16/package.json create mode 100644 enums/16/scripts/pg-proto-parser.ts create mode 100644 enums/16/src/index.ts create mode 100644 enums/16/tsconfig.esm.json create mode 100644 enums/16/tsconfig.json create mode 100644 enums/17/README.md create mode 100644 enums/17/jest.config.js create mode 100644 enums/17/package.json create mode 100644 enums/17/scripts/pg-proto-parser.ts create mode 100644 enums/17/src/index.ts create mode 100644 enums/17/tsconfig.esm.json create mode 100644 enums/17/tsconfig.json create mode 100755 scripts/build-enums.js create mode 100755 scripts/prepare-enums.js diff --git a/enums/13/README.md b/enums/13/README.md new file mode 100644 index 0000000..b354433 --- /dev/null +++ b/enums/13/README.md @@ -0,0 +1,92 @@ +# @pgsql/enums + +

+ +

+ +

+ + + + + + + +

+ +`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. + + +## Installation + +Install the package via npm: + +```bash +npm install @pgsql/enums +``` + +## Usage + +`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. + +Here are a few examples of how you can use these enums in your TypeScript projects: + +### Using Enum Values + +You can use the enums to work with specific PostgreSQL AST enum values: + +```ts +import { ConstrType, ObjectType } from '@pgsql/enums'; + +function createConstraint() { + return { + contype: ConstrType.CONSTR_PRIMARY + }; +} + +function getObjectType() { + return ObjectType.OBJECT_TABLE; +} +``` + +### Type-Safe Enum Operations + +Enums help ensure that you use correct PostgreSQL enum values: + +```ts +import { CmdType, JoinType } from '@pgsql/enums'; + +const command = { + cmdType: CmdType.CMD_SELECT, + joinType: JoinType.JOIN_INNER +}; + +console.log(command); +``` + +## Versions + +Our latest is built with PostgreSQL 17 enum definitions. + +| PG Major Version | libpg_query | npm dist-tag +|--------------------------|-------------|---------| +| 17 | 17-6.1.0 | [`pg17`](https://www.npmjs.com/package/@pgsql/enums/v/latest) +| 16 | 16-5.2.0 | [`pg16`](https://www.npmjs.com/package/@pgsql/enums/v/pg16) +| 15 | 15-4.2.4 | [`pg15`](https://www.npmjs.com/package/@pgsql/enums/v/pg15) +| 14 | 14-3.0.0 | [`pg14`](https://www.npmjs.com/package/@pgsql/enums/v/pg14) +| 13 | 13-2.2.0 | [`pg13`](https://www.npmjs.com/package/@pgsql/enums/v/pg13) + +## Related + +* [pgsql-parser](https://github.com/launchql/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration. +* [pgsql-deparser](https://github.com/launchql/pgsql-parser/tree/main/packages/deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`. +* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs. +* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs. +* [pg-proto-parser](https://github.com/launchql/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums. +* [libpg-query](https://github.com/launchql/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries. + +## Disclaimer + +AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. + +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file diff --git a/enums/13/jest.config.js b/enums/13/jest.config.js new file mode 100644 index 0000000..d186228 --- /dev/null +++ b/enums/13/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + transform: { + "^.+\.tsx?$": [ + "ts-jest", + { + babelConfig: false, + tsconfig: "tsconfig.json", + }, + ], + }, + transformIgnorePatterns: [`/node_modules/*`], + testRegex: "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + modulePathIgnorePatterns: ["dist/*"] +}; diff --git a/enums/13/package.json b/enums/13/package.json new file mode 100644 index 0000000..df50229 --- /dev/null +++ b/enums/13/package.json @@ -0,0 +1,39 @@ +{ + "name": "@libpg-query/enums13", + "version": "13.5.3", + "author": "Dan Lynch ", + "description": "PostgreSQL AST enums from the real Postgres parser", + "main": "index.js", + "module": "esm/index.js", + "types": "index.d.ts", + "homepage": "https://github.com/launchql/libpg-query-node", + "license": "SEE LICENSE IN LICENSE", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/launchql/libpg-query-node" + }, + "bugs": { + "url": "https://github.com/launchql/libpg-query-node/issues" + }, + "x-publish": { + "publishName": "@pgsql/enums", + "distTag": "pg13" + }, + "scripts": { + "copy": "copyfiles -f ../../LICENSE README.md package.json dist", + "clean": "rimraf dist", + "build": "pnpm run clean && tsc && tsc -p tsconfig.esm.json && pnpm run copy", + "build:dev": "pnpm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && pnpm run copy", + "build:proto": "ts-node scripts/pg-proto-parser", + "prepare:enums": "node -e \"require('../../scripts/prepare-enums.js').preparePackageForPublish('.')\"", + "lint": "eslint . --fix" + }, + "keywords": [], + "devDependencies": { + "pg-proto-parser": "^1.28.2" + } +} diff --git a/enums/13/scripts/pg-proto-parser.ts b/enums/13/scripts/pg-proto-parser.ts new file mode 100644 index 0000000..bbb06ad --- /dev/null +++ b/enums/13/scripts/pg-proto-parser.ts @@ -0,0 +1,17 @@ +import { PgProtoParser, PgProtoParserOptions } from 'pg-proto-parser'; +import { resolve, join } from 'path'; + +const inFile: string = join(__dirname, '../../../protos/13/pg_query.proto'); +const outDir: string = resolve(join(__dirname, '../src')); + +const options: PgProtoParserOptions = { + outDir, + enums: { + enabled: true, + enumsAsTypeUnion: false, + filename: 'index.ts' + } +}; +const parser = new PgProtoParser(inFile, options); + +parser.write(); \ No newline at end of file diff --git a/enums/13/src/index.ts b/enums/13/src/index.ts new file mode 100644 index 0000000..dd09f6d --- /dev/null +++ b/enums/13/src/index.ts @@ -0,0 +1,997 @@ +/** +* This file was automatically generated by pg-proto-parser@1.28.2. +* DO NOT MODIFY IT BY HAND. Instead, modify the source proto file, +* and run the pg-proto-parser generate command to regenerate this file. +*/ +export enum OverridingKind { + OVERRIDING_NOT_SET = 0, + OVERRIDING_USER_VALUE = 1, + OVERRIDING_SYSTEM_VALUE = 2, +} +export enum QuerySource { + QSRC_ORIGINAL = 0, + QSRC_PARSER = 1, + QSRC_INSTEAD_RULE = 2, + QSRC_QUAL_INSTEAD_RULE = 3, + QSRC_NON_INSTEAD_RULE = 4, +} +export enum SortByDir { + SORTBY_DEFAULT = 0, + SORTBY_ASC = 1, + SORTBY_DESC = 2, + SORTBY_USING = 3, +} +export enum SortByNulls { + SORTBY_NULLS_DEFAULT = 0, + SORTBY_NULLS_FIRST = 1, + SORTBY_NULLS_LAST = 2, +} +export enum A_Expr_Kind { + AEXPR_OP = 0, + AEXPR_OP_ANY = 1, + AEXPR_OP_ALL = 2, + AEXPR_DISTINCT = 3, + AEXPR_NOT_DISTINCT = 4, + AEXPR_NULLIF = 5, + AEXPR_OF = 6, + AEXPR_IN = 7, + AEXPR_LIKE = 8, + AEXPR_ILIKE = 9, + AEXPR_SIMILAR = 10, + AEXPR_BETWEEN = 11, + AEXPR_NOT_BETWEEN = 12, + AEXPR_BETWEEN_SYM = 13, + AEXPR_NOT_BETWEEN_SYM = 14, + AEXPR_PAREN = 15, +} +export enum RoleSpecType { + ROLESPEC_CSTRING = 0, + ROLESPEC_CURRENT_USER = 1, + ROLESPEC_SESSION_USER = 2, + ROLESPEC_PUBLIC = 3, +} +export enum TableLikeOption { + CREATE_TABLE_LIKE_COMMENTS = 0, + CREATE_TABLE_LIKE_CONSTRAINTS = 1, + CREATE_TABLE_LIKE_DEFAULTS = 2, + CREATE_TABLE_LIKE_GENERATED = 3, + CREATE_TABLE_LIKE_IDENTITY = 4, + CREATE_TABLE_LIKE_INDEXES = 5, + CREATE_TABLE_LIKE_STATISTICS = 6, + CREATE_TABLE_LIKE_STORAGE = 7, + CREATE_TABLE_LIKE_ALL = 8, +} +export enum DefElemAction { + DEFELEM_UNSPEC = 0, + DEFELEM_SET = 1, + DEFELEM_ADD = 2, + DEFELEM_DROP = 3, +} +export enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_MINVALUE = 0, + PARTITION_RANGE_DATUM_VALUE = 1, + PARTITION_RANGE_DATUM_MAXVALUE = 2, +} +export enum RTEKind { + RTE_RELATION = 0, + RTE_SUBQUERY = 1, + RTE_JOIN = 2, + RTE_FUNCTION = 3, + RTE_TABLEFUNC = 4, + RTE_VALUES = 5, + RTE_CTE = 6, + RTE_NAMEDTUPLESTORE = 7, + RTE_RESULT = 8, +} +export enum WCOKind { + WCO_VIEW_CHECK = 0, + WCO_RLS_INSERT_CHECK = 1, + WCO_RLS_UPDATE_CHECK = 2, + WCO_RLS_CONFLICT_CHECK = 3, +} +export enum GroupingSetKind { + GROUPING_SET_EMPTY = 0, + GROUPING_SET_SIMPLE = 1, + GROUPING_SET_ROLLUP = 2, + GROUPING_SET_CUBE = 3, + GROUPING_SET_SETS = 4, +} +export enum CTEMaterialize { + CTEMaterializeDefault = 0, + CTEMaterializeAlways = 1, + CTEMaterializeNever = 2, +} +export enum SetOperation { + SETOP_NONE = 0, + SETOP_UNION = 1, + SETOP_INTERSECT = 2, + SETOP_EXCEPT = 3, +} +export enum ObjectType { + OBJECT_ACCESS_METHOD = 0, + OBJECT_AGGREGATE = 1, + OBJECT_AMOP = 2, + OBJECT_AMPROC = 3, + OBJECT_ATTRIBUTE = 4, + OBJECT_CAST = 5, + OBJECT_COLUMN = 6, + OBJECT_COLLATION = 7, + OBJECT_CONVERSION = 8, + OBJECT_DATABASE = 9, + OBJECT_DEFAULT = 10, + OBJECT_DEFACL = 11, + OBJECT_DOMAIN = 12, + OBJECT_DOMCONSTRAINT = 13, + OBJECT_EVENT_TRIGGER = 14, + OBJECT_EXTENSION = 15, + OBJECT_FDW = 16, + OBJECT_FOREIGN_SERVER = 17, + OBJECT_FOREIGN_TABLE = 18, + OBJECT_FUNCTION = 19, + OBJECT_INDEX = 20, + OBJECT_LANGUAGE = 21, + OBJECT_LARGEOBJECT = 22, + OBJECT_MATVIEW = 23, + OBJECT_OPCLASS = 24, + OBJECT_OPERATOR = 25, + OBJECT_OPFAMILY = 26, + OBJECT_POLICY = 27, + OBJECT_PROCEDURE = 28, + OBJECT_PUBLICATION = 29, + OBJECT_PUBLICATION_REL = 30, + OBJECT_ROLE = 31, + OBJECT_ROUTINE = 32, + OBJECT_RULE = 33, + OBJECT_SCHEMA = 34, + OBJECT_SEQUENCE = 35, + OBJECT_SUBSCRIPTION = 36, + OBJECT_STATISTIC_EXT = 37, + OBJECT_TABCONSTRAINT = 38, + OBJECT_TABLE = 39, + OBJECT_TABLESPACE = 40, + OBJECT_TRANSFORM = 41, + OBJECT_TRIGGER = 42, + OBJECT_TSCONFIGURATION = 43, + OBJECT_TSDICTIONARY = 44, + OBJECT_TSPARSER = 45, + OBJECT_TSTEMPLATE = 46, + OBJECT_TYPE = 47, + OBJECT_USER_MAPPING = 48, + OBJECT_VIEW = 49, +} +export enum DropBehavior { + DROP_RESTRICT = 0, + DROP_CASCADE = 1, +} +export enum AlterTableType { + AT_AddColumn = 0, + AT_AddColumnRecurse = 1, + AT_AddColumnToView = 2, + AT_ColumnDefault = 3, + AT_CookedColumnDefault = 4, + AT_DropNotNull = 5, + AT_SetNotNull = 6, + AT_DropExpression = 7, + AT_CheckNotNull = 8, + AT_SetStatistics = 9, + AT_SetOptions = 10, + AT_ResetOptions = 11, + AT_SetStorage = 12, + AT_DropColumn = 13, + AT_DropColumnRecurse = 14, + AT_AddIndex = 15, + AT_ReAddIndex = 16, + AT_AddConstraint = 17, + AT_AddConstraintRecurse = 18, + AT_ReAddConstraint = 19, + AT_ReAddDomainConstraint = 20, + AT_AlterConstraint = 21, + AT_ValidateConstraint = 22, + AT_ValidateConstraintRecurse = 23, + AT_AddIndexConstraint = 24, + AT_DropConstraint = 25, + AT_DropConstraintRecurse = 26, + AT_ReAddComment = 27, + AT_AlterColumnType = 28, + AT_AlterColumnGenericOptions = 29, + AT_ChangeOwner = 30, + AT_ClusterOn = 31, + AT_DropCluster = 32, + AT_SetLogged = 33, + AT_SetUnLogged = 34, + AT_DropOids = 35, + AT_SetTableSpace = 36, + AT_SetRelOptions = 37, + AT_ResetRelOptions = 38, + AT_ReplaceRelOptions = 39, + AT_EnableTrig = 40, + AT_EnableAlwaysTrig = 41, + AT_EnableReplicaTrig = 42, + AT_DisableTrig = 43, + AT_EnableTrigAll = 44, + AT_DisableTrigAll = 45, + AT_EnableTrigUser = 46, + AT_DisableTrigUser = 47, + AT_EnableRule = 48, + AT_EnableAlwaysRule = 49, + AT_EnableReplicaRule = 50, + AT_DisableRule = 51, + AT_AddInherit = 52, + AT_DropInherit = 53, + AT_AddOf = 54, + AT_DropOf = 55, + AT_ReplicaIdentity = 56, + AT_EnableRowSecurity = 57, + AT_DisableRowSecurity = 58, + AT_ForceRowSecurity = 59, + AT_NoForceRowSecurity = 60, + AT_GenericOptions = 61, + AT_AttachPartition = 62, + AT_DetachPartition = 63, + AT_AddIdentity = 64, + AT_SetIdentity = 65, + AT_DropIdentity = 66, +} +export enum GrantTargetType { + ACL_TARGET_OBJECT = 0, + ACL_TARGET_ALL_IN_SCHEMA = 1, + ACL_TARGET_DEFAULTS = 2, +} +export enum VariableSetKind { + VAR_SET_VALUE = 0, + VAR_SET_DEFAULT = 1, + VAR_SET_CURRENT = 2, + VAR_SET_MULTI = 3, + VAR_RESET = 4, + VAR_RESET_ALL = 5, +} +export enum ConstrType { + CONSTR_NULL = 0, + CONSTR_NOTNULL = 1, + CONSTR_DEFAULT = 2, + CONSTR_IDENTITY = 3, + CONSTR_GENERATED = 4, + CONSTR_CHECK = 5, + CONSTR_PRIMARY = 6, + CONSTR_UNIQUE = 7, + CONSTR_EXCLUSION = 8, + CONSTR_FOREIGN = 9, + CONSTR_ATTR_DEFERRABLE = 10, + CONSTR_ATTR_NOT_DEFERRABLE = 11, + CONSTR_ATTR_DEFERRED = 12, + CONSTR_ATTR_IMMEDIATE = 13, +} +export enum ImportForeignSchemaType { + FDW_IMPORT_SCHEMA_ALL = 0, + FDW_IMPORT_SCHEMA_LIMIT_TO = 1, + FDW_IMPORT_SCHEMA_EXCEPT = 2, +} +export enum RoleStmtType { + ROLESTMT_ROLE = 0, + ROLESTMT_USER = 1, + ROLESTMT_GROUP = 2, +} +export enum FetchDirection { + FETCH_FORWARD = 0, + FETCH_BACKWARD = 1, + FETCH_ABSOLUTE = 2, + FETCH_RELATIVE = 3, +} +export enum FunctionParameterMode { + FUNC_PARAM_IN = 0, + FUNC_PARAM_OUT = 1, + FUNC_PARAM_INOUT = 2, + FUNC_PARAM_VARIADIC = 3, + FUNC_PARAM_TABLE = 4, +} +export enum TransactionStmtKind { + TRANS_STMT_BEGIN = 0, + TRANS_STMT_START = 1, + TRANS_STMT_COMMIT = 2, + TRANS_STMT_ROLLBACK = 3, + TRANS_STMT_SAVEPOINT = 4, + TRANS_STMT_RELEASE = 5, + TRANS_STMT_ROLLBACK_TO = 6, + TRANS_STMT_PREPARE = 7, + TRANS_STMT_COMMIT_PREPARED = 8, + TRANS_STMT_ROLLBACK_PREPARED = 9, +} +export enum ViewCheckOption { + NO_CHECK_OPTION = 0, + LOCAL_CHECK_OPTION = 1, + CASCADED_CHECK_OPTION = 2, +} +export enum ClusterOption { + CLUOPT_RECHECK = 0, + CLUOPT_VERBOSE = 1, +} +export enum DiscardMode { + DISCARD_ALL = 0, + DISCARD_PLANS = 1, + DISCARD_SEQUENCES = 2, + DISCARD_TEMP = 3, +} +export enum ReindexObjectType { + REINDEX_OBJECT_INDEX = 0, + REINDEX_OBJECT_TABLE = 1, + REINDEX_OBJECT_SCHEMA = 2, + REINDEX_OBJECT_SYSTEM = 3, + REINDEX_OBJECT_DATABASE = 4, +} +export enum AlterTSConfigType { + ALTER_TSCONFIG_ADD_MAPPING = 0, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 1, + ALTER_TSCONFIG_REPLACE_DICT = 2, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 3, + ALTER_TSCONFIG_DROP_MAPPING = 4, +} +export enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_OPTIONS = 0, + ALTER_SUBSCRIPTION_CONNECTION = 1, + ALTER_SUBSCRIPTION_PUBLICATION = 2, + ALTER_SUBSCRIPTION_REFRESH = 3, + ALTER_SUBSCRIPTION_ENABLED = 4, +} +export enum OnCommitAction { + ONCOMMIT_NOOP = 0, + ONCOMMIT_PRESERVE_ROWS = 1, + ONCOMMIT_DELETE_ROWS = 2, + ONCOMMIT_DROP = 3, +} +export enum ParamKind { + PARAM_EXTERN = 0, + PARAM_EXEC = 1, + PARAM_SUBLINK = 2, + PARAM_MULTIEXPR = 3, +} +export enum CoercionContext { + COERCION_IMPLICIT = 0, + COERCION_ASSIGNMENT = 1, + COERCION_EXPLICIT = 2, +} +export enum CoercionForm { + COERCE_EXPLICIT_CALL = 0, + COERCE_EXPLICIT_CAST = 1, + COERCE_IMPLICIT_CAST = 2, +} +export enum BoolExprType { + AND_EXPR = 0, + OR_EXPR = 1, + NOT_EXPR = 2, +} +export enum SubLinkType { + EXISTS_SUBLINK = 0, + ALL_SUBLINK = 1, + ANY_SUBLINK = 2, + ROWCOMPARE_SUBLINK = 3, + EXPR_SUBLINK = 4, + MULTIEXPR_SUBLINK = 5, + ARRAY_SUBLINK = 6, + CTE_SUBLINK = 7, +} +export enum RowCompareType { + ROWCOMPARE_LT = 0, + ROWCOMPARE_LE = 1, + ROWCOMPARE_EQ = 2, + ROWCOMPARE_GE = 3, + ROWCOMPARE_GT = 4, + ROWCOMPARE_NE = 5, +} +export enum MinMaxOp { + IS_GREATEST = 0, + IS_LEAST = 1, +} +export enum SQLValueFunctionOp { + SVFOP_CURRENT_DATE = 0, + SVFOP_CURRENT_TIME = 1, + SVFOP_CURRENT_TIME_N = 2, + SVFOP_CURRENT_TIMESTAMP = 3, + SVFOP_CURRENT_TIMESTAMP_N = 4, + SVFOP_LOCALTIME = 5, + SVFOP_LOCALTIME_N = 6, + SVFOP_LOCALTIMESTAMP = 7, + SVFOP_LOCALTIMESTAMP_N = 8, + SVFOP_CURRENT_ROLE = 9, + SVFOP_CURRENT_USER = 10, + SVFOP_USER = 11, + SVFOP_SESSION_USER = 12, + SVFOP_CURRENT_CATALOG = 13, + SVFOP_CURRENT_SCHEMA = 14, +} +export enum XmlExprOp { + IS_XMLCONCAT = 0, + IS_XMLELEMENT = 1, + IS_XMLFOREST = 2, + IS_XMLPARSE = 3, + IS_XMLPI = 4, + IS_XMLROOT = 5, + IS_XMLSERIALIZE = 6, + IS_DOCUMENT = 7, +} +export enum XmlOptionType { + XMLOPTION_DOCUMENT = 0, + XMLOPTION_CONTENT = 1, +} +export enum NullTestType { + IS_NULL = 0, + IS_NOT_NULL = 1, +} +export enum BoolTestType { + IS_TRUE = 0, + IS_NOT_TRUE = 1, + IS_FALSE = 2, + IS_NOT_FALSE = 3, + IS_UNKNOWN = 4, + IS_NOT_UNKNOWN = 5, +} +export enum CmdType { + CMD_UNKNOWN = 0, + CMD_SELECT = 1, + CMD_UPDATE = 2, + CMD_INSERT = 3, + CMD_DELETE = 4, + CMD_UTILITY = 5, + CMD_NOTHING = 6, +} +export enum JoinType { + JOIN_INNER = 0, + JOIN_LEFT = 1, + JOIN_FULL = 2, + JOIN_RIGHT = 3, + JOIN_SEMI = 4, + JOIN_ANTI = 5, + JOIN_UNIQUE_OUTER = 6, + JOIN_UNIQUE_INNER = 7, +} +export enum AggStrategy { + AGG_PLAIN = 0, + AGG_SORTED = 1, + AGG_HASHED = 2, + AGG_MIXED = 3, +} +export enum AggSplit { + AGGSPLIT_SIMPLE = 0, + AGGSPLIT_INITIAL_SERIAL = 1, + AGGSPLIT_FINAL_DESERIAL = 2, +} +export enum SetOpCmd { + SETOPCMD_INTERSECT = 0, + SETOPCMD_INTERSECT_ALL = 1, + SETOPCMD_EXCEPT = 2, + SETOPCMD_EXCEPT_ALL = 3, +} +export enum SetOpStrategy { + SETOP_SORTED = 0, + SETOP_HASHED = 1, +} +export enum OnConflictAction { + ONCONFLICT_NONE = 0, + ONCONFLICT_NOTHING = 1, + ONCONFLICT_UPDATE = 2, +} +export enum LimitOption { + LIMIT_OPTION_DEFAULT = 0, + LIMIT_OPTION_COUNT = 1, + LIMIT_OPTION_WITH_TIES = 2, +} +export enum LockClauseStrength { + LCS_NONE = 0, + LCS_FORKEYSHARE = 1, + LCS_FORSHARE = 2, + LCS_FORNOKEYUPDATE = 3, + LCS_FORUPDATE = 4, +} +export enum LockWaitPolicy { + LockWaitBlock = 0, + LockWaitSkip = 1, + LockWaitError = 2, +} +export enum LockTupleMode { + LockTupleKeyShare = 0, + LockTupleShare = 1, + LockTupleNoKeyExclusive = 2, + LockTupleExclusive = 3, +} +export enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, +} +export enum Token { + NUL = 0, + ASCII_37 = 37, + ASCII_40 = 40, + ASCII_41 = 41, + ASCII_42 = 42, + ASCII_43 = 43, + ASCII_44 = 44, + ASCII_45 = 45, + ASCII_46 = 46, + ASCII_47 = 47, + ASCII_58 = 58, + ASCII_59 = 59, + ASCII_60 = 60, + ASCII_61 = 61, + ASCII_62 = 62, + ASCII_63 = 63, + ASCII_91 = 91, + ASCII_92 = 92, + ASCII_93 = 93, + ASCII_94 = 94, + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + SQL_COMMENT = 275, + C_COMMENT = 276, + ABORT_P = 277, + ABSOLUTE_P = 278, + ACCESS = 279, + ACTION = 280, + ADD_P = 281, + ADMIN = 282, + AFTER = 283, + AGGREGATE = 284, + ALL = 285, + ALSO = 286, + ALTER = 287, + ALWAYS = 288, + ANALYSE = 289, + ANALYZE = 290, + AND = 291, + ANY = 292, + ARRAY = 293, + AS = 294, + ASC = 295, + ASSERTION = 296, + ASSIGNMENT = 297, + ASYMMETRIC = 298, + AT = 299, + ATTACH = 300, + ATTRIBUTE = 301, + AUTHORIZATION = 302, + BACKWARD = 303, + BEFORE = 304, + BEGIN_P = 305, + BETWEEN = 306, + BIGINT = 307, + BINARY = 308, + BIT = 309, + BOOLEAN_P = 310, + BOTH = 311, + BY = 312, + CACHE = 313, + CALL = 314, + CALLED = 315, + CASCADE = 316, + CASCADED = 317, + CASE = 318, + CAST = 319, + CATALOG_P = 320, + CHAIN = 321, + CHAR_P = 322, + CHARACTER = 323, + CHARACTERISTICS = 324, + CHECK = 325, + CHECKPOINT = 326, + CLASS = 327, + CLOSE = 328, + CLUSTER = 329, + COALESCE = 330, + COLLATE = 331, + COLLATION = 332, + COLUMN = 333, + COLUMNS = 334, + COMMENT = 335, + COMMENTS = 336, + COMMIT = 337, + COMMITTED = 338, + CONCURRENTLY = 339, + CONFIGURATION = 340, + CONFLICT = 341, + CONNECTION = 342, + CONSTRAINT = 343, + CONSTRAINTS = 344, + CONTENT_P = 345, + CONTINUE_P = 346, + CONVERSION_P = 347, + COPY = 348, + COST = 349, + CREATE = 350, + CROSS = 351, + CSV = 352, + CUBE = 353, + CURRENT_P = 354, + CURRENT_CATALOG = 355, + CURRENT_DATE = 356, + CURRENT_ROLE = 357, + CURRENT_SCHEMA = 358, + CURRENT_TIME = 359, + CURRENT_TIMESTAMP = 360, + CURRENT_USER = 361, + CURSOR = 362, + CYCLE = 363, + DATA_P = 364, + DATABASE = 365, + DAY_P = 366, + DEALLOCATE = 367, + DEC = 368, + DECIMAL_P = 369, + DECLARE = 370, + DEFAULT = 371, + DEFAULTS = 372, + DEFERRABLE = 373, + DEFERRED = 374, + DEFINER = 375, + DELETE_P = 376, + DELIMITER = 377, + DELIMITERS = 378, + DEPENDS = 379, + DESC = 380, + DETACH = 381, + DICTIONARY = 382, + DISABLE_P = 383, + DISCARD = 384, + DISTINCT = 385, + DO = 386, + DOCUMENT_P = 387, + DOMAIN_P = 388, + DOUBLE_P = 389, + DROP = 390, + EACH = 391, + ELSE = 392, + ENABLE_P = 393, + ENCODING = 394, + ENCRYPTED = 395, + END_P = 396, + ENUM_P = 397, + ESCAPE = 398, + EVENT = 399, + EXCEPT = 400, + EXCLUDE = 401, + EXCLUDING = 402, + EXCLUSIVE = 403, + EXECUTE = 404, + EXISTS = 405, + EXPLAIN = 406, + EXPRESSION = 407, + EXTENSION = 408, + EXTERNAL = 409, + EXTRACT = 410, + FALSE_P = 411, + FAMILY = 412, + FETCH = 413, + FILTER = 414, + FIRST_P = 415, + FLOAT_P = 416, + FOLLOWING = 417, + FOR = 418, + FORCE = 419, + FOREIGN = 420, + FORWARD = 421, + FREEZE = 422, + FROM = 423, + FULL = 424, + FUNCTION = 425, + FUNCTIONS = 426, + GENERATED = 427, + GLOBAL = 428, + GRANT = 429, + GRANTED = 430, + GREATEST = 431, + GROUP_P = 432, + GROUPING = 433, + GROUPS = 434, + HANDLER = 435, + HAVING = 436, + HEADER_P = 437, + HOLD = 438, + HOUR_P = 439, + IDENTITY_P = 440, + IF_P = 441, + ILIKE = 442, + IMMEDIATE = 443, + IMMUTABLE = 444, + IMPLICIT_P = 445, + IMPORT_P = 446, + IN_P = 447, + INCLUDE = 448, + INCLUDING = 449, + INCREMENT = 450, + INDEX = 451, + INDEXES = 452, + INHERIT = 453, + INHERITS = 454, + INITIALLY = 455, + INLINE_P = 456, + INNER_P = 457, + INOUT = 458, + INPUT_P = 459, + INSENSITIVE = 460, + INSERT = 461, + INSTEAD = 462, + INT_P = 463, + INTEGER = 464, + INTERSECT = 465, + INTERVAL = 466, + INTO = 467, + INVOKER = 468, + IS = 469, + ISNULL = 470, + ISOLATION = 471, + JOIN = 472, + KEY = 473, + LABEL = 474, + LANGUAGE = 475, + LARGE_P = 476, + LAST_P = 477, + LATERAL_P = 478, + LEADING = 479, + LEAKPROOF = 480, + LEAST = 481, + LEFT = 482, + LEVEL = 483, + LIKE = 484, + LIMIT = 485, + LISTEN = 486, + LOAD = 487, + LOCAL = 488, + LOCALTIME = 489, + LOCALTIMESTAMP = 490, + LOCATION = 491, + LOCK_P = 492, + LOCKED = 493, + LOGGED = 494, + MAPPING = 495, + MATCH = 496, + MATERIALIZED = 497, + MAXVALUE = 498, + METHOD = 499, + MINUTE_P = 500, + MINVALUE = 501, + MODE = 502, + MONTH_P = 503, + MOVE = 504, + NAME_P = 505, + NAMES = 506, + NATIONAL = 507, + NATURAL = 508, + NCHAR = 509, + NEW = 510, + NEXT = 511, + NFC = 512, + NFD = 513, + NFKC = 514, + NFKD = 515, + NO = 516, + NONE = 517, + NORMALIZE = 518, + NORMALIZED = 519, + NOT = 520, + NOTHING = 521, + NOTIFY = 522, + NOTNULL = 523, + NOWAIT = 524, + NULL_P = 525, + NULLIF = 526, + NULLS_P = 527, + NUMERIC = 528, + OBJECT_P = 529, + OF = 530, + OFF = 531, + OFFSET = 532, + OIDS = 533, + OLD = 534, + ON = 535, + ONLY = 536, + OPERATOR = 537, + OPTION = 538, + OPTIONS = 539, + OR = 540, + ORDER = 541, + ORDINALITY = 542, + OTHERS = 543, + OUT_P = 544, + OUTER_P = 545, + OVER = 546, + OVERLAPS = 547, + OVERLAY = 548, + OVERRIDING = 549, + OWNED = 550, + OWNER = 551, + PARALLEL = 552, + PARSER = 553, + PARTIAL = 554, + PARTITION = 555, + PASSING = 556, + PASSWORD = 557, + PLACING = 558, + PLANS = 559, + POLICY = 560, + POSITION = 561, + PRECEDING = 562, + PRECISION = 563, + PRESERVE = 564, + PREPARE = 565, + PREPARED = 566, + PRIMARY = 567, + PRIOR = 568, + PRIVILEGES = 569, + PROCEDURAL = 570, + PROCEDURE = 571, + PROCEDURES = 572, + PROGRAM = 573, + PUBLICATION = 574, + QUOTE = 575, + RANGE = 576, + READ = 577, + REAL = 578, + REASSIGN = 579, + RECHECK = 580, + RECURSIVE = 581, + REF_P = 582, + REFERENCES = 583, + REFERENCING = 584, + REFRESH = 585, + REINDEX = 586, + RELATIVE_P = 587, + RELEASE = 588, + RENAME = 589, + REPEATABLE = 590, + REPLACE = 591, + REPLICA = 592, + RESET = 593, + RESTART = 594, + RESTRICT = 595, + RETURNING = 596, + RETURNS = 597, + REVOKE = 598, + RIGHT = 599, + ROLE = 600, + ROLLBACK = 601, + ROLLUP = 602, + ROUTINE = 603, + ROUTINES = 604, + ROW = 605, + ROWS = 606, + RULE = 607, + SAVEPOINT = 608, + SCHEMA = 609, + SCHEMAS = 610, + SCROLL = 611, + SEARCH = 612, + SECOND_P = 613, + SECURITY = 614, + SELECT = 615, + SEQUENCE = 616, + SEQUENCES = 617, + SERIALIZABLE = 618, + SERVER = 619, + SESSION = 620, + SESSION_USER = 621, + SET = 622, + SETS = 623, + SETOF = 624, + SHARE = 625, + SHOW = 626, + SIMILAR = 627, + SIMPLE = 628, + SKIP = 629, + SMALLINT = 630, + SNAPSHOT = 631, + SOME = 632, + SQL_P = 633, + STABLE = 634, + STANDALONE_P = 635, + START = 636, + STATEMENT = 637, + STATISTICS = 638, + STDIN = 639, + STDOUT = 640, + STORAGE = 641, + STORED = 642, + STRICT_P = 643, + STRIP_P = 644, + SUBSCRIPTION = 645, + SUBSTRING = 646, + SUPPORT = 647, + SYMMETRIC = 648, + SYSID = 649, + SYSTEM_P = 650, + TABLE = 651, + TABLES = 652, + TABLESAMPLE = 653, + TABLESPACE = 654, + TEMP = 655, + TEMPLATE = 656, + TEMPORARY = 657, + TEXT_P = 658, + THEN = 659, + TIES = 660, + TIME = 661, + TIMESTAMP = 662, + TO = 663, + TRAILING = 664, + TRANSACTION = 665, + TRANSFORM = 666, + TREAT = 667, + TRIGGER = 668, + TRIM = 669, + TRUE_P = 670, + TRUNCATE = 671, + TRUSTED = 672, + TYPE_P = 673, + TYPES_P = 674, + UESCAPE = 675, + UNBOUNDED = 676, + UNCOMMITTED = 677, + UNENCRYPTED = 678, + UNION = 679, + UNIQUE = 680, + UNKNOWN = 681, + UNLISTEN = 682, + UNLOGGED = 683, + UNTIL = 684, + UPDATE = 685, + USER = 686, + USING = 687, + VACUUM = 688, + VALID = 689, + VALIDATE = 690, + VALIDATOR = 691, + VALUE_P = 692, + VALUES = 693, + VARCHAR = 694, + VARIADIC = 695, + VARYING = 696, + VERBOSE = 697, + VERSION_P = 698, + VIEW = 699, + VIEWS = 700, + VOLATILE = 701, + WHEN = 702, + WHERE = 703, + WHITESPACE_P = 704, + WINDOW = 705, + WITH = 706, + WITHIN = 707, + WITHOUT = 708, + WORK = 709, + WRAPPER = 710, + WRITE = 711, + XML_P = 712, + XMLATTRIBUTES = 713, + XMLCONCAT = 714, + XMLELEMENT = 715, + XMLEXISTS = 716, + XMLFOREST = 717, + XMLNAMESPACES = 718, + XMLPARSE = 719, + XMLPI = 720, + XMLROOT = 721, + XMLSERIALIZE = 722, + XMLTABLE = 723, + YEAR_P = 724, + YES_P = 725, + ZONE = 726, + NOT_LA = 727, + NULLS_LA = 728, + WITH_LA = 729, + POSTFIXOP = 730, + UMINUS = 731, +} \ No newline at end of file diff --git a/enums/13/tsconfig.esm.json b/enums/13/tsconfig.esm.json new file mode 100644 index 0000000..800d750 --- /dev/null +++ b/enums/13/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/esm", + "module": "es2022", + "rootDir": "src/", + "declaration": false + } +} diff --git a/enums/13/tsconfig.json b/enums/13/tsconfig.json new file mode 100644 index 0000000..1a9d569 --- /dev/null +++ b/enums/13/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src/" + }, + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] +} diff --git a/enums/14/README.md b/enums/14/README.md new file mode 100644 index 0000000..b354433 --- /dev/null +++ b/enums/14/README.md @@ -0,0 +1,92 @@ +# @pgsql/enums + +

+ +

+ +

+ + + + + + + +

+ +`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. + + +## Installation + +Install the package via npm: + +```bash +npm install @pgsql/enums +``` + +## Usage + +`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. + +Here are a few examples of how you can use these enums in your TypeScript projects: + +### Using Enum Values + +You can use the enums to work with specific PostgreSQL AST enum values: + +```ts +import { ConstrType, ObjectType } from '@pgsql/enums'; + +function createConstraint() { + return { + contype: ConstrType.CONSTR_PRIMARY + }; +} + +function getObjectType() { + return ObjectType.OBJECT_TABLE; +} +``` + +### Type-Safe Enum Operations + +Enums help ensure that you use correct PostgreSQL enum values: + +```ts +import { CmdType, JoinType } from '@pgsql/enums'; + +const command = { + cmdType: CmdType.CMD_SELECT, + joinType: JoinType.JOIN_INNER +}; + +console.log(command); +``` + +## Versions + +Our latest is built with PostgreSQL 17 enum definitions. + +| PG Major Version | libpg_query | npm dist-tag +|--------------------------|-------------|---------| +| 17 | 17-6.1.0 | [`pg17`](https://www.npmjs.com/package/@pgsql/enums/v/latest) +| 16 | 16-5.2.0 | [`pg16`](https://www.npmjs.com/package/@pgsql/enums/v/pg16) +| 15 | 15-4.2.4 | [`pg15`](https://www.npmjs.com/package/@pgsql/enums/v/pg15) +| 14 | 14-3.0.0 | [`pg14`](https://www.npmjs.com/package/@pgsql/enums/v/pg14) +| 13 | 13-2.2.0 | [`pg13`](https://www.npmjs.com/package/@pgsql/enums/v/pg13) + +## Related + +* [pgsql-parser](https://github.com/launchql/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration. +* [pgsql-deparser](https://github.com/launchql/pgsql-parser/tree/main/packages/deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`. +* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs. +* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs. +* [pg-proto-parser](https://github.com/launchql/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums. +* [libpg-query](https://github.com/launchql/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries. + +## Disclaimer + +AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. + +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file diff --git a/enums/14/jest.config.js b/enums/14/jest.config.js new file mode 100644 index 0000000..d186228 --- /dev/null +++ b/enums/14/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + transform: { + "^.+\.tsx?$": [ + "ts-jest", + { + babelConfig: false, + tsconfig: "tsconfig.json", + }, + ], + }, + transformIgnorePatterns: [`/node_modules/*`], + testRegex: "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + modulePathIgnorePatterns: ["dist/*"] +}; diff --git a/enums/14/package.json b/enums/14/package.json new file mode 100644 index 0000000..9520619 --- /dev/null +++ b/enums/14/package.json @@ -0,0 +1,39 @@ +{ + "name": "@libpg-query/enums14", + "version": "14.5.3", + "author": "Dan Lynch ", + "description": "PostgreSQL AST enums from the real Postgres parser", + "main": "index.js", + "module": "esm/index.js", + "types": "index.d.ts", + "homepage": "https://github.com/launchql/libpg-query-node", + "license": "SEE LICENSE IN LICENSE", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/launchql/libpg-query-node" + }, + "bugs": { + "url": "https://github.com/launchql/libpg-query-node/issues" + }, + "x-publish": { + "publishName": "@pgsql/enums", + "distTag": "pg14" + }, + "scripts": { + "copy": "copyfiles -f ../../LICENSE README.md package.json dist", + "clean": "rimraf dist", + "build": "pnpm run clean && tsc && tsc -p tsconfig.esm.json && pnpm run copy", + "build:dev": "pnpm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && pnpm run copy", + "build:proto": "ts-node scripts/pg-proto-parser", + "prepare:enums": "node -e \"require('../../scripts/prepare-enums.js').preparePackageForPublish('.')\"", + "lint": "eslint . --fix" + }, + "keywords": [], + "devDependencies": { + "pg-proto-parser": "^1.28.2" + } +} diff --git a/enums/14/scripts/pg-proto-parser.ts b/enums/14/scripts/pg-proto-parser.ts new file mode 100644 index 0000000..a9d48a3 --- /dev/null +++ b/enums/14/scripts/pg-proto-parser.ts @@ -0,0 +1,17 @@ +import { PgProtoParser, PgProtoParserOptions } from 'pg-proto-parser'; +import { resolve, join } from 'path'; + +const inFile: string = join(__dirname, '../../../protos/14/pg_query.proto'); +const outDir: string = resolve(join(__dirname, '../src')); + +const options: PgProtoParserOptions = { + outDir, + enums: { + enabled: true, + enumsAsTypeUnion: false, + filename: 'index.ts' + } +}; +const parser = new PgProtoParser(inFile, options); + +parser.write(); \ No newline at end of file diff --git a/enums/14/src/index.ts b/enums/14/src/index.ts new file mode 100644 index 0000000..8573707 --- /dev/null +++ b/enums/14/src/index.ts @@ -0,0 +1,1017 @@ +/** +* This file was automatically generated by pg-proto-parser@1.28.2. +* DO NOT MODIFY IT BY HAND. Instead, modify the source proto file, +* and run the pg-proto-parser generate command to regenerate this file. +*/ +export enum OverridingKind { + OVERRIDING_NOT_SET = 0, + OVERRIDING_USER_VALUE = 1, + OVERRIDING_SYSTEM_VALUE = 2, +} +export enum QuerySource { + QSRC_ORIGINAL = 0, + QSRC_PARSER = 1, + QSRC_INSTEAD_RULE = 2, + QSRC_QUAL_INSTEAD_RULE = 3, + QSRC_NON_INSTEAD_RULE = 4, +} +export enum SortByDir { + SORTBY_DEFAULT = 0, + SORTBY_ASC = 1, + SORTBY_DESC = 2, + SORTBY_USING = 3, +} +export enum SortByNulls { + SORTBY_NULLS_DEFAULT = 0, + SORTBY_NULLS_FIRST = 1, + SORTBY_NULLS_LAST = 2, +} +export enum SetQuantifier { + SET_QUANTIFIER_DEFAULT = 0, + SET_QUANTIFIER_ALL = 1, + SET_QUANTIFIER_DISTINCT = 2, +} +export enum A_Expr_Kind { + AEXPR_OP = 0, + AEXPR_OP_ANY = 1, + AEXPR_OP_ALL = 2, + AEXPR_DISTINCT = 3, + AEXPR_NOT_DISTINCT = 4, + AEXPR_NULLIF = 5, + AEXPR_IN = 6, + AEXPR_LIKE = 7, + AEXPR_ILIKE = 8, + AEXPR_SIMILAR = 9, + AEXPR_BETWEEN = 10, + AEXPR_NOT_BETWEEN = 11, + AEXPR_BETWEEN_SYM = 12, + AEXPR_NOT_BETWEEN_SYM = 13, +} +export enum RoleSpecType { + ROLESPEC_CSTRING = 0, + ROLESPEC_CURRENT_ROLE = 1, + ROLESPEC_CURRENT_USER = 2, + ROLESPEC_SESSION_USER = 3, + ROLESPEC_PUBLIC = 4, +} +export enum TableLikeOption { + CREATE_TABLE_LIKE_COMMENTS = 0, + CREATE_TABLE_LIKE_COMPRESSION = 1, + CREATE_TABLE_LIKE_CONSTRAINTS = 2, + CREATE_TABLE_LIKE_DEFAULTS = 3, + CREATE_TABLE_LIKE_GENERATED = 4, + CREATE_TABLE_LIKE_IDENTITY = 5, + CREATE_TABLE_LIKE_INDEXES = 6, + CREATE_TABLE_LIKE_STATISTICS = 7, + CREATE_TABLE_LIKE_STORAGE = 8, + CREATE_TABLE_LIKE_ALL = 9, +} +export enum DefElemAction { + DEFELEM_UNSPEC = 0, + DEFELEM_SET = 1, + DEFELEM_ADD = 2, + DEFELEM_DROP = 3, +} +export enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_MINVALUE = 0, + PARTITION_RANGE_DATUM_VALUE = 1, + PARTITION_RANGE_DATUM_MAXVALUE = 2, +} +export enum RTEKind { + RTE_RELATION = 0, + RTE_SUBQUERY = 1, + RTE_JOIN = 2, + RTE_FUNCTION = 3, + RTE_TABLEFUNC = 4, + RTE_VALUES = 5, + RTE_CTE = 6, + RTE_NAMEDTUPLESTORE = 7, + RTE_RESULT = 8, +} +export enum WCOKind { + WCO_VIEW_CHECK = 0, + WCO_RLS_INSERT_CHECK = 1, + WCO_RLS_UPDATE_CHECK = 2, + WCO_RLS_CONFLICT_CHECK = 3, +} +export enum GroupingSetKind { + GROUPING_SET_EMPTY = 0, + GROUPING_SET_SIMPLE = 1, + GROUPING_SET_ROLLUP = 2, + GROUPING_SET_CUBE = 3, + GROUPING_SET_SETS = 4, +} +export enum CTEMaterialize { + CTEMaterializeDefault = 0, + CTEMaterializeAlways = 1, + CTEMaterializeNever = 2, +} +export enum SetOperation { + SETOP_NONE = 0, + SETOP_UNION = 1, + SETOP_INTERSECT = 2, + SETOP_EXCEPT = 3, +} +export enum ObjectType { + OBJECT_ACCESS_METHOD = 0, + OBJECT_AGGREGATE = 1, + OBJECT_AMOP = 2, + OBJECT_AMPROC = 3, + OBJECT_ATTRIBUTE = 4, + OBJECT_CAST = 5, + OBJECT_COLUMN = 6, + OBJECT_COLLATION = 7, + OBJECT_CONVERSION = 8, + OBJECT_DATABASE = 9, + OBJECT_DEFAULT = 10, + OBJECT_DEFACL = 11, + OBJECT_DOMAIN = 12, + OBJECT_DOMCONSTRAINT = 13, + OBJECT_EVENT_TRIGGER = 14, + OBJECT_EXTENSION = 15, + OBJECT_FDW = 16, + OBJECT_FOREIGN_SERVER = 17, + OBJECT_FOREIGN_TABLE = 18, + OBJECT_FUNCTION = 19, + OBJECT_INDEX = 20, + OBJECT_LANGUAGE = 21, + OBJECT_LARGEOBJECT = 22, + OBJECT_MATVIEW = 23, + OBJECT_OPCLASS = 24, + OBJECT_OPERATOR = 25, + OBJECT_OPFAMILY = 26, + OBJECT_POLICY = 27, + OBJECT_PROCEDURE = 28, + OBJECT_PUBLICATION = 29, + OBJECT_PUBLICATION_REL = 30, + OBJECT_ROLE = 31, + OBJECT_ROUTINE = 32, + OBJECT_RULE = 33, + OBJECT_SCHEMA = 34, + OBJECT_SEQUENCE = 35, + OBJECT_SUBSCRIPTION = 36, + OBJECT_STATISTIC_EXT = 37, + OBJECT_TABCONSTRAINT = 38, + OBJECT_TABLE = 39, + OBJECT_TABLESPACE = 40, + OBJECT_TRANSFORM = 41, + OBJECT_TRIGGER = 42, + OBJECT_TSCONFIGURATION = 43, + OBJECT_TSDICTIONARY = 44, + OBJECT_TSPARSER = 45, + OBJECT_TSTEMPLATE = 46, + OBJECT_TYPE = 47, + OBJECT_USER_MAPPING = 48, + OBJECT_VIEW = 49, +} +export enum DropBehavior { + DROP_RESTRICT = 0, + DROP_CASCADE = 1, +} +export enum AlterTableType { + AT_AddColumn = 0, + AT_AddColumnRecurse = 1, + AT_AddColumnToView = 2, + AT_ColumnDefault = 3, + AT_CookedColumnDefault = 4, + AT_DropNotNull = 5, + AT_SetNotNull = 6, + AT_DropExpression = 7, + AT_CheckNotNull = 8, + AT_SetStatistics = 9, + AT_SetOptions = 10, + AT_ResetOptions = 11, + AT_SetStorage = 12, + AT_SetCompression = 13, + AT_DropColumn = 14, + AT_DropColumnRecurse = 15, + AT_AddIndex = 16, + AT_ReAddIndex = 17, + AT_AddConstraint = 18, + AT_AddConstraintRecurse = 19, + AT_ReAddConstraint = 20, + AT_ReAddDomainConstraint = 21, + AT_AlterConstraint = 22, + AT_ValidateConstraint = 23, + AT_ValidateConstraintRecurse = 24, + AT_AddIndexConstraint = 25, + AT_DropConstraint = 26, + AT_DropConstraintRecurse = 27, + AT_ReAddComment = 28, + AT_AlterColumnType = 29, + AT_AlterColumnGenericOptions = 30, + AT_ChangeOwner = 31, + AT_ClusterOn = 32, + AT_DropCluster = 33, + AT_SetLogged = 34, + AT_SetUnLogged = 35, + AT_DropOids = 36, + AT_SetTableSpace = 37, + AT_SetRelOptions = 38, + AT_ResetRelOptions = 39, + AT_ReplaceRelOptions = 40, + AT_EnableTrig = 41, + AT_EnableAlwaysTrig = 42, + AT_EnableReplicaTrig = 43, + AT_DisableTrig = 44, + AT_EnableTrigAll = 45, + AT_DisableTrigAll = 46, + AT_EnableTrigUser = 47, + AT_DisableTrigUser = 48, + AT_EnableRule = 49, + AT_EnableAlwaysRule = 50, + AT_EnableReplicaRule = 51, + AT_DisableRule = 52, + AT_AddInherit = 53, + AT_DropInherit = 54, + AT_AddOf = 55, + AT_DropOf = 56, + AT_ReplicaIdentity = 57, + AT_EnableRowSecurity = 58, + AT_DisableRowSecurity = 59, + AT_ForceRowSecurity = 60, + AT_NoForceRowSecurity = 61, + AT_GenericOptions = 62, + AT_AttachPartition = 63, + AT_DetachPartition = 64, + AT_DetachPartitionFinalize = 65, + AT_AddIdentity = 66, + AT_SetIdentity = 67, + AT_DropIdentity = 68, + AT_ReAddStatistics = 69, +} +export enum GrantTargetType { + ACL_TARGET_OBJECT = 0, + ACL_TARGET_ALL_IN_SCHEMA = 1, + ACL_TARGET_DEFAULTS = 2, +} +export enum VariableSetKind { + VAR_SET_VALUE = 0, + VAR_SET_DEFAULT = 1, + VAR_SET_CURRENT = 2, + VAR_SET_MULTI = 3, + VAR_RESET = 4, + VAR_RESET_ALL = 5, +} +export enum ConstrType { + CONSTR_NULL = 0, + CONSTR_NOTNULL = 1, + CONSTR_DEFAULT = 2, + CONSTR_IDENTITY = 3, + CONSTR_GENERATED = 4, + CONSTR_CHECK = 5, + CONSTR_PRIMARY = 6, + CONSTR_UNIQUE = 7, + CONSTR_EXCLUSION = 8, + CONSTR_FOREIGN = 9, + CONSTR_ATTR_DEFERRABLE = 10, + CONSTR_ATTR_NOT_DEFERRABLE = 11, + CONSTR_ATTR_DEFERRED = 12, + CONSTR_ATTR_IMMEDIATE = 13, +} +export enum ImportForeignSchemaType { + FDW_IMPORT_SCHEMA_ALL = 0, + FDW_IMPORT_SCHEMA_LIMIT_TO = 1, + FDW_IMPORT_SCHEMA_EXCEPT = 2, +} +export enum RoleStmtType { + ROLESTMT_ROLE = 0, + ROLESTMT_USER = 1, + ROLESTMT_GROUP = 2, +} +export enum FetchDirection { + FETCH_FORWARD = 0, + FETCH_BACKWARD = 1, + FETCH_ABSOLUTE = 2, + FETCH_RELATIVE = 3, +} +export enum FunctionParameterMode { + FUNC_PARAM_IN = 0, + FUNC_PARAM_OUT = 1, + FUNC_PARAM_INOUT = 2, + FUNC_PARAM_VARIADIC = 3, + FUNC_PARAM_TABLE = 4, + FUNC_PARAM_DEFAULT = 5, +} +export enum TransactionStmtKind { + TRANS_STMT_BEGIN = 0, + TRANS_STMT_START = 1, + TRANS_STMT_COMMIT = 2, + TRANS_STMT_ROLLBACK = 3, + TRANS_STMT_SAVEPOINT = 4, + TRANS_STMT_RELEASE = 5, + TRANS_STMT_ROLLBACK_TO = 6, + TRANS_STMT_PREPARE = 7, + TRANS_STMT_COMMIT_PREPARED = 8, + TRANS_STMT_ROLLBACK_PREPARED = 9, +} +export enum ViewCheckOption { + NO_CHECK_OPTION = 0, + LOCAL_CHECK_OPTION = 1, + CASCADED_CHECK_OPTION = 2, +} +export enum DiscardMode { + DISCARD_ALL = 0, + DISCARD_PLANS = 1, + DISCARD_SEQUENCES = 2, + DISCARD_TEMP = 3, +} +export enum ReindexObjectType { + REINDEX_OBJECT_INDEX = 0, + REINDEX_OBJECT_TABLE = 1, + REINDEX_OBJECT_SCHEMA = 2, + REINDEX_OBJECT_SYSTEM = 3, + REINDEX_OBJECT_DATABASE = 4, +} +export enum AlterTSConfigType { + ALTER_TSCONFIG_ADD_MAPPING = 0, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 1, + ALTER_TSCONFIG_REPLACE_DICT = 2, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 3, + ALTER_TSCONFIG_DROP_MAPPING = 4, +} +export enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_OPTIONS = 0, + ALTER_SUBSCRIPTION_CONNECTION = 1, + ALTER_SUBSCRIPTION_SET_PUBLICATION = 2, + ALTER_SUBSCRIPTION_ADD_PUBLICATION = 3, + ALTER_SUBSCRIPTION_DROP_PUBLICATION = 4, + ALTER_SUBSCRIPTION_REFRESH = 5, + ALTER_SUBSCRIPTION_ENABLED = 6, +} +export enum OnCommitAction { + ONCOMMIT_NOOP = 0, + ONCOMMIT_PRESERVE_ROWS = 1, + ONCOMMIT_DELETE_ROWS = 2, + ONCOMMIT_DROP = 3, +} +export enum ParamKind { + PARAM_EXTERN = 0, + PARAM_EXEC = 1, + PARAM_SUBLINK = 2, + PARAM_MULTIEXPR = 3, +} +export enum CoercionContext { + COERCION_IMPLICIT = 0, + COERCION_ASSIGNMENT = 1, + COERCION_PLPGSQL = 2, + COERCION_EXPLICIT = 3, +} +export enum CoercionForm { + COERCE_EXPLICIT_CALL = 0, + COERCE_EXPLICIT_CAST = 1, + COERCE_IMPLICIT_CAST = 2, + COERCE_SQL_SYNTAX = 3, +} +export enum BoolExprType { + AND_EXPR = 0, + OR_EXPR = 1, + NOT_EXPR = 2, +} +export enum SubLinkType { + EXISTS_SUBLINK = 0, + ALL_SUBLINK = 1, + ANY_SUBLINK = 2, + ROWCOMPARE_SUBLINK = 3, + EXPR_SUBLINK = 4, + MULTIEXPR_SUBLINK = 5, + ARRAY_SUBLINK = 6, + CTE_SUBLINK = 7, +} +export enum RowCompareType { + ROWCOMPARE_LT = 0, + ROWCOMPARE_LE = 1, + ROWCOMPARE_EQ = 2, + ROWCOMPARE_GE = 3, + ROWCOMPARE_GT = 4, + ROWCOMPARE_NE = 5, +} +export enum MinMaxOp { + IS_GREATEST = 0, + IS_LEAST = 1, +} +export enum SQLValueFunctionOp { + SVFOP_CURRENT_DATE = 0, + SVFOP_CURRENT_TIME = 1, + SVFOP_CURRENT_TIME_N = 2, + SVFOP_CURRENT_TIMESTAMP = 3, + SVFOP_CURRENT_TIMESTAMP_N = 4, + SVFOP_LOCALTIME = 5, + SVFOP_LOCALTIME_N = 6, + SVFOP_LOCALTIMESTAMP = 7, + SVFOP_LOCALTIMESTAMP_N = 8, + SVFOP_CURRENT_ROLE = 9, + SVFOP_CURRENT_USER = 10, + SVFOP_USER = 11, + SVFOP_SESSION_USER = 12, + SVFOP_CURRENT_CATALOG = 13, + SVFOP_CURRENT_SCHEMA = 14, +} +export enum XmlExprOp { + IS_XMLCONCAT = 0, + IS_XMLELEMENT = 1, + IS_XMLFOREST = 2, + IS_XMLPARSE = 3, + IS_XMLPI = 4, + IS_XMLROOT = 5, + IS_XMLSERIALIZE = 6, + IS_DOCUMENT = 7, +} +export enum XmlOptionType { + XMLOPTION_DOCUMENT = 0, + XMLOPTION_CONTENT = 1, +} +export enum NullTestType { + IS_NULL = 0, + IS_NOT_NULL = 1, +} +export enum BoolTestType { + IS_TRUE = 0, + IS_NOT_TRUE = 1, + IS_FALSE = 2, + IS_NOT_FALSE = 3, + IS_UNKNOWN = 4, + IS_NOT_UNKNOWN = 5, +} +export enum CmdType { + CMD_UNKNOWN = 0, + CMD_SELECT = 1, + CMD_UPDATE = 2, + CMD_INSERT = 3, + CMD_DELETE = 4, + CMD_UTILITY = 5, + CMD_NOTHING = 6, +} +export enum JoinType { + JOIN_INNER = 0, + JOIN_LEFT = 1, + JOIN_FULL = 2, + JOIN_RIGHT = 3, + JOIN_SEMI = 4, + JOIN_ANTI = 5, + JOIN_UNIQUE_OUTER = 6, + JOIN_UNIQUE_INNER = 7, +} +export enum AggStrategy { + AGG_PLAIN = 0, + AGG_SORTED = 1, + AGG_HASHED = 2, + AGG_MIXED = 3, +} +export enum AggSplit { + AGGSPLIT_SIMPLE = 0, + AGGSPLIT_INITIAL_SERIAL = 1, + AGGSPLIT_FINAL_DESERIAL = 2, +} +export enum SetOpCmd { + SETOPCMD_INTERSECT = 0, + SETOPCMD_INTERSECT_ALL = 1, + SETOPCMD_EXCEPT = 2, + SETOPCMD_EXCEPT_ALL = 3, +} +export enum SetOpStrategy { + SETOP_SORTED = 0, + SETOP_HASHED = 1, +} +export enum OnConflictAction { + ONCONFLICT_NONE = 0, + ONCONFLICT_NOTHING = 1, + ONCONFLICT_UPDATE = 2, +} +export enum LimitOption { + LIMIT_OPTION_DEFAULT = 0, + LIMIT_OPTION_COUNT = 1, + LIMIT_OPTION_WITH_TIES = 2, +} +export enum LockClauseStrength { + LCS_NONE = 0, + LCS_FORKEYSHARE = 1, + LCS_FORSHARE = 2, + LCS_FORNOKEYUPDATE = 3, + LCS_FORUPDATE = 4, +} +export enum LockWaitPolicy { + LockWaitBlock = 0, + LockWaitSkip = 1, + LockWaitError = 2, +} +export enum LockTupleMode { + LockTupleKeyShare = 0, + LockTupleShare = 1, + LockTupleNoKeyExclusive = 2, + LockTupleExclusive = 3, +} +export enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, +} +export enum Token { + NUL = 0, + ASCII_37 = 37, + ASCII_40 = 40, + ASCII_41 = 41, + ASCII_42 = 42, + ASCII_43 = 43, + ASCII_44 = 44, + ASCII_45 = 45, + ASCII_46 = 46, + ASCII_47 = 47, + ASCII_58 = 58, + ASCII_59 = 59, + ASCII_60 = 60, + ASCII_61 = 61, + ASCII_62 = 62, + ASCII_63 = 63, + ASCII_91 = 91, + ASCII_92 = 92, + ASCII_93 = 93, + ASCII_94 = 94, + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + SQL_COMMENT = 275, + C_COMMENT = 276, + ABORT_P = 277, + ABSOLUTE_P = 278, + ACCESS = 279, + ACTION = 280, + ADD_P = 281, + ADMIN = 282, + AFTER = 283, + AGGREGATE = 284, + ALL = 285, + ALSO = 286, + ALTER = 287, + ALWAYS = 288, + ANALYSE = 289, + ANALYZE = 290, + AND = 291, + ANY = 292, + ARRAY = 293, + AS = 294, + ASC = 295, + ASENSITIVE = 296, + ASSERTION = 297, + ASSIGNMENT = 298, + ASYMMETRIC = 299, + ATOMIC = 300, + AT = 301, + ATTACH = 302, + ATTRIBUTE = 303, + AUTHORIZATION = 304, + BACKWARD = 305, + BEFORE = 306, + BEGIN_P = 307, + BETWEEN = 308, + BIGINT = 309, + BINARY = 310, + BIT = 311, + BOOLEAN_P = 312, + BOTH = 313, + BREADTH = 314, + BY = 315, + CACHE = 316, + CALL = 317, + CALLED = 318, + CASCADE = 319, + CASCADED = 320, + CASE = 321, + CAST = 322, + CATALOG_P = 323, + CHAIN = 324, + CHAR_P = 325, + CHARACTER = 326, + CHARACTERISTICS = 327, + CHECK = 328, + CHECKPOINT = 329, + CLASS = 330, + CLOSE = 331, + CLUSTER = 332, + COALESCE = 333, + COLLATE = 334, + COLLATION = 335, + COLUMN = 336, + COLUMNS = 337, + COMMENT = 338, + COMMENTS = 339, + COMMIT = 340, + COMMITTED = 341, + COMPRESSION = 342, + CONCURRENTLY = 343, + CONFIGURATION = 344, + CONFLICT = 345, + CONNECTION = 346, + CONSTRAINT = 347, + CONSTRAINTS = 348, + CONTENT_P = 349, + CONTINUE_P = 350, + CONVERSION_P = 351, + COPY = 352, + COST = 353, + CREATE = 354, + CROSS = 355, + CSV = 356, + CUBE = 357, + CURRENT_P = 358, + CURRENT_CATALOG = 359, + CURRENT_DATE = 360, + CURRENT_ROLE = 361, + CURRENT_SCHEMA = 362, + CURRENT_TIME = 363, + CURRENT_TIMESTAMP = 364, + CURRENT_USER = 365, + CURSOR = 366, + CYCLE = 367, + DATA_P = 368, + DATABASE = 369, + DAY_P = 370, + DEALLOCATE = 371, + DEC = 372, + DECIMAL_P = 373, + DECLARE = 374, + DEFAULT = 375, + DEFAULTS = 376, + DEFERRABLE = 377, + DEFERRED = 378, + DEFINER = 379, + DELETE_P = 380, + DELIMITER = 381, + DELIMITERS = 382, + DEPENDS = 383, + DEPTH = 384, + DESC = 385, + DETACH = 386, + DICTIONARY = 387, + DISABLE_P = 388, + DISCARD = 389, + DISTINCT = 390, + DO = 391, + DOCUMENT_P = 392, + DOMAIN_P = 393, + DOUBLE_P = 394, + DROP = 395, + EACH = 396, + ELSE = 397, + ENABLE_P = 398, + ENCODING = 399, + ENCRYPTED = 400, + END_P = 401, + ENUM_P = 402, + ESCAPE = 403, + EVENT = 404, + EXCEPT = 405, + EXCLUDE = 406, + EXCLUDING = 407, + EXCLUSIVE = 408, + EXECUTE = 409, + EXISTS = 410, + EXPLAIN = 411, + EXPRESSION = 412, + EXTENSION = 413, + EXTERNAL = 414, + EXTRACT = 415, + FALSE_P = 416, + FAMILY = 417, + FETCH = 418, + FILTER = 419, + FINALIZE = 420, + FIRST_P = 421, + FLOAT_P = 422, + FOLLOWING = 423, + FOR = 424, + FORCE = 425, + FOREIGN = 426, + FORWARD = 427, + FREEZE = 428, + FROM = 429, + FULL = 430, + FUNCTION = 431, + FUNCTIONS = 432, + GENERATED = 433, + GLOBAL = 434, + GRANT = 435, + GRANTED = 436, + GREATEST = 437, + GROUP_P = 438, + GROUPING = 439, + GROUPS = 440, + HANDLER = 441, + HAVING = 442, + HEADER_P = 443, + HOLD = 444, + HOUR_P = 445, + IDENTITY_P = 446, + IF_P = 447, + ILIKE = 448, + IMMEDIATE = 449, + IMMUTABLE = 450, + IMPLICIT_P = 451, + IMPORT_P = 452, + IN_P = 453, + INCLUDE = 454, + INCLUDING = 455, + INCREMENT = 456, + INDEX = 457, + INDEXES = 458, + INHERIT = 459, + INHERITS = 460, + INITIALLY = 461, + INLINE_P = 462, + INNER_P = 463, + INOUT = 464, + INPUT_P = 465, + INSENSITIVE = 466, + INSERT = 467, + INSTEAD = 468, + INT_P = 469, + INTEGER = 470, + INTERSECT = 471, + INTERVAL = 472, + INTO = 473, + INVOKER = 474, + IS = 475, + ISNULL = 476, + ISOLATION = 477, + JOIN = 478, + KEY = 479, + LABEL = 480, + LANGUAGE = 481, + LARGE_P = 482, + LAST_P = 483, + LATERAL_P = 484, + LEADING = 485, + LEAKPROOF = 486, + LEAST = 487, + LEFT = 488, + LEVEL = 489, + LIKE = 490, + LIMIT = 491, + LISTEN = 492, + LOAD = 493, + LOCAL = 494, + LOCALTIME = 495, + LOCALTIMESTAMP = 496, + LOCATION = 497, + LOCK_P = 498, + LOCKED = 499, + LOGGED = 500, + MAPPING = 501, + MATCH = 502, + MATERIALIZED = 503, + MAXVALUE = 504, + METHOD = 505, + MINUTE_P = 506, + MINVALUE = 507, + MODE = 508, + MONTH_P = 509, + MOVE = 510, + NAME_P = 511, + NAMES = 512, + NATIONAL = 513, + NATURAL = 514, + NCHAR = 515, + NEW = 516, + NEXT = 517, + NFC = 518, + NFD = 519, + NFKC = 520, + NFKD = 521, + NO = 522, + NONE = 523, + NORMALIZE = 524, + NORMALIZED = 525, + NOT = 526, + NOTHING = 527, + NOTIFY = 528, + NOTNULL = 529, + NOWAIT = 530, + NULL_P = 531, + NULLIF = 532, + NULLS_P = 533, + NUMERIC = 534, + OBJECT_P = 535, + OF = 536, + OFF = 537, + OFFSET = 538, + OIDS = 539, + OLD = 540, + ON = 541, + ONLY = 542, + OPERATOR = 543, + OPTION = 544, + OPTIONS = 545, + OR = 546, + ORDER = 547, + ORDINALITY = 548, + OTHERS = 549, + OUT_P = 550, + OUTER_P = 551, + OVER = 552, + OVERLAPS = 553, + OVERLAY = 554, + OVERRIDING = 555, + OWNED = 556, + OWNER = 557, + PARALLEL = 558, + PARSER = 559, + PARTIAL = 560, + PARTITION = 561, + PASSING = 562, + PASSWORD = 563, + PLACING = 564, + PLANS = 565, + POLICY = 566, + POSITION = 567, + PRECEDING = 568, + PRECISION = 569, + PRESERVE = 570, + PREPARE = 571, + PREPARED = 572, + PRIMARY = 573, + PRIOR = 574, + PRIVILEGES = 575, + PROCEDURAL = 576, + PROCEDURE = 577, + PROCEDURES = 578, + PROGRAM = 579, + PUBLICATION = 580, + QUOTE = 581, + RANGE = 582, + READ = 583, + REAL = 584, + REASSIGN = 585, + RECHECK = 586, + RECURSIVE = 587, + REF_P = 588, + REFERENCES = 589, + REFERENCING = 590, + REFRESH = 591, + REINDEX = 592, + RELATIVE_P = 593, + RELEASE = 594, + RENAME = 595, + REPEATABLE = 596, + REPLACE = 597, + REPLICA = 598, + RESET = 599, + RESTART = 600, + RESTRICT = 601, + RETURN = 602, + RETURNING = 603, + RETURNS = 604, + REVOKE = 605, + RIGHT = 606, + ROLE = 607, + ROLLBACK = 608, + ROLLUP = 609, + ROUTINE = 610, + ROUTINES = 611, + ROW = 612, + ROWS = 613, + RULE = 614, + SAVEPOINT = 615, + SCHEMA = 616, + SCHEMAS = 617, + SCROLL = 618, + SEARCH = 619, + SECOND_P = 620, + SECURITY = 621, + SELECT = 622, + SEQUENCE = 623, + SEQUENCES = 624, + SERIALIZABLE = 625, + SERVER = 626, + SESSION = 627, + SESSION_USER = 628, + SET = 629, + SETS = 630, + SETOF = 631, + SHARE = 632, + SHOW = 633, + SIMILAR = 634, + SIMPLE = 635, + SKIP = 636, + SMALLINT = 637, + SNAPSHOT = 638, + SOME = 639, + SQL_P = 640, + STABLE = 641, + STANDALONE_P = 642, + START = 643, + STATEMENT = 644, + STATISTICS = 645, + STDIN = 646, + STDOUT = 647, + STORAGE = 648, + STORED = 649, + STRICT_P = 650, + STRIP_P = 651, + SUBSCRIPTION = 652, + SUBSTRING = 653, + SUPPORT = 654, + SYMMETRIC = 655, + SYSID = 656, + SYSTEM_P = 657, + TABLE = 658, + TABLES = 659, + TABLESAMPLE = 660, + TABLESPACE = 661, + TEMP = 662, + TEMPLATE = 663, + TEMPORARY = 664, + TEXT_P = 665, + THEN = 666, + TIES = 667, + TIME = 668, + TIMESTAMP = 669, + TO = 670, + TRAILING = 671, + TRANSACTION = 672, + TRANSFORM = 673, + TREAT = 674, + TRIGGER = 675, + TRIM = 676, + TRUE_P = 677, + TRUNCATE = 678, + TRUSTED = 679, + TYPE_P = 680, + TYPES_P = 681, + UESCAPE = 682, + UNBOUNDED = 683, + UNCOMMITTED = 684, + UNENCRYPTED = 685, + UNION = 686, + UNIQUE = 687, + UNKNOWN = 688, + UNLISTEN = 689, + UNLOGGED = 690, + UNTIL = 691, + UPDATE = 692, + USER = 693, + USING = 694, + VACUUM = 695, + VALID = 696, + VALIDATE = 697, + VALIDATOR = 698, + VALUE_P = 699, + VALUES = 700, + VARCHAR = 701, + VARIADIC = 702, + VARYING = 703, + VERBOSE = 704, + VERSION_P = 705, + VIEW = 706, + VIEWS = 707, + VOLATILE = 708, + WHEN = 709, + WHERE = 710, + WHITESPACE_P = 711, + WINDOW = 712, + WITH = 713, + WITHIN = 714, + WITHOUT = 715, + WORK = 716, + WRAPPER = 717, + WRITE = 718, + XML_P = 719, + XMLATTRIBUTES = 720, + XMLCONCAT = 721, + XMLELEMENT = 722, + XMLEXISTS = 723, + XMLFOREST = 724, + XMLNAMESPACES = 725, + XMLPARSE = 726, + XMLPI = 727, + XMLROOT = 728, + XMLSERIALIZE = 729, + XMLTABLE = 730, + YEAR_P = 731, + YES_P = 732, + ZONE = 733, + NOT_LA = 734, + NULLS_LA = 735, + WITH_LA = 736, + MODE_TYPE_NAME = 737, + MODE_PLPGSQL_EXPR = 738, + MODE_PLPGSQL_ASSIGN1 = 739, + MODE_PLPGSQL_ASSIGN2 = 740, + MODE_PLPGSQL_ASSIGN3 = 741, + UMINUS = 742, +} \ No newline at end of file diff --git a/enums/14/tsconfig.esm.json b/enums/14/tsconfig.esm.json new file mode 100644 index 0000000..800d750 --- /dev/null +++ b/enums/14/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/esm", + "module": "es2022", + "rootDir": "src/", + "declaration": false + } +} diff --git a/enums/14/tsconfig.json b/enums/14/tsconfig.json new file mode 100644 index 0000000..1a9d569 --- /dev/null +++ b/enums/14/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src/" + }, + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] +} diff --git a/enums/15/README.md b/enums/15/README.md new file mode 100644 index 0000000..b354433 --- /dev/null +++ b/enums/15/README.md @@ -0,0 +1,92 @@ +# @pgsql/enums + +

+ +

+ +

+ + + + + + + +

+ +`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. + + +## Installation + +Install the package via npm: + +```bash +npm install @pgsql/enums +``` + +## Usage + +`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. + +Here are a few examples of how you can use these enums in your TypeScript projects: + +### Using Enum Values + +You can use the enums to work with specific PostgreSQL AST enum values: + +```ts +import { ConstrType, ObjectType } from '@pgsql/enums'; + +function createConstraint() { + return { + contype: ConstrType.CONSTR_PRIMARY + }; +} + +function getObjectType() { + return ObjectType.OBJECT_TABLE; +} +``` + +### Type-Safe Enum Operations + +Enums help ensure that you use correct PostgreSQL enum values: + +```ts +import { CmdType, JoinType } from '@pgsql/enums'; + +const command = { + cmdType: CmdType.CMD_SELECT, + joinType: JoinType.JOIN_INNER +}; + +console.log(command); +``` + +## Versions + +Our latest is built with PostgreSQL 17 enum definitions. + +| PG Major Version | libpg_query | npm dist-tag +|--------------------------|-------------|---------| +| 17 | 17-6.1.0 | [`pg17`](https://www.npmjs.com/package/@pgsql/enums/v/latest) +| 16 | 16-5.2.0 | [`pg16`](https://www.npmjs.com/package/@pgsql/enums/v/pg16) +| 15 | 15-4.2.4 | [`pg15`](https://www.npmjs.com/package/@pgsql/enums/v/pg15) +| 14 | 14-3.0.0 | [`pg14`](https://www.npmjs.com/package/@pgsql/enums/v/pg14) +| 13 | 13-2.2.0 | [`pg13`](https://www.npmjs.com/package/@pgsql/enums/v/pg13) + +## Related + +* [pgsql-parser](https://github.com/launchql/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration. +* [pgsql-deparser](https://github.com/launchql/pgsql-parser/tree/main/packages/deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`. +* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs. +* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs. +* [pg-proto-parser](https://github.com/launchql/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums. +* [libpg-query](https://github.com/launchql/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries. + +## Disclaimer + +AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. + +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file diff --git a/enums/15/jest.config.js b/enums/15/jest.config.js new file mode 100644 index 0000000..d186228 --- /dev/null +++ b/enums/15/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + transform: { + "^.+\.tsx?$": [ + "ts-jest", + { + babelConfig: false, + tsconfig: "tsconfig.json", + }, + ], + }, + transformIgnorePatterns: [`/node_modules/*`], + testRegex: "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + modulePathIgnorePatterns: ["dist/*"] +}; diff --git a/enums/15/package.json b/enums/15/package.json new file mode 100644 index 0000000..ecba2e2 --- /dev/null +++ b/enums/15/package.json @@ -0,0 +1,39 @@ +{ + "name": "@libpg-query/enums15", + "version": "15.5.3", + "author": "Dan Lynch ", + "description": "PostgreSQL AST enums from the real Postgres parser", + "main": "index.js", + "module": "esm/index.js", + "types": "index.d.ts", + "homepage": "https://github.com/launchql/libpg-query-node", + "license": "SEE LICENSE IN LICENSE", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/launchql/libpg-query-node" + }, + "bugs": { + "url": "https://github.com/launchql/libpg-query-node/issues" + }, + "x-publish": { + "publishName": "@pgsql/enums", + "distTag": "pg15" + }, + "scripts": { + "copy": "copyfiles -f ../../LICENSE README.md package.json dist", + "clean": "rimraf dist", + "build": "pnpm run clean && tsc && tsc -p tsconfig.esm.json && pnpm run copy", + "build:dev": "pnpm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && pnpm run copy", + "build:proto": "ts-node scripts/pg-proto-parser", + "prepare:enums": "node -e \"require('../../scripts/prepare-enums.js').preparePackageForPublish('.')\"", + "lint": "eslint . --fix" + }, + "keywords": [], + "devDependencies": { + "pg-proto-parser": "^1.28.2" + } +} diff --git a/enums/15/scripts/pg-proto-parser.ts b/enums/15/scripts/pg-proto-parser.ts new file mode 100644 index 0000000..a576591 --- /dev/null +++ b/enums/15/scripts/pg-proto-parser.ts @@ -0,0 +1,17 @@ +import { PgProtoParser, PgProtoParserOptions } from 'pg-proto-parser'; +import { resolve, join } from 'path'; + +const inFile: string = join(__dirname, '../../../protos/15/pg_query.proto'); +const outDir: string = resolve(join(__dirname, '../src')); + +const options: PgProtoParserOptions = { + outDir, + enums: { + enabled: true, + enumsAsTypeUnion: false, + filename: 'index.ts' + } +}; +const parser = new PgProtoParser(inFile, options); + +parser.write(); \ No newline at end of file diff --git a/enums/15/src/index.ts b/enums/15/src/index.ts new file mode 100644 index 0000000..6e041a8 --- /dev/null +++ b/enums/15/src/index.ts @@ -0,0 +1,1039 @@ +/** +* This file was automatically generated by pg-proto-parser@1.28.2. +* DO NOT MODIFY IT BY HAND. Instead, modify the source proto file, +* and run the pg-proto-parser generate command to regenerate this file. +*/ +export enum OverridingKind { + OVERRIDING_NOT_SET = 0, + OVERRIDING_USER_VALUE = 1, + OVERRIDING_SYSTEM_VALUE = 2, +} +export enum QuerySource { + QSRC_ORIGINAL = 0, + QSRC_PARSER = 1, + QSRC_INSTEAD_RULE = 2, + QSRC_QUAL_INSTEAD_RULE = 3, + QSRC_NON_INSTEAD_RULE = 4, +} +export enum SortByDir { + SORTBY_DEFAULT = 0, + SORTBY_ASC = 1, + SORTBY_DESC = 2, + SORTBY_USING = 3, +} +export enum SortByNulls { + SORTBY_NULLS_DEFAULT = 0, + SORTBY_NULLS_FIRST = 1, + SORTBY_NULLS_LAST = 2, +} +export enum SetQuantifier { + SET_QUANTIFIER_DEFAULT = 0, + SET_QUANTIFIER_ALL = 1, + SET_QUANTIFIER_DISTINCT = 2, +} +export enum A_Expr_Kind { + AEXPR_OP = 0, + AEXPR_OP_ANY = 1, + AEXPR_OP_ALL = 2, + AEXPR_DISTINCT = 3, + AEXPR_NOT_DISTINCT = 4, + AEXPR_NULLIF = 5, + AEXPR_IN = 6, + AEXPR_LIKE = 7, + AEXPR_ILIKE = 8, + AEXPR_SIMILAR = 9, + AEXPR_BETWEEN = 10, + AEXPR_NOT_BETWEEN = 11, + AEXPR_BETWEEN_SYM = 12, + AEXPR_NOT_BETWEEN_SYM = 13, +} +export enum RoleSpecType { + ROLESPEC_CSTRING = 0, + ROLESPEC_CURRENT_ROLE = 1, + ROLESPEC_CURRENT_USER = 2, + ROLESPEC_SESSION_USER = 3, + ROLESPEC_PUBLIC = 4, +} +export enum TableLikeOption { + CREATE_TABLE_LIKE_COMMENTS = 0, + CREATE_TABLE_LIKE_COMPRESSION = 1, + CREATE_TABLE_LIKE_CONSTRAINTS = 2, + CREATE_TABLE_LIKE_DEFAULTS = 3, + CREATE_TABLE_LIKE_GENERATED = 4, + CREATE_TABLE_LIKE_IDENTITY = 5, + CREATE_TABLE_LIKE_INDEXES = 6, + CREATE_TABLE_LIKE_STATISTICS = 7, + CREATE_TABLE_LIKE_STORAGE = 8, + CREATE_TABLE_LIKE_ALL = 9, +} +export enum DefElemAction { + DEFELEM_UNSPEC = 0, + DEFELEM_SET = 1, + DEFELEM_ADD = 2, + DEFELEM_DROP = 3, +} +export enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_MINVALUE = 0, + PARTITION_RANGE_DATUM_VALUE = 1, + PARTITION_RANGE_DATUM_MAXVALUE = 2, +} +export enum RTEKind { + RTE_RELATION = 0, + RTE_SUBQUERY = 1, + RTE_JOIN = 2, + RTE_FUNCTION = 3, + RTE_TABLEFUNC = 4, + RTE_VALUES = 5, + RTE_CTE = 6, + RTE_NAMEDTUPLESTORE = 7, + RTE_RESULT = 8, +} +export enum WCOKind { + WCO_VIEW_CHECK = 0, + WCO_RLS_INSERT_CHECK = 1, + WCO_RLS_UPDATE_CHECK = 2, + WCO_RLS_CONFLICT_CHECK = 3, + WCO_RLS_MERGE_UPDATE_CHECK = 4, + WCO_RLS_MERGE_DELETE_CHECK = 5, +} +export enum GroupingSetKind { + GROUPING_SET_EMPTY = 0, + GROUPING_SET_SIMPLE = 1, + GROUPING_SET_ROLLUP = 2, + GROUPING_SET_CUBE = 3, + GROUPING_SET_SETS = 4, +} +export enum CTEMaterialize { + CTEMaterializeDefault = 0, + CTEMaterializeAlways = 1, + CTEMaterializeNever = 2, +} +export enum SetOperation { + SETOP_NONE = 0, + SETOP_UNION = 1, + SETOP_INTERSECT = 2, + SETOP_EXCEPT = 3, +} +export enum ObjectType { + OBJECT_ACCESS_METHOD = 0, + OBJECT_AGGREGATE = 1, + OBJECT_AMOP = 2, + OBJECT_AMPROC = 3, + OBJECT_ATTRIBUTE = 4, + OBJECT_CAST = 5, + OBJECT_COLUMN = 6, + OBJECT_COLLATION = 7, + OBJECT_CONVERSION = 8, + OBJECT_DATABASE = 9, + OBJECT_DEFAULT = 10, + OBJECT_DEFACL = 11, + OBJECT_DOMAIN = 12, + OBJECT_DOMCONSTRAINT = 13, + OBJECT_EVENT_TRIGGER = 14, + OBJECT_EXTENSION = 15, + OBJECT_FDW = 16, + OBJECT_FOREIGN_SERVER = 17, + OBJECT_FOREIGN_TABLE = 18, + OBJECT_FUNCTION = 19, + OBJECT_INDEX = 20, + OBJECT_LANGUAGE = 21, + OBJECT_LARGEOBJECT = 22, + OBJECT_MATVIEW = 23, + OBJECT_OPCLASS = 24, + OBJECT_OPERATOR = 25, + OBJECT_OPFAMILY = 26, + OBJECT_PARAMETER_ACL = 27, + OBJECT_POLICY = 28, + OBJECT_PROCEDURE = 29, + OBJECT_PUBLICATION = 30, + OBJECT_PUBLICATION_NAMESPACE = 31, + OBJECT_PUBLICATION_REL = 32, + OBJECT_ROLE = 33, + OBJECT_ROUTINE = 34, + OBJECT_RULE = 35, + OBJECT_SCHEMA = 36, + OBJECT_SEQUENCE = 37, + OBJECT_SUBSCRIPTION = 38, + OBJECT_STATISTIC_EXT = 39, + OBJECT_TABCONSTRAINT = 40, + OBJECT_TABLE = 41, + OBJECT_TABLESPACE = 42, + OBJECT_TRANSFORM = 43, + OBJECT_TRIGGER = 44, + OBJECT_TSCONFIGURATION = 45, + OBJECT_TSDICTIONARY = 46, + OBJECT_TSPARSER = 47, + OBJECT_TSTEMPLATE = 48, + OBJECT_TYPE = 49, + OBJECT_USER_MAPPING = 50, + OBJECT_VIEW = 51, +} +export enum DropBehavior { + DROP_RESTRICT = 0, + DROP_CASCADE = 1, +} +export enum AlterTableType { + AT_AddColumn = 0, + AT_AddColumnRecurse = 1, + AT_AddColumnToView = 2, + AT_ColumnDefault = 3, + AT_CookedColumnDefault = 4, + AT_DropNotNull = 5, + AT_SetNotNull = 6, + AT_DropExpression = 7, + AT_CheckNotNull = 8, + AT_SetStatistics = 9, + AT_SetOptions = 10, + AT_ResetOptions = 11, + AT_SetStorage = 12, + AT_SetCompression = 13, + AT_DropColumn = 14, + AT_DropColumnRecurse = 15, + AT_AddIndex = 16, + AT_ReAddIndex = 17, + AT_AddConstraint = 18, + AT_AddConstraintRecurse = 19, + AT_ReAddConstraint = 20, + AT_ReAddDomainConstraint = 21, + AT_AlterConstraint = 22, + AT_ValidateConstraint = 23, + AT_ValidateConstraintRecurse = 24, + AT_AddIndexConstraint = 25, + AT_DropConstraint = 26, + AT_DropConstraintRecurse = 27, + AT_ReAddComment = 28, + AT_AlterColumnType = 29, + AT_AlterColumnGenericOptions = 30, + AT_ChangeOwner = 31, + AT_ClusterOn = 32, + AT_DropCluster = 33, + AT_SetLogged = 34, + AT_SetUnLogged = 35, + AT_DropOids = 36, + AT_SetAccessMethod = 37, + AT_SetTableSpace = 38, + AT_SetRelOptions = 39, + AT_ResetRelOptions = 40, + AT_ReplaceRelOptions = 41, + AT_EnableTrig = 42, + AT_EnableAlwaysTrig = 43, + AT_EnableReplicaTrig = 44, + AT_DisableTrig = 45, + AT_EnableTrigAll = 46, + AT_DisableTrigAll = 47, + AT_EnableTrigUser = 48, + AT_DisableTrigUser = 49, + AT_EnableRule = 50, + AT_EnableAlwaysRule = 51, + AT_EnableReplicaRule = 52, + AT_DisableRule = 53, + AT_AddInherit = 54, + AT_DropInherit = 55, + AT_AddOf = 56, + AT_DropOf = 57, + AT_ReplicaIdentity = 58, + AT_EnableRowSecurity = 59, + AT_DisableRowSecurity = 60, + AT_ForceRowSecurity = 61, + AT_NoForceRowSecurity = 62, + AT_GenericOptions = 63, + AT_AttachPartition = 64, + AT_DetachPartition = 65, + AT_DetachPartitionFinalize = 66, + AT_AddIdentity = 67, + AT_SetIdentity = 68, + AT_DropIdentity = 69, + AT_ReAddStatistics = 70, +} +export enum GrantTargetType { + ACL_TARGET_OBJECT = 0, + ACL_TARGET_ALL_IN_SCHEMA = 1, + ACL_TARGET_DEFAULTS = 2, +} +export enum VariableSetKind { + VAR_SET_VALUE = 0, + VAR_SET_DEFAULT = 1, + VAR_SET_CURRENT = 2, + VAR_SET_MULTI = 3, + VAR_RESET = 4, + VAR_RESET_ALL = 5, +} +export enum ConstrType { + CONSTR_NULL = 0, + CONSTR_NOTNULL = 1, + CONSTR_DEFAULT = 2, + CONSTR_IDENTITY = 3, + CONSTR_GENERATED = 4, + CONSTR_CHECK = 5, + CONSTR_PRIMARY = 6, + CONSTR_UNIQUE = 7, + CONSTR_EXCLUSION = 8, + CONSTR_FOREIGN = 9, + CONSTR_ATTR_DEFERRABLE = 10, + CONSTR_ATTR_NOT_DEFERRABLE = 11, + CONSTR_ATTR_DEFERRED = 12, + CONSTR_ATTR_IMMEDIATE = 13, +} +export enum ImportForeignSchemaType { + FDW_IMPORT_SCHEMA_ALL = 0, + FDW_IMPORT_SCHEMA_LIMIT_TO = 1, + FDW_IMPORT_SCHEMA_EXCEPT = 2, +} +export enum RoleStmtType { + ROLESTMT_ROLE = 0, + ROLESTMT_USER = 1, + ROLESTMT_GROUP = 2, +} +export enum FetchDirection { + FETCH_FORWARD = 0, + FETCH_BACKWARD = 1, + FETCH_ABSOLUTE = 2, + FETCH_RELATIVE = 3, +} +export enum FunctionParameterMode { + FUNC_PARAM_IN = 0, + FUNC_PARAM_OUT = 1, + FUNC_PARAM_INOUT = 2, + FUNC_PARAM_VARIADIC = 3, + FUNC_PARAM_TABLE = 4, + FUNC_PARAM_DEFAULT = 5, +} +export enum TransactionStmtKind { + TRANS_STMT_BEGIN = 0, + TRANS_STMT_START = 1, + TRANS_STMT_COMMIT = 2, + TRANS_STMT_ROLLBACK = 3, + TRANS_STMT_SAVEPOINT = 4, + TRANS_STMT_RELEASE = 5, + TRANS_STMT_ROLLBACK_TO = 6, + TRANS_STMT_PREPARE = 7, + TRANS_STMT_COMMIT_PREPARED = 8, + TRANS_STMT_ROLLBACK_PREPARED = 9, +} +export enum ViewCheckOption { + NO_CHECK_OPTION = 0, + LOCAL_CHECK_OPTION = 1, + CASCADED_CHECK_OPTION = 2, +} +export enum DiscardMode { + DISCARD_ALL = 0, + DISCARD_PLANS = 1, + DISCARD_SEQUENCES = 2, + DISCARD_TEMP = 3, +} +export enum ReindexObjectType { + REINDEX_OBJECT_INDEX = 0, + REINDEX_OBJECT_TABLE = 1, + REINDEX_OBJECT_SCHEMA = 2, + REINDEX_OBJECT_SYSTEM = 3, + REINDEX_OBJECT_DATABASE = 4, +} +export enum AlterTSConfigType { + ALTER_TSCONFIG_ADD_MAPPING = 0, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 1, + ALTER_TSCONFIG_REPLACE_DICT = 2, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 3, + ALTER_TSCONFIG_DROP_MAPPING = 4, +} +export enum PublicationObjSpecType { + PUBLICATIONOBJ_TABLE = 0, + PUBLICATIONOBJ_TABLES_IN_SCHEMA = 1, + PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 2, + PUBLICATIONOBJ_CONTINUATION = 3, +} +export enum AlterPublicationAction { + AP_AddObjects = 0, + AP_DropObjects = 1, + AP_SetObjects = 2, +} +export enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_OPTIONS = 0, + ALTER_SUBSCRIPTION_CONNECTION = 1, + ALTER_SUBSCRIPTION_SET_PUBLICATION = 2, + ALTER_SUBSCRIPTION_ADD_PUBLICATION = 3, + ALTER_SUBSCRIPTION_DROP_PUBLICATION = 4, + ALTER_SUBSCRIPTION_REFRESH = 5, + ALTER_SUBSCRIPTION_ENABLED = 6, + ALTER_SUBSCRIPTION_SKIP = 7, +} +export enum OnCommitAction { + ONCOMMIT_NOOP = 0, + ONCOMMIT_PRESERVE_ROWS = 1, + ONCOMMIT_DELETE_ROWS = 2, + ONCOMMIT_DROP = 3, +} +export enum ParamKind { + PARAM_EXTERN = 0, + PARAM_EXEC = 1, + PARAM_SUBLINK = 2, + PARAM_MULTIEXPR = 3, +} +export enum CoercionContext { + COERCION_IMPLICIT = 0, + COERCION_ASSIGNMENT = 1, + COERCION_PLPGSQL = 2, + COERCION_EXPLICIT = 3, +} +export enum CoercionForm { + COERCE_EXPLICIT_CALL = 0, + COERCE_EXPLICIT_CAST = 1, + COERCE_IMPLICIT_CAST = 2, + COERCE_SQL_SYNTAX = 3, +} +export enum BoolExprType { + AND_EXPR = 0, + OR_EXPR = 1, + NOT_EXPR = 2, +} +export enum SubLinkType { + EXISTS_SUBLINK = 0, + ALL_SUBLINK = 1, + ANY_SUBLINK = 2, + ROWCOMPARE_SUBLINK = 3, + EXPR_SUBLINK = 4, + MULTIEXPR_SUBLINK = 5, + ARRAY_SUBLINK = 6, + CTE_SUBLINK = 7, +} +export enum RowCompareType { + ROWCOMPARE_LT = 0, + ROWCOMPARE_LE = 1, + ROWCOMPARE_EQ = 2, + ROWCOMPARE_GE = 3, + ROWCOMPARE_GT = 4, + ROWCOMPARE_NE = 5, +} +export enum MinMaxOp { + IS_GREATEST = 0, + IS_LEAST = 1, +} +export enum SQLValueFunctionOp { + SVFOP_CURRENT_DATE = 0, + SVFOP_CURRENT_TIME = 1, + SVFOP_CURRENT_TIME_N = 2, + SVFOP_CURRENT_TIMESTAMP = 3, + SVFOP_CURRENT_TIMESTAMP_N = 4, + SVFOP_LOCALTIME = 5, + SVFOP_LOCALTIME_N = 6, + SVFOP_LOCALTIMESTAMP = 7, + SVFOP_LOCALTIMESTAMP_N = 8, + SVFOP_CURRENT_ROLE = 9, + SVFOP_CURRENT_USER = 10, + SVFOP_USER = 11, + SVFOP_SESSION_USER = 12, + SVFOP_CURRENT_CATALOG = 13, + SVFOP_CURRENT_SCHEMA = 14, +} +export enum XmlExprOp { + IS_XMLCONCAT = 0, + IS_XMLELEMENT = 1, + IS_XMLFOREST = 2, + IS_XMLPARSE = 3, + IS_XMLPI = 4, + IS_XMLROOT = 5, + IS_XMLSERIALIZE = 6, + IS_DOCUMENT = 7, +} +export enum XmlOptionType { + XMLOPTION_DOCUMENT = 0, + XMLOPTION_CONTENT = 1, +} +export enum NullTestType { + IS_NULL = 0, + IS_NOT_NULL = 1, +} +export enum BoolTestType { + IS_TRUE = 0, + IS_NOT_TRUE = 1, + IS_FALSE = 2, + IS_NOT_FALSE = 3, + IS_UNKNOWN = 4, + IS_NOT_UNKNOWN = 5, +} +export enum CmdType { + CMD_UNKNOWN = 0, + CMD_SELECT = 1, + CMD_UPDATE = 2, + CMD_INSERT = 3, + CMD_DELETE = 4, + CMD_MERGE = 5, + CMD_UTILITY = 6, + CMD_NOTHING = 7, +} +export enum JoinType { + JOIN_INNER = 0, + JOIN_LEFT = 1, + JOIN_FULL = 2, + JOIN_RIGHT = 3, + JOIN_SEMI = 4, + JOIN_ANTI = 5, + JOIN_UNIQUE_OUTER = 6, + JOIN_UNIQUE_INNER = 7, +} +export enum AggStrategy { + AGG_PLAIN = 0, + AGG_SORTED = 1, + AGG_HASHED = 2, + AGG_MIXED = 3, +} +export enum AggSplit { + AGGSPLIT_SIMPLE = 0, + AGGSPLIT_INITIAL_SERIAL = 1, + AGGSPLIT_FINAL_DESERIAL = 2, +} +export enum SetOpCmd { + SETOPCMD_INTERSECT = 0, + SETOPCMD_INTERSECT_ALL = 1, + SETOPCMD_EXCEPT = 2, + SETOPCMD_EXCEPT_ALL = 3, +} +export enum SetOpStrategy { + SETOP_SORTED = 0, + SETOP_HASHED = 1, +} +export enum OnConflictAction { + ONCONFLICT_NONE = 0, + ONCONFLICT_NOTHING = 1, + ONCONFLICT_UPDATE = 2, +} +export enum LimitOption { + LIMIT_OPTION_DEFAULT = 0, + LIMIT_OPTION_COUNT = 1, + LIMIT_OPTION_WITH_TIES = 2, +} +export enum LockClauseStrength { + LCS_NONE = 0, + LCS_FORKEYSHARE = 1, + LCS_FORSHARE = 2, + LCS_FORNOKEYUPDATE = 3, + LCS_FORUPDATE = 4, +} +export enum LockWaitPolicy { + LockWaitBlock = 0, + LockWaitSkip = 1, + LockWaitError = 2, +} +export enum LockTupleMode { + LockTupleKeyShare = 0, + LockTupleShare = 1, + LockTupleNoKeyExclusive = 2, + LockTupleExclusive = 3, +} +export enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, +} +export enum Token { + NUL = 0, + ASCII_36 = 36, + ASCII_37 = 37, + ASCII_40 = 40, + ASCII_41 = 41, + ASCII_42 = 42, + ASCII_43 = 43, + ASCII_44 = 44, + ASCII_45 = 45, + ASCII_46 = 46, + ASCII_47 = 47, + ASCII_58 = 58, + ASCII_59 = 59, + ASCII_60 = 60, + ASCII_61 = 61, + ASCII_62 = 62, + ASCII_63 = 63, + ASCII_91 = 91, + ASCII_92 = 92, + ASCII_93 = 93, + ASCII_94 = 94, + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + SQL_COMMENT = 275, + C_COMMENT = 276, + ABORT_P = 277, + ABSOLUTE_P = 278, + ACCESS = 279, + ACTION = 280, + ADD_P = 281, + ADMIN = 282, + AFTER = 283, + AGGREGATE = 284, + ALL = 285, + ALSO = 286, + ALTER = 287, + ALWAYS = 288, + ANALYSE = 289, + ANALYZE = 290, + AND = 291, + ANY = 292, + ARRAY = 293, + AS = 294, + ASC = 295, + ASENSITIVE = 296, + ASSERTION = 297, + ASSIGNMENT = 298, + ASYMMETRIC = 299, + ATOMIC = 300, + AT = 301, + ATTACH = 302, + ATTRIBUTE = 303, + AUTHORIZATION = 304, + BACKWARD = 305, + BEFORE = 306, + BEGIN_P = 307, + BETWEEN = 308, + BIGINT = 309, + BINARY = 310, + BIT = 311, + BOOLEAN_P = 312, + BOTH = 313, + BREADTH = 314, + BY = 315, + CACHE = 316, + CALL = 317, + CALLED = 318, + CASCADE = 319, + CASCADED = 320, + CASE = 321, + CAST = 322, + CATALOG_P = 323, + CHAIN = 324, + CHAR_P = 325, + CHARACTER = 326, + CHARACTERISTICS = 327, + CHECK = 328, + CHECKPOINT = 329, + CLASS = 330, + CLOSE = 331, + CLUSTER = 332, + COALESCE = 333, + COLLATE = 334, + COLLATION = 335, + COLUMN = 336, + COLUMNS = 337, + COMMENT = 338, + COMMENTS = 339, + COMMIT = 340, + COMMITTED = 341, + COMPRESSION = 342, + CONCURRENTLY = 343, + CONFIGURATION = 344, + CONFLICT = 345, + CONNECTION = 346, + CONSTRAINT = 347, + CONSTRAINTS = 348, + CONTENT_P = 349, + CONTINUE_P = 350, + CONVERSION_P = 351, + COPY = 352, + COST = 353, + CREATE = 354, + CROSS = 355, + CSV = 356, + CUBE = 357, + CURRENT_P = 358, + CURRENT_CATALOG = 359, + CURRENT_DATE = 360, + CURRENT_ROLE = 361, + CURRENT_SCHEMA = 362, + CURRENT_TIME = 363, + CURRENT_TIMESTAMP = 364, + CURRENT_USER = 365, + CURSOR = 366, + CYCLE = 367, + DATA_P = 368, + DATABASE = 369, + DAY_P = 370, + DEALLOCATE = 371, + DEC = 372, + DECIMAL_P = 373, + DECLARE = 374, + DEFAULT = 375, + DEFAULTS = 376, + DEFERRABLE = 377, + DEFERRED = 378, + DEFINER = 379, + DELETE_P = 380, + DELIMITER = 381, + DELIMITERS = 382, + DEPENDS = 383, + DEPTH = 384, + DESC = 385, + DETACH = 386, + DICTIONARY = 387, + DISABLE_P = 388, + DISCARD = 389, + DISTINCT = 390, + DO = 391, + DOCUMENT_P = 392, + DOMAIN_P = 393, + DOUBLE_P = 394, + DROP = 395, + EACH = 396, + ELSE = 397, + ENABLE_P = 398, + ENCODING = 399, + ENCRYPTED = 400, + END_P = 401, + ENUM_P = 402, + ESCAPE = 403, + EVENT = 404, + EXCEPT = 405, + EXCLUDE = 406, + EXCLUDING = 407, + EXCLUSIVE = 408, + EXECUTE = 409, + EXISTS = 410, + EXPLAIN = 411, + EXPRESSION = 412, + EXTENSION = 413, + EXTERNAL = 414, + EXTRACT = 415, + FALSE_P = 416, + FAMILY = 417, + FETCH = 418, + FILTER = 419, + FINALIZE = 420, + FIRST_P = 421, + FLOAT_P = 422, + FOLLOWING = 423, + FOR = 424, + FORCE = 425, + FOREIGN = 426, + FORWARD = 427, + FREEZE = 428, + FROM = 429, + FULL = 430, + FUNCTION = 431, + FUNCTIONS = 432, + GENERATED = 433, + GLOBAL = 434, + GRANT = 435, + GRANTED = 436, + GREATEST = 437, + GROUP_P = 438, + GROUPING = 439, + GROUPS = 440, + HANDLER = 441, + HAVING = 442, + HEADER_P = 443, + HOLD = 444, + HOUR_P = 445, + IDENTITY_P = 446, + IF_P = 447, + ILIKE = 448, + IMMEDIATE = 449, + IMMUTABLE = 450, + IMPLICIT_P = 451, + IMPORT_P = 452, + IN_P = 453, + INCLUDE = 454, + INCLUDING = 455, + INCREMENT = 456, + INDEX = 457, + INDEXES = 458, + INHERIT = 459, + INHERITS = 460, + INITIALLY = 461, + INLINE_P = 462, + INNER_P = 463, + INOUT = 464, + INPUT_P = 465, + INSENSITIVE = 466, + INSERT = 467, + INSTEAD = 468, + INT_P = 469, + INTEGER = 470, + INTERSECT = 471, + INTERVAL = 472, + INTO = 473, + INVOKER = 474, + IS = 475, + ISNULL = 476, + ISOLATION = 477, + JOIN = 478, + KEY = 479, + LABEL = 480, + LANGUAGE = 481, + LARGE_P = 482, + LAST_P = 483, + LATERAL_P = 484, + LEADING = 485, + LEAKPROOF = 486, + LEAST = 487, + LEFT = 488, + LEVEL = 489, + LIKE = 490, + LIMIT = 491, + LISTEN = 492, + LOAD = 493, + LOCAL = 494, + LOCALTIME = 495, + LOCALTIMESTAMP = 496, + LOCATION = 497, + LOCK_P = 498, + LOCKED = 499, + LOGGED = 500, + MAPPING = 501, + MATCH = 502, + MATCHED = 503, + MATERIALIZED = 504, + MAXVALUE = 505, + MERGE = 506, + METHOD = 507, + MINUTE_P = 508, + MINVALUE = 509, + MODE = 510, + MONTH_P = 511, + MOVE = 512, + NAME_P = 513, + NAMES = 514, + NATIONAL = 515, + NATURAL = 516, + NCHAR = 517, + NEW = 518, + NEXT = 519, + NFC = 520, + NFD = 521, + NFKC = 522, + NFKD = 523, + NO = 524, + NONE = 525, + NORMALIZE = 526, + NORMALIZED = 527, + NOT = 528, + NOTHING = 529, + NOTIFY = 530, + NOTNULL = 531, + NOWAIT = 532, + NULL_P = 533, + NULLIF = 534, + NULLS_P = 535, + NUMERIC = 536, + OBJECT_P = 537, + OF = 538, + OFF = 539, + OFFSET = 540, + OIDS = 541, + OLD = 542, + ON = 543, + ONLY = 544, + OPERATOR = 545, + OPTION = 546, + OPTIONS = 547, + OR = 548, + ORDER = 549, + ORDINALITY = 550, + OTHERS = 551, + OUT_P = 552, + OUTER_P = 553, + OVER = 554, + OVERLAPS = 555, + OVERLAY = 556, + OVERRIDING = 557, + OWNED = 558, + OWNER = 559, + PARALLEL = 560, + PARAMETER = 561, + PARSER = 562, + PARTIAL = 563, + PARTITION = 564, + PASSING = 565, + PASSWORD = 566, + PLACING = 567, + PLANS = 568, + POLICY = 569, + POSITION = 570, + PRECEDING = 571, + PRECISION = 572, + PRESERVE = 573, + PREPARE = 574, + PREPARED = 575, + PRIMARY = 576, + PRIOR = 577, + PRIVILEGES = 578, + PROCEDURAL = 579, + PROCEDURE = 580, + PROCEDURES = 581, + PROGRAM = 582, + PUBLICATION = 583, + QUOTE = 584, + RANGE = 585, + READ = 586, + REAL = 587, + REASSIGN = 588, + RECHECK = 589, + RECURSIVE = 590, + REF_P = 591, + REFERENCES = 592, + REFERENCING = 593, + REFRESH = 594, + REINDEX = 595, + RELATIVE_P = 596, + RELEASE = 597, + RENAME = 598, + REPEATABLE = 599, + REPLACE = 600, + REPLICA = 601, + RESET = 602, + RESTART = 603, + RESTRICT = 604, + RETURN = 605, + RETURNING = 606, + RETURNS = 607, + REVOKE = 608, + RIGHT = 609, + ROLE = 610, + ROLLBACK = 611, + ROLLUP = 612, + ROUTINE = 613, + ROUTINES = 614, + ROW = 615, + ROWS = 616, + RULE = 617, + SAVEPOINT = 618, + SCHEMA = 619, + SCHEMAS = 620, + SCROLL = 621, + SEARCH = 622, + SECOND_P = 623, + SECURITY = 624, + SELECT = 625, + SEQUENCE = 626, + SEQUENCES = 627, + SERIALIZABLE = 628, + SERVER = 629, + SESSION = 630, + SESSION_USER = 631, + SET = 632, + SETS = 633, + SETOF = 634, + SHARE = 635, + SHOW = 636, + SIMILAR = 637, + SIMPLE = 638, + SKIP = 639, + SMALLINT = 640, + SNAPSHOT = 641, + SOME = 642, + SQL_P = 643, + STABLE = 644, + STANDALONE_P = 645, + START = 646, + STATEMENT = 647, + STATISTICS = 648, + STDIN = 649, + STDOUT = 650, + STORAGE = 651, + STORED = 652, + STRICT_P = 653, + STRIP_P = 654, + SUBSCRIPTION = 655, + SUBSTRING = 656, + SUPPORT = 657, + SYMMETRIC = 658, + SYSID = 659, + SYSTEM_P = 660, + TABLE = 661, + TABLES = 662, + TABLESAMPLE = 663, + TABLESPACE = 664, + TEMP = 665, + TEMPLATE = 666, + TEMPORARY = 667, + TEXT_P = 668, + THEN = 669, + TIES = 670, + TIME = 671, + TIMESTAMP = 672, + TO = 673, + TRAILING = 674, + TRANSACTION = 675, + TRANSFORM = 676, + TREAT = 677, + TRIGGER = 678, + TRIM = 679, + TRUE_P = 680, + TRUNCATE = 681, + TRUSTED = 682, + TYPE_P = 683, + TYPES_P = 684, + UESCAPE = 685, + UNBOUNDED = 686, + UNCOMMITTED = 687, + UNENCRYPTED = 688, + UNION = 689, + UNIQUE = 690, + UNKNOWN = 691, + UNLISTEN = 692, + UNLOGGED = 693, + UNTIL = 694, + UPDATE = 695, + USER = 696, + USING = 697, + VACUUM = 698, + VALID = 699, + VALIDATE = 700, + VALIDATOR = 701, + VALUE_P = 702, + VALUES = 703, + VARCHAR = 704, + VARIADIC = 705, + VARYING = 706, + VERBOSE = 707, + VERSION_P = 708, + VIEW = 709, + VIEWS = 710, + VOLATILE = 711, + WHEN = 712, + WHERE = 713, + WHITESPACE_P = 714, + WINDOW = 715, + WITH = 716, + WITHIN = 717, + WITHOUT = 718, + WORK = 719, + WRAPPER = 720, + WRITE = 721, + XML_P = 722, + XMLATTRIBUTES = 723, + XMLCONCAT = 724, + XMLELEMENT = 725, + XMLEXISTS = 726, + XMLFOREST = 727, + XMLNAMESPACES = 728, + XMLPARSE = 729, + XMLPI = 730, + XMLROOT = 731, + XMLSERIALIZE = 732, + XMLTABLE = 733, + YEAR_P = 734, + YES_P = 735, + ZONE = 736, + NOT_LA = 737, + NULLS_LA = 738, + WITH_LA = 739, + MODE_TYPE_NAME = 740, + MODE_PLPGSQL_EXPR = 741, + MODE_PLPGSQL_ASSIGN1 = 742, + MODE_PLPGSQL_ASSIGN2 = 743, + MODE_PLPGSQL_ASSIGN3 = 744, + UMINUS = 745, +} \ No newline at end of file diff --git a/enums/15/tsconfig.esm.json b/enums/15/tsconfig.esm.json new file mode 100644 index 0000000..800d750 --- /dev/null +++ b/enums/15/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/esm", + "module": "es2022", + "rootDir": "src/", + "declaration": false + } +} diff --git a/enums/15/tsconfig.json b/enums/15/tsconfig.json new file mode 100644 index 0000000..1a9d569 --- /dev/null +++ b/enums/15/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src/" + }, + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] +} diff --git a/enums/16/README.md b/enums/16/README.md new file mode 100644 index 0000000..b354433 --- /dev/null +++ b/enums/16/README.md @@ -0,0 +1,92 @@ +# @pgsql/enums + +

+ +

+ +

+ + + + + + + +

+ +`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. + + +## Installation + +Install the package via npm: + +```bash +npm install @pgsql/enums +``` + +## Usage + +`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. + +Here are a few examples of how you can use these enums in your TypeScript projects: + +### Using Enum Values + +You can use the enums to work with specific PostgreSQL AST enum values: + +```ts +import { ConstrType, ObjectType } from '@pgsql/enums'; + +function createConstraint() { + return { + contype: ConstrType.CONSTR_PRIMARY + }; +} + +function getObjectType() { + return ObjectType.OBJECT_TABLE; +} +``` + +### Type-Safe Enum Operations + +Enums help ensure that you use correct PostgreSQL enum values: + +```ts +import { CmdType, JoinType } from '@pgsql/enums'; + +const command = { + cmdType: CmdType.CMD_SELECT, + joinType: JoinType.JOIN_INNER +}; + +console.log(command); +``` + +## Versions + +Our latest is built with PostgreSQL 17 enum definitions. + +| PG Major Version | libpg_query | npm dist-tag +|--------------------------|-------------|---------| +| 17 | 17-6.1.0 | [`pg17`](https://www.npmjs.com/package/@pgsql/enums/v/latest) +| 16 | 16-5.2.0 | [`pg16`](https://www.npmjs.com/package/@pgsql/enums/v/pg16) +| 15 | 15-4.2.4 | [`pg15`](https://www.npmjs.com/package/@pgsql/enums/v/pg15) +| 14 | 14-3.0.0 | [`pg14`](https://www.npmjs.com/package/@pgsql/enums/v/pg14) +| 13 | 13-2.2.0 | [`pg13`](https://www.npmjs.com/package/@pgsql/enums/v/pg13) + +## Related + +* [pgsql-parser](https://github.com/launchql/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration. +* [pgsql-deparser](https://github.com/launchql/pgsql-parser/tree/main/packages/deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`. +* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs. +* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs. +* [pg-proto-parser](https://github.com/launchql/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums. +* [libpg-query](https://github.com/launchql/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries. + +## Disclaimer + +AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. + +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file diff --git a/enums/16/jest.config.js b/enums/16/jest.config.js new file mode 100644 index 0000000..d186228 --- /dev/null +++ b/enums/16/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + transform: { + "^.+\.tsx?$": [ + "ts-jest", + { + babelConfig: false, + tsconfig: "tsconfig.json", + }, + ], + }, + transformIgnorePatterns: [`/node_modules/*`], + testRegex: "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + modulePathIgnorePatterns: ["dist/*"] +}; diff --git a/enums/16/package.json b/enums/16/package.json new file mode 100644 index 0000000..3e29758 --- /dev/null +++ b/enums/16/package.json @@ -0,0 +1,39 @@ +{ + "name": "@libpg-query/enums16", + "version": "16.5.3", + "author": "Dan Lynch ", + "description": "PostgreSQL AST enums from the real Postgres parser", + "main": "index.js", + "module": "esm/index.js", + "types": "index.d.ts", + "homepage": "https://github.com/launchql/libpg-query-node", + "license": "SEE LICENSE IN LICENSE", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/launchql/libpg-query-node" + }, + "bugs": { + "url": "https://github.com/launchql/libpg-query-node/issues" + }, + "x-publish": { + "publishName": "@pgsql/enums", + "distTag": "pg16" + }, + "scripts": { + "copy": "copyfiles -f ../../LICENSE README.md package.json dist", + "clean": "rimraf dist", + "build": "pnpm run clean && tsc && tsc -p tsconfig.esm.json && pnpm run copy", + "build:dev": "pnpm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && pnpm run copy", + "build:proto": "ts-node scripts/pg-proto-parser", + "prepare:enums": "node -e \"require('../../scripts/prepare-enums.js').preparePackageForPublish('.')\"", + "lint": "eslint . --fix" + }, + "keywords": [], + "devDependencies": { + "pg-proto-parser": "^1.28.2" + } +} diff --git a/enums/16/scripts/pg-proto-parser.ts b/enums/16/scripts/pg-proto-parser.ts new file mode 100644 index 0000000..5f35fd7 --- /dev/null +++ b/enums/16/scripts/pg-proto-parser.ts @@ -0,0 +1,17 @@ +import { PgProtoParser, PgProtoParserOptions } from 'pg-proto-parser'; +import { resolve, join } from 'path'; + +const inFile: string = join(__dirname, '../../../protos/16/pg_query.proto'); +const outDir: string = resolve(join(__dirname, '../src')); + +const options: PgProtoParserOptions = { + outDir, + enums: { + enabled: true, + enumsAsTypeUnion: false, + filename: 'index.ts' + } +}; +const parser = new PgProtoParser(inFile, options); + +parser.write(); \ No newline at end of file diff --git a/enums/16/src/index.ts b/enums/16/src/index.ts new file mode 100644 index 0000000..1eb472c --- /dev/null +++ b/enums/16/src/index.ts @@ -0,0 +1,1076 @@ +/** +* This file was automatically generated by pg-proto-parser@1.28.2. +* DO NOT MODIFY IT BY HAND. Instead, modify the source proto file, +* and run the pg-proto-parser generate command to regenerate this file. +*/ +export enum OverridingKind { + OVERRIDING_NOT_SET = 0, + OVERRIDING_USER_VALUE = 1, + OVERRIDING_SYSTEM_VALUE = 2, +} +export enum QuerySource { + QSRC_ORIGINAL = 0, + QSRC_PARSER = 1, + QSRC_INSTEAD_RULE = 2, + QSRC_QUAL_INSTEAD_RULE = 3, + QSRC_NON_INSTEAD_RULE = 4, +} +export enum SortByDir { + SORTBY_DEFAULT = 0, + SORTBY_ASC = 1, + SORTBY_DESC = 2, + SORTBY_USING = 3, +} +export enum SortByNulls { + SORTBY_NULLS_DEFAULT = 0, + SORTBY_NULLS_FIRST = 1, + SORTBY_NULLS_LAST = 2, +} +export enum SetQuantifier { + SET_QUANTIFIER_DEFAULT = 0, + SET_QUANTIFIER_ALL = 1, + SET_QUANTIFIER_DISTINCT = 2, +} +export enum A_Expr_Kind { + AEXPR_OP = 0, + AEXPR_OP_ANY = 1, + AEXPR_OP_ALL = 2, + AEXPR_DISTINCT = 3, + AEXPR_NOT_DISTINCT = 4, + AEXPR_NULLIF = 5, + AEXPR_IN = 6, + AEXPR_LIKE = 7, + AEXPR_ILIKE = 8, + AEXPR_SIMILAR = 9, + AEXPR_BETWEEN = 10, + AEXPR_NOT_BETWEEN = 11, + AEXPR_BETWEEN_SYM = 12, + AEXPR_NOT_BETWEEN_SYM = 13, +} +export enum RoleSpecType { + ROLESPEC_CSTRING = 0, + ROLESPEC_CURRENT_ROLE = 1, + ROLESPEC_CURRENT_USER = 2, + ROLESPEC_SESSION_USER = 3, + ROLESPEC_PUBLIC = 4, +} +export enum TableLikeOption { + CREATE_TABLE_LIKE_COMMENTS = 0, + CREATE_TABLE_LIKE_COMPRESSION = 1, + CREATE_TABLE_LIKE_CONSTRAINTS = 2, + CREATE_TABLE_LIKE_DEFAULTS = 3, + CREATE_TABLE_LIKE_GENERATED = 4, + CREATE_TABLE_LIKE_IDENTITY = 5, + CREATE_TABLE_LIKE_INDEXES = 6, + CREATE_TABLE_LIKE_STATISTICS = 7, + CREATE_TABLE_LIKE_STORAGE = 8, + CREATE_TABLE_LIKE_ALL = 9, +} +export enum DefElemAction { + DEFELEM_UNSPEC = 0, + DEFELEM_SET = 1, + DEFELEM_ADD = 2, + DEFELEM_DROP = 3, +} +export enum PartitionStrategy { + PARTITION_STRATEGY_LIST = 0, + PARTITION_STRATEGY_RANGE = 1, + PARTITION_STRATEGY_HASH = 2, +} +export enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_MINVALUE = 0, + PARTITION_RANGE_DATUM_VALUE = 1, + PARTITION_RANGE_DATUM_MAXVALUE = 2, +} +export enum RTEKind { + RTE_RELATION = 0, + RTE_SUBQUERY = 1, + RTE_JOIN = 2, + RTE_FUNCTION = 3, + RTE_TABLEFUNC = 4, + RTE_VALUES = 5, + RTE_CTE = 6, + RTE_NAMEDTUPLESTORE = 7, + RTE_RESULT = 8, +} +export enum WCOKind { + WCO_VIEW_CHECK = 0, + WCO_RLS_INSERT_CHECK = 1, + WCO_RLS_UPDATE_CHECK = 2, + WCO_RLS_CONFLICT_CHECK = 3, + WCO_RLS_MERGE_UPDATE_CHECK = 4, + WCO_RLS_MERGE_DELETE_CHECK = 5, +} +export enum GroupingSetKind { + GROUPING_SET_EMPTY = 0, + GROUPING_SET_SIMPLE = 1, + GROUPING_SET_ROLLUP = 2, + GROUPING_SET_CUBE = 3, + GROUPING_SET_SETS = 4, +} +export enum CTEMaterialize { + CTEMaterializeDefault = 0, + CTEMaterializeAlways = 1, + CTEMaterializeNever = 2, +} +export enum SetOperation { + SETOP_NONE = 0, + SETOP_UNION = 1, + SETOP_INTERSECT = 2, + SETOP_EXCEPT = 3, +} +export enum ObjectType { + OBJECT_ACCESS_METHOD = 0, + OBJECT_AGGREGATE = 1, + OBJECT_AMOP = 2, + OBJECT_AMPROC = 3, + OBJECT_ATTRIBUTE = 4, + OBJECT_CAST = 5, + OBJECT_COLUMN = 6, + OBJECT_COLLATION = 7, + OBJECT_CONVERSION = 8, + OBJECT_DATABASE = 9, + OBJECT_DEFAULT = 10, + OBJECT_DEFACL = 11, + OBJECT_DOMAIN = 12, + OBJECT_DOMCONSTRAINT = 13, + OBJECT_EVENT_TRIGGER = 14, + OBJECT_EXTENSION = 15, + OBJECT_FDW = 16, + OBJECT_FOREIGN_SERVER = 17, + OBJECT_FOREIGN_TABLE = 18, + OBJECT_FUNCTION = 19, + OBJECT_INDEX = 20, + OBJECT_LANGUAGE = 21, + OBJECT_LARGEOBJECT = 22, + OBJECT_MATVIEW = 23, + OBJECT_OPCLASS = 24, + OBJECT_OPERATOR = 25, + OBJECT_OPFAMILY = 26, + OBJECT_PARAMETER_ACL = 27, + OBJECT_POLICY = 28, + OBJECT_PROCEDURE = 29, + OBJECT_PUBLICATION = 30, + OBJECT_PUBLICATION_NAMESPACE = 31, + OBJECT_PUBLICATION_REL = 32, + OBJECT_ROLE = 33, + OBJECT_ROUTINE = 34, + OBJECT_RULE = 35, + OBJECT_SCHEMA = 36, + OBJECT_SEQUENCE = 37, + OBJECT_SUBSCRIPTION = 38, + OBJECT_STATISTIC_EXT = 39, + OBJECT_TABCONSTRAINT = 40, + OBJECT_TABLE = 41, + OBJECT_TABLESPACE = 42, + OBJECT_TRANSFORM = 43, + OBJECT_TRIGGER = 44, + OBJECT_TSCONFIGURATION = 45, + OBJECT_TSDICTIONARY = 46, + OBJECT_TSPARSER = 47, + OBJECT_TSTEMPLATE = 48, + OBJECT_TYPE = 49, + OBJECT_USER_MAPPING = 50, + OBJECT_VIEW = 51, +} +export enum DropBehavior { + DROP_RESTRICT = 0, + DROP_CASCADE = 1, +} +export enum AlterTableType { + AT_AddColumn = 0, + AT_AddColumnToView = 1, + AT_ColumnDefault = 2, + AT_CookedColumnDefault = 3, + AT_DropNotNull = 4, + AT_SetNotNull = 5, + AT_DropExpression = 6, + AT_CheckNotNull = 7, + AT_SetStatistics = 8, + AT_SetOptions = 9, + AT_ResetOptions = 10, + AT_SetStorage = 11, + AT_SetCompression = 12, + AT_DropColumn = 13, + AT_AddIndex = 14, + AT_ReAddIndex = 15, + AT_AddConstraint = 16, + AT_ReAddConstraint = 17, + AT_ReAddDomainConstraint = 18, + AT_AlterConstraint = 19, + AT_ValidateConstraint = 20, + AT_AddIndexConstraint = 21, + AT_DropConstraint = 22, + AT_ReAddComment = 23, + AT_AlterColumnType = 24, + AT_AlterColumnGenericOptions = 25, + AT_ChangeOwner = 26, + AT_ClusterOn = 27, + AT_DropCluster = 28, + AT_SetLogged = 29, + AT_SetUnLogged = 30, + AT_DropOids = 31, + AT_SetAccessMethod = 32, + AT_SetTableSpace = 33, + AT_SetRelOptions = 34, + AT_ResetRelOptions = 35, + AT_ReplaceRelOptions = 36, + AT_EnableTrig = 37, + AT_EnableAlwaysTrig = 38, + AT_EnableReplicaTrig = 39, + AT_DisableTrig = 40, + AT_EnableTrigAll = 41, + AT_DisableTrigAll = 42, + AT_EnableTrigUser = 43, + AT_DisableTrigUser = 44, + AT_EnableRule = 45, + AT_EnableAlwaysRule = 46, + AT_EnableReplicaRule = 47, + AT_DisableRule = 48, + AT_AddInherit = 49, + AT_DropInherit = 50, + AT_AddOf = 51, + AT_DropOf = 52, + AT_ReplicaIdentity = 53, + AT_EnableRowSecurity = 54, + AT_DisableRowSecurity = 55, + AT_ForceRowSecurity = 56, + AT_NoForceRowSecurity = 57, + AT_GenericOptions = 58, + AT_AttachPartition = 59, + AT_DetachPartition = 60, + AT_DetachPartitionFinalize = 61, + AT_AddIdentity = 62, + AT_SetIdentity = 63, + AT_DropIdentity = 64, + AT_ReAddStatistics = 65, +} +export enum GrantTargetType { + ACL_TARGET_OBJECT = 0, + ACL_TARGET_ALL_IN_SCHEMA = 1, + ACL_TARGET_DEFAULTS = 2, +} +export enum VariableSetKind { + VAR_SET_VALUE = 0, + VAR_SET_DEFAULT = 1, + VAR_SET_CURRENT = 2, + VAR_SET_MULTI = 3, + VAR_RESET = 4, + VAR_RESET_ALL = 5, +} +export enum ConstrType { + CONSTR_NULL = 0, + CONSTR_NOTNULL = 1, + CONSTR_DEFAULT = 2, + CONSTR_IDENTITY = 3, + CONSTR_GENERATED = 4, + CONSTR_CHECK = 5, + CONSTR_PRIMARY = 6, + CONSTR_UNIQUE = 7, + CONSTR_EXCLUSION = 8, + CONSTR_FOREIGN = 9, + CONSTR_ATTR_DEFERRABLE = 10, + CONSTR_ATTR_NOT_DEFERRABLE = 11, + CONSTR_ATTR_DEFERRED = 12, + CONSTR_ATTR_IMMEDIATE = 13, +} +export enum ImportForeignSchemaType { + FDW_IMPORT_SCHEMA_ALL = 0, + FDW_IMPORT_SCHEMA_LIMIT_TO = 1, + FDW_IMPORT_SCHEMA_EXCEPT = 2, +} +export enum RoleStmtType { + ROLESTMT_ROLE = 0, + ROLESTMT_USER = 1, + ROLESTMT_GROUP = 2, +} +export enum FetchDirection { + FETCH_FORWARD = 0, + FETCH_BACKWARD = 1, + FETCH_ABSOLUTE = 2, + FETCH_RELATIVE = 3, +} +export enum FunctionParameterMode { + FUNC_PARAM_IN = 0, + FUNC_PARAM_OUT = 1, + FUNC_PARAM_INOUT = 2, + FUNC_PARAM_VARIADIC = 3, + FUNC_PARAM_TABLE = 4, + FUNC_PARAM_DEFAULT = 5, +} +export enum TransactionStmtKind { + TRANS_STMT_BEGIN = 0, + TRANS_STMT_START = 1, + TRANS_STMT_COMMIT = 2, + TRANS_STMT_ROLLBACK = 3, + TRANS_STMT_SAVEPOINT = 4, + TRANS_STMT_RELEASE = 5, + TRANS_STMT_ROLLBACK_TO = 6, + TRANS_STMT_PREPARE = 7, + TRANS_STMT_COMMIT_PREPARED = 8, + TRANS_STMT_ROLLBACK_PREPARED = 9, +} +export enum ViewCheckOption { + NO_CHECK_OPTION = 0, + LOCAL_CHECK_OPTION = 1, + CASCADED_CHECK_OPTION = 2, +} +export enum DiscardMode { + DISCARD_ALL = 0, + DISCARD_PLANS = 1, + DISCARD_SEQUENCES = 2, + DISCARD_TEMP = 3, +} +export enum ReindexObjectType { + REINDEX_OBJECT_INDEX = 0, + REINDEX_OBJECT_TABLE = 1, + REINDEX_OBJECT_SCHEMA = 2, + REINDEX_OBJECT_SYSTEM = 3, + REINDEX_OBJECT_DATABASE = 4, +} +export enum AlterTSConfigType { + ALTER_TSCONFIG_ADD_MAPPING = 0, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 1, + ALTER_TSCONFIG_REPLACE_DICT = 2, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 3, + ALTER_TSCONFIG_DROP_MAPPING = 4, +} +export enum PublicationObjSpecType { + PUBLICATIONOBJ_TABLE = 0, + PUBLICATIONOBJ_TABLES_IN_SCHEMA = 1, + PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 2, + PUBLICATIONOBJ_CONTINUATION = 3, +} +export enum AlterPublicationAction { + AP_AddObjects = 0, + AP_DropObjects = 1, + AP_SetObjects = 2, +} +export enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_OPTIONS = 0, + ALTER_SUBSCRIPTION_CONNECTION = 1, + ALTER_SUBSCRIPTION_SET_PUBLICATION = 2, + ALTER_SUBSCRIPTION_ADD_PUBLICATION = 3, + ALTER_SUBSCRIPTION_DROP_PUBLICATION = 4, + ALTER_SUBSCRIPTION_REFRESH = 5, + ALTER_SUBSCRIPTION_ENABLED = 6, + ALTER_SUBSCRIPTION_SKIP = 7, +} +export enum OnCommitAction { + ONCOMMIT_NOOP = 0, + ONCOMMIT_PRESERVE_ROWS = 1, + ONCOMMIT_DELETE_ROWS = 2, + ONCOMMIT_DROP = 3, +} +export enum ParamKind { + PARAM_EXTERN = 0, + PARAM_EXEC = 1, + PARAM_SUBLINK = 2, + PARAM_MULTIEXPR = 3, +} +export enum CoercionContext { + COERCION_IMPLICIT = 0, + COERCION_ASSIGNMENT = 1, + COERCION_PLPGSQL = 2, + COERCION_EXPLICIT = 3, +} +export enum CoercionForm { + COERCE_EXPLICIT_CALL = 0, + COERCE_EXPLICIT_CAST = 1, + COERCE_IMPLICIT_CAST = 2, + COERCE_SQL_SYNTAX = 3, +} +export enum BoolExprType { + AND_EXPR = 0, + OR_EXPR = 1, + NOT_EXPR = 2, +} +export enum SubLinkType { + EXISTS_SUBLINK = 0, + ALL_SUBLINK = 1, + ANY_SUBLINK = 2, + ROWCOMPARE_SUBLINK = 3, + EXPR_SUBLINK = 4, + MULTIEXPR_SUBLINK = 5, + ARRAY_SUBLINK = 6, + CTE_SUBLINK = 7, +} +export enum RowCompareType { + ROWCOMPARE_LT = 0, + ROWCOMPARE_LE = 1, + ROWCOMPARE_EQ = 2, + ROWCOMPARE_GE = 3, + ROWCOMPARE_GT = 4, + ROWCOMPARE_NE = 5, +} +export enum MinMaxOp { + IS_GREATEST = 0, + IS_LEAST = 1, +} +export enum SQLValueFunctionOp { + SVFOP_CURRENT_DATE = 0, + SVFOP_CURRENT_TIME = 1, + SVFOP_CURRENT_TIME_N = 2, + SVFOP_CURRENT_TIMESTAMP = 3, + SVFOP_CURRENT_TIMESTAMP_N = 4, + SVFOP_LOCALTIME = 5, + SVFOP_LOCALTIME_N = 6, + SVFOP_LOCALTIMESTAMP = 7, + SVFOP_LOCALTIMESTAMP_N = 8, + SVFOP_CURRENT_ROLE = 9, + SVFOP_CURRENT_USER = 10, + SVFOP_USER = 11, + SVFOP_SESSION_USER = 12, + SVFOP_CURRENT_CATALOG = 13, + SVFOP_CURRENT_SCHEMA = 14, +} +export enum XmlExprOp { + IS_XMLCONCAT = 0, + IS_XMLELEMENT = 1, + IS_XMLFOREST = 2, + IS_XMLPARSE = 3, + IS_XMLPI = 4, + IS_XMLROOT = 5, + IS_XMLSERIALIZE = 6, + IS_DOCUMENT = 7, +} +export enum XmlOptionType { + XMLOPTION_DOCUMENT = 0, + XMLOPTION_CONTENT = 1, +} +export enum JsonEncoding { + JS_ENC_DEFAULT = 0, + JS_ENC_UTF8 = 1, + JS_ENC_UTF16 = 2, + JS_ENC_UTF32 = 3, +} +export enum JsonFormatType { + JS_FORMAT_DEFAULT = 0, + JS_FORMAT_JSON = 1, + JS_FORMAT_JSONB = 2, +} +export enum JsonConstructorType { + JSCTOR_JSON_OBJECT = 0, + JSCTOR_JSON_ARRAY = 1, + JSCTOR_JSON_OBJECTAGG = 2, + JSCTOR_JSON_ARRAYAGG = 3, +} +export enum JsonValueType { + JS_TYPE_ANY = 0, + JS_TYPE_OBJECT = 1, + JS_TYPE_ARRAY = 2, + JS_TYPE_SCALAR = 3, +} +export enum NullTestType { + IS_NULL = 0, + IS_NOT_NULL = 1, +} +export enum BoolTestType { + IS_TRUE = 0, + IS_NOT_TRUE = 1, + IS_FALSE = 2, + IS_NOT_FALSE = 3, + IS_UNKNOWN = 4, + IS_NOT_UNKNOWN = 5, +} +export enum CmdType { + CMD_UNKNOWN = 0, + CMD_SELECT = 1, + CMD_UPDATE = 2, + CMD_INSERT = 3, + CMD_DELETE = 4, + CMD_MERGE = 5, + CMD_UTILITY = 6, + CMD_NOTHING = 7, +} +export enum JoinType { + JOIN_INNER = 0, + JOIN_LEFT = 1, + JOIN_FULL = 2, + JOIN_RIGHT = 3, + JOIN_SEMI = 4, + JOIN_ANTI = 5, + JOIN_RIGHT_ANTI = 6, + JOIN_UNIQUE_OUTER = 7, + JOIN_UNIQUE_INNER = 8, +} +export enum AggStrategy { + AGG_PLAIN = 0, + AGG_SORTED = 1, + AGG_HASHED = 2, + AGG_MIXED = 3, +} +export enum AggSplit { + AGGSPLIT_SIMPLE = 0, + AGGSPLIT_INITIAL_SERIAL = 1, + AGGSPLIT_FINAL_DESERIAL = 2, +} +export enum SetOpCmd { + SETOPCMD_INTERSECT = 0, + SETOPCMD_INTERSECT_ALL = 1, + SETOPCMD_EXCEPT = 2, + SETOPCMD_EXCEPT_ALL = 3, +} +export enum SetOpStrategy { + SETOP_SORTED = 0, + SETOP_HASHED = 1, +} +export enum OnConflictAction { + ONCONFLICT_NONE = 0, + ONCONFLICT_NOTHING = 1, + ONCONFLICT_UPDATE = 2, +} +export enum LimitOption { + LIMIT_OPTION_DEFAULT = 0, + LIMIT_OPTION_COUNT = 1, + LIMIT_OPTION_WITH_TIES = 2, +} +export enum LockClauseStrength { + LCS_NONE = 0, + LCS_FORKEYSHARE = 1, + LCS_FORSHARE = 2, + LCS_FORNOKEYUPDATE = 3, + LCS_FORUPDATE = 4, +} +export enum LockWaitPolicy { + LockWaitBlock = 0, + LockWaitSkip = 1, + LockWaitError = 2, +} +export enum LockTupleMode { + LockTupleKeyShare = 0, + LockTupleShare = 1, + LockTupleNoKeyExclusive = 2, + LockTupleExclusive = 3, +} +export enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, +} +export enum Token { + NUL = 0, + ASCII_36 = 36, + ASCII_37 = 37, + ASCII_40 = 40, + ASCII_41 = 41, + ASCII_42 = 42, + ASCII_43 = 43, + ASCII_44 = 44, + ASCII_45 = 45, + ASCII_46 = 46, + ASCII_47 = 47, + ASCII_58 = 58, + ASCII_59 = 59, + ASCII_60 = 60, + ASCII_61 = 61, + ASCII_62 = 62, + ASCII_63 = 63, + ASCII_91 = 91, + ASCII_92 = 92, + ASCII_93 = 93, + ASCII_94 = 94, + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + SQL_COMMENT = 275, + C_COMMENT = 276, + ABORT_P = 277, + ABSENT = 278, + ABSOLUTE_P = 279, + ACCESS = 280, + ACTION = 281, + ADD_P = 282, + ADMIN = 283, + AFTER = 284, + AGGREGATE = 285, + ALL = 286, + ALSO = 287, + ALTER = 288, + ALWAYS = 289, + ANALYSE = 290, + ANALYZE = 291, + AND = 292, + ANY = 293, + ARRAY = 294, + AS = 295, + ASC = 296, + ASENSITIVE = 297, + ASSERTION = 298, + ASSIGNMENT = 299, + ASYMMETRIC = 300, + ATOMIC = 301, + AT = 302, + ATTACH = 303, + ATTRIBUTE = 304, + AUTHORIZATION = 305, + BACKWARD = 306, + BEFORE = 307, + BEGIN_P = 308, + BETWEEN = 309, + BIGINT = 310, + BINARY = 311, + BIT = 312, + BOOLEAN_P = 313, + BOTH = 314, + BREADTH = 315, + BY = 316, + CACHE = 317, + CALL = 318, + CALLED = 319, + CASCADE = 320, + CASCADED = 321, + CASE = 322, + CAST = 323, + CATALOG_P = 324, + CHAIN = 325, + CHAR_P = 326, + CHARACTER = 327, + CHARACTERISTICS = 328, + CHECK = 329, + CHECKPOINT = 330, + CLASS = 331, + CLOSE = 332, + CLUSTER = 333, + COALESCE = 334, + COLLATE = 335, + COLLATION = 336, + COLUMN = 337, + COLUMNS = 338, + COMMENT = 339, + COMMENTS = 340, + COMMIT = 341, + COMMITTED = 342, + COMPRESSION = 343, + CONCURRENTLY = 344, + CONFIGURATION = 345, + CONFLICT = 346, + CONNECTION = 347, + CONSTRAINT = 348, + CONSTRAINTS = 349, + CONTENT_P = 350, + CONTINUE_P = 351, + CONVERSION_P = 352, + COPY = 353, + COST = 354, + CREATE = 355, + CROSS = 356, + CSV = 357, + CUBE = 358, + CURRENT_P = 359, + CURRENT_CATALOG = 360, + CURRENT_DATE = 361, + CURRENT_ROLE = 362, + CURRENT_SCHEMA = 363, + CURRENT_TIME = 364, + CURRENT_TIMESTAMP = 365, + CURRENT_USER = 366, + CURSOR = 367, + CYCLE = 368, + DATA_P = 369, + DATABASE = 370, + DAY_P = 371, + DEALLOCATE = 372, + DEC = 373, + DECIMAL_P = 374, + DECLARE = 375, + DEFAULT = 376, + DEFAULTS = 377, + DEFERRABLE = 378, + DEFERRED = 379, + DEFINER = 380, + DELETE_P = 381, + DELIMITER = 382, + DELIMITERS = 383, + DEPENDS = 384, + DEPTH = 385, + DESC = 386, + DETACH = 387, + DICTIONARY = 388, + DISABLE_P = 389, + DISCARD = 390, + DISTINCT = 391, + DO = 392, + DOCUMENT_P = 393, + DOMAIN_P = 394, + DOUBLE_P = 395, + DROP = 396, + EACH = 397, + ELSE = 398, + ENABLE_P = 399, + ENCODING = 400, + ENCRYPTED = 401, + END_P = 402, + ENUM_P = 403, + ESCAPE = 404, + EVENT = 405, + EXCEPT = 406, + EXCLUDE = 407, + EXCLUDING = 408, + EXCLUSIVE = 409, + EXECUTE = 410, + EXISTS = 411, + EXPLAIN = 412, + EXPRESSION = 413, + EXTENSION = 414, + EXTERNAL = 415, + EXTRACT = 416, + FALSE_P = 417, + FAMILY = 418, + FETCH = 419, + FILTER = 420, + FINALIZE = 421, + FIRST_P = 422, + FLOAT_P = 423, + FOLLOWING = 424, + FOR = 425, + FORCE = 426, + FOREIGN = 427, + FORMAT = 428, + FORWARD = 429, + FREEZE = 430, + FROM = 431, + FULL = 432, + FUNCTION = 433, + FUNCTIONS = 434, + GENERATED = 435, + GLOBAL = 436, + GRANT = 437, + GRANTED = 438, + GREATEST = 439, + GROUP_P = 440, + GROUPING = 441, + GROUPS = 442, + HANDLER = 443, + HAVING = 444, + HEADER_P = 445, + HOLD = 446, + HOUR_P = 447, + IDENTITY_P = 448, + IF_P = 449, + ILIKE = 450, + IMMEDIATE = 451, + IMMUTABLE = 452, + IMPLICIT_P = 453, + IMPORT_P = 454, + IN_P = 455, + INCLUDE = 456, + INCLUDING = 457, + INCREMENT = 458, + INDENT = 459, + INDEX = 460, + INDEXES = 461, + INHERIT = 462, + INHERITS = 463, + INITIALLY = 464, + INLINE_P = 465, + INNER_P = 466, + INOUT = 467, + INPUT_P = 468, + INSENSITIVE = 469, + INSERT = 470, + INSTEAD = 471, + INT_P = 472, + INTEGER = 473, + INTERSECT = 474, + INTERVAL = 475, + INTO = 476, + INVOKER = 477, + IS = 478, + ISNULL = 479, + ISOLATION = 480, + JOIN = 481, + JSON = 482, + JSON_ARRAY = 483, + JSON_ARRAYAGG = 484, + JSON_OBJECT = 485, + JSON_OBJECTAGG = 486, + KEY = 487, + KEYS = 488, + LABEL = 489, + LANGUAGE = 490, + LARGE_P = 491, + LAST_P = 492, + LATERAL_P = 493, + LEADING = 494, + LEAKPROOF = 495, + LEAST = 496, + LEFT = 497, + LEVEL = 498, + LIKE = 499, + LIMIT = 500, + LISTEN = 501, + LOAD = 502, + LOCAL = 503, + LOCALTIME = 504, + LOCALTIMESTAMP = 505, + LOCATION = 506, + LOCK_P = 507, + LOCKED = 508, + LOGGED = 509, + MAPPING = 510, + MATCH = 511, + MATCHED = 512, + MATERIALIZED = 513, + MAXVALUE = 514, + MERGE = 515, + METHOD = 516, + MINUTE_P = 517, + MINVALUE = 518, + MODE = 519, + MONTH_P = 520, + MOVE = 521, + NAME_P = 522, + NAMES = 523, + NATIONAL = 524, + NATURAL = 525, + NCHAR = 526, + NEW = 527, + NEXT = 528, + NFC = 529, + NFD = 530, + NFKC = 531, + NFKD = 532, + NO = 533, + NONE = 534, + NORMALIZE = 535, + NORMALIZED = 536, + NOT = 537, + NOTHING = 538, + NOTIFY = 539, + NOTNULL = 540, + NOWAIT = 541, + NULL_P = 542, + NULLIF = 543, + NULLS_P = 544, + NUMERIC = 545, + OBJECT_P = 546, + OF = 547, + OFF = 548, + OFFSET = 549, + OIDS = 550, + OLD = 551, + ON = 552, + ONLY = 553, + OPERATOR = 554, + OPTION = 555, + OPTIONS = 556, + OR = 557, + ORDER = 558, + ORDINALITY = 559, + OTHERS = 560, + OUT_P = 561, + OUTER_P = 562, + OVER = 563, + OVERLAPS = 564, + OVERLAY = 565, + OVERRIDING = 566, + OWNED = 567, + OWNER = 568, + PARALLEL = 569, + PARAMETER = 570, + PARSER = 571, + PARTIAL = 572, + PARTITION = 573, + PASSING = 574, + PASSWORD = 575, + PLACING = 576, + PLANS = 577, + POLICY = 578, + POSITION = 579, + PRECEDING = 580, + PRECISION = 581, + PRESERVE = 582, + PREPARE = 583, + PREPARED = 584, + PRIMARY = 585, + PRIOR = 586, + PRIVILEGES = 587, + PROCEDURAL = 588, + PROCEDURE = 589, + PROCEDURES = 590, + PROGRAM = 591, + PUBLICATION = 592, + QUOTE = 593, + RANGE = 594, + READ = 595, + REAL = 596, + REASSIGN = 597, + RECHECK = 598, + RECURSIVE = 599, + REF_P = 600, + REFERENCES = 601, + REFERENCING = 602, + REFRESH = 603, + REINDEX = 604, + RELATIVE_P = 605, + RELEASE = 606, + RENAME = 607, + REPEATABLE = 608, + REPLACE = 609, + REPLICA = 610, + RESET = 611, + RESTART = 612, + RESTRICT = 613, + RETURN = 614, + RETURNING = 615, + RETURNS = 616, + REVOKE = 617, + RIGHT = 618, + ROLE = 619, + ROLLBACK = 620, + ROLLUP = 621, + ROUTINE = 622, + ROUTINES = 623, + ROW = 624, + ROWS = 625, + RULE = 626, + SAVEPOINT = 627, + SCALAR = 628, + SCHEMA = 629, + SCHEMAS = 630, + SCROLL = 631, + SEARCH = 632, + SECOND_P = 633, + SECURITY = 634, + SELECT = 635, + SEQUENCE = 636, + SEQUENCES = 637, + SERIALIZABLE = 638, + SERVER = 639, + SESSION = 640, + SESSION_USER = 641, + SET = 642, + SETS = 643, + SETOF = 644, + SHARE = 645, + SHOW = 646, + SIMILAR = 647, + SIMPLE = 648, + SKIP = 649, + SMALLINT = 650, + SNAPSHOT = 651, + SOME = 652, + SQL_P = 653, + STABLE = 654, + STANDALONE_P = 655, + START = 656, + STATEMENT = 657, + STATISTICS = 658, + STDIN = 659, + STDOUT = 660, + STORAGE = 661, + STORED = 662, + STRICT_P = 663, + STRIP_P = 664, + SUBSCRIPTION = 665, + SUBSTRING = 666, + SUPPORT = 667, + SYMMETRIC = 668, + SYSID = 669, + SYSTEM_P = 670, + SYSTEM_USER = 671, + TABLE = 672, + TABLES = 673, + TABLESAMPLE = 674, + TABLESPACE = 675, + TEMP = 676, + TEMPLATE = 677, + TEMPORARY = 678, + TEXT_P = 679, + THEN = 680, + TIES = 681, + TIME = 682, + TIMESTAMP = 683, + TO = 684, + TRAILING = 685, + TRANSACTION = 686, + TRANSFORM = 687, + TREAT = 688, + TRIGGER = 689, + TRIM = 690, + TRUE_P = 691, + TRUNCATE = 692, + TRUSTED = 693, + TYPE_P = 694, + TYPES_P = 695, + UESCAPE = 696, + UNBOUNDED = 697, + UNCOMMITTED = 698, + UNENCRYPTED = 699, + UNION = 700, + UNIQUE = 701, + UNKNOWN = 702, + UNLISTEN = 703, + UNLOGGED = 704, + UNTIL = 705, + UPDATE = 706, + USER = 707, + USING = 708, + VACUUM = 709, + VALID = 710, + VALIDATE = 711, + VALIDATOR = 712, + VALUE_P = 713, + VALUES = 714, + VARCHAR = 715, + VARIADIC = 716, + VARYING = 717, + VERBOSE = 718, + VERSION_P = 719, + VIEW = 720, + VIEWS = 721, + VOLATILE = 722, + WHEN = 723, + WHERE = 724, + WHITESPACE_P = 725, + WINDOW = 726, + WITH = 727, + WITHIN = 728, + WITHOUT = 729, + WORK = 730, + WRAPPER = 731, + WRITE = 732, + XML_P = 733, + XMLATTRIBUTES = 734, + XMLCONCAT = 735, + XMLELEMENT = 736, + XMLEXISTS = 737, + XMLFOREST = 738, + XMLNAMESPACES = 739, + XMLPARSE = 740, + XMLPI = 741, + XMLROOT = 742, + XMLSERIALIZE = 743, + XMLTABLE = 744, + YEAR_P = 745, + YES_P = 746, + ZONE = 747, + FORMAT_LA = 748, + NOT_LA = 749, + NULLS_LA = 750, + WITH_LA = 751, + WITHOUT_LA = 752, + MODE_TYPE_NAME = 753, + MODE_PLPGSQL_EXPR = 754, + MODE_PLPGSQL_ASSIGN1 = 755, + MODE_PLPGSQL_ASSIGN2 = 756, + MODE_PLPGSQL_ASSIGN3 = 757, + UMINUS = 758, +} \ No newline at end of file diff --git a/enums/16/tsconfig.esm.json b/enums/16/tsconfig.esm.json new file mode 100644 index 0000000..800d750 --- /dev/null +++ b/enums/16/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/esm", + "module": "es2022", + "rootDir": "src/", + "declaration": false + } +} diff --git a/enums/16/tsconfig.json b/enums/16/tsconfig.json new file mode 100644 index 0000000..1a9d569 --- /dev/null +++ b/enums/16/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src/" + }, + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] +} diff --git a/enums/17/README.md b/enums/17/README.md new file mode 100644 index 0000000..b354433 --- /dev/null +++ b/enums/17/README.md @@ -0,0 +1,92 @@ +# @pgsql/enums + +

+ +

+ +

+ + + + + + + +

+ +`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. + + +## Installation + +Install the package via npm: + +```bash +npm install @pgsql/enums +``` + +## Usage + +`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. + +Here are a few examples of how you can use these enums in your TypeScript projects: + +### Using Enum Values + +You can use the enums to work with specific PostgreSQL AST enum values: + +```ts +import { ConstrType, ObjectType } from '@pgsql/enums'; + +function createConstraint() { + return { + contype: ConstrType.CONSTR_PRIMARY + }; +} + +function getObjectType() { + return ObjectType.OBJECT_TABLE; +} +``` + +### Type-Safe Enum Operations + +Enums help ensure that you use correct PostgreSQL enum values: + +```ts +import { CmdType, JoinType } from '@pgsql/enums'; + +const command = { + cmdType: CmdType.CMD_SELECT, + joinType: JoinType.JOIN_INNER +}; + +console.log(command); +``` + +## Versions + +Our latest is built with PostgreSQL 17 enum definitions. + +| PG Major Version | libpg_query | npm dist-tag +|--------------------------|-------------|---------| +| 17 | 17-6.1.0 | [`pg17`](https://www.npmjs.com/package/@pgsql/enums/v/latest) +| 16 | 16-5.2.0 | [`pg16`](https://www.npmjs.com/package/@pgsql/enums/v/pg16) +| 15 | 15-4.2.4 | [`pg15`](https://www.npmjs.com/package/@pgsql/enums/v/pg15) +| 14 | 14-3.0.0 | [`pg14`](https://www.npmjs.com/package/@pgsql/enums/v/pg14) +| 13 | 13-2.2.0 | [`pg13`](https://www.npmjs.com/package/@pgsql/enums/v/pg13) + +## Related + +* [pgsql-parser](https://github.com/launchql/pgsql-parser): The real PostgreSQL parser for Node.js, providing symmetric parsing and deparsing of SQL statements with actual PostgreSQL parser integration. +* [pgsql-deparser](https://github.com/launchql/pgsql-parser/tree/main/packages/deparser): A streamlined tool designed for converting PostgreSQL ASTs back into SQL queries, focusing solely on deparser functionality to complement `pgsql-parser`. +* [@pgsql/types](https://github.com/launchql/pgsql-parser/tree/main/packages/types): Offers TypeScript type definitions for PostgreSQL AST nodes, facilitating type-safe construction, analysis, and manipulation of ASTs. +* [@pgsql/utils](https://github.com/launchql/pgsql-parser/tree/main/packages/utils): A comprehensive utility library for PostgreSQL, offering type-safe AST node creation and enum value conversions, simplifying the construction and manipulation of PostgreSQL ASTs. +* [pg-proto-parser](https://github.com/launchql/pg-proto-parser): A TypeScript tool that parses PostgreSQL Protocol Buffers definitions to generate TypeScript interfaces, utility functions, and JSON mappings for enums. +* [libpg-query](https://github.com/launchql/libpg-query-node): The real PostgreSQL parser exposed for Node.js, used primarily in `pgsql-parser` for parsing and deparsing SQL queries. + +## Disclaimer + +AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. + +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file diff --git a/enums/17/jest.config.js b/enums/17/jest.config.js new file mode 100644 index 0000000..dd240f0 --- /dev/null +++ b/enums/17/jest.config.js @@ -0,0 +1,18 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + transform: { + "^.+\\.tsx?$": [ + "ts-jest", + { + babelConfig: false, + tsconfig: "tsconfig.json", + }, + ], + }, + transformIgnorePatterns: [`/node_modules/*`], + testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + modulePathIgnorePatterns: ["dist/*"] +}; \ No newline at end of file diff --git a/enums/17/package.json b/enums/17/package.json new file mode 100644 index 0000000..1e29e22 --- /dev/null +++ b/enums/17/package.json @@ -0,0 +1,39 @@ +{ + "name": "@libpg-query/enums17", + "version": "17.5.3", + "author": "Dan Lynch ", + "description": "PostgreSQL AST enums from the real Postgres parser", + "main": "index.js", + "module": "esm/index.js", + "types": "index.d.ts", + "homepage": "https://github.com/launchql/libpg-query-node", + "license": "SEE LICENSE IN LICENSE", + "publishConfig": { + "access": "public", + "directory": "dist" + }, + "repository": { + "type": "git", + "url": "https://github.com/launchql/libpg-query-node" + }, + "bugs": { + "url": "https://github.com/launchql/libpg-query-node/issues" + }, + "x-publish": { + "publishName": "@pgsql/enums", + "distTag": "pg17" + }, + "scripts": { + "copy": "copyfiles -f ../../LICENSE README.md package.json dist", + "clean": "rimraf dist", + "build": "pnpm run clean && tsc && tsc -p tsconfig.esm.json && pnpm run copy", + "build:dev": "pnpm run clean && tsc --declarationMap && tsc -p tsconfig.esm.json && pnpm run copy", + "build:proto": "ts-node scripts/pg-proto-parser", + "prepare:enums": "node -e \"require('../../scripts/prepare-enums.js').preparePackageForPublish('.')\"", + "lint": "eslint . --fix" + }, + "keywords": [], + "devDependencies": { + "pg-proto-parser": "^1.28.2" + } +} \ No newline at end of file diff --git a/enums/17/scripts/pg-proto-parser.ts b/enums/17/scripts/pg-proto-parser.ts new file mode 100644 index 0000000..37bdb95 --- /dev/null +++ b/enums/17/scripts/pg-proto-parser.ts @@ -0,0 +1,17 @@ +import { PgProtoParser, PgProtoParserOptions } from 'pg-proto-parser'; +import { resolve, join } from 'path'; + +const inFile: string = join(__dirname, '../../../protos/17/pg_query.proto'); +const outDir: string = resolve(join(__dirname, '../src')); + +const options: PgProtoParserOptions = { + outDir, + enums: { + enabled: true, + enumsAsTypeUnion: false, + filename: 'index.ts' + } +}; +const parser = new PgProtoParser(inFile, options); + +parser.write(); \ No newline at end of file diff --git a/enums/17/src/index.ts b/enums/17/src/index.ts new file mode 100644 index 0000000..9a9e632 --- /dev/null +++ b/enums/17/src/index.ts @@ -0,0 +1,1144 @@ +/** +* This file was automatically generated by pg-proto-parser@1.28.2. +* DO NOT MODIFY IT BY HAND. Instead, modify the source proto file, +* and run the pg-proto-parser generate command to regenerate this file. +*/ +export enum QuerySource { + QSRC_ORIGINAL = 0, + QSRC_PARSER = 1, + QSRC_INSTEAD_RULE = 2, + QSRC_QUAL_INSTEAD_RULE = 3, + QSRC_NON_INSTEAD_RULE = 4, +} +export enum SortByDir { + SORTBY_DEFAULT = 0, + SORTBY_ASC = 1, + SORTBY_DESC = 2, + SORTBY_USING = 3, +} +export enum SortByNulls { + SORTBY_NULLS_DEFAULT = 0, + SORTBY_NULLS_FIRST = 1, + SORTBY_NULLS_LAST = 2, +} +export enum SetQuantifier { + SET_QUANTIFIER_DEFAULT = 0, + SET_QUANTIFIER_ALL = 1, + SET_QUANTIFIER_DISTINCT = 2, +} +export enum A_Expr_Kind { + AEXPR_OP = 0, + AEXPR_OP_ANY = 1, + AEXPR_OP_ALL = 2, + AEXPR_DISTINCT = 3, + AEXPR_NOT_DISTINCT = 4, + AEXPR_NULLIF = 5, + AEXPR_IN = 6, + AEXPR_LIKE = 7, + AEXPR_ILIKE = 8, + AEXPR_SIMILAR = 9, + AEXPR_BETWEEN = 10, + AEXPR_NOT_BETWEEN = 11, + AEXPR_BETWEEN_SYM = 12, + AEXPR_NOT_BETWEEN_SYM = 13, +} +export enum RoleSpecType { + ROLESPEC_CSTRING = 0, + ROLESPEC_CURRENT_ROLE = 1, + ROLESPEC_CURRENT_USER = 2, + ROLESPEC_SESSION_USER = 3, + ROLESPEC_PUBLIC = 4, +} +export enum TableLikeOption { + CREATE_TABLE_LIKE_COMMENTS = 0, + CREATE_TABLE_LIKE_COMPRESSION = 1, + CREATE_TABLE_LIKE_CONSTRAINTS = 2, + CREATE_TABLE_LIKE_DEFAULTS = 3, + CREATE_TABLE_LIKE_GENERATED = 4, + CREATE_TABLE_LIKE_IDENTITY = 5, + CREATE_TABLE_LIKE_INDEXES = 6, + CREATE_TABLE_LIKE_STATISTICS = 7, + CREATE_TABLE_LIKE_STORAGE = 8, + CREATE_TABLE_LIKE_ALL = 9, +} +export enum DefElemAction { + DEFELEM_UNSPEC = 0, + DEFELEM_SET = 1, + DEFELEM_ADD = 2, + DEFELEM_DROP = 3, +} +export enum PartitionStrategy { + PARTITION_STRATEGY_LIST = 0, + PARTITION_STRATEGY_RANGE = 1, + PARTITION_STRATEGY_HASH = 2, +} +export enum PartitionRangeDatumKind { + PARTITION_RANGE_DATUM_MINVALUE = 0, + PARTITION_RANGE_DATUM_VALUE = 1, + PARTITION_RANGE_DATUM_MAXVALUE = 2, +} +export enum RTEKind { + RTE_RELATION = 0, + RTE_SUBQUERY = 1, + RTE_JOIN = 2, + RTE_FUNCTION = 3, + RTE_TABLEFUNC = 4, + RTE_VALUES = 5, + RTE_CTE = 6, + RTE_NAMEDTUPLESTORE = 7, + RTE_RESULT = 8, +} +export enum WCOKind { + WCO_VIEW_CHECK = 0, + WCO_RLS_INSERT_CHECK = 1, + WCO_RLS_UPDATE_CHECK = 2, + WCO_RLS_CONFLICT_CHECK = 3, + WCO_RLS_MERGE_UPDATE_CHECK = 4, + WCO_RLS_MERGE_DELETE_CHECK = 5, +} +export enum GroupingSetKind { + GROUPING_SET_EMPTY = 0, + GROUPING_SET_SIMPLE = 1, + GROUPING_SET_ROLLUP = 2, + GROUPING_SET_CUBE = 3, + GROUPING_SET_SETS = 4, +} +export enum CTEMaterialize { + CTEMaterializeDefault = 0, + CTEMaterializeAlways = 1, + CTEMaterializeNever = 2, +} +export enum JsonQuotes { + JS_QUOTES_UNSPEC = 0, + JS_QUOTES_KEEP = 1, + JS_QUOTES_OMIT = 2, +} +export enum JsonTableColumnType { + JTC_FOR_ORDINALITY = 0, + JTC_REGULAR = 1, + JTC_EXISTS = 2, + JTC_FORMATTED = 3, + JTC_NESTED = 4, +} +export enum SetOperation { + SETOP_NONE = 0, + SETOP_UNION = 1, + SETOP_INTERSECT = 2, + SETOP_EXCEPT = 3, +} +export enum ObjectType { + OBJECT_ACCESS_METHOD = 0, + OBJECT_AGGREGATE = 1, + OBJECT_AMOP = 2, + OBJECT_AMPROC = 3, + OBJECT_ATTRIBUTE = 4, + OBJECT_CAST = 5, + OBJECT_COLUMN = 6, + OBJECT_COLLATION = 7, + OBJECT_CONVERSION = 8, + OBJECT_DATABASE = 9, + OBJECT_DEFAULT = 10, + OBJECT_DEFACL = 11, + OBJECT_DOMAIN = 12, + OBJECT_DOMCONSTRAINT = 13, + OBJECT_EVENT_TRIGGER = 14, + OBJECT_EXTENSION = 15, + OBJECT_FDW = 16, + OBJECT_FOREIGN_SERVER = 17, + OBJECT_FOREIGN_TABLE = 18, + OBJECT_FUNCTION = 19, + OBJECT_INDEX = 20, + OBJECT_LANGUAGE = 21, + OBJECT_LARGEOBJECT = 22, + OBJECT_MATVIEW = 23, + OBJECT_OPCLASS = 24, + OBJECT_OPERATOR = 25, + OBJECT_OPFAMILY = 26, + OBJECT_PARAMETER_ACL = 27, + OBJECT_POLICY = 28, + OBJECT_PROCEDURE = 29, + OBJECT_PUBLICATION = 30, + OBJECT_PUBLICATION_NAMESPACE = 31, + OBJECT_PUBLICATION_REL = 32, + OBJECT_ROLE = 33, + OBJECT_ROUTINE = 34, + OBJECT_RULE = 35, + OBJECT_SCHEMA = 36, + OBJECT_SEQUENCE = 37, + OBJECT_SUBSCRIPTION = 38, + OBJECT_STATISTIC_EXT = 39, + OBJECT_TABCONSTRAINT = 40, + OBJECT_TABLE = 41, + OBJECT_TABLESPACE = 42, + OBJECT_TRANSFORM = 43, + OBJECT_TRIGGER = 44, + OBJECT_TSCONFIGURATION = 45, + OBJECT_TSDICTIONARY = 46, + OBJECT_TSPARSER = 47, + OBJECT_TSTEMPLATE = 48, + OBJECT_TYPE = 49, + OBJECT_USER_MAPPING = 50, + OBJECT_VIEW = 51, +} +export enum DropBehavior { + DROP_RESTRICT = 0, + DROP_CASCADE = 1, +} +export enum AlterTableType { + AT_AddColumn = 0, + AT_AddColumnToView = 1, + AT_ColumnDefault = 2, + AT_CookedColumnDefault = 3, + AT_DropNotNull = 4, + AT_SetNotNull = 5, + AT_SetExpression = 6, + AT_DropExpression = 7, + AT_CheckNotNull = 8, + AT_SetStatistics = 9, + AT_SetOptions = 10, + AT_ResetOptions = 11, + AT_SetStorage = 12, + AT_SetCompression = 13, + AT_DropColumn = 14, + AT_AddIndex = 15, + AT_ReAddIndex = 16, + AT_AddConstraint = 17, + AT_ReAddConstraint = 18, + AT_ReAddDomainConstraint = 19, + AT_AlterConstraint = 20, + AT_ValidateConstraint = 21, + AT_AddIndexConstraint = 22, + AT_DropConstraint = 23, + AT_ReAddComment = 24, + AT_AlterColumnType = 25, + AT_AlterColumnGenericOptions = 26, + AT_ChangeOwner = 27, + AT_ClusterOn = 28, + AT_DropCluster = 29, + AT_SetLogged = 30, + AT_SetUnLogged = 31, + AT_DropOids = 32, + AT_SetAccessMethod = 33, + AT_SetTableSpace = 34, + AT_SetRelOptions = 35, + AT_ResetRelOptions = 36, + AT_ReplaceRelOptions = 37, + AT_EnableTrig = 38, + AT_EnableAlwaysTrig = 39, + AT_EnableReplicaTrig = 40, + AT_DisableTrig = 41, + AT_EnableTrigAll = 42, + AT_DisableTrigAll = 43, + AT_EnableTrigUser = 44, + AT_DisableTrigUser = 45, + AT_EnableRule = 46, + AT_EnableAlwaysRule = 47, + AT_EnableReplicaRule = 48, + AT_DisableRule = 49, + AT_AddInherit = 50, + AT_DropInherit = 51, + AT_AddOf = 52, + AT_DropOf = 53, + AT_ReplicaIdentity = 54, + AT_EnableRowSecurity = 55, + AT_DisableRowSecurity = 56, + AT_ForceRowSecurity = 57, + AT_NoForceRowSecurity = 58, + AT_GenericOptions = 59, + AT_AttachPartition = 60, + AT_DetachPartition = 61, + AT_DetachPartitionFinalize = 62, + AT_AddIdentity = 63, + AT_SetIdentity = 64, + AT_DropIdentity = 65, + AT_ReAddStatistics = 66, +} +export enum GrantTargetType { + ACL_TARGET_OBJECT = 0, + ACL_TARGET_ALL_IN_SCHEMA = 1, + ACL_TARGET_DEFAULTS = 2, +} +export enum VariableSetKind { + VAR_SET_VALUE = 0, + VAR_SET_DEFAULT = 1, + VAR_SET_CURRENT = 2, + VAR_SET_MULTI = 3, + VAR_RESET = 4, + VAR_RESET_ALL = 5, +} +export enum ConstrType { + CONSTR_NULL = 0, + CONSTR_NOTNULL = 1, + CONSTR_DEFAULT = 2, + CONSTR_IDENTITY = 3, + CONSTR_GENERATED = 4, + CONSTR_CHECK = 5, + CONSTR_PRIMARY = 6, + CONSTR_UNIQUE = 7, + CONSTR_EXCLUSION = 8, + CONSTR_FOREIGN = 9, + CONSTR_ATTR_DEFERRABLE = 10, + CONSTR_ATTR_NOT_DEFERRABLE = 11, + CONSTR_ATTR_DEFERRED = 12, + CONSTR_ATTR_IMMEDIATE = 13, +} +export enum ImportForeignSchemaType { + FDW_IMPORT_SCHEMA_ALL = 0, + FDW_IMPORT_SCHEMA_LIMIT_TO = 1, + FDW_IMPORT_SCHEMA_EXCEPT = 2, +} +export enum RoleStmtType { + ROLESTMT_ROLE = 0, + ROLESTMT_USER = 1, + ROLESTMT_GROUP = 2, +} +export enum FetchDirection { + FETCH_FORWARD = 0, + FETCH_BACKWARD = 1, + FETCH_ABSOLUTE = 2, + FETCH_RELATIVE = 3, +} +export enum FunctionParameterMode { + FUNC_PARAM_IN = 0, + FUNC_PARAM_OUT = 1, + FUNC_PARAM_INOUT = 2, + FUNC_PARAM_VARIADIC = 3, + FUNC_PARAM_TABLE = 4, + FUNC_PARAM_DEFAULT = 5, +} +export enum TransactionStmtKind { + TRANS_STMT_BEGIN = 0, + TRANS_STMT_START = 1, + TRANS_STMT_COMMIT = 2, + TRANS_STMT_ROLLBACK = 3, + TRANS_STMT_SAVEPOINT = 4, + TRANS_STMT_RELEASE = 5, + TRANS_STMT_ROLLBACK_TO = 6, + TRANS_STMT_PREPARE = 7, + TRANS_STMT_COMMIT_PREPARED = 8, + TRANS_STMT_ROLLBACK_PREPARED = 9, +} +export enum ViewCheckOption { + NO_CHECK_OPTION = 0, + LOCAL_CHECK_OPTION = 1, + CASCADED_CHECK_OPTION = 2, +} +export enum DiscardMode { + DISCARD_ALL = 0, + DISCARD_PLANS = 1, + DISCARD_SEQUENCES = 2, + DISCARD_TEMP = 3, +} +export enum ReindexObjectType { + REINDEX_OBJECT_INDEX = 0, + REINDEX_OBJECT_TABLE = 1, + REINDEX_OBJECT_SCHEMA = 2, + REINDEX_OBJECT_SYSTEM = 3, + REINDEX_OBJECT_DATABASE = 4, +} +export enum AlterTSConfigType { + ALTER_TSCONFIG_ADD_MAPPING = 0, + ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN = 1, + ALTER_TSCONFIG_REPLACE_DICT = 2, + ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN = 3, + ALTER_TSCONFIG_DROP_MAPPING = 4, +} +export enum PublicationObjSpecType { + PUBLICATIONOBJ_TABLE = 0, + PUBLICATIONOBJ_TABLES_IN_SCHEMA = 1, + PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA = 2, + PUBLICATIONOBJ_CONTINUATION = 3, +} +export enum AlterPublicationAction { + AP_AddObjects = 0, + AP_DropObjects = 1, + AP_SetObjects = 2, +} +export enum AlterSubscriptionType { + ALTER_SUBSCRIPTION_OPTIONS = 0, + ALTER_SUBSCRIPTION_CONNECTION = 1, + ALTER_SUBSCRIPTION_SET_PUBLICATION = 2, + ALTER_SUBSCRIPTION_ADD_PUBLICATION = 3, + ALTER_SUBSCRIPTION_DROP_PUBLICATION = 4, + ALTER_SUBSCRIPTION_REFRESH = 5, + ALTER_SUBSCRIPTION_ENABLED = 6, + ALTER_SUBSCRIPTION_SKIP = 7, +} +export enum OverridingKind { + OVERRIDING_NOT_SET = 0, + OVERRIDING_USER_VALUE = 1, + OVERRIDING_SYSTEM_VALUE = 2, +} +export enum OnCommitAction { + ONCOMMIT_NOOP = 0, + ONCOMMIT_PRESERVE_ROWS = 1, + ONCOMMIT_DELETE_ROWS = 2, + ONCOMMIT_DROP = 3, +} +export enum TableFuncType { + TFT_XMLTABLE = 0, + TFT_JSON_TABLE = 1, +} +export enum ParamKind { + PARAM_EXTERN = 0, + PARAM_EXEC = 1, + PARAM_SUBLINK = 2, + PARAM_MULTIEXPR = 3, +} +export enum CoercionContext { + COERCION_IMPLICIT = 0, + COERCION_ASSIGNMENT = 1, + COERCION_PLPGSQL = 2, + COERCION_EXPLICIT = 3, +} +export enum CoercionForm { + COERCE_EXPLICIT_CALL = 0, + COERCE_EXPLICIT_CAST = 1, + COERCE_IMPLICIT_CAST = 2, + COERCE_SQL_SYNTAX = 3, +} +export enum BoolExprType { + AND_EXPR = 0, + OR_EXPR = 1, + NOT_EXPR = 2, +} +export enum SubLinkType { + EXISTS_SUBLINK = 0, + ALL_SUBLINK = 1, + ANY_SUBLINK = 2, + ROWCOMPARE_SUBLINK = 3, + EXPR_SUBLINK = 4, + MULTIEXPR_SUBLINK = 5, + ARRAY_SUBLINK = 6, + CTE_SUBLINK = 7, +} +export enum RowCompareType { + ROWCOMPARE_LT = 0, + ROWCOMPARE_LE = 1, + ROWCOMPARE_EQ = 2, + ROWCOMPARE_GE = 3, + ROWCOMPARE_GT = 4, + ROWCOMPARE_NE = 5, +} +export enum MinMaxOp { + IS_GREATEST = 0, + IS_LEAST = 1, +} +export enum SQLValueFunctionOp { + SVFOP_CURRENT_DATE = 0, + SVFOP_CURRENT_TIME = 1, + SVFOP_CURRENT_TIME_N = 2, + SVFOP_CURRENT_TIMESTAMP = 3, + SVFOP_CURRENT_TIMESTAMP_N = 4, + SVFOP_LOCALTIME = 5, + SVFOP_LOCALTIME_N = 6, + SVFOP_LOCALTIMESTAMP = 7, + SVFOP_LOCALTIMESTAMP_N = 8, + SVFOP_CURRENT_ROLE = 9, + SVFOP_CURRENT_USER = 10, + SVFOP_USER = 11, + SVFOP_SESSION_USER = 12, + SVFOP_CURRENT_CATALOG = 13, + SVFOP_CURRENT_SCHEMA = 14, +} +export enum XmlExprOp { + IS_XMLCONCAT = 0, + IS_XMLELEMENT = 1, + IS_XMLFOREST = 2, + IS_XMLPARSE = 3, + IS_XMLPI = 4, + IS_XMLROOT = 5, + IS_XMLSERIALIZE = 6, + IS_DOCUMENT = 7, +} +export enum XmlOptionType { + XMLOPTION_DOCUMENT = 0, + XMLOPTION_CONTENT = 1, +} +export enum JsonEncoding { + JS_ENC_DEFAULT = 0, + JS_ENC_UTF8 = 1, + JS_ENC_UTF16 = 2, + JS_ENC_UTF32 = 3, +} +export enum JsonFormatType { + JS_FORMAT_DEFAULT = 0, + JS_FORMAT_JSON = 1, + JS_FORMAT_JSONB = 2, +} +export enum JsonConstructorType { + JSCTOR_JSON_OBJECT = 0, + JSCTOR_JSON_ARRAY = 1, + JSCTOR_JSON_OBJECTAGG = 2, + JSCTOR_JSON_ARRAYAGG = 3, + JSCTOR_JSON_PARSE = 4, + JSCTOR_JSON_SCALAR = 5, + JSCTOR_JSON_SERIALIZE = 6, +} +export enum JsonValueType { + JS_TYPE_ANY = 0, + JS_TYPE_OBJECT = 1, + JS_TYPE_ARRAY = 2, + JS_TYPE_SCALAR = 3, +} +export enum JsonWrapper { + JSW_UNSPEC = 0, + JSW_NONE = 1, + JSW_CONDITIONAL = 2, + JSW_UNCONDITIONAL = 3, +} +export enum JsonBehaviorType { + JSON_BEHAVIOR_NULL = 0, + JSON_BEHAVIOR_ERROR = 1, + JSON_BEHAVIOR_EMPTY = 2, + JSON_BEHAVIOR_TRUE = 3, + JSON_BEHAVIOR_FALSE = 4, + JSON_BEHAVIOR_UNKNOWN = 5, + JSON_BEHAVIOR_EMPTY_ARRAY = 6, + JSON_BEHAVIOR_EMPTY_OBJECT = 7, + JSON_BEHAVIOR_DEFAULT = 8, +} +export enum JsonExprOp { + JSON_EXISTS_OP = 0, + JSON_QUERY_OP = 1, + JSON_VALUE_OP = 2, + JSON_TABLE_OP = 3, +} +export enum NullTestType { + IS_NULL = 0, + IS_NOT_NULL = 1, +} +export enum BoolTestType { + IS_TRUE = 0, + IS_NOT_TRUE = 1, + IS_FALSE = 2, + IS_NOT_FALSE = 3, + IS_UNKNOWN = 4, + IS_NOT_UNKNOWN = 5, +} +export enum MergeMatchKind { + MERGE_WHEN_MATCHED = 0, + MERGE_WHEN_NOT_MATCHED_BY_SOURCE = 1, + MERGE_WHEN_NOT_MATCHED_BY_TARGET = 2, +} +export enum CmdType { + CMD_UNKNOWN = 0, + CMD_SELECT = 1, + CMD_UPDATE = 2, + CMD_INSERT = 3, + CMD_DELETE = 4, + CMD_MERGE = 5, + CMD_UTILITY = 6, + CMD_NOTHING = 7, +} +export enum JoinType { + JOIN_INNER = 0, + JOIN_LEFT = 1, + JOIN_FULL = 2, + JOIN_RIGHT = 3, + JOIN_SEMI = 4, + JOIN_ANTI = 5, + JOIN_RIGHT_ANTI = 6, + JOIN_UNIQUE_OUTER = 7, + JOIN_UNIQUE_INNER = 8, +} +export enum AggStrategy { + AGG_PLAIN = 0, + AGG_SORTED = 1, + AGG_HASHED = 2, + AGG_MIXED = 3, +} +export enum AggSplit { + AGGSPLIT_SIMPLE = 0, + AGGSPLIT_INITIAL_SERIAL = 1, + AGGSPLIT_FINAL_DESERIAL = 2, +} +export enum SetOpCmd { + SETOPCMD_INTERSECT = 0, + SETOPCMD_INTERSECT_ALL = 1, + SETOPCMD_EXCEPT = 2, + SETOPCMD_EXCEPT_ALL = 3, +} +export enum SetOpStrategy { + SETOP_SORTED = 0, + SETOP_HASHED = 1, +} +export enum OnConflictAction { + ONCONFLICT_NONE = 0, + ONCONFLICT_NOTHING = 1, + ONCONFLICT_UPDATE = 2, +} +export enum LimitOption { + LIMIT_OPTION_DEFAULT = 0, + LIMIT_OPTION_COUNT = 1, + LIMIT_OPTION_WITH_TIES = 2, +} +export enum LockClauseStrength { + LCS_NONE = 0, + LCS_FORKEYSHARE = 1, + LCS_FORSHARE = 2, + LCS_FORNOKEYUPDATE = 3, + LCS_FORUPDATE = 4, +} +export enum LockWaitPolicy { + LockWaitBlock = 0, + LockWaitSkip = 1, + LockWaitError = 2, +} +export enum LockTupleMode { + LockTupleKeyShare = 0, + LockTupleShare = 1, + LockTupleNoKeyExclusive = 2, + LockTupleExclusive = 3, +} +export enum KeywordKind { + NO_KEYWORD = 0, + UNRESERVED_KEYWORD = 1, + COL_NAME_KEYWORD = 2, + TYPE_FUNC_NAME_KEYWORD = 3, + RESERVED_KEYWORD = 4, +} +export enum Token { + NUL = 0, + ASCII_36 = 36, + ASCII_37 = 37, + ASCII_40 = 40, + ASCII_41 = 41, + ASCII_42 = 42, + ASCII_43 = 43, + ASCII_44 = 44, + ASCII_45 = 45, + ASCII_46 = 46, + ASCII_47 = 47, + ASCII_58 = 58, + ASCII_59 = 59, + ASCII_60 = 60, + ASCII_61 = 61, + ASCII_62 = 62, + ASCII_63 = 63, + ASCII_91 = 91, + ASCII_92 = 92, + ASCII_93 = 93, + ASCII_94 = 94, + IDENT = 258, + UIDENT = 259, + FCONST = 260, + SCONST = 261, + USCONST = 262, + BCONST = 263, + XCONST = 264, + Op = 265, + ICONST = 266, + PARAM = 267, + TYPECAST = 268, + DOT_DOT = 269, + COLON_EQUALS = 270, + EQUALS_GREATER = 271, + LESS_EQUALS = 272, + GREATER_EQUALS = 273, + NOT_EQUALS = 274, + SQL_COMMENT = 275, + C_COMMENT = 276, + ABORT_P = 277, + ABSENT = 278, + ABSOLUTE_P = 279, + ACCESS = 280, + ACTION = 281, + ADD_P = 282, + ADMIN = 283, + AFTER = 284, + AGGREGATE = 285, + ALL = 286, + ALSO = 287, + ALTER = 288, + ALWAYS = 289, + ANALYSE = 290, + ANALYZE = 291, + AND = 292, + ANY = 293, + ARRAY = 294, + AS = 295, + ASC = 296, + ASENSITIVE = 297, + ASSERTION = 298, + ASSIGNMENT = 299, + ASYMMETRIC = 300, + ATOMIC = 301, + AT = 302, + ATTACH = 303, + ATTRIBUTE = 304, + AUTHORIZATION = 305, + BACKWARD = 306, + BEFORE = 307, + BEGIN_P = 308, + BETWEEN = 309, + BIGINT = 310, + BINARY = 311, + BIT = 312, + BOOLEAN_P = 313, + BOTH = 314, + BREADTH = 315, + BY = 316, + CACHE = 317, + CALL = 318, + CALLED = 319, + CASCADE = 320, + CASCADED = 321, + CASE = 322, + CAST = 323, + CATALOG_P = 324, + CHAIN = 325, + CHAR_P = 326, + CHARACTER = 327, + CHARACTERISTICS = 328, + CHECK = 329, + CHECKPOINT = 330, + CLASS = 331, + CLOSE = 332, + CLUSTER = 333, + COALESCE = 334, + COLLATE = 335, + COLLATION = 336, + COLUMN = 337, + COLUMNS = 338, + COMMENT = 339, + COMMENTS = 340, + COMMIT = 341, + COMMITTED = 342, + COMPRESSION = 343, + CONCURRENTLY = 344, + CONDITIONAL = 345, + CONFIGURATION = 346, + CONFLICT = 347, + CONNECTION = 348, + CONSTRAINT = 349, + CONSTRAINTS = 350, + CONTENT_P = 351, + CONTINUE_P = 352, + CONVERSION_P = 353, + COPY = 354, + COST = 355, + CREATE = 356, + CROSS = 357, + CSV = 358, + CUBE = 359, + CURRENT_P = 360, + CURRENT_CATALOG = 361, + CURRENT_DATE = 362, + CURRENT_ROLE = 363, + CURRENT_SCHEMA = 364, + CURRENT_TIME = 365, + CURRENT_TIMESTAMP = 366, + CURRENT_USER = 367, + CURSOR = 368, + CYCLE = 369, + DATA_P = 370, + DATABASE = 371, + DAY_P = 372, + DEALLOCATE = 373, + DEC = 374, + DECIMAL_P = 375, + DECLARE = 376, + DEFAULT = 377, + DEFAULTS = 378, + DEFERRABLE = 379, + DEFERRED = 380, + DEFINER = 381, + DELETE_P = 382, + DELIMITER = 383, + DELIMITERS = 384, + DEPENDS = 385, + DEPTH = 386, + DESC = 387, + DETACH = 388, + DICTIONARY = 389, + DISABLE_P = 390, + DISCARD = 391, + DISTINCT = 392, + DO = 393, + DOCUMENT_P = 394, + DOMAIN_P = 395, + DOUBLE_P = 396, + DROP = 397, + EACH = 398, + ELSE = 399, + EMPTY_P = 400, + ENABLE_P = 401, + ENCODING = 402, + ENCRYPTED = 403, + END_P = 404, + ENUM_P = 405, + ERROR_P = 406, + ESCAPE = 407, + EVENT = 408, + EXCEPT = 409, + EXCLUDE = 410, + EXCLUDING = 411, + EXCLUSIVE = 412, + EXECUTE = 413, + EXISTS = 414, + EXPLAIN = 415, + EXPRESSION = 416, + EXTENSION = 417, + EXTERNAL = 418, + EXTRACT = 419, + FALSE_P = 420, + FAMILY = 421, + FETCH = 422, + FILTER = 423, + FINALIZE = 424, + FIRST_P = 425, + FLOAT_P = 426, + FOLLOWING = 427, + FOR = 428, + FORCE = 429, + FOREIGN = 430, + FORMAT = 431, + FORWARD = 432, + FREEZE = 433, + FROM = 434, + FULL = 435, + FUNCTION = 436, + FUNCTIONS = 437, + GENERATED = 438, + GLOBAL = 439, + GRANT = 440, + GRANTED = 441, + GREATEST = 442, + GROUP_P = 443, + GROUPING = 444, + GROUPS = 445, + HANDLER = 446, + HAVING = 447, + HEADER_P = 448, + HOLD = 449, + HOUR_P = 450, + IDENTITY_P = 451, + IF_P = 452, + ILIKE = 453, + IMMEDIATE = 454, + IMMUTABLE = 455, + IMPLICIT_P = 456, + IMPORT_P = 457, + IN_P = 458, + INCLUDE = 459, + INCLUDING = 460, + INCREMENT = 461, + INDENT = 462, + INDEX = 463, + INDEXES = 464, + INHERIT = 465, + INHERITS = 466, + INITIALLY = 467, + INLINE_P = 468, + INNER_P = 469, + INOUT = 470, + INPUT_P = 471, + INSENSITIVE = 472, + INSERT = 473, + INSTEAD = 474, + INT_P = 475, + INTEGER = 476, + INTERSECT = 477, + INTERVAL = 478, + INTO = 479, + INVOKER = 480, + IS = 481, + ISNULL = 482, + ISOLATION = 483, + JOIN = 484, + JSON = 485, + JSON_ARRAY = 486, + JSON_ARRAYAGG = 487, + JSON_EXISTS = 488, + JSON_OBJECT = 489, + JSON_OBJECTAGG = 490, + JSON_QUERY = 491, + JSON_SCALAR = 492, + JSON_SERIALIZE = 493, + JSON_TABLE = 494, + JSON_VALUE = 495, + KEEP = 496, + KEY = 497, + KEYS = 498, + LABEL = 499, + LANGUAGE = 500, + LARGE_P = 501, + LAST_P = 502, + LATERAL_P = 503, + LEADING = 504, + LEAKPROOF = 505, + LEAST = 506, + LEFT = 507, + LEVEL = 508, + LIKE = 509, + LIMIT = 510, + LISTEN = 511, + LOAD = 512, + LOCAL = 513, + LOCALTIME = 514, + LOCALTIMESTAMP = 515, + LOCATION = 516, + LOCK_P = 517, + LOCKED = 518, + LOGGED = 519, + MAPPING = 520, + MATCH = 521, + MATCHED = 522, + MATERIALIZED = 523, + MAXVALUE = 524, + MERGE = 525, + MERGE_ACTION = 526, + METHOD = 527, + MINUTE_P = 528, + MINVALUE = 529, + MODE = 530, + MONTH_P = 531, + MOVE = 532, + NAME_P = 533, + NAMES = 534, + NATIONAL = 535, + NATURAL = 536, + NCHAR = 537, + NESTED = 538, + NEW = 539, + NEXT = 540, + NFC = 541, + NFD = 542, + NFKC = 543, + NFKD = 544, + NO = 545, + NONE = 546, + NORMALIZE = 547, + NORMALIZED = 548, + NOT = 549, + NOTHING = 550, + NOTIFY = 551, + NOTNULL = 552, + NOWAIT = 553, + NULL_P = 554, + NULLIF = 555, + NULLS_P = 556, + NUMERIC = 557, + OBJECT_P = 558, + OF = 559, + OFF = 560, + OFFSET = 561, + OIDS = 562, + OLD = 563, + OMIT = 564, + ON = 565, + ONLY = 566, + OPERATOR = 567, + OPTION = 568, + OPTIONS = 569, + OR = 570, + ORDER = 571, + ORDINALITY = 572, + OTHERS = 573, + OUT_P = 574, + OUTER_P = 575, + OVER = 576, + OVERLAPS = 577, + OVERLAY = 578, + OVERRIDING = 579, + OWNED = 580, + OWNER = 581, + PARALLEL = 582, + PARAMETER = 583, + PARSER = 584, + PARTIAL = 585, + PARTITION = 586, + PASSING = 587, + PASSWORD = 588, + PATH = 589, + PLACING = 590, + PLAN = 591, + PLANS = 592, + POLICY = 593, + POSITION = 594, + PRECEDING = 595, + PRECISION = 596, + PRESERVE = 597, + PREPARE = 598, + PREPARED = 599, + PRIMARY = 600, + PRIOR = 601, + PRIVILEGES = 602, + PROCEDURAL = 603, + PROCEDURE = 604, + PROCEDURES = 605, + PROGRAM = 606, + PUBLICATION = 607, + QUOTE = 608, + QUOTES = 609, + RANGE = 610, + READ = 611, + REAL = 612, + REASSIGN = 613, + RECHECK = 614, + RECURSIVE = 615, + REF_P = 616, + REFERENCES = 617, + REFERENCING = 618, + REFRESH = 619, + REINDEX = 620, + RELATIVE_P = 621, + RELEASE = 622, + RENAME = 623, + REPEATABLE = 624, + REPLACE = 625, + REPLICA = 626, + RESET = 627, + RESTART = 628, + RESTRICT = 629, + RETURN = 630, + RETURNING = 631, + RETURNS = 632, + REVOKE = 633, + RIGHT = 634, + ROLE = 635, + ROLLBACK = 636, + ROLLUP = 637, + ROUTINE = 638, + ROUTINES = 639, + ROW = 640, + ROWS = 641, + RULE = 642, + SAVEPOINT = 643, + SCALAR = 644, + SCHEMA = 645, + SCHEMAS = 646, + SCROLL = 647, + SEARCH = 648, + SECOND_P = 649, + SECURITY = 650, + SELECT = 651, + SEQUENCE = 652, + SEQUENCES = 653, + SERIALIZABLE = 654, + SERVER = 655, + SESSION = 656, + SESSION_USER = 657, + SET = 658, + SETS = 659, + SETOF = 660, + SHARE = 661, + SHOW = 662, + SIMILAR = 663, + SIMPLE = 664, + SKIP = 665, + SMALLINT = 666, + SNAPSHOT = 667, + SOME = 668, + SOURCE = 669, + SQL_P = 670, + STABLE = 671, + STANDALONE_P = 672, + START = 673, + STATEMENT = 674, + STATISTICS = 675, + STDIN = 676, + STDOUT = 677, + STORAGE = 678, + STORED = 679, + STRICT_P = 680, + STRING_P = 681, + STRIP_P = 682, + SUBSCRIPTION = 683, + SUBSTRING = 684, + SUPPORT = 685, + SYMMETRIC = 686, + SYSID = 687, + SYSTEM_P = 688, + SYSTEM_USER = 689, + TABLE = 690, + TABLES = 691, + TABLESAMPLE = 692, + TABLESPACE = 693, + TARGET = 694, + TEMP = 695, + TEMPLATE = 696, + TEMPORARY = 697, + TEXT_P = 698, + THEN = 699, + TIES = 700, + TIME = 701, + TIMESTAMP = 702, + TO = 703, + TRAILING = 704, + TRANSACTION = 705, + TRANSFORM = 706, + TREAT = 707, + TRIGGER = 708, + TRIM = 709, + TRUE_P = 710, + TRUNCATE = 711, + TRUSTED = 712, + TYPE_P = 713, + TYPES_P = 714, + UESCAPE = 715, + UNBOUNDED = 716, + UNCONDITIONAL = 717, + UNCOMMITTED = 718, + UNENCRYPTED = 719, + UNION = 720, + UNIQUE = 721, + UNKNOWN = 722, + UNLISTEN = 723, + UNLOGGED = 724, + UNTIL = 725, + UPDATE = 726, + USER = 727, + USING = 728, + VACUUM = 729, + VALID = 730, + VALIDATE = 731, + VALIDATOR = 732, + VALUE_P = 733, + VALUES = 734, + VARCHAR = 735, + VARIADIC = 736, + VARYING = 737, + VERBOSE = 738, + VERSION_P = 739, + VIEW = 740, + VIEWS = 741, + VOLATILE = 742, + WHEN = 743, + WHERE = 744, + WHITESPACE_P = 745, + WINDOW = 746, + WITH = 747, + WITHIN = 748, + WITHOUT = 749, + WORK = 750, + WRAPPER = 751, + WRITE = 752, + XML_P = 753, + XMLATTRIBUTES = 754, + XMLCONCAT = 755, + XMLELEMENT = 756, + XMLEXISTS = 757, + XMLFOREST = 758, + XMLNAMESPACES = 759, + XMLPARSE = 760, + XMLPI = 761, + XMLROOT = 762, + XMLSERIALIZE = 763, + XMLTABLE = 764, + YEAR_P = 765, + YES_P = 766, + ZONE = 767, + FORMAT_LA = 768, + NOT_LA = 769, + NULLS_LA = 770, + WITH_LA = 771, + WITHOUT_LA = 772, + MODE_TYPE_NAME = 773, + MODE_PLPGSQL_EXPR = 774, + MODE_PLPGSQL_ASSIGN1 = 775, + MODE_PLPGSQL_ASSIGN2 = 776, + MODE_PLPGSQL_ASSIGN3 = 777, + UMINUS = 778, +} \ No newline at end of file diff --git a/enums/17/tsconfig.esm.json b/enums/17/tsconfig.esm.json new file mode 100644 index 0000000..819f8f0 --- /dev/null +++ b/enums/17/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "dist/esm", + "module": "es2022", + "rootDir": "src/", + "declaration": false + } +} \ No newline at end of file diff --git a/enums/17/tsconfig.json b/enums/17/tsconfig.json new file mode 100644 index 0000000..42cb86b --- /dev/null +++ b/enums/17/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src/" + }, + "include": ["src/**/*.ts"], + "exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"] +} \ No newline at end of file diff --git a/package.json b/package.json index 1df9fba..29ae1c5 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "analyze:sizes": "node scripts/analyze-sizes.js", "fetch:protos": "node scripts/fetch-protos.js", "build:types": "node scripts/build-types.js", - "prepare:types": "node scripts/prepare-types.js" + "prepare:types": "node scripts/prepare-types.js", + "build:enums": "node scripts/build-enums.js", + "prepare:enums": "node scripts/prepare-enums.js" }, "devDependencies": { "@types/node": "^20.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 138d01d..76d3247 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,6 +27,41 @@ importers: specifier: ^5.3.3 version: 5.8.3 + enums/13: + devDependencies: + pg-proto-parser: + specifier: ^1.28.2 + version: 1.28.2 + publishDirectory: dist + + enums/14: + devDependencies: + pg-proto-parser: + specifier: ^1.28.2 + version: 1.28.2 + publishDirectory: dist + + enums/15: + devDependencies: + pg-proto-parser: + specifier: ^1.28.2 + version: 1.28.2 + publishDirectory: dist + + enums/16: + devDependencies: + pg-proto-parser: + specifier: ^1.28.2 + version: 1.28.2 + publishDirectory: dist + + enums/17: + devDependencies: + pg-proto-parser: + specifier: ^1.28.2 + version: 1.28.2 + publishDirectory: dist + full: dependencies: '@launchql/protobufjs': @@ -197,7 +232,7 @@ packages: '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.27.5 - '@babel/types': 7.24.0 + '@babel/types': 7.27.6 debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ec37585..8b0debb 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,4 +9,9 @@ packages: - 'types/16' - 'types/15' - 'types/14' - - 'types/13' \ No newline at end of file + - 'types/13' + - 'enums/17' + - 'enums/16' + - 'enums/15' + - 'enums/14' + - 'enums/13' \ No newline at end of file diff --git a/scripts/build-enums.js b/scripts/build-enums.js new file mode 100755 index 0000000..fbb21a9 --- /dev/null +++ b/scripts/build-enums.js @@ -0,0 +1,96 @@ +#!/usr/bin/env node + +const { execSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +// Get all enums directories +function getEnumsDirectories() { + const enumsDir = path.join(__dirname, '..', 'enums'); + if (!fs.existsSync(enumsDir)) { + console.log('No enums directory found'); + return []; + } + + return fs.readdirSync(enumsDir) + .filter(dir => { + const fullPath = path.join(enumsDir, dir); + return fs.statSync(fullPath).isDirectory(); + }) + .sort(); +} + +// Build a single enums package +function buildEnumsPackage(version) { + const packagePath = path.join(__dirname, '..', 'enums', version); + const packageJsonPath = path.join(packagePath, 'package.json'); + + if (!fs.existsSync(packageJsonPath)) { + console.log(`āš ļø Skipping enums/${version} - no package.json found`); + return false; + } + + console.log(`šŸ”Ø Building enums/${version}...`); + + try { + // First run build:proto to generate enums from protobuf + console.log(` šŸ“‹ Running build:proto for enums/${version}...`); + execSync('pnpm run build:proto', { + cwd: packagePath, + stdio: 'inherit' + }); + + // Then run the main build command + console.log(` šŸ—ļø Running build for enums/${version}...`); + execSync('pnpm run build', { + cwd: packagePath, + stdio: 'inherit' + }); + + console.log(`āœ… Successfully built enums/${version}\n`); + return true; + } catch (error) { + console.error(`āŒ Failed to build enums/${version}: ${error.message}\n`); + return false; + } +} + +// Main function +function buildAllEnums() { + const enumsDirectories = getEnumsDirectories(); + + if (enumsDirectories.length === 0) { + console.log('No enums packages found to build'); + return; + } + + console.log(`Found ${enumsDirectories.length} enums packages: ${enumsDirectories.join(', ')}\n`); + + let successful = 0; + let failed = 0; + + for (const version of enumsDirectories) { + if (buildEnumsPackage(version)) { + successful++; + } else { + failed++; + } + } + + console.log('='.repeat(50)); + console.log(`Build Summary:`); + console.log(`āœ… Successful: ${successful}`); + console.log(`āŒ Failed: ${failed}`); + console.log(`šŸ“¦ Total packages: ${enumsDirectories.length}`); + + if (failed > 0) { + process.exit(1); + } +} + +// Run the script +if (require.main === module) { + buildAllEnums(); +} + +module.exports = { buildAllEnums, buildEnumsPackage, getEnumsDirectories }; \ No newline at end of file diff --git a/scripts/prepare-enums.js b/scripts/prepare-enums.js new file mode 100755 index 0000000..5835c1b --- /dev/null +++ b/scripts/prepare-enums.js @@ -0,0 +1,108 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); + +/** + * Script to prepare enums packages for publishing by modifying their dist/package.json + * to use the correct publishing name and dist-tag from x-publish metadata + */ + +function preparePackageForPublish(packageDir) { + const packageJsonPath = path.join(packageDir, 'package.json'); + const distPackageJsonPath = path.join(packageDir, 'dist', 'package.json'); + + if (!fs.existsSync(packageJsonPath)) { + console.error(`āŒ Package.json not found: ${packageJsonPath}`); + return false; + } + + if (!fs.existsSync(distPackageJsonPath)) { + console.error(`āŒ Dist package.json not found: ${distPackageJsonPath}`); + return false; + } + + try { + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); + const distPackageJson = JSON.parse(fs.readFileSync(distPackageJsonPath, 'utf8')); + + if (!packageJson['x-publish']) { + console.error(`āŒ No x-publish metadata found in ${packageDir}`); + return false; + } + + const { publishName, distTag } = packageJson['x-publish']; + + if (!publishName) { + console.error(`āŒ No publishName found in x-publish metadata for ${packageDir}`); + return false; + } + + // Modify the dist package.json + distPackageJson.name = publishName; + + // Add dist-tag to publishConfig if specified + if (distTag) { + if (!distPackageJson.publishConfig) { + distPackageJson.publishConfig = {}; + } + distPackageJson.publishConfig.tag = distTag; + } + + // Remove x-publish metadata from the dist version + delete distPackageJson['x-publish']; + + // Write the modified package.json back to dist + fs.writeFileSync(distPackageJsonPath, JSON.stringify(distPackageJson, null, 2) + '\n'); + + console.log(`āœ… Prepared ${packageDir} for publishing as ${publishName}${distTag ? ` with tag ${distTag}` : ''}`); + return true; + + } catch (error) { + console.error(`āŒ Error preparing ${packageDir}: ${error.message}`); + return false; + } +} + +function main() { + const enumsDir = path.join(__dirname, '..', 'enums'); + + if (!fs.existsSync(enumsDir)) { + console.error('āŒ Enums directory not found'); + process.exit(1); + } + + const enumsPackages = fs.readdirSync(enumsDir) + .filter(dir => fs.statSync(path.join(enumsDir, dir)).isDirectory()) + .sort(); + + console.log(`šŸ“¦ Found ${enumsPackages.length} enums packages: ${enumsPackages.join(', ')}\n`); + + let successCount = 0; + + for (const packageName of enumsPackages) { + const packagePath = path.join(enumsDir, packageName); + console.log(`šŸ”§ Preparing enums/${packageName}...`); + + if (preparePackageForPublish(packagePath)) { + successCount++; + } + console.log(''); + } + + console.log('=================================================='); + console.log(`Prepare Summary:`); + console.log(`āœ… Successful: ${successCount}`); + console.log(`āŒ Failed: ${enumsPackages.length - successCount}`); + console.log(`šŸ“¦ Total packages: ${enumsPackages.length}`); + + if (successCount < enumsPackages.length) { + process.exit(1); + } +} + +if (require.main === module) { + main(); +} + +module.exports = { preparePackageForPublish }; \ No newline at end of file From bf506e78a203df217303c6bddda2e3dbd7ed4a00 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:24:37 -0700 Subject: [PATCH 02/14] readme --- enums/13/README.md | 46 ++++++++++++++-------------------------------- enums/14/README.md | 46 ++++++++++++++-------------------------------- enums/15/README.md | 46 ++++++++++++++-------------------------------- enums/16/README.md | 46 ++++++++++++++-------------------------------- enums/17/README.md | 42 ++++++++++++------------------------------ 5 files changed, 68 insertions(+), 158 deletions(-) diff --git a/enums/13/README.md b/enums/13/README.md index b354433..671df41 100644 --- a/enums/13/README.md +++ b/enums/13/README.md @@ -11,7 +11,7 @@ - +

`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. @@ -27,41 +27,23 @@ npm install @pgsql/enums ## Usage -`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. - -Here are a few examples of how you can use these enums in your TypeScript projects: - -### Using Enum Values - -You can use the enums to work with specific PostgreSQL AST enum values: +Here's a simple example showing how to work with enums, converting between enum names and their numeric values: ```ts -import { ConstrType, ObjectType } from '@pgsql/enums'; - -function createConstraint() { - return { - contype: ConstrType.CONSTR_PRIMARY - }; -} - -function getObjectType() { - return ObjectType.OBJECT_TABLE; -} -``` - -### Type-Safe Enum Operations +import { ObjectType } from '@pgsql/enums'; -Enums help ensure that you use correct PostgreSQL enum values: +// Get the numeric value of an enum +const tableValue = ObjectType.OBJECT_TABLE; +console.log(tableValue); // 41 -```ts -import { CmdType, JoinType } from '@pgsql/enums'; - -const command = { - cmdType: CmdType.CMD_SELECT, - joinType: JoinType.JOIN_INNER -}; +// Convert from value back to enum name +const enumName = ObjectType[41]; +console.log(enumName); // "OBJECT_TABLE" -console.log(command); +// Use in comparisons +if (someNode.objectType === ObjectType.OBJECT_TABLE) { + console.log("This is a table object"); +} ``` ## Versions @@ -89,4 +71,4 @@ Our latest is built with PostgreSQL 17 enum definitions. AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. -No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. diff --git a/enums/14/README.md b/enums/14/README.md index b354433..ced136d 100644 --- a/enums/14/README.md +++ b/enums/14/README.md @@ -11,7 +11,7 @@ - +

`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. @@ -27,41 +27,23 @@ npm install @pgsql/enums ## Usage -`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. - -Here are a few examples of how you can use these enums in your TypeScript projects: - -### Using Enum Values - -You can use the enums to work with specific PostgreSQL AST enum values: +Here's a simple example showing how to work with enums, converting between enum names and their numeric values: ```ts -import { ConstrType, ObjectType } from '@pgsql/enums'; - -function createConstraint() { - return { - contype: ConstrType.CONSTR_PRIMARY - }; -} - -function getObjectType() { - return ObjectType.OBJECT_TABLE; -} -``` - -### Type-Safe Enum Operations +import { ObjectType } from '@pgsql/enums'; -Enums help ensure that you use correct PostgreSQL enum values: +// Get the numeric value of an enum +const tableValue = ObjectType.OBJECT_TABLE; +console.log(tableValue); // 41 -```ts -import { CmdType, JoinType } from '@pgsql/enums'; - -const command = { - cmdType: CmdType.CMD_SELECT, - joinType: JoinType.JOIN_INNER -}; +// Convert from value back to enum name +const enumName = ObjectType[41]; +console.log(enumName); // "OBJECT_TABLE" -console.log(command); +// Use in comparisons +if (someNode.objectType === ObjectType.OBJECT_TABLE) { + console.log("This is a table object"); +} ``` ## Versions @@ -89,4 +71,4 @@ Our latest is built with PostgreSQL 17 enum definitions. AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. -No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. diff --git a/enums/15/README.md b/enums/15/README.md index b354433..ffb0705 100644 --- a/enums/15/README.md +++ b/enums/15/README.md @@ -11,7 +11,7 @@ - +

`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. @@ -27,41 +27,23 @@ npm install @pgsql/enums ## Usage -`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. - -Here are a few examples of how you can use these enums in your TypeScript projects: - -### Using Enum Values - -You can use the enums to work with specific PostgreSQL AST enum values: +Here's a simple example showing how to work with enums, converting between enum names and their numeric values: ```ts -import { ConstrType, ObjectType } from '@pgsql/enums'; - -function createConstraint() { - return { - contype: ConstrType.CONSTR_PRIMARY - }; -} - -function getObjectType() { - return ObjectType.OBJECT_TABLE; -} -``` - -### Type-Safe Enum Operations +import { ObjectType } from '@pgsql/enums'; -Enums help ensure that you use correct PostgreSQL enum values: +// Get the numeric value of an enum +const tableValue = ObjectType.OBJECT_TABLE; +console.log(tableValue); // 41 -```ts -import { CmdType, JoinType } from '@pgsql/enums'; - -const command = { - cmdType: CmdType.CMD_SELECT, - joinType: JoinType.JOIN_INNER -}; +// Convert from value back to enum name +const enumName = ObjectType[41]; +console.log(enumName); // "OBJECT_TABLE" -console.log(command); +// Use in comparisons +if (someNode.objectType === ObjectType.OBJECT_TABLE) { + console.log("This is a table object"); +} ``` ## Versions @@ -89,4 +71,4 @@ Our latest is built with PostgreSQL 17 enum definitions. AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. -No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. diff --git a/enums/16/README.md b/enums/16/README.md index b354433..6d0945f 100644 --- a/enums/16/README.md +++ b/enums/16/README.md @@ -11,7 +11,7 @@ - +

`@pgsql/enums` is a TypeScript library providing enum definitions for PostgreSQL AST nodes, primarily used in conjunction with [`pgsql-parser`](https://github.com/launchql/pgsql-parser). It offers a comprehensive and type-safe way to work with PostgreSQL enum values in query parsing and AST manipulation. @@ -27,41 +27,23 @@ npm install @pgsql/enums ## Usage -`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. - -Here are a few examples of how you can use these enums in your TypeScript projects: - -### Using Enum Values - -You can use the enums to work with specific PostgreSQL AST enum values: +Here's a simple example showing how to work with enums, converting between enum names and their numeric values: ```ts -import { ConstrType, ObjectType } from '@pgsql/enums'; - -function createConstraint() { - return { - contype: ConstrType.CONSTR_PRIMARY - }; -} - -function getObjectType() { - return ObjectType.OBJECT_TABLE; -} -``` - -### Type-Safe Enum Operations +import { ObjectType } from '@pgsql/enums'; -Enums help ensure that you use correct PostgreSQL enum values: +// Get the numeric value of an enum +const tableValue = ObjectType.OBJECT_TABLE; +console.log(tableValue); // 41 -```ts -import { CmdType, JoinType } from '@pgsql/enums'; - -const command = { - cmdType: CmdType.CMD_SELECT, - joinType: JoinType.JOIN_INNER -}; +// Convert from value back to enum name +const enumName = ObjectType[41]; +console.log(enumName); // "OBJECT_TABLE" -console.log(command); +// Use in comparisons +if (someNode.objectType === ObjectType.OBJECT_TABLE) { + console.log("This is a table object"); +} ``` ## Versions @@ -89,4 +71,4 @@ Our latest is built with PostgreSQL 17 enum definitions. AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. -No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. \ No newline at end of file +No developer or entity involved in creating Software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the Software code or Software CLI, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. diff --git a/enums/17/README.md b/enums/17/README.md index b354433..1400599 100644 --- a/enums/17/README.md +++ b/enums/17/README.md @@ -27,41 +27,23 @@ npm install @pgsql/enums ## Usage -`@pgsql/enums` provides TypeScript enum definitions for PostgreSQL Abstract Syntax Tree (AST) nodes. These enums are useful for constructing, analyzing, or manipulating ASTs in a type-safe manner with exact enum values. - -Here are a few examples of how you can use these enums in your TypeScript projects: - -### Using Enum Values - -You can use the enums to work with specific PostgreSQL AST enum values: +Here's a simple example showing how to work with enums, converting between enum names and their numeric values: ```ts -import { ConstrType, ObjectType } from '@pgsql/enums'; - -function createConstraint() { - return { - contype: ConstrType.CONSTR_PRIMARY - }; -} - -function getObjectType() { - return ObjectType.OBJECT_TABLE; -} -``` - -### Type-Safe Enum Operations +import { ObjectType } from '@pgsql/enums'; -Enums help ensure that you use correct PostgreSQL enum values: +// Get the numeric value of an enum +const tableValue = ObjectType.OBJECT_TABLE; +console.log(tableValue); // 41 -```ts -import { CmdType, JoinType } from '@pgsql/enums'; - -const command = { - cmdType: CmdType.CMD_SELECT, - joinType: JoinType.JOIN_INNER -}; +// Convert from value back to enum name +const enumName = ObjectType[41]; +console.log(enumName); // "OBJECT_TABLE" -console.log(command); +// Use in comparisons +if (someNode.objectType === ObjectType.OBJECT_TABLE) { + console.log("This is a table object"); +} ``` ## Versions From 29f1ebb9730186a00aa5532ef7d6e0e538326186 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:33:18 -0700 Subject: [PATCH 03/14] enums publishing --- PUBLISH.md | 59 +++++++++++++- package.json | 4 +- scripts/publish-enums.js | 171 +++++++++++++++++++++++++++++++++++++++ scripts/publish-types.js | 171 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 403 insertions(+), 2 deletions(-) create mode 100755 scripts/publish-enums.js create mode 100755 scripts/publish-types.js diff --git a/PUBLISH.md b/PUBLISH.md index 05b7aca..fda1f86 100644 --- a/PUBLISH.md +++ b/PUBLISH.md @@ -1,6 +1,34 @@ # Publishing Guide -## Types Packages +## Automated Publishing (Recommended) + +### Types Packages +```bash +pnpm run publish:types +``` + +This interactive script will: +- Check for uncommitted changes (will error if any exist) +- Let you select which versions to publish (or all) +- Ask for version bump type (patch or minor only) +- Build, prepare, and publish each selected version +- Optionally promote pg17 to latest + +### Enums Packages +```bash +pnpm run publish:enums +``` + +This interactive script will: +- Check for uncommitted changes (will error if any exist) +- Let you select which versions to publish (or all) +- Ask for version bump type (patch or minor only) +- Build, prepare, and publish each selected version +- Optionally promote pg17 to latest + +## Manual Publishing + +### Types Packages ```bash # Set the version (e.g. 17, 16, 15, etc.) @@ -29,6 +57,35 @@ npm dist-tag add @pgsql/types@pg${VERSION} latest - Transforms `@libpg-query/types16` → `@pgsql/types` with tag `pg16` - etc. +### Enums Packages + +```bash +# Set the version (e.g. 17, 16, 15, etc.) +VERSION=17 + +cd enums/${VERSION} +pnpm version patch +git add . && git commit -m "release: bump @pgsql/enums${VERSION} version" +pnpm build +pnpm prepare:enums +pnpm publish --tag pg${VERSION} +``` + +Promote to latest (optional) + +```bash +# Set the version (e.g. 17, 16, 15, etc.) +VERSION=17 + +# Promote pg${VERSION} tag to latest +npm dist-tag add @pgsql/enums@pg${VERSION} latest +``` + +### What it does +- Transforms `@libpg-query/enums17` → `@pgsql/enums` with tag `pg17` +- Transforms `@libpg-query/enums16` → `@pgsql/enums` with tag `pg16` +- etc. + ## Version Packages ### Quick Publish diff --git a/package.json b/package.json index 29ae1c5..c249d4f 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "build:types": "node scripts/build-types.js", "prepare:types": "node scripts/prepare-types.js", "build:enums": "node scripts/build-enums.js", - "prepare:enums": "node scripts/prepare-enums.js" + "prepare:enums": "node scripts/prepare-enums.js", + "publish:types": "node scripts/publish-types.js", + "publish:enums": "node scripts/publish-enums.js" }, "devDependencies": { "@types/node": "^20.0.0", diff --git a/scripts/publish-enums.js b/scripts/publish-enums.js new file mode 100755 index 0000000..21fa1d0 --- /dev/null +++ b/scripts/publish-enums.js @@ -0,0 +1,171 @@ +#!/usr/bin/env node + +const { execSync } = require('child_process'); +const readline = require('readline'); +const path = require('path'); +const fs = require('fs'); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}); + +const VERSIONS = ['17', '16', '15', '14', '13']; + +function checkGitStatus() { + try { + const status = execSync('git status --porcelain', { encoding: 'utf8' }); + if (status.trim()) { + console.error('āŒ Error: You have uncommitted changes. Please commit or stash them before publishing.'); + console.error('Uncommitted files:'); + console.error(status); + process.exit(1); + } + } catch (error) { + console.error('āŒ Error checking git status:', error.message); + process.exit(1); + } +} + +function askQuestion(question) { + return new Promise((resolve) => { + rl.question(question, (answer) => { + resolve(answer.toLowerCase().trim()); + }); + }); +} + +async function selectVersions() { + console.log('Available versions:', VERSIONS.join(', ')); + const answer = await askQuestion('Which versions do you want to publish? (comma-separated, or "all" for all versions): '); + + if (answer === 'all') { + return VERSIONS; + } + + const selected = answer.split(',').map(v => v.trim()).filter(v => VERSIONS.includes(v)); + if (selected.length === 0) { + console.error('āŒ No valid versions selected.'); + process.exit(1); + } + + return selected; +} + +async function selectBumpType() { + const answer = await askQuestion('Version bump type? (patch/minor): '); + + if (!['patch', 'minor'].includes(answer)) { + console.error('āŒ Invalid bump type. Only "patch" or "minor" are allowed.'); + process.exit(1); + } + + return answer; +} + +async function confirmPublish(versions, bumpType) { + console.log('\nšŸ“‹ Summary:'); + console.log(` - Versions to publish: ${versions.join(', ')}`); + console.log(` - Bump type: ${bumpType}`); + + const answer = await askQuestion('\nProceed with publishing? (yes/no): '); + return answer === 'yes' || answer === 'y'; +} + +function publishVersion(version, bumpType) { + const packageDir = path.join(__dirname, '..', 'enums', version); + + console.log(`\nšŸ“¦ Publishing @libpg-query/enums${version}...`); + + try { + // Change to package directory + process.chdir(packageDir); + + // Bump version + console.log(` - Bumping ${bumpType} version...`); + execSync(`pnpm version ${bumpType}`, { stdio: 'inherit' }); + + // Get the new version + const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')); + const newVersion = packageJson.version; + + // Commit the version bump + console.log(` - Committing version bump...`); + execSync(`git add package.json`, { stdio: 'inherit' }); + execSync(`git commit -m "release: bump @libpg-query/enums${version} to ${newVersion}"`, { stdio: 'inherit' }); + + // Build + console.log(` - Building...`); + execSync('pnpm build', { stdio: 'inherit' }); + + // Prepare for publishing + console.log(` - Preparing for publish...`); + execSync('pnpm prepare:enums', { stdio: 'inherit' }); + + // Publish + console.log(` - Publishing to npm with tag pg${version}...`); + execSync(`pnpm publish --tag pg${version} --no-git-checks`, { stdio: 'inherit' }); + + console.log(`āœ… Successfully published @pgsql/enums@${newVersion} with tag pg${version}`); + + } catch (error) { + console.error(`āŒ Error publishing version ${version}:`, error.message); + throw error; + } +} + +async function main() { + console.log('šŸš€ Enums Package Publisher\n'); + + // Check git status + checkGitStatus(); + + // Select versions + const versions = await selectVersions(); + + // Select bump type + const bumpType = await selectBumpType(); + + // Confirm + const confirmed = await confirmPublish(versions, bumpType); + if (!confirmed) { + console.log('āŒ Publishing cancelled.'); + rl.close(); + process.exit(0); + } + + // Publish each version + for (const version of versions) { + try { + publishVersion(version, bumpType); + } catch (error) { + console.error(`\nāŒ Failed to publish version ${version}. Stopping.`); + rl.close(); + process.exit(1); + } + } + + console.log('\nāœ… All versions published successfully!'); + + // Ask about promoting to latest + if (versions.includes('17')) { + const promoteAnswer = await askQuestion('\nDo you want to promote pg17 to latest? (yes/no): '); + if (promoteAnswer === 'yes' || promoteAnswer === 'y') { + try { + console.log('Promoting pg17 to latest...'); + execSync('npm dist-tag add @pgsql/enums@pg17 latest', { stdio: 'inherit' }); + console.log('āœ… Successfully promoted pg17 to latest'); + } catch (error) { + console.error('āŒ Error promoting to latest:', error.message); + } + } + } + + rl.close(); +} + +main().catch(error => { + console.error('āŒ Unexpected error:', error); + rl.close(); + process.exit(1); +}); \ No newline at end of file diff --git a/scripts/publish-types.js b/scripts/publish-types.js new file mode 100755 index 0000000..3ca06b8 --- /dev/null +++ b/scripts/publish-types.js @@ -0,0 +1,171 @@ +#!/usr/bin/env node + +const { execSync } = require('child_process'); +const readline = require('readline'); +const path = require('path'); +const fs = require('fs'); + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}); + +const VERSIONS = ['17', '16', '15', '14', '13']; + +function checkGitStatus() { + try { + const status = execSync('git status --porcelain', { encoding: 'utf8' }); + if (status.trim()) { + console.error('āŒ Error: You have uncommitted changes. Please commit or stash them before publishing.'); + console.error('Uncommitted files:'); + console.error(status); + process.exit(1); + } + } catch (error) { + console.error('āŒ Error checking git status:', error.message); + process.exit(1); + } +} + +function askQuestion(question) { + return new Promise((resolve) => { + rl.question(question, (answer) => { + resolve(answer.toLowerCase().trim()); + }); + }); +} + +async function selectVersions() { + console.log('Available versions:', VERSIONS.join(', ')); + const answer = await askQuestion('Which versions do you want to publish? (comma-separated, or "all" for all versions): '); + + if (answer === 'all') { + return VERSIONS; + } + + const selected = answer.split(',').map(v => v.trim()).filter(v => VERSIONS.includes(v)); + if (selected.length === 0) { + console.error('āŒ No valid versions selected.'); + process.exit(1); + } + + return selected; +} + +async function selectBumpType() { + const answer = await askQuestion('Version bump type? (patch/minor): '); + + if (!['patch', 'minor'].includes(answer)) { + console.error('āŒ Invalid bump type. Only "patch" or "minor" are allowed.'); + process.exit(1); + } + + return answer; +} + +async function confirmPublish(versions, bumpType) { + console.log('\nšŸ“‹ Summary:'); + console.log(` - Versions to publish: ${versions.join(', ')}`); + console.log(` - Bump type: ${bumpType}`); + + const answer = await askQuestion('\nProceed with publishing? (yes/no): '); + return answer === 'yes' || answer === 'y'; +} + +function publishVersion(version, bumpType) { + const packageDir = path.join(__dirname, '..', 'types', version); + + console.log(`\nšŸ“¦ Publishing @libpg-query/types${version}...`); + + try { + // Change to package directory + process.chdir(packageDir); + + // Bump version + console.log(` - Bumping ${bumpType} version...`); + execSync(`pnpm version ${bumpType}`, { stdio: 'inherit' }); + + // Get the new version + const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8')); + const newVersion = packageJson.version; + + // Commit the version bump + console.log(` - Committing version bump...`); + execSync(`git add package.json`, { stdio: 'inherit' }); + execSync(`git commit -m "release: bump @libpg-query/types${version} to ${newVersion}"`, { stdio: 'inherit' }); + + // Build + console.log(` - Building...`); + execSync('pnpm build', { stdio: 'inherit' }); + + // Prepare for publishing + console.log(` - Preparing for publish...`); + execSync('pnpm prepare:types', { stdio: 'inherit' }); + + // Publish + console.log(` - Publishing to npm with tag pg${version}...`); + execSync(`pnpm publish --tag pg${version} --no-git-checks`, { stdio: 'inherit' }); + + console.log(`āœ… Successfully published @pgsql/types@${newVersion} with tag pg${version}`); + + } catch (error) { + console.error(`āŒ Error publishing version ${version}:`, error.message); + throw error; + } +} + +async function main() { + console.log('šŸš€ Types Package Publisher\n'); + + // Check git status + checkGitStatus(); + + // Select versions + const versions = await selectVersions(); + + // Select bump type + const bumpType = await selectBumpType(); + + // Confirm + const confirmed = await confirmPublish(versions, bumpType); + if (!confirmed) { + console.log('āŒ Publishing cancelled.'); + rl.close(); + process.exit(0); + } + + // Publish each version + for (const version of versions) { + try { + publishVersion(version, bumpType); + } catch (error) { + console.error(`\nāŒ Failed to publish version ${version}. Stopping.`); + rl.close(); + process.exit(1); + } + } + + console.log('\nāœ… All versions published successfully!'); + + // Ask about promoting to latest + if (versions.includes('17')) { + const promoteAnswer = await askQuestion('\nDo you want to promote pg17 to latest? (yes/no): '); + if (promoteAnswer === 'yes' || promoteAnswer === 'y') { + try { + console.log('Promoting pg17 to latest...'); + execSync('npm dist-tag add @pgsql/types@pg17 latest', { stdio: 'inherit' }); + console.log('āœ… Successfully promoted pg17 to latest'); + } catch (error) { + console.error('āŒ Error promoting to latest:', error.message); + } + } + } + + rl.close(); +} + +main().catch(error => { + console.error('āŒ Unexpected error:', error); + rl.close(); + process.exit(1); +}); \ No newline at end of file From 8ee86911357f48c92917fb855f2ae30ed683e9e8 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:34:41 -0700 Subject: [PATCH 04/14] release: bump @libpg-query/types17 to 17.5.4 --- types/17/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/17/package.json b/types/17/package.json index a826a42..f5b06fc 100644 --- a/types/17/package.json +++ b/types/17/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/types17", - "version": "17.5.3", + "version": "17.5.4", "author": "Dan Lynch ", "description": "PostgreSQL AST types from the real Postgres parser", "main": "index.js", From faf893974f0ca6515b15451ddb3175bd06e4b377 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:34:45 -0700 Subject: [PATCH 05/14] release: bump @libpg-query/types16 to 16.0.2 --- types/16/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/16/package.json b/types/16/package.json index 67f088c..4215ecd 100644 --- a/types/16/package.json +++ b/types/16/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/types16", - "version": "16.0.1", + "version": "16.0.2", "author": "Dan Lynch ", "description": "PostgreSQL AST types from the real Postgres parser", "main": "index.js", From ab7ac16d3115ccebfa464e7591931a901e2a82cf Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:34:49 -0700 Subject: [PATCH 06/14] release: bump @libpg-query/types15 to 15.0.4 --- types/15/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/15/package.json b/types/15/package.json index 6d7a2c0..8ef8e98 100644 --- a/types/15/package.json +++ b/types/15/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/types15", - "version": "15.0.3", + "version": "15.0.4", "author": "Dan Lynch ", "description": "PostgreSQL AST types from the real Postgres parser", "main": "index.js", From a0bb184a77117e5dcda9e74806a3656d0ec3248b Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:34:53 -0700 Subject: [PATCH 07/14] release: bump @libpg-query/types14 to 14.0.2 --- types/14/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/14/package.json b/types/14/package.json index 998510e..c568681 100644 --- a/types/14/package.json +++ b/types/14/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/types14", - "version": "14.0.1", + "version": "14.0.2", "author": "Dan Lynch ", "description": "PostgreSQL AST types from the real Postgres parser", "main": "index.js", From d58bac4621c03527a6277bf4e00471e1857aa192 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:34:56 -0700 Subject: [PATCH 08/14] release: bump @libpg-query/types13 to 13.10.3 --- types/13/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/13/package.json b/types/13/package.json index 23787a5..819eebe 100644 --- a/types/13/package.json +++ b/types/13/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/types13", - "version": "13.10.2", + "version": "13.10.3", "author": "Dan Lynch ", "description": "PostgreSQL AST types from the real Postgres parser", "main": "index.js", From 624ac22ab0a534ee74fbef1cfaa2853bbc128b93 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:35:30 -0700 Subject: [PATCH 09/14] release: bump @libpg-query/enums17 to 17.6.0 --- enums/17/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/enums/17/package.json b/enums/17/package.json index 1e29e22..abc617b 100644 --- a/enums/17/package.json +++ b/enums/17/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums17", - "version": "17.5.3", + "version": "17.6.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js", @@ -36,4 +36,4 @@ "devDependencies": { "pg-proto-parser": "^1.28.2" } -} \ No newline at end of file +} From dac4612e3b125bf8d040143faea6614c26810c05 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:35:34 -0700 Subject: [PATCH 10/14] release: bump @libpg-query/enums16 to 16.6.0 --- enums/16/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enums/16/package.json b/enums/16/package.json index 3e29758..746419d 100644 --- a/enums/16/package.json +++ b/enums/16/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums16", - "version": "16.5.3", + "version": "16.6.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js", From 5199649c422a6175ae32633d7664119f5c99c641 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:35:37 -0700 Subject: [PATCH 11/14] release: bump @libpg-query/enums15 to 15.6.0 --- enums/15/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enums/15/package.json b/enums/15/package.json index ecba2e2..d528a9b 100644 --- a/enums/15/package.json +++ b/enums/15/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums15", - "version": "15.5.3", + "version": "15.6.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js", From c875dccd8d1f331955952711f3cf1d3ea359cc80 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:35:41 -0700 Subject: [PATCH 12/14] release: bump @libpg-query/enums14 to 14.6.0 --- enums/14/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enums/14/package.json b/enums/14/package.json index 9520619..dc75690 100644 --- a/enums/14/package.json +++ b/enums/14/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums14", - "version": "14.5.3", + "version": "14.6.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js", From 8b4694a27527457dcec8d5a77c8abd481e69b9a2 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:35:45 -0700 Subject: [PATCH 13/14] release: bump @libpg-query/enums13 to 13.6.0 --- enums/13/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enums/13/package.json b/enums/13/package.json index df50229..c0c48a7 100644 --- a/enums/13/package.json +++ b/enums/13/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums13", - "version": "13.5.3", + "version": "13.6.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js", From 23add8e08ea51e053b746b9041ec19a324736f7a Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Sun, 22 Jun 2025 14:36:43 -0700 Subject: [PATCH 14/14] bump --- enums/13/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enums/13/package.json b/enums/13/package.json index c0c48a7..080de9b 100644 --- a/enums/13/package.json +++ b/enums/13/package.json @@ -1,6 +1,6 @@ { "name": "@libpg-query/enums13", - "version": "13.6.0", + "version": "13.10.0", "author": "Dan Lynch ", "description": "PostgreSQL AST enums from the real Postgres parser", "main": "index.js",