pg-introspection 0.0.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.md +45 -0
- package/README.md +105 -0
- package/dist/acl.d.ts +151 -0
- package/dist/acl.d.ts.map +1 -0
- package/dist/acl.js +400 -0
- package/dist/acl.js.map +1 -0
- package/dist/augmentIntrospection.d.ts +6 -0
- package/dist/augmentIntrospection.d.ts.map +1 -0
- package/dist/augmentIntrospection.js +299 -0
- package/dist/augmentIntrospection.js.map +1 -0
- package/dist/index.d.ts +154 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/introspection.d.ts +1070 -0
- package/dist/introspection.d.ts.map +1 -0
- package/dist/introspection.js +207 -0
- package/dist/introspection.js.map +1 -0
- package/dist/smartComments.d.ts +9 -0
- package/dist/smartComments.d.ts.map +1 -0
- package/dist/smartComments.js +42 -0
- package/dist/smartComments.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.augmentIntrospection = void 0;
|
|
4
|
+
const acl_js_1 = require("./acl.js");
|
|
5
|
+
const smartComments_js_1 = require("./smartComments.js");
|
|
6
|
+
/**
|
|
7
|
+
* Only suitable for functions that accept no arguments.
|
|
8
|
+
*/
|
|
9
|
+
function memo(fn) {
|
|
10
|
+
let cache;
|
|
11
|
+
let called = false;
|
|
12
|
+
return () => {
|
|
13
|
+
if (!called) {
|
|
14
|
+
cache = fn();
|
|
15
|
+
called = true;
|
|
16
|
+
}
|
|
17
|
+
return cache;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function del(toDelete, collection, attr) {
|
|
21
|
+
for (let i = collection.length - 1; i >= 0; i--) {
|
|
22
|
+
const entry = collection[i];
|
|
23
|
+
if (toDelete.has(entry[attr])) {
|
|
24
|
+
collection.splice(i, 1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Adds helpers to the introspection results.
|
|
30
|
+
*/
|
|
31
|
+
function augmentIntrospection(introspectionResultsString, includeExtensionResources = false) {
|
|
32
|
+
const introspectionResults = JSON.parse(introspectionResultsString);
|
|
33
|
+
const introspection = introspectionResults;
|
|
34
|
+
const oidByCatalog = {};
|
|
35
|
+
for (const [oid, catalog] of Object.entries(introspection.catalog_by_oid)) {
|
|
36
|
+
oidByCatalog[catalog] = oid;
|
|
37
|
+
}
|
|
38
|
+
if (!includeExtensionResources) {
|
|
39
|
+
// Go through and delete things from the extensions
|
|
40
|
+
const extensionProcOids = new Set();
|
|
41
|
+
const extensionClassOids = new Set();
|
|
42
|
+
for (const pg_depend of introspection.depends) {
|
|
43
|
+
if (pg_depend.refclassid === oidByCatalog["pg_extension"] &&
|
|
44
|
+
pg_depend.deptype === "e" &&
|
|
45
|
+
pg_depend.classid === oidByCatalog["pg_proc"]) {
|
|
46
|
+
extensionProcOids.add(pg_depend.objid);
|
|
47
|
+
}
|
|
48
|
+
if (pg_depend.refclassid === oidByCatalog["pg_extension"] &&
|
|
49
|
+
pg_depend.deptype === "e" &&
|
|
50
|
+
pg_depend.classid === oidByCatalog["pg_class"]) {
|
|
51
|
+
extensionClassOids.add(pg_depend.objid);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
del(extensionProcOids, introspection.procs, "_id");
|
|
55
|
+
del(extensionClassOids, introspection.classes, "_id");
|
|
56
|
+
del(extensionClassOids, introspection.attributes, "attrelid");
|
|
57
|
+
del(extensionClassOids, introspection.types, "typrelid");
|
|
58
|
+
}
|
|
59
|
+
const getRole = (id) => introspection.roles.find((entity) => entity._id === id);
|
|
60
|
+
const getNamespace = (id) => introspection.namespaces.find((entity) => entity._id === id);
|
|
61
|
+
const getType = (id) => introspection.types.find((entity) => entity._id === id);
|
|
62
|
+
const getClass = (id) => introspection.classes.find((entity) => entity._id === id);
|
|
63
|
+
const getRange = (id) => introspection.ranges.find((entity) => entity.rngtypid === id);
|
|
64
|
+
const getAttributes = (id) => introspection.attributes
|
|
65
|
+
.filter((entity) => entity.attrelid === id)
|
|
66
|
+
.sort((a, z) => a.attnum - z.attnum);
|
|
67
|
+
const getConstraints = (id) => introspection.constraints
|
|
68
|
+
.filter((entity) => entity.conrelid === id)
|
|
69
|
+
// TODO: do NOT use localeCompare here; it's unstable across different machines
|
|
70
|
+
.sort((a, z) => a.conname.localeCompare(z.conname));
|
|
71
|
+
const getForeignConstraints = (id) => introspection.constraints.filter((entity) => entity.confrelid === id);
|
|
72
|
+
const getEnums = (id) => introspection.enums
|
|
73
|
+
.filter((entity) => entity.enumtypid === id)
|
|
74
|
+
.sort((a, z) => a.enumsortorder - z.enumsortorder);
|
|
75
|
+
const getIndexes = (id) => introspection.indexes.filter((entity) => entity.indrelid === id);
|
|
76
|
+
const PG_NAMESPACE = oidByCatalog["pg_namespace"];
|
|
77
|
+
const PG_CLASS = oidByCatalog["pg_class"];
|
|
78
|
+
const PG_PROC = oidByCatalog["pg_proc"];
|
|
79
|
+
const PG_TYPE = oidByCatalog["pg_type"];
|
|
80
|
+
const PG_CONSTRAINT = oidByCatalog["pg_constraint"];
|
|
81
|
+
const PG_EXTENSION = oidByCatalog["pg_extension"];
|
|
82
|
+
if (!PG_NAMESPACE ||
|
|
83
|
+
!PG_CLASS ||
|
|
84
|
+
!PG_PROC ||
|
|
85
|
+
!PG_TYPE ||
|
|
86
|
+
!PG_CONSTRAINT ||
|
|
87
|
+
!PG_EXTENSION) {
|
|
88
|
+
throw new Error(`Invalid introspection results; could not determine the ids of the system catalogs`);
|
|
89
|
+
}
|
|
90
|
+
const getDescription = (classoid, objoid, objsubid) => objsubid == null
|
|
91
|
+
? introspection.descriptions.find((d) => d.classoid === classoid && d.objoid === objoid)?.description ?? undefined
|
|
92
|
+
: introspection.descriptions.find((d) => d.classoid === classoid &&
|
|
93
|
+
d.objoid === objoid &&
|
|
94
|
+
d.objsubid === objsubid)?.description ?? undefined;
|
|
95
|
+
const getTagsAndDescription = (classoid, objoid, objsubid, fallback) => {
|
|
96
|
+
let description = getDescription(classoid, objoid, objsubid);
|
|
97
|
+
if (description == null && fallback) {
|
|
98
|
+
description = getDescription(fallback.classoid, fallback.objoid, fallback.objsubid);
|
|
99
|
+
}
|
|
100
|
+
return (0, smartComments_js_1.parseSmartComment)(description);
|
|
101
|
+
};
|
|
102
|
+
introspection.getCurrentUser = memo(() => introspection.roles.find((r) => r.rolname === introspection.current_user));
|
|
103
|
+
introspection.getNamespace = (by) => {
|
|
104
|
+
if ("id" in by && by.id) {
|
|
105
|
+
return getNamespace(by.id);
|
|
106
|
+
}
|
|
107
|
+
else if ("name" in by && by.name) {
|
|
108
|
+
return introspection.namespaces.find((entity) => entity.nspname === by.name);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
introspection.getClass = (by) => getClass(by.id);
|
|
112
|
+
introspection.getConstraint = (by) => introspection.constraints.find((c) => c._id === by.id);
|
|
113
|
+
introspection.getProc = (by) => introspection.procs.find((c) => c._id === by.id);
|
|
114
|
+
introspection.getRoles = (by) => introspection.roles.find((c) => c._id === by.id);
|
|
115
|
+
introspection.getType = (by) => introspection.types.find((c) => c._id === by.id);
|
|
116
|
+
introspection.getEnum = (by) => introspection.enums.find((c) => c._id === by.id);
|
|
117
|
+
introspection.getExtension = (by) => introspection.extensions.find((c) => c._id === by.id);
|
|
118
|
+
introspection.getIndex = (by) => introspection.indexes.find((c) => c.indexrelid === by.id);
|
|
119
|
+
introspection.getLanguage = (by) => introspection.languages.find((c) => c._id === by.id);
|
|
120
|
+
introspection.database.getDba = memo(() => getRole(introspection.database.datdba));
|
|
121
|
+
introspection.database.getACL = memo(() => (0, acl_js_1.parseAcls)(introspection, introspection.database.datacl, introspection.database.datdba, acl_js_1.OBJECT_DATABASE));
|
|
122
|
+
introspection.namespaces.forEach((entity) => {
|
|
123
|
+
entity.getOwner = memo(() => getRole(entity.nspowner));
|
|
124
|
+
entity.getDescription = memo(() => getDescription(PG_NAMESPACE, entity._id));
|
|
125
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_NAMESPACE, entity._id));
|
|
126
|
+
entity.getACL = memo(() => (0, acl_js_1.parseAcls)(introspection, entity.nspacl, entity.nspowner, acl_js_1.OBJECT_SCHEMA));
|
|
127
|
+
entity.getClass = (by) => introspection.classes.find((child) => child.relnamespace === entity._id && child.relname === by.name);
|
|
128
|
+
entity.getConstraint = (by) => introspection.constraints.find((child) => child.connamespace === entity._id && child.conname === by.name);
|
|
129
|
+
entity.getProcs = (by) => {
|
|
130
|
+
return introspection.procs.filter((child) => child.pronamespace === entity._id && child.proname === by.name);
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
introspection.classes.forEach((entity) => {
|
|
134
|
+
entity.getNamespace = memo(() => getNamespace(entity.relnamespace));
|
|
135
|
+
entity.getType = memo(() => getType(entity.reltype));
|
|
136
|
+
entity.getOfType = memo(() => getType(entity.reloftype));
|
|
137
|
+
entity.getOwner = memo(() => getRole(entity.relowner));
|
|
138
|
+
entity.getAttributes = memo(() => getAttributes(entity._id));
|
|
139
|
+
entity.getConstraints = memo(() => getConstraints(entity._id));
|
|
140
|
+
entity.getForeignConstraints = memo(() => getForeignConstraints(entity._id));
|
|
141
|
+
entity.getIndexes = memo(() => getIndexes(entity._id));
|
|
142
|
+
entity.getDescription = memo(() => getDescription(PG_CLASS, entity._id, 0));
|
|
143
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_CLASS, entity._id, 0, {
|
|
144
|
+
classoid: PG_TYPE,
|
|
145
|
+
objoid: entity.reltype,
|
|
146
|
+
}));
|
|
147
|
+
entity.getACL = memo(() => (0, acl_js_1.aclsForTable)(introspection, entity));
|
|
148
|
+
entity.getAttribute = (by) => {
|
|
149
|
+
const attributes = entity.getAttributes();
|
|
150
|
+
return attributes.find((att) => "number" in by && by.number
|
|
151
|
+
? att.attnum === by.number
|
|
152
|
+
: "name" in by && by.name
|
|
153
|
+
? att.attname === by.name
|
|
154
|
+
: false);
|
|
155
|
+
};
|
|
156
|
+
entity.getInherited = memo(() => introspection.inherits.filter((inh) => inh.inhrelid === entity._id));
|
|
157
|
+
});
|
|
158
|
+
introspection.indexes.forEach((entity) => {
|
|
159
|
+
entity.getIndexClass = memo(() => getClass(entity.indexrelid));
|
|
160
|
+
entity.getClass = memo(() => getClass(entity.indrelid));
|
|
161
|
+
entity.getKeys = memo(() => {
|
|
162
|
+
const owner = getClass(entity.indrelid);
|
|
163
|
+
const attrs = owner.getAttributes();
|
|
164
|
+
const keys = entity.indkey;
|
|
165
|
+
return keys.map((key) => key === 0 ? null : attrs.find((a) => a.attnum === key));
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
introspection.attributes.forEach((entity) => {
|
|
169
|
+
entity.getClass = memo(() => getClass(entity.attrelid));
|
|
170
|
+
entity.getType = memo(() => getType(entity.atttypid));
|
|
171
|
+
entity.getDescription = memo(() => getDescription(PG_CLASS, entity.attrelid, entity.attnum));
|
|
172
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_CLASS, entity.attrelid, entity.attnum));
|
|
173
|
+
entity.getACL = memo(() => (0, acl_js_1.parseAcls)(introspection, entity.attacl, entity.getClass().relowner, acl_js_1.OBJECT_COLUMN));
|
|
174
|
+
});
|
|
175
|
+
introspection.constraints.forEach((entity) => {
|
|
176
|
+
entity.getNamespace = memo(() => getNamespace(entity.connamespace));
|
|
177
|
+
entity.getClass = memo(() => getClass(entity.conrelid));
|
|
178
|
+
entity.getAttributes = memo(() => {
|
|
179
|
+
const klass = getClass(entity.conrelid);
|
|
180
|
+
if (!klass || !entity.conkey) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const attrs = klass.getAttributes();
|
|
184
|
+
return entity.conkey.map((key) => attrs.find((att) => att.attnum === key));
|
|
185
|
+
});
|
|
186
|
+
entity.getType = memo(() => getType(entity.contypid));
|
|
187
|
+
entity.getForeignClass = memo(() => getClass(entity.confrelid));
|
|
188
|
+
entity.getForeignAttributes = memo(() => {
|
|
189
|
+
const klass = getClass(entity.confrelid);
|
|
190
|
+
if (!klass || !entity.confkey) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const attrs = klass.getAttributes();
|
|
194
|
+
return entity.confkey.map((key) => attrs.find((att) => att.attnum === key));
|
|
195
|
+
});
|
|
196
|
+
entity.getDescription = memo(() => getDescription(PG_CONSTRAINT, entity._id));
|
|
197
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_CONSTRAINT, entity._id));
|
|
198
|
+
});
|
|
199
|
+
introspection.procs.forEach((entity) => {
|
|
200
|
+
entity.getNamespace = memo(() => getNamespace(entity.pronamespace));
|
|
201
|
+
entity.getOwner = memo(() => getRole(entity.proowner));
|
|
202
|
+
entity.getReturnType = memo(() => getType(entity.prorettype));
|
|
203
|
+
entity.getDescription = memo(() => getDescription(PG_PROC, entity._id));
|
|
204
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_PROC, entity._id));
|
|
205
|
+
entity.getArguments = memo(() => {
|
|
206
|
+
const args = [];
|
|
207
|
+
const {
|
|
208
|
+
// Null if everything 'in'. i: IN, o: OUT, b: INOUT, v: VARIADIC, t: TABLE
|
|
209
|
+
proargmodes,
|
|
210
|
+
// Null if no names
|
|
211
|
+
proargnames,
|
|
212
|
+
// Only input types
|
|
213
|
+
proargtypes,
|
|
214
|
+
// Null if no arg defaults, length = pronargdefaults
|
|
215
|
+
// proargdefaults,
|
|
216
|
+
// Number of inpart args
|
|
217
|
+
// pronargs,
|
|
218
|
+
// All args, null if all args are input
|
|
219
|
+
proallargtypes,
|
|
220
|
+
// Number of arguments with defaults
|
|
221
|
+
pronargdefaults, } = entity;
|
|
222
|
+
if (proallargtypes) {
|
|
223
|
+
for (let i = 0, l = proallargtypes.length; i < l; i++) {
|
|
224
|
+
const typeId = proallargtypes[i];
|
|
225
|
+
const type = introspection.types.find((t) => t._id === typeId);
|
|
226
|
+
if (!type) {
|
|
227
|
+
throw new Error("Corrupted introspection data");
|
|
228
|
+
}
|
|
229
|
+
const mode = proargmodes?.[i] ?? "i";
|
|
230
|
+
const isIn = mode === "i" || mode === "b" || mode === "v";
|
|
231
|
+
const isOut = mode === "o" || mode === "b" || mode === "t";
|
|
232
|
+
const isVariadic = mode === "v";
|
|
233
|
+
const hasDefault = pronargdefaults ? i >= l - pronargdefaults : false;
|
|
234
|
+
const name = proargnames?.[i] ?? null;
|
|
235
|
+
args.push({
|
|
236
|
+
isIn,
|
|
237
|
+
isOut,
|
|
238
|
+
isVariadic,
|
|
239
|
+
hasDefault,
|
|
240
|
+
type,
|
|
241
|
+
name,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else if (proargtypes) {
|
|
246
|
+
for (let i = 0, l = proargtypes.length; i < l; i++) {
|
|
247
|
+
const typeId = proargtypes[i];
|
|
248
|
+
const type = introspection.types.find((t) => t._id === typeId);
|
|
249
|
+
if (!type) {
|
|
250
|
+
throw new Error("Corrupted introspection data");
|
|
251
|
+
}
|
|
252
|
+
const mode = proargmodes?.[i] ?? "i";
|
|
253
|
+
const isIn = mode === "i" || mode === "b" || mode === "v";
|
|
254
|
+
const isOut = mode === "o" || mode === "b" || mode === "t";
|
|
255
|
+
const isVariadic = mode === "v";
|
|
256
|
+
const hasDefault = pronargdefaults ? i >= l - pronargdefaults : false;
|
|
257
|
+
const name = proargnames?.[i] ?? null;
|
|
258
|
+
args.push({
|
|
259
|
+
isIn,
|
|
260
|
+
isOut,
|
|
261
|
+
isVariadic,
|
|
262
|
+
hasDefault,
|
|
263
|
+
type,
|
|
264
|
+
name,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return args;
|
|
269
|
+
});
|
|
270
|
+
entity.getACL = memo(() => (0, acl_js_1.parseAcls)(introspection, entity.proacl, entity.proowner, acl_js_1.OBJECT_FUNCTION));
|
|
271
|
+
});
|
|
272
|
+
introspection.types.forEach((entity) => {
|
|
273
|
+
entity.getNamespace = memo(() => getNamespace(entity.typnamespace));
|
|
274
|
+
entity.getOwner = memo(() => getRole(entity.typowner));
|
|
275
|
+
entity.getClass = memo(() => getClass(entity.typrelid));
|
|
276
|
+
entity.getElemType = memo(() => getType(entity.typelem));
|
|
277
|
+
entity.getArrayType = memo(() => getType(entity.typarray));
|
|
278
|
+
entity.getEnumValues = memo(() => getEnums(entity._id));
|
|
279
|
+
entity.getRange = memo(() => getRange(entity._id));
|
|
280
|
+
entity.getDescription = memo(() => getDescription(PG_TYPE, entity._id));
|
|
281
|
+
entity.getTagsAndDescription = memo(() => getTagsAndDescription(PG_TYPE, entity._id));
|
|
282
|
+
});
|
|
283
|
+
introspection.enums.forEach((entity) => {
|
|
284
|
+
entity.getType = memo(() => getType(entity.enumtypid));
|
|
285
|
+
// Postgres doesn't support comments on enum values right now, but we still
|
|
286
|
+
// want to be able to add tags/description so we fake it.
|
|
287
|
+
entity.getTagsAndDescription = memo(() => ({
|
|
288
|
+
tags: Object.create(null),
|
|
289
|
+
description: "",
|
|
290
|
+
}));
|
|
291
|
+
});
|
|
292
|
+
introspection.ranges.forEach((entity) => {
|
|
293
|
+
entity.getType = memo(() => getType(entity.rngtypid));
|
|
294
|
+
entity.getSubType = memo(() => getType(entity.rngsubtype));
|
|
295
|
+
});
|
|
296
|
+
return introspection;
|
|
297
|
+
}
|
|
298
|
+
exports.augmentIntrospection = augmentIntrospection;
|
|
299
|
+
//# sourceMappingURL=augmentIntrospection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentIntrospection.js","sourceRoot":"","sources":["../src/augmentIntrospection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type { Introspection, PgAttribute, PgAuthMembers, PgClass, PgConstraint, PgDatabase, PgDepend, PgDescription, PgEnum, PgExtension, PgIndex, PgInherits, PgLanguage, PgNamespace, PgProc, PgRange, PgRoles, PgType } from "./introspection.js";
|
|
2
|
+
export { makeIntrospectionQuery } from "./introspection.js";
|
|
3
|
+
import type { AclObject } from "./acl.js";
|
|
4
|
+
import { aclContainsRole, expandRoles, resolvePermissions } from "./acl.js";
|
|
5
|
+
import type { PgSmartTagsAndDescription, PgSmartTagsDict } from "./smartComments.js";
|
|
6
|
+
export { parseSmartComment } from "./smartComments.js";
|
|
7
|
+
export { Introspection, PgAttribute, PgAuthMembers, PgClass, PgConstraint, PgDatabase, PgDepend, PgDescription, PgEnum, PgExtension, PgIndex, PgInherits, PgLanguage, PgNamespace, PgProc, PgRange, PgRoles, PgType, };
|
|
8
|
+
export { aclContainsRole, AclObject, expandRoles, resolvePermissions };
|
|
9
|
+
export declare function parseIntrospectionResults(introspectionResults: string, includeExtensionResources?: boolean): Introspection;
|
|
10
|
+
export { PgSmartTagsAndDescription, PgSmartTagsDict };
|
|
11
|
+
declare module "./introspection" {
|
|
12
|
+
interface Introspection {
|
|
13
|
+
getCurrentUser(): PgRoles | undefined;
|
|
14
|
+
getNamespace(by: {
|
|
15
|
+
id: string;
|
|
16
|
+
} | {
|
|
17
|
+
name: string;
|
|
18
|
+
}): PgNamespace | undefined;
|
|
19
|
+
getClass(by: {
|
|
20
|
+
id: string;
|
|
21
|
+
}): PgClass | undefined;
|
|
22
|
+
getConstraint(by: {
|
|
23
|
+
id: string;
|
|
24
|
+
}): PgConstraint | undefined;
|
|
25
|
+
getProc(by: {
|
|
26
|
+
id: string;
|
|
27
|
+
}): PgProc | undefined;
|
|
28
|
+
getRoles(by: {
|
|
29
|
+
id: string;
|
|
30
|
+
}): PgRoles | undefined;
|
|
31
|
+
getType(by: {
|
|
32
|
+
id: string;
|
|
33
|
+
}): PgType | undefined;
|
|
34
|
+
getEnum(by: {
|
|
35
|
+
id: string;
|
|
36
|
+
}): PgEnum | undefined;
|
|
37
|
+
getExtension(by: {
|
|
38
|
+
id: string;
|
|
39
|
+
}): PgExtension | undefined;
|
|
40
|
+
getIndex(by: {
|
|
41
|
+
id: string;
|
|
42
|
+
}): PgIndex | undefined;
|
|
43
|
+
getLanguage(by: {
|
|
44
|
+
id: string;
|
|
45
|
+
}): PgLanguage | undefined;
|
|
46
|
+
}
|
|
47
|
+
interface PgProcArgument {
|
|
48
|
+
isIn: boolean;
|
|
49
|
+
isOut: boolean;
|
|
50
|
+
isVariadic: boolean;
|
|
51
|
+
hasDefault: boolean;
|
|
52
|
+
type: PgType;
|
|
53
|
+
name: string | null;
|
|
54
|
+
}
|
|
55
|
+
interface PgDatabase {
|
|
56
|
+
getDba(): PgRoles | undefined;
|
|
57
|
+
getACL(): AclObject[];
|
|
58
|
+
}
|
|
59
|
+
interface PgNamespace {
|
|
60
|
+
getOwner(): PgRoles | undefined;
|
|
61
|
+
getDescription(): string | undefined;
|
|
62
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
63
|
+
getACL(): AclObject[];
|
|
64
|
+
getClass(by: {
|
|
65
|
+
name: string;
|
|
66
|
+
}): PgClass | undefined;
|
|
67
|
+
getConstraint(by: {
|
|
68
|
+
name: string;
|
|
69
|
+
}): PgConstraint | undefined;
|
|
70
|
+
getProcs(by: {
|
|
71
|
+
name: string;
|
|
72
|
+
}): PgProc[] | undefined;
|
|
73
|
+
}
|
|
74
|
+
interface PgClass {
|
|
75
|
+
getNamespace(): PgNamespace | undefined;
|
|
76
|
+
getType(): PgType | undefined;
|
|
77
|
+
getOfType(): PgType | undefined;
|
|
78
|
+
getOwner(): PgRoles | undefined;
|
|
79
|
+
getAttributes(): PgAttribute[];
|
|
80
|
+
getAttribute(by: {
|
|
81
|
+
number: number;
|
|
82
|
+
} | {
|
|
83
|
+
name: string;
|
|
84
|
+
}): PgAttribute | undefined;
|
|
85
|
+
getConstraints(): PgConstraint[];
|
|
86
|
+
getForeignConstraints(): PgConstraint[];
|
|
87
|
+
getIndexes(): PgIndex[];
|
|
88
|
+
getDescription(): string | undefined;
|
|
89
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
90
|
+
getACL(): AclObject[];
|
|
91
|
+
getInherited(): PgInherits[];
|
|
92
|
+
}
|
|
93
|
+
interface PgIndex {
|
|
94
|
+
/**
|
|
95
|
+
* Get the class that represents this index.
|
|
96
|
+
*/
|
|
97
|
+
getIndexClass(): PgClass | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Get the class (typically table) this index is for.
|
|
100
|
+
*/
|
|
101
|
+
getClass(): PgClass | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* The PgAttributes that are in this index; a null indicates that the entry
|
|
104
|
+
* is an expression rather than a column.
|
|
105
|
+
*/
|
|
106
|
+
getKeys(): Array<PgAttribute | null>;
|
|
107
|
+
}
|
|
108
|
+
interface PgAttribute {
|
|
109
|
+
getClass(): PgClass | undefined;
|
|
110
|
+
getType(): PgType | undefined;
|
|
111
|
+
getDescription(): string | undefined;
|
|
112
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
113
|
+
getACL(): AclObject[];
|
|
114
|
+
}
|
|
115
|
+
interface PgConstraint {
|
|
116
|
+
getNamespace(): PgNamespace | undefined;
|
|
117
|
+
getClass(): PgClass | undefined;
|
|
118
|
+
getAttributes(): PgAttribute[] | undefined;
|
|
119
|
+
getType(): PgType | undefined;
|
|
120
|
+
getForeignClass(): PgClass | undefined;
|
|
121
|
+
getForeignAttributes(): PgAttribute[] | undefined;
|
|
122
|
+
getDescription(): string | undefined;
|
|
123
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
124
|
+
}
|
|
125
|
+
interface PgProc {
|
|
126
|
+
getNamespace(): PgNamespace | undefined;
|
|
127
|
+
getOwner(): PgRoles | undefined;
|
|
128
|
+
getReturnType(): PgType | undefined;
|
|
129
|
+
getDescription(): string | undefined;
|
|
130
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
131
|
+
getArguments(): PgProcArgument[];
|
|
132
|
+
getACL(): AclObject[];
|
|
133
|
+
}
|
|
134
|
+
interface PgType {
|
|
135
|
+
getNamespace(): PgNamespace | undefined;
|
|
136
|
+
getOwner(): PgRoles | undefined;
|
|
137
|
+
getClass(): PgClass | undefined;
|
|
138
|
+
getElemType(): PgType | undefined;
|
|
139
|
+
getArrayType(): PgType | undefined;
|
|
140
|
+
getEnumValues(): PgEnum[] | undefined;
|
|
141
|
+
getRange(): PgRange | undefined;
|
|
142
|
+
getDescription(): string | undefined;
|
|
143
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
144
|
+
}
|
|
145
|
+
interface PgEnum {
|
|
146
|
+
getType(): PgType | undefined;
|
|
147
|
+
getTagsAndDescription(): PgSmartTagsAndDescription;
|
|
148
|
+
}
|
|
149
|
+
interface PgRange {
|
|
150
|
+
getType(): PgType | undefined;
|
|
151
|
+
getSubType(): PgType | undefined;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseIntrospectionResults = exports.resolvePermissions = exports.expandRoles = exports.aclContainsRole = exports.parseSmartComment = exports.makeIntrospectionQuery = void 0;
|
|
4
|
+
var introspection_js_1 = require("./introspection.js");
|
|
5
|
+
Object.defineProperty(exports, "makeIntrospectionQuery", { enumerable: true, get: function () { return introspection_js_1.makeIntrospectionQuery; } });
|
|
6
|
+
const acl_js_1 = require("./acl.js");
|
|
7
|
+
Object.defineProperty(exports, "aclContainsRole", { enumerable: true, get: function () { return acl_js_1.aclContainsRole; } });
|
|
8
|
+
Object.defineProperty(exports, "expandRoles", { enumerable: true, get: function () { return acl_js_1.expandRoles; } });
|
|
9
|
+
Object.defineProperty(exports, "resolvePermissions", { enumerable: true, get: function () { return acl_js_1.resolvePermissions; } });
|
|
10
|
+
const augmentIntrospection_js_1 = require("./augmentIntrospection.js");
|
|
11
|
+
var smartComments_js_1 = require("./smartComments.js");
|
|
12
|
+
Object.defineProperty(exports, "parseSmartComment", { enumerable: true, get: function () { return smartComments_js_1.parseSmartComment; } });
|
|
13
|
+
function parseIntrospectionResults(introspectionResults, includeExtensionResources = false) {
|
|
14
|
+
return (0, augmentIntrospection_js_1.augmentIntrospection)(introspectionResults, includeExtensionResources);
|
|
15
|
+
}
|
|
16
|
+
exports.parseIntrospectionResults = parseIntrospectionResults;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAoBA,uDAA4D;AAAnD,0HAAA,sBAAsB,OAAA;AAE/B,qCAA4E;AA8BnE,gGA9BA,wBAAe,OA8BA;AAAa,4FA9BX,oBAAW,OA8BW;AAAE,mGA9BX,2BAAkB,OA8BW;AA7BpE,uEAAiE;AAMjE,uDAAuD;AAA9C,qHAAA,iBAAiB,OAAA;AAyB1B,SAAgB,yBAAyB,CACvC,oBAA4B,EAC5B,yBAAyB,GAAG,KAAK;IAEjC,OAAO,IAAA,8CAAoB,EAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AAC/E,CAAC;AALD,8DAKC"}
|