@dalgo/dalgo2postgrest 0.0.0-bootstrap.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -2
- package/README.md +404 -4
- package/dist/capabilities.d.ts +129 -0
- package/dist/capabilities.js +78 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cursor.d.ts +60 -0
- package/dist/cursor.js +261 -0
- package/dist/cursor.js.map +1 -0
- package/dist/database.d.ts +95 -0
- package/dist/database.js +730 -0
- package/dist/database.js.map +1 -0
- package/dist/discovery.d.ts +111 -0
- package/dist/discovery.js +235 -0
- package/dist/discovery.js.map +1 -0
- package/dist/fields.d.ts +20 -0
- package/dist/fields.js +32 -0
- package/dist/fields.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +25 -0
- package/dist/json.js +114 -0
- package/dist/json.js.map +1 -0
- package/package.json +50 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/** A bounded, read-only view of one exposed PostgREST relation. */
|
|
2
|
+
export interface PostgrestFieldDiscovery {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
/** Declared JSON-Schema type, when the OpenAPI document declares one. */
|
|
5
|
+
readonly type?: string;
|
|
6
|
+
/** Declared provider type, normally PostgreSQL's type name. */
|
|
7
|
+
readonly format?: string;
|
|
8
|
+
readonly array: boolean;
|
|
9
|
+
readonly itemsType?: string;
|
|
10
|
+
/** `undefined` when the document does not declare `required`. */
|
|
11
|
+
readonly nullable?: boolean;
|
|
12
|
+
readonly declaredPrimaryKey: boolean;
|
|
13
|
+
readonly typeStatus: "declared" | "unavailable";
|
|
14
|
+
readonly enumValues?: readonly (string | number | boolean | null)[];
|
|
15
|
+
}
|
|
16
|
+
export interface PostgrestPrimaryKeyDiscovery {
|
|
17
|
+
readonly status: "declared" | "not-declared" | "unavailable";
|
|
18
|
+
readonly columns: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Why the configured `idColumn` may be treated as identifying one row.
|
|
22
|
+
*
|
|
23
|
+
* - `declared-primary-key`: the complete declared primary key is exactly this
|
|
24
|
+
* single column.
|
|
25
|
+
* - `configured-contract`: the request role's metadata declares no primary key
|
|
26
|
+
* (commonly a view), so the adapter relies on the caller's configured
|
|
27
|
+
* uniqueness contract for this column. Presence alone is not proof.
|
|
28
|
+
* - `not-unique`: metadata declares a different or composite primary key, so
|
|
29
|
+
* this column alone cannot safely address one row, a stable keyset boundary,
|
|
30
|
+
* or per-row writes.
|
|
31
|
+
*/
|
|
32
|
+
export type PostgrestIdColumnUniqueness = "declared-primary-key" | "configured-contract" | "not-unique";
|
|
33
|
+
export interface PostgrestIdColumnDiscovery {
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly present: boolean;
|
|
36
|
+
readonly declaredPrimaryKey: boolean;
|
|
37
|
+
readonly uniqueStatus: PostgrestIdColumnUniqueness;
|
|
38
|
+
}
|
|
39
|
+
export interface PostgrestRelationDiscovery {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
/** HTTP verbs PostgREST advertises for this relation path. */
|
|
42
|
+
readonly methods: readonly string[];
|
|
43
|
+
readonly readable: boolean;
|
|
44
|
+
readonly fields: readonly PostgrestFieldDiscovery[];
|
|
45
|
+
readonly fieldsStatus: "declared" | "unavailable" | "truncated";
|
|
46
|
+
readonly omittedFields: number;
|
|
47
|
+
readonly primaryKey: PostgrestPrimaryKeyDiscovery;
|
|
48
|
+
readonly idColumn: PostgrestIdColumnDiscovery;
|
|
49
|
+
/** True only when this adapter can address the relation with its configured ID column. */
|
|
50
|
+
readonly adapterQueryable: boolean;
|
|
51
|
+
readonly adapterQueryableReason?: string;
|
|
52
|
+
}
|
|
53
|
+
export type PostgrestDiscoveryReason = "unauthorized" | "forbidden" | "metadata-disabled" | "request-failed" | "malformed-metadata" | "no-relations";
|
|
54
|
+
export interface PostgrestDiscoveryBounds {
|
|
55
|
+
readonly maxRelations: number;
|
|
56
|
+
readonly maxFieldsPerRelation: number;
|
|
57
|
+
readonly maxMetadataBytes: number;
|
|
58
|
+
readonly maxSchemaDepth: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Discovery result. `status: "unavailable"` is deliberately not an empty
|
|
62
|
+
* database: a denied, disabled, malformed or unreadable metadata endpoint and a
|
|
63
|
+
* role that sees zero relations are all reported explicitly.
|
|
64
|
+
*/
|
|
65
|
+
export interface PostgrestDiscovery {
|
|
66
|
+
readonly adapter: "@dalgo/dalgo2postgrest";
|
|
67
|
+
readonly protocol: "postgrest-openapi";
|
|
68
|
+
readonly endpoint: string;
|
|
69
|
+
readonly schema?: string;
|
|
70
|
+
readonly status: "available" | "unavailable";
|
|
71
|
+
readonly reason?: PostgrestDiscoveryReason;
|
|
72
|
+
readonly detail: string;
|
|
73
|
+
readonly httpStatus?: number;
|
|
74
|
+
readonly relations: readonly PostgrestRelationDiscovery[];
|
|
75
|
+
readonly relationCount: number;
|
|
76
|
+
readonly truncated: boolean;
|
|
77
|
+
readonly omittedRelations: number;
|
|
78
|
+
readonly bounds: PostgrestDiscoveryBounds;
|
|
79
|
+
}
|
|
80
|
+
export interface PostgrestConnectionStatus {
|
|
81
|
+
readonly ok: boolean;
|
|
82
|
+
readonly status: "connected" | "unauthorized" | "forbidden" | "metadata-disabled" | "metadata-malformed" | "unreachable";
|
|
83
|
+
readonly httpStatus?: number;
|
|
84
|
+
readonly relationCount?: number;
|
|
85
|
+
readonly schema?: string;
|
|
86
|
+
readonly detail: string;
|
|
87
|
+
}
|
|
88
|
+
export interface PostgrestOpenApiParseOptions {
|
|
89
|
+
readonly idColumn: string;
|
|
90
|
+
readonly maxRelations: number;
|
|
91
|
+
readonly maxFieldsPerRelation: number;
|
|
92
|
+
readonly maxSchemaDepth: number;
|
|
93
|
+
}
|
|
94
|
+
export type PostgrestOpenApiParseResult = {
|
|
95
|
+
readonly status: "available";
|
|
96
|
+
readonly relations: readonly PostgrestRelationDiscovery[];
|
|
97
|
+
readonly relationCount: number;
|
|
98
|
+
readonly truncated: boolean;
|
|
99
|
+
readonly omittedRelations: number;
|
|
100
|
+
} | {
|
|
101
|
+
readonly status: "unavailable";
|
|
102
|
+
readonly reason: "malformed-metadata" | "no-relations";
|
|
103
|
+
readonly detail: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Parses only the in-memory OpenAPI document. It never follows `$ref` over the
|
|
107
|
+
* network: a remote or unresolvable reference makes that field's type
|
|
108
|
+
* explicitly unavailable. Array/depth/body bounds are enforced by the caller
|
|
109
|
+
* and by this parser's relation/field slices.
|
|
110
|
+
*/
|
|
111
|
+
export declare function parsePostgrestOpenApi(document: unknown, options: PostgrestOpenApiParseOptions): PostgrestOpenApiParseResult;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
const RELATION_PATH = /^\/([^/]+)$/u;
|
|
2
|
+
const ADAPTER_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/u;
|
|
3
|
+
const PRIMARY_KEY_MARKER = /This is a Primary Key\.<pk\/>/u;
|
|
4
|
+
const METHOD_ORDER = ["get", "head", "post", "put", "patch", "delete", "options"];
|
|
5
|
+
function isPlainObject(value) {
|
|
6
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
7
|
+
&& (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
|
|
8
|
+
}
|
|
9
|
+
function hasOwn(value, name) {
|
|
10
|
+
return Object.hasOwn(value, name);
|
|
11
|
+
}
|
|
12
|
+
function schemaAt(document, ref) {
|
|
13
|
+
if (!ref.startsWith("#/"))
|
|
14
|
+
return undefined;
|
|
15
|
+
const segments = ref.slice(2).split("/").map((segment) => segment.replaceAll("~1", "/").replaceAll("~0", "~"));
|
|
16
|
+
let node = document;
|
|
17
|
+
for (const segment of segments) {
|
|
18
|
+
if (!isPlainObject(node) || !hasOwn(node, segment))
|
|
19
|
+
return undefined;
|
|
20
|
+
node = node[segment];
|
|
21
|
+
}
|
|
22
|
+
return isPlainObject(node) ? node : undefined;
|
|
23
|
+
}
|
|
24
|
+
function resolvedSchema(document, value, depth, maxDepth) {
|
|
25
|
+
if (!isPlainObject(value))
|
|
26
|
+
return undefined;
|
|
27
|
+
const ref = value.$ref;
|
|
28
|
+
if (ref === undefined)
|
|
29
|
+
return value;
|
|
30
|
+
if (typeof ref !== "string" || depth >= maxDepth)
|
|
31
|
+
return undefined;
|
|
32
|
+
const target = schemaAt(document, ref);
|
|
33
|
+
return target === undefined ? undefined : resolvedSchema(document, target, depth + 1, maxDepth);
|
|
34
|
+
}
|
|
35
|
+
function definitionMap(document) {
|
|
36
|
+
if (isPlainObject(document.definitions))
|
|
37
|
+
return document.definitions;
|
|
38
|
+
const components = document.components;
|
|
39
|
+
if (isPlainObject(components) && isPlainObject(components.schemas))
|
|
40
|
+
return components.schemas;
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
function relationDefinition(definitions, name) {
|
|
44
|
+
const direct = definitions[name];
|
|
45
|
+
if (hasOwn(definitions, name) && isPlainObject(direct))
|
|
46
|
+
return direct;
|
|
47
|
+
let decoded;
|
|
48
|
+
try {
|
|
49
|
+
decoded = decodeURIComponent(name);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
if (decoded === name)
|
|
55
|
+
return undefined;
|
|
56
|
+
const decodedDefinition = definitions[decoded];
|
|
57
|
+
return hasOwn(definitions, decoded) && isPlainObject(decodedDefinition) ? decodedDefinition : undefined;
|
|
58
|
+
}
|
|
59
|
+
function methodsFor(pathItem) {
|
|
60
|
+
return METHOD_ORDER.filter((method) => isPlainObject(pathItem[method]));
|
|
61
|
+
}
|
|
62
|
+
function propertySchema(document, schema, maxSchemaDepth) {
|
|
63
|
+
return resolvedSchema(document, schema, 0, maxSchemaDepth);
|
|
64
|
+
}
|
|
65
|
+
function stringArray(value) {
|
|
66
|
+
if (!Array.isArray(value) || !value.every((item) => typeof item === "string"))
|
|
67
|
+
return undefined;
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
function enumValues(value) {
|
|
71
|
+
if (!Array.isArray(value))
|
|
72
|
+
return undefined;
|
|
73
|
+
const result = [];
|
|
74
|
+
for (const item of value) {
|
|
75
|
+
if (item === null || typeof item === "string" || typeof item === "boolean") {
|
|
76
|
+
result.push(item);
|
|
77
|
+
}
|
|
78
|
+
else if (typeof item === "number" && Number.isFinite(item) && !Object.is(item, -0)) {
|
|
79
|
+
result.push(item);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
function relationMetadata(document, definitions, name, pathItem, options) {
|
|
88
|
+
const definition = relationDefinition(definitions, name);
|
|
89
|
+
const properties = definition === undefined ? undefined : definition.properties;
|
|
90
|
+
const required = definition === undefined ? undefined : stringArray(definition.required);
|
|
91
|
+
const requiredSet = required === undefined ? undefined : new Set(required);
|
|
92
|
+
const methods = methodsFor(pathItem);
|
|
93
|
+
if (!isPlainObject(properties)) {
|
|
94
|
+
return {
|
|
95
|
+
name,
|
|
96
|
+
methods,
|
|
97
|
+
readable: methods.includes("get"),
|
|
98
|
+
fields: [],
|
|
99
|
+
fieldsStatus: "unavailable",
|
|
100
|
+
omittedFields: 0,
|
|
101
|
+
primaryKey: { status: "unavailable", columns: [] },
|
|
102
|
+
idColumn: {
|
|
103
|
+
name: options.idColumn,
|
|
104
|
+
present: false,
|
|
105
|
+
declaredPrimaryKey: false,
|
|
106
|
+
uniqueStatus: "not-unique",
|
|
107
|
+
},
|
|
108
|
+
adapterQueryable: false,
|
|
109
|
+
adapterQueryableReason: "the OpenAPI document does not declare this relation's fields",
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const entries = Object.entries(properties);
|
|
113
|
+
// The field budget bounds the returned field list, never the primary-key
|
|
114
|
+
// scan: slicing first and then collecting markers would report a partial
|
|
115
|
+
// composite key as a complete single-column key. Every declared property is
|
|
116
|
+
// inspected for a marker (the document itself is already byte-bounded), and
|
|
117
|
+
// only the first `maxFieldsPerRelation` fields are materialized in the
|
|
118
|
+
// result.
|
|
119
|
+
const fields = [];
|
|
120
|
+
const primaryKeyColumns = [];
|
|
121
|
+
const declaredFieldNames = new Set();
|
|
122
|
+
for (const [index, [fieldName, rawField]] of entries.entries()) {
|
|
123
|
+
declaredFieldNames.add(fieldName);
|
|
124
|
+
const field = propertySchema(document, rawField, options.maxSchemaDepth);
|
|
125
|
+
const description = field !== undefined && typeof field.description === "string" ? field.description : "";
|
|
126
|
+
const declaredPrimaryKey = PRIMARY_KEY_MARKER.test(description);
|
|
127
|
+
if (declaredPrimaryKey)
|
|
128
|
+
primaryKeyColumns.push(fieldName);
|
|
129
|
+
if (index >= options.maxFieldsPerRelation)
|
|
130
|
+
continue;
|
|
131
|
+
const type = field !== undefined && typeof field.type === "string" ? field.type : undefined;
|
|
132
|
+
const format = field !== undefined && typeof field.format === "string" ? field.format : undefined;
|
|
133
|
+
const array = type === "array" || (format !== undefined && format.endsWith("[]"));
|
|
134
|
+
const items = field !== undefined && isPlainObject(field.items) ? field.items : undefined;
|
|
135
|
+
const itemsType = items !== undefined && typeof items.type === "string" ? items.type : undefined;
|
|
136
|
+
const enum_ = field !== undefined ? enumValues(field.enum) : undefined;
|
|
137
|
+
const typeStatus = type !== undefined || format !== undefined || itemsType !== undefined || enum_ !== undefined
|
|
138
|
+
? "declared"
|
|
139
|
+
: "unavailable";
|
|
140
|
+
fields.push({
|
|
141
|
+
name: fieldName,
|
|
142
|
+
...(type === undefined ? {} : { type }),
|
|
143
|
+
...(format === undefined ? {} : { format }),
|
|
144
|
+
array,
|
|
145
|
+
...(itemsType === undefined ? {} : { itemsType }),
|
|
146
|
+
...(requiredSet === undefined ? {} : { nullable: !requiredSet.has(fieldName) }),
|
|
147
|
+
declaredPrimaryKey,
|
|
148
|
+
typeStatus,
|
|
149
|
+
...(enum_ === undefined ? {} : { enumValues: enum_ }),
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const truncated = entries.length > fields.length;
|
|
153
|
+
const fieldsStatus = truncated ? "truncated" : "declared";
|
|
154
|
+
const primaryKeyStatus = primaryKeyColumns.length > 0 ? "declared" : "not-declared";
|
|
155
|
+
const idColumnPresent = declaredFieldNames.has(options.idColumn);
|
|
156
|
+
const simpleName = ADAPTER_IDENTIFIER.test(name);
|
|
157
|
+
const uniqueStatus = primaryKeyColumns.length === 0
|
|
158
|
+
? "configured-contract"
|
|
159
|
+
: primaryKeyColumns.length === 1 && primaryKeyColumns[0] === options.idColumn
|
|
160
|
+
? "declared-primary-key"
|
|
161
|
+
: "not-unique";
|
|
162
|
+
// Readability is provider authorization (`GET` advertised); it is
|
|
163
|
+
// deliberately independent from whether the adapter can address one row by
|
|
164
|
+
// its configured ID column.
|
|
165
|
+
const adapterQueryable = simpleName && idColumnPresent && uniqueStatus !== "not-unique";
|
|
166
|
+
let adapterQueryableReason;
|
|
167
|
+
if (!simpleName)
|
|
168
|
+
adapterQueryableReason = "the relation name is not a simple SQL identifier";
|
|
169
|
+
else if (!idColumnPresent)
|
|
170
|
+
adapterQueryableReason = `the configured ${options.idColumn} column is not declared on this relation`;
|
|
171
|
+
else if (uniqueStatus === "not-unique") {
|
|
172
|
+
adapterQueryableReason = primaryKeyColumns.length > 1
|
|
173
|
+
? `the declared primary key (${primaryKeyColumns.join(", ")}) is composite; the configured ${options.idColumn} column alone is not unique`
|
|
174
|
+
: `the declared primary key is not the configured ${options.idColumn} column`;
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
name,
|
|
178
|
+
methods,
|
|
179
|
+
readable: methods.includes("get"),
|
|
180
|
+
fields,
|
|
181
|
+
fieldsStatus,
|
|
182
|
+
omittedFields: entries.length - fields.length,
|
|
183
|
+
primaryKey: { status: primaryKeyStatus, columns: primaryKeyColumns },
|
|
184
|
+
idColumn: {
|
|
185
|
+
name: options.idColumn,
|
|
186
|
+
present: idColumnPresent,
|
|
187
|
+
declaredPrimaryKey: primaryKeyColumns.includes(options.idColumn),
|
|
188
|
+
uniqueStatus,
|
|
189
|
+
},
|
|
190
|
+
adapterQueryable,
|
|
191
|
+
...(adapterQueryableReason === undefined ? {} : { adapterQueryableReason }),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Parses only the in-memory OpenAPI document. It never follows `$ref` over the
|
|
196
|
+
* network: a remote or unresolvable reference makes that field's type
|
|
197
|
+
* explicitly unavailable. Array/depth/body bounds are enforced by the caller
|
|
198
|
+
* and by this parser's relation/field slices.
|
|
199
|
+
*/
|
|
200
|
+
export function parsePostgrestOpenApi(document, options) {
|
|
201
|
+
if (!isPlainObject(document)) {
|
|
202
|
+
return { status: "unavailable", reason: "malformed-metadata", detail: "the OpenAPI document is not a JSON object" };
|
|
203
|
+
}
|
|
204
|
+
const paths = document.paths;
|
|
205
|
+
if (!isPlainObject(paths)) {
|
|
206
|
+
return { status: "unavailable", reason: "malformed-metadata", detail: "the OpenAPI document has no path object" };
|
|
207
|
+
}
|
|
208
|
+
const definitions = definitionMap(document);
|
|
209
|
+
const relationPaths = [];
|
|
210
|
+
for (const [path, pathItem] of Object.entries(paths)) {
|
|
211
|
+
const match = RELATION_PATH.exec(path);
|
|
212
|
+
if (match === null || !isPlainObject(pathItem) || path === "/")
|
|
213
|
+
continue;
|
|
214
|
+
const name = match[1];
|
|
215
|
+
if (name === undefined)
|
|
216
|
+
continue;
|
|
217
|
+
relationPaths.push([name, pathItem]);
|
|
218
|
+
}
|
|
219
|
+
if (relationPaths.length === 0) {
|
|
220
|
+
return {
|
|
221
|
+
status: "unavailable",
|
|
222
|
+
reason: "no-relations",
|
|
223
|
+
detail: "the request role sees no exposed relations; this is not evidence that the database is empty",
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
const included = relationPaths.slice(0, options.maxRelations);
|
|
227
|
+
return {
|
|
228
|
+
status: "available",
|
|
229
|
+
relations: included.map(([name, pathItem]) => relationMetadata(document, definitions, name, pathItem, options)),
|
|
230
|
+
relationCount: relationPaths.length,
|
|
231
|
+
truncated: relationPaths.length > included.length,
|
|
232
|
+
omittedRelations: relationPaths.length - included.length,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/fields.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgREST query-string parameters that PostgREST parses as protocol controls
|
|
3
|
+
* rather than as column filters. A filter keyed by one of them would be
|
|
4
|
+
* consumed as a control (for example, a column named `limit` would become the
|
|
5
|
+
* page size) and the predicate would silently disappear.
|
|
6
|
+
*
|
|
7
|
+
* PostgREST's documented identifier quoting marks a key as a field name
|
|
8
|
+
* instead, so a reserved name is rendered as a quoted key rather than refused.
|
|
9
|
+
* See "Reserved characters" in the PostgREST URL grammar: a quoted identifier
|
|
10
|
+
* is a column reference, e.g. `?%22information.cpe%22=like.*MS*`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const RESERVED_QUERY_FIELDS: ReadonlySet<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Renders a column name as a PostgREST parameter key or field reference.
|
|
15
|
+
*
|
|
16
|
+
* Every name reaching this function has already passed the adapter's simple
|
|
17
|
+
* SQL-identifier check, so a reserved name only needs surrounding double
|
|
18
|
+
* quotes and no escaping.
|
|
19
|
+
*/
|
|
20
|
+
export declare function postgrestFieldKey(field: string): string;
|
package/dist/fields.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgREST query-string parameters that PostgREST parses as protocol controls
|
|
3
|
+
* rather than as column filters. A filter keyed by one of them would be
|
|
4
|
+
* consumed as a control (for example, a column named `limit` would become the
|
|
5
|
+
* page size) and the predicate would silently disappear.
|
|
6
|
+
*
|
|
7
|
+
* PostgREST's documented identifier quoting marks a key as a field name
|
|
8
|
+
* instead, so a reserved name is rendered as a quoted key rather than refused.
|
|
9
|
+
* See "Reserved characters" in the PostgREST URL grammar: a quoted identifier
|
|
10
|
+
* is a column reference, e.g. `?%22information.cpe%22=like.*MS*`.
|
|
11
|
+
*/
|
|
12
|
+
export const RESERVED_QUERY_FIELDS = new Set([
|
|
13
|
+
"select",
|
|
14
|
+
"columns",
|
|
15
|
+
"on_conflict",
|
|
16
|
+
"order",
|
|
17
|
+
"limit",
|
|
18
|
+
"offset",
|
|
19
|
+
"and",
|
|
20
|
+
"or",
|
|
21
|
+
]);
|
|
22
|
+
/**
|
|
23
|
+
* Renders a column name as a PostgREST parameter key or field reference.
|
|
24
|
+
*
|
|
25
|
+
* Every name reaching this function has already passed the adapter's simple
|
|
26
|
+
* SQL-identifier check, so a reserved name only needs surrounding double
|
|
27
|
+
* quotes and no escaping.
|
|
28
|
+
*/
|
|
29
|
+
export function postgrestFieldKey(field) {
|
|
30
|
+
return RESERVED_QUERY_FIELDS.has(field) ? `"${field}"` : field;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,QAAQ;IACR,SAAS;IACT,aAAa;IACb,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,IAAI;CACL,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACjE,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { POSTGREST_READ_CAPABILITIES, type PostgrestCapabilityDescriptor, type PostgrestQueryBounds, type PostgrestReadCapabilities, } from "./capabilities.js";
|
|
2
|
+
export { PostgrestCursorError, type PostgrestCursorErrorReason, type PostgrestCursorValue, } from "./cursor.js";
|
|
3
|
+
export { type PostgrestConnectionStatus, type PostgrestDiscovery, type PostgrestDiscoveryBounds, type PostgrestDiscoveryReason, type PostgrestFieldDiscovery, type PostgrestIdColumnDiscovery, type PostgrestIdColumnUniqueness, type PostgrestPrimaryKeyDiscovery, type PostgrestRelationDiscovery, } from "./discovery.js";
|
|
4
|
+
export { PostgrestDatabase, PostgrestHttpError, PostgrestRequestError, type PostgrestDatabaseOptions, type PostgrestFetch, type PostgrestHeaderProvider, type PostgrestHeaders, } from "./database.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAI5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GAKtB,MAAM,eAAe,CAAC"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON parsing that refuses numbers JavaScript cannot carry losslessly.
|
|
3
|
+
*
|
|
4
|
+
* `JSON.parse` silently rounds before any reviver sees a value: an integer such
|
|
5
|
+
* as `9007199254740993` becomes `9007199254740992`, and a decimal such as
|
|
6
|
+
* `0.10000000000000001` becomes `0.1`. For a DALgo key, a keyset order value or
|
|
7
|
+
* record data that changes the identity or the value of a row, and for a cursor
|
|
8
|
+
* boundary it can repeat or skip an actual row. The raw text is therefore
|
|
9
|
+
* checked before parsing instead of trying to detect the loss afterwards.
|
|
10
|
+
*
|
|
11
|
+
* The policy is exact: a number token is accepted only when the decimal value
|
|
12
|
+
* it denotes is the same decimal value the adapter would serialize back
|
|
13
|
+
* (`String(Number(token))`), and when it neither underflows to zero, overflows
|
|
14
|
+
* to a non-finite value, becomes -0, nor denotes an integer outside the safe
|
|
15
|
+
* range. Textual spellings of one decimal value are equivalent, so `1`, `1.0`
|
|
16
|
+
* and `1e0` are all accepted, while `0.10000000000000001` and `1e-400` are
|
|
17
|
+
* refused. The thrown error deliberately carries no number or row value.
|
|
18
|
+
*/
|
|
19
|
+
export declare class PostgrestJsonNumberError extends TypeError {
|
|
20
|
+
constructor();
|
|
21
|
+
}
|
|
22
|
+
/** Parses JSON after proving every number literal survives the round trip exactly. */
|
|
23
|
+
export declare function parseLosslessJson(text: string): unknown;
|
|
24
|
+
/** True for a native number the adapter must not emit without losing precision. */
|
|
25
|
+
export declare function isUnsafeNativeNumber(value: number): boolean;
|