@rawsql-ts/sql-contract 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mapper/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Parameters forwarded to SQL executors, either positional arrays or named records. */
2
+ export type QueryParams = unknown[] | Record<string, unknown>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=query-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-params.js","sourceRoot":"","sources":["../src/query-params.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import type { QueryParams } from '../query-params';
2
+ import { writerPresets } from './presets';
3
+ import type { WriterPreset } from './presets';
4
+ /** Primitive values that can be serialized as SQL parameters. */
5
+ export type ParamValue = string | number | boolean | null | bigint | Date | Uint8Array;
6
+ /** Values keyed by column that may include undefined entries which are dropped. */
7
+ export type RecordValues = Record<string, ParamValue | undefined>;
8
+ /** Key columns used for equality-only WHERE clauses in update/remove helpers. */
9
+ export type Key = Record<string, ParamValue>;
10
+ /** Supported placeholder styles verified against the SQL formatter presets. */
11
+ export type PlaceholderStyle = 'indexed' | 'question' | 'named';
12
+ /** Per-statement options that remain specific to individual INSERT/UPDATE/DELETE calls. */
13
+ export interface WriterStatementOptions {
14
+ allowUnsafeIdentifiers?: boolean;
15
+ /**
16
+ * Optional columns to expose via a `RETURNING` clause; `'all'` maps to `RETURNING *`.
17
+ * Sorted column lists guarantee deterministic SQL, and the writer itself stays DBMS-agnostic.
18
+ */
19
+ returning?: readonly string[] | 'all';
20
+ }
21
+ /** Legacy compatibility alias for historical usage. */
22
+ export type WriterCoreOptions = WriterStatementOptions;
23
+ type ReturningMetaValue = readonly string[] | '*';
24
+ export type WriterStatementResult = {
25
+ sql: string;
26
+ params: QueryParams;
27
+ meta?: {
28
+ returning?: ReturningMetaValue;
29
+ };
30
+ };
31
+ export type WriterBuild = {
32
+ insert(table: string, values: RecordValues, options?: WriterStatementOptions): WriterStatementResult;
33
+ update(table: string, values: RecordValues, where: Key, options?: WriterStatementOptions): WriterStatementResult;
34
+ remove(table: string, where: Key, options?: WriterStatementOptions): WriterStatementResult;
35
+ };
36
+ export type WriterExecutor = (sql: string, params: QueryParams) => Promise<unknown>;
37
+ export type Writer = {
38
+ insert(table: string, values: RecordValues, options?: WriterStatementOptions): Promise<unknown>;
39
+ update(table: string, values: RecordValues, where: Key, options?: WriterStatementOptions): Promise<unknown>;
40
+ remove(table: string, where: Key, options?: WriterStatementOptions): Promise<unknown>;
41
+ build: WriterBuild;
42
+ };
43
+ export declare const insert: (table: string, values: RecordValues, options?: WriterStatementOptions) => WriterStatementResult;
44
+ export declare const update: (table: string, values: RecordValues, where: Key, options?: WriterStatementOptions) => WriterStatementResult;
45
+ export declare const remove: (table: string, where: Key, options?: WriterStatementOptions) => WriterStatementResult;
46
+ /** Creates a writer bound to the provided executor and preset-driven configuration. */
47
+ export declare function createWriterFromExecutor(executor: WriterExecutor, preset?: WriterPreset): Writer;
48
+ /** Convenience alias for `createWriterFromExecutor`. */
49
+ export declare const createWriter: typeof createWriterFromExecutor;
50
+ export type { QueryParams } from '../query-params';
51
+ export { writerPresets };
52
+ export type { WriterPreset };
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writerPresets = exports.createWriter = exports.remove = exports.update = exports.insert = void 0;
4
+ exports.createWriterFromExecutor = createWriterFromExecutor;
5
+ const presets_1 = require("./presets");
6
+ Object.defineProperty(exports, "writerPresets", { enumerable: true, get: function () { return presets_1.writerPresets; } });
7
+ const identifierPattern = /^[A-Za-z_][A-Za-z0-9_]*$/;
8
+ const identifierControlPattern = /[\u0000-\u001F\u007F]/;
9
+ const assertIdentifierBasics = (identifier, kind) => {
10
+ if (identifier.length === 0) {
11
+ throw new Error(`${kind} identifier must not be empty`);
12
+ }
13
+ if (identifierControlPattern.test(identifier)) {
14
+ throw new Error(`identifier "${identifier}" must not contain control characters`);
15
+ }
16
+ };
17
+ const assertColumnIdentifier = (identifier, allowUnsafe) => {
18
+ assertIdentifierBasics(identifier, 'column');
19
+ if (!allowUnsafe && !identifierPattern.test(identifier)) {
20
+ throw new Error(`column identifier "${identifier}" must match ${identifierPattern}`);
21
+ }
22
+ };
23
+ const assertTableIdentifier = (identifier, allowUnsafe) => {
24
+ assertIdentifierBasics(identifier, 'table');
25
+ if (!allowUnsafe && !identifierPattern.test(identifier)) {
26
+ throw new Error(`table identifier "${identifier}" must match ${identifierPattern}`);
27
+ }
28
+ };
29
+ const hasParamValueEntry = (entry) => entry[1] !== undefined;
30
+ const sortEntries = (entries) => entries.slice().sort(([a], [b]) => a.localeCompare(b));
31
+ const ensureEntries = (entries, kind) => {
32
+ if (entries.length === 0) {
33
+ throw new Error(kind === 'insert' ? 'insert values must not be empty' : 'update values must not be empty');
34
+ }
35
+ };
36
+ const buildReturningClause = (returning, allowUnsafe) => {
37
+ if (returning === undefined) {
38
+ return undefined;
39
+ }
40
+ if (returning === 'all') {
41
+ return { clause: 'RETURNING *', meta: '*' };
42
+ }
43
+ if (!Array.isArray(returning)) {
44
+ throw new Error('returning must be "all" or an array of column names');
45
+ }
46
+ if (returning.length === 0) {
47
+ throw new Error('returning columns must not be empty');
48
+ }
49
+ const columns = returning.slice().sort((a, b) => a.localeCompare(b));
50
+ for (const column of columns) {
51
+ assertColumnIdentifier(column, allowUnsafe);
52
+ }
53
+ return {
54
+ clause: `RETURNING ${columns.join(', ')}`,
55
+ meta: columns,
56
+ };
57
+ };
58
+ const finalizeStatement = (baseSql, params, returningClause) => {
59
+ const sql = returningClause ? `${baseSql} ${returningClause.clause}` : baseSql;
60
+ const result = { sql, params };
61
+ if (returningClause) {
62
+ result.meta = { returning: returningClause.meta };
63
+ }
64
+ return result;
65
+ };
66
+ const buildWhereClause = (key, allowUnsafe, binder) => {
67
+ const entries = sortEntries(Object.entries(key));
68
+ if (entries.length === 0) {
69
+ throw new Error('where must not be empty');
70
+ }
71
+ const clauses = entries.map(([column, value]) => {
72
+ assertColumnIdentifier(column, allowUnsafe);
73
+ if (value === undefined) {
74
+ throw new Error('key values must not be undefined');
75
+ }
76
+ return `${column} = ${binder.bind(value, column)}`;
77
+ });
78
+ return {
79
+ clause: `WHERE ${clauses.join(' AND ')}`,
80
+ };
81
+ };
82
+ const createBuilderSet = (preset) => ({
83
+ insert: (table, values, options) => buildInsertStatement(table, values, options, preset),
84
+ update: (table, values, where, options) => buildUpdateStatement(table, values, where, options, preset),
85
+ remove: (table, where, options) => buildRemoveStatement(table, where, options, preset),
86
+ });
87
+ const buildInsertStatement = (table, values, options, preset) => {
88
+ var _a, _b;
89
+ const allowUnsafe = (options === null || options === void 0 ? void 0 : options.allowUnsafeIdentifiers) === true;
90
+ const binder = preset.createBinder();
91
+ assertTableIdentifier(table, allowUnsafe);
92
+ const entries = sortEntries(Object.entries(values).filter(hasParamValueEntry));
93
+ ensureEntries(entries, 'insert');
94
+ const columns = [];
95
+ const placeholders = [];
96
+ for (const [column, value] of entries) {
97
+ assertColumnIdentifier(column, allowUnsafe);
98
+ columns.push(column);
99
+ placeholders.push(binder.bind(value, column));
100
+ }
101
+ const returningClause = buildReturningClause(options === null || options === void 0 ? void 0 : options.returning, allowUnsafe);
102
+ const baseSql = `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${placeholders.join(', ')})`;
103
+ const result = finalizeStatement(baseSql, binder.params, returningClause);
104
+ return (_b = (_a = preset.finalize) === null || _a === void 0 ? void 0 : _a.call(preset, result)) !== null && _b !== void 0 ? _b : result;
105
+ };
106
+ const buildUpdateStatement = (table, values, where, options, preset) => {
107
+ var _a, _b;
108
+ const allowUnsafe = (options === null || options === void 0 ? void 0 : options.allowUnsafeIdentifiers) === true;
109
+ const binder = preset.createBinder();
110
+ assertTableIdentifier(table, allowUnsafe);
111
+ const entries = sortEntries(Object.entries(values).filter(hasParamValueEntry));
112
+ ensureEntries(entries, 'update');
113
+ const clauses = entries.map(([column, value]) => {
114
+ assertColumnIdentifier(column, allowUnsafe);
115
+ return `${column} = ${binder.bind(value, column)}`;
116
+ });
117
+ const whereClause = buildWhereClause(where, allowUnsafe, binder);
118
+ const returningClause = buildReturningClause(options === null || options === void 0 ? void 0 : options.returning, allowUnsafe);
119
+ const baseSql = `UPDATE ${table} SET ${clauses.join(', ')} ${whereClause.clause}`;
120
+ const result = finalizeStatement(baseSql, binder.params, returningClause);
121
+ return (_b = (_a = preset.finalize) === null || _a === void 0 ? void 0 : _a.call(preset, result)) !== null && _b !== void 0 ? _b : result;
122
+ };
123
+ const buildRemoveStatement = (table, where, options, preset) => {
124
+ var _a, _b;
125
+ const allowUnsafe = (options === null || options === void 0 ? void 0 : options.allowUnsafeIdentifiers) === true;
126
+ const binder = preset.createBinder();
127
+ assertTableIdentifier(table, allowUnsafe);
128
+ const whereClause = buildWhereClause(where, allowUnsafe, binder);
129
+ const returningClause = buildReturningClause(options === null || options === void 0 ? void 0 : options.returning, allowUnsafe);
130
+ const baseSql = `DELETE FROM ${table} ${whereClause.clause}`;
131
+ const result = finalizeStatement(baseSql, binder.params, returningClause);
132
+ return (_b = (_a = preset.finalize) === null || _a === void 0 ? void 0 : _a.call(preset, result)) !== null && _b !== void 0 ? _b : result;
133
+ };
134
+ const legacyPreset = presets_1.writerPresets.indexed();
135
+ const legacyBuilders = createBuilderSet(legacyPreset);
136
+ exports.insert = legacyBuilders.insert;
137
+ exports.update = legacyBuilders.update;
138
+ exports.remove = legacyBuilders.remove;
139
+ /** Creates a writer bound to the provided executor and preset-driven configuration. */
140
+ function createWriterFromExecutor(executor, preset = presets_1.writerPresets.indexed()) {
141
+ const builders = createBuilderSet(preset);
142
+ const execute = (builder) => async (...args) => {
143
+ const result = builder(...args);
144
+ await executor(result.sql, result.params);
145
+ };
146
+ return {
147
+ insert: execute(builders.insert),
148
+ update: execute(builders.update),
149
+ remove: execute(builders.remove),
150
+ build: builders,
151
+ };
152
+ }
153
+ /** Convenience alias for `createWriterFromExecutor`. */
154
+ exports.createWriter = createWriterFromExecutor;
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/writer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ParamValue, WriterStatementResult, PlaceholderStyle } from './index';
2
+ import type { QueryParams } from '../query-params';
3
+ /** Indicates how writer parameters are emitted at runtime. */
4
+ export type WriterParamsShape = 'array' | 'object';
5
+ /** Tracks placeholders and their accumulated values for a single statement. */
6
+ export interface WriterPlaceholderBinder {
7
+ readonly params: QueryParams;
8
+ bind(value: ParamValue, column: string): string;
9
+ }
10
+ /** Defines how placeholders and parameter accumulation behave for a writer instance. */
11
+ export interface WriterPreset {
12
+ readonly placeholderStyle: PlaceholderStyle;
13
+ readonly paramsShape: WriterParamsShape;
14
+ createBinder(): WriterPlaceholderBinder;
15
+ finalize?(result: WriterStatementResult): WriterStatementResult;
16
+ }
17
+ type NamedWriterPresetOptions = {
18
+ formatPlaceholder?: (paramName: string) => string;
19
+ };
20
+ export declare const writerPresets: {
21
+ indexed(): WriterPreset;
22
+ anonymous(): WriterPreset;
23
+ named(options?: NamedWriterPresetOptions): WriterPreset;
24
+ };
25
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writerPresets = void 0;
4
+ const sanitizeColumn = (column) => column
5
+ .replace(/[^A-Za-z0-9_]/g, '_')
6
+ .replace(/__+/g, '_')
7
+ .replace(/^_+|_+$/g, '') || 'param';
8
+ const createNumberedBinder = (format) => {
9
+ let index = 0;
10
+ const params = [];
11
+ return {
12
+ params,
13
+ bind(value, _column) {
14
+ index += 1;
15
+ params.push(value);
16
+ return format(index);
17
+ },
18
+ };
19
+ };
20
+ exports.writerPresets = {
21
+ indexed() {
22
+ return {
23
+ placeholderStyle: 'indexed',
24
+ paramsShape: 'array',
25
+ createBinder: () => createNumberedBinder((index) => `$${index}`),
26
+ };
27
+ },
28
+ anonymous() {
29
+ return {
30
+ placeholderStyle: 'question',
31
+ paramsShape: 'array',
32
+ createBinder: () => {
33
+ const params = [];
34
+ return {
35
+ params,
36
+ bind(value) {
37
+ params.push(value);
38
+ return '?';
39
+ },
40
+ };
41
+ },
42
+ };
43
+ },
44
+ named(options) {
45
+ var _a;
46
+ const formatPlaceholder = (_a = options === null || options === void 0 ? void 0 : options.formatPlaceholder) !== null && _a !== void 0 ? _a : ((paramName) => paramName);
47
+ return {
48
+ placeholderStyle: 'named',
49
+ paramsShape: 'object',
50
+ createBinder: () => {
51
+ let counter = 0;
52
+ const params = {};
53
+ return {
54
+ params,
55
+ bind(value, column) {
56
+ counter += 1;
57
+ const sanitized = sanitizeColumn(column);
58
+ const paramName = `${sanitized}_${counter}`;
59
+ params[paramName] = value;
60
+ return formatPlaceholder(paramName);
61
+ },
62
+ };
63
+ },
64
+ };
65
+ },
66
+ };
67
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/writer/presets.ts"],"names":[],"mappings":";;;AAwBA,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CACxC,MAAM;KACH,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;KAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAA;AAEvC,MAAM,oBAAoB,GAAG,CAAC,MAAiC,EAAE,EAAE;IACjE,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,OAAO;QACL,MAAM;QACN,IAAI,CAAC,KAAiB,EAAE,OAAe;YACrC,KAAK,IAAI,CAAC,CAAA;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAClB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,aAAa,GAAG;IAC3B,OAAO;QACL,OAAO;YACL,gBAAgB,EAAE,SAAS;YAC3B,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SACjE,CAAA;IACH,CAAC;IACD,SAAS;QACP,OAAO;YACL,gBAAgB,EAAE,UAAU;YAC5B,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,GAAG,EAAE;gBACjB,MAAM,MAAM,GAAiB,EAAE,CAAA;gBAC/B,OAAO;oBACL,MAAM;oBACN,IAAI,CAAC,KAAiB;wBACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBAClB,OAAO,GAAG,CAAA;oBACZ,CAAC;iBACF,CAAA;YACH,CAAC;SACF,CAAA;IACH,CAAC;IACD,KAAK,CAAC,OAAkC;;QACtC,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;QAE1F,OAAO;YACL,gBAAgB,EAAE,OAAO;YACzB,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,GAAG,EAAE;gBACjB,IAAI,OAAO,GAAG,CAAC,CAAA;gBACf,MAAM,MAAM,GAA+B,EAAE,CAAA;gBAC7C,OAAO;oBACL,MAAM;oBACN,IAAI,CAAC,KAAiB,EAAE,MAAc;wBACpC,OAAO,IAAI,CAAC,CAAA;wBACZ,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;wBACxC,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAA;wBAC3C,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;wBACzB,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAA;oBACrC,CAAC;iBACF,CAAA;YACH,CAAC;SACF,CAAA;IACH,CAAC;CACF,CAAA"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@rawsql-ts/sql-contract",
3
+ "version": "0.1.0",
4
+ "description": "Lightweight mapper and writer helpers that keep client SQL authoritative while exposing an explicit contract for data hydration and CUD emitters.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./mapper": {
13
+ "types": "./dist/mapper/index.d.ts",
14
+ "default": "./dist/mapper/index.js"
15
+ },
16
+ "./mapper/*": {
17
+ "types": "./dist/mapper/*.d.ts",
18
+ "default": "./dist/mapper/*.js"
19
+ },
20
+ "./writer": {
21
+ "types": "./dist/writer/index.d.ts",
22
+ "default": "./dist/writer/index.js"
23
+ },
24
+ "./writer/*": {
25
+ "types": "./dist/writer/*.d.ts",
26
+ "default": "./dist/writer/*.js"
27
+ }
28
+ },
29
+ "keywords": [
30
+ "sql",
31
+ "mapper",
32
+ "writer",
33
+ "contract",
34
+ "rawsql"
35
+ ],
36
+ "license": "MIT",
37
+ "author": "msugiura",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/mk3008/rawsql-ts.git",
41
+ "directory": "packages/sql-contract"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ },
46
+ "engines": {
47
+ "node": ">=20"
48
+ },
49
+ "devDependencies": {
50
+ "typescript": "^5.8.2",
51
+ "vitest": "^4.0.7",
52
+ "pg-promise": "^12.0.0"
53
+ },
54
+ "files": [
55
+ "dist"
56
+ ],
57
+ "scripts": {
58
+ "build": "tsc -p tsconfig.json",
59
+ "test": "vitest run",
60
+ "test:watch": "vitest",
61
+ "lint": "eslint src --ext .ts"
62
+ }
63
+ }