@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.
- package/LICENSE +21 -0
- package/README.md +476 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/mapper/index.d.ts +192 -0
- package/dist/mapper/index.js +691 -0
- package/dist/mapper/index.js.map +1 -0
- package/dist/query-params.d.ts +2 -0
- package/dist/query-params.js +3 -0
- package/dist/query-params.js.map +1 -0
- package/dist/writer/index.d.ts +52 -0
- package/dist/writer/index.js +155 -0
- package/dist/writer/index.js.map +1 -0
- package/dist/writer/presets.d.ts +25 -0
- package/dist/writer/presets.js +67 -0
- package/dist/writer/presets.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mapper/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
+
}
|