pogi 2.11.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/.vscode/launch.json +35 -0
- package/CHANGELOG.md +277 -0
- package/LICENSE +21 -0
- package/README.md +85 -0
- package/docs/API/PgDb.md +218 -0
- package/docs/API/PgSchema.md +91 -0
- package/docs/API/PgTable.md +365 -0
- package/docs/API/QueryOptions.md +77 -0
- package/docs/API/condition.md +133 -0
- package/docs/connection.md +91 -0
- package/docs/css/docs.css +164 -0
- package/docs/executingSqlFile.md +44 -0
- package/docs/faq.md +15 -0
- package/docs/functions.md +19 -0
- package/docs/generatingInterfaceForTables.md +35 -0
- package/docs/index.md +48 -0
- package/docs/logger.md +40 -0
- package/docs/mappingDatabaseTypes.md +89 -0
- package/docs/notification.md +19 -0
- package/docs/pitfalls.md +73 -0
- package/docs/streams.md +68 -0
- package/docs/transaction.md +65 -0
- package/lib/bin/generateInterface.d.ts +1 -0
- package/lib/bin/generateInterface.js +53 -0
- package/lib/bin/generateInterface.js.map +1 -0
- package/lib/connectionOptions.d.ts +25 -0
- package/lib/connectionOptions.js +3 -0
- package/lib/connectionOptions.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/pgConverters.d.ts +10 -0
- package/lib/pgConverters.js +66 -0
- package/lib/pgConverters.js.map +1 -0
- package/lib/pgDb.d.ts +86 -0
- package/lib/pgDb.js +745 -0
- package/lib/pgDb.js.map +1 -0
- package/lib/pgDbLogger.d.ts +5 -0
- package/lib/pgDbLogger.js +3 -0
- package/lib/pgDbLogger.js.map +1 -0
- package/lib/pgDbOperators.d.ts +113 -0
- package/lib/pgDbOperators.js +44 -0
- package/lib/pgDbOperators.js.map +1 -0
- package/lib/pgSchema.d.ts +16 -0
- package/lib/pgSchema.js +16 -0
- package/lib/pgSchema.js.map +1 -0
- package/lib/pgTable.d.ts +131 -0
- package/lib/pgTable.js +322 -0
- package/lib/pgTable.js.map +1 -0
- package/lib/pgUtils.d.ts +31 -0
- package/lib/pgUtils.js +157 -0
- package/lib/pgUtils.js.map +1 -0
- package/lib/queryAble.d.ts +76 -0
- package/lib/queryAble.js +330 -0
- package/lib/queryAble.js.map +1 -0
- package/lib/queryWhere.d.ts +8 -0
- package/lib/queryWhere.js +249 -0
- package/lib/queryWhere.js.map +1 -0
- package/mkdocs.yml +25 -0
- package/package.json +65 -0
- package/spec/resources/init.sql +122 -0
- package/spec/resources/throw_exception.sql +5 -0
- package/spec/resources/tricky.sql +13 -0
- package/spec/run.js +5 -0
- package/spec/support/jasmine.json +9 -0
- package/src/bin/generateInterface.ts +54 -0
- package/src/connectionOptions.ts +42 -0
- package/src/index.ts +6 -0
- package/src/pgConverters.ts +55 -0
- package/src/pgDb.ts +820 -0
- package/src/pgDbLogger.ts +13 -0
- package/src/pgDbOperators.ts +62 -0
- package/src/pgSchema.ts +15 -0
- package/src/pgTable.ts +401 -0
- package/src/pgUtils.ts +176 -0
- package/src/queryAble.ts +393 -0
- package/src/queryWhere.ts +326 -0
- package/src/test/pgDbOperatorSpec.ts +492 -0
- package/src/test/pgDbSpec.ts +1339 -0
- package/src/test/pgServiceRestartTest.ts +1500 -0
- package/src/tsconfig.json +33 -0
- package/utils_sql/lower.sql +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryAble.js","sourceRoot":"","sources":["../src/queryAble.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FieldType } from "./pgDb";
|
|
2
|
+
declare function generateWhere(conditions: any, fieldTypes: {
|
|
3
|
+
[index: string]: FieldType;
|
|
4
|
+
}, tableName: string, placeholderOffset: number, skipUndefined: any): {
|
|
5
|
+
where: string;
|
|
6
|
+
params: Array<any>;
|
|
7
|
+
};
|
|
8
|
+
export default generateWhere;
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pgDbOperators_1 = require("./pgDbOperators");
|
|
4
|
+
const pgDb_1 = require("./pgDb");
|
|
5
|
+
const _ = require("lodash");
|
|
6
|
+
const util = require("util");
|
|
7
|
+
class FieldAndOperator {
|
|
8
|
+
}
|
|
9
|
+
function generateWhere(conditions, fieldTypes, tableName, placeholderOffset = 0, skipUndefined) {
|
|
10
|
+
let result = generate({
|
|
11
|
+
params: [],
|
|
12
|
+
predicates: [],
|
|
13
|
+
offset: placeholderOffset,
|
|
14
|
+
}, conditions, fieldTypes, tableName, skipUndefined);
|
|
15
|
+
return {
|
|
16
|
+
where: result.predicates.length > 0 ? ' WHERE ' + result.predicates.join(' AND ') : '',
|
|
17
|
+
params: result.params
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function generate(result, conditions, fieldTypes, tableName, skipUndefined) {
|
|
21
|
+
_.each(conditions, (value, key) => {
|
|
22
|
+
let fieldAndOperator = parseKey(key);
|
|
23
|
+
if (value === undefined) {
|
|
24
|
+
if (skipUndefined === true)
|
|
25
|
+
return;
|
|
26
|
+
throw new Error('Invalid conditions! Field value undefined: "' + fieldAndOperator.field + '". Either delete the field, set it to null or use the options.skipUndefined parameter.');
|
|
27
|
+
}
|
|
28
|
+
else if (fieldAndOperator.field === 'or' || fieldAndOperator.field === 'and') {
|
|
29
|
+
result = handleOrAnd(result, fieldAndOperator, value, fieldTypes, tableName, skipUndefined);
|
|
30
|
+
}
|
|
31
|
+
else if (value === null) {
|
|
32
|
+
result = handleNullValue(result, fieldAndOperator, value);
|
|
33
|
+
}
|
|
34
|
+
else if (Array.isArray(value)) {
|
|
35
|
+
result = handleArrayValue(result, fieldAndOperator, value, fieldTypes);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
result = handleSingleValue(result, fieldAndOperator, value, fieldTypes, tableName);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
function handleOrAnd(result, fieldAndOperator, value, fieldTypes, tableName, skipUndefined) {
|
|
44
|
+
if (!Array.isArray(value)) {
|
|
45
|
+
value = [value];
|
|
46
|
+
}
|
|
47
|
+
let groupResult = _.reduce(value, (acc, v) => {
|
|
48
|
+
let subResult = generate({
|
|
49
|
+
params: [],
|
|
50
|
+
predicates: [],
|
|
51
|
+
offset: result.params.length + acc.offset
|
|
52
|
+
}, v, fieldTypes, tableName, skipUndefined);
|
|
53
|
+
acc.predicates.push(util.format('(%s)', subResult.predicates.join(' AND ')));
|
|
54
|
+
acc.params = acc.params.concat(subResult.params);
|
|
55
|
+
acc.offset += subResult.params.length;
|
|
56
|
+
return acc;
|
|
57
|
+
}, {
|
|
58
|
+
params: [],
|
|
59
|
+
predicates: [],
|
|
60
|
+
offset: result.offset
|
|
61
|
+
});
|
|
62
|
+
result.params = result.params.concat(groupResult.params);
|
|
63
|
+
if (groupResult.predicates.length) {
|
|
64
|
+
if (fieldAndOperator.field === 'and') {
|
|
65
|
+
result.predicates.push(util.format('(%s)', groupResult.predicates.join(' AND ')));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
result.predicates.push(util.format('(%s)', groupResult.predicates.join(' OR ')));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
function handleNullValue(result, fieldAndOperator, value) {
|
|
74
|
+
fieldAndOperator.operator = fieldAndOperator.operator === '=' ? 'IS' : 'IS NOT';
|
|
75
|
+
result.predicates.push(util.format('%s %s %s', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
function handleArrayValue(result, fieldAndOperator, value, fieldTypes) {
|
|
79
|
+
if (fieldAndOperator.mutator) {
|
|
80
|
+
value = value.map(v => fieldAndOperator.mutator(v));
|
|
81
|
+
}
|
|
82
|
+
let fieldType = fieldTypes[fieldAndOperator.field];
|
|
83
|
+
if (fieldType == pgDb_1.FieldType.JSON &&
|
|
84
|
+
['?|', '?&'].indexOf(fieldAndOperator.operator) != -1) {
|
|
85
|
+
result.params.push(value);
|
|
86
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
87
|
+
result.predicates.push(util.format('%s %s %s', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
else if (fieldType == pgDb_1.FieldType.JSON &&
|
|
91
|
+
['@>', '<@', '&&'].indexOf(fieldAndOperator.operator) != -1) {
|
|
92
|
+
result.params.push(JSON.stringify(value));
|
|
93
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
94
|
+
result.predicates.push(util.format('%s %s %s', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
else if ((!fieldType || fieldType == pgDb_1.FieldType.TIME) &&
|
|
98
|
+
['=', '<>', 'IN', 'NOT IN'].includes(fieldAndOperator.operator)) {
|
|
99
|
+
if (fieldAndOperator.operator === '=' || fieldAndOperator.operator === 'IN') {
|
|
100
|
+
fieldAndOperator.operator = '= ANY';
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
fieldAndOperator.operator = '<> ALL';
|
|
104
|
+
}
|
|
105
|
+
if (value.length === 0) {
|
|
106
|
+
throw new Error('Invalid conditions! empty array for field:"' + fieldAndOperator.field + '" and operator:"' + fieldAndOperator.operator + '"');
|
|
107
|
+
}
|
|
108
|
+
result.params.push(value
|
|
109
|
+
.map(v => (fieldType == pgDb_1.FieldType.TIME && !(value instanceof Date)) ? new Date(v) : v));
|
|
110
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
111
|
+
result.predicates.push(util.format('%s %s (%s)', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
else if (!fieldType && ['LIKE', 'ILIKE', 'SIMILAR TO', '~', '~*'].indexOf(fieldAndOperator.operator) != -1) {
|
|
115
|
+
result.params.push(value);
|
|
116
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
117
|
+
result.predicates.push(util.format('%s %s ANY(%s)', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
else if (!fieldType && ['NOT LIKE', 'NOT ILIKE', 'NOT SIMILAR TO', '!~', '!~*'].indexOf(fieldAndOperator.operator) != -1) {
|
|
121
|
+
result.params.push(value);
|
|
122
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
123
|
+
result.predicates.push(util.format('%s %s ALL(%s)', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
else if (fieldType == pgDb_1.FieldType.ARRAY &&
|
|
127
|
+
['=', '<>', '<', '>', '<=', '>=', '@>', '<@', '&&'].indexOf(fieldAndOperator.operator) != -1) {
|
|
128
|
+
result.params.push(value);
|
|
129
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
130
|
+
result.predicates.push(util.format('%s %s %s', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
throw new Error('[325] Not implemented operator: "' + fieldAndOperator.operator + '" for field ' + fieldAndOperator.field + ' with type ' + fieldType);
|
|
134
|
+
}
|
|
135
|
+
function handleSingleValue(result, fieldAndOperator, value, fieldTypes, tableName) {
|
|
136
|
+
if (fieldAndOperator.mutator) {
|
|
137
|
+
value = fieldAndOperator.mutator(value);
|
|
138
|
+
}
|
|
139
|
+
let fieldType = fieldTypes[fieldAndOperator.field];
|
|
140
|
+
if (fieldAndOperator.operator === '@@') {
|
|
141
|
+
if (typeof value == 'object') {
|
|
142
|
+
if (!(value.lang || value.language) || !(value.query || value.plainquery)) {
|
|
143
|
+
throw new Error('[499] only "lang"/"language" and "query/plainquery" properties are supported!');
|
|
144
|
+
}
|
|
145
|
+
if (fieldType == pgDb_1.FieldType.TSVECTOR) {
|
|
146
|
+
result.params.push(value.lang || value.language);
|
|
147
|
+
result.params.push(value.query || value.plainquery);
|
|
148
|
+
let template = value.query ? "%s %s to_tsquery($%s, $%s)" : "%s %s plainto_tsquery($%s, $%s)";
|
|
149
|
+
result.predicates.push(util.format(template, fieldAndOperator.quotedField, fieldAndOperator.operator, result.params.length - 1 + result.offset, result.params.length + result.offset));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
result.params.push(value.lang || value.language);
|
|
153
|
+
result.params.push(value.lang || value.language);
|
|
154
|
+
result.params.push(value.query || value.plainquery);
|
|
155
|
+
let template = value.query ? "to_tsvector($%s, %s) %s to_tsquery($%s, $%s)" : "to_tsvector($%s, %s) %s plainto_tsquery($%s, $%s)";
|
|
156
|
+
result.predicates.push(util.format(template, result.params.length - 2 + result.offset, fieldAndOperator.quotedField, fieldAndOperator.operator, result.params.length - 1 + result.offset, result.params.length + result.offset));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
result.params.push(value);
|
|
161
|
+
let template = fieldType == pgDb_1.FieldType.TSVECTOR ? "%s %s plainto_tsquery($%s)" : "to_tsvector(%s) %s plainto_tsquery($%s)";
|
|
162
|
+
result.predicates.push(util.format(template, fieldAndOperator.quotedField, fieldAndOperator.operator, result.params.length + result.offset));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (fieldType == pgDb_1.FieldType.ARRAY) {
|
|
166
|
+
if (['=', '<>'].indexOf(fieldAndOperator.operator) != -1) {
|
|
167
|
+
if (fieldAndOperator.originalOp == '=*') {
|
|
168
|
+
result.params.push([value]);
|
|
169
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
170
|
+
result.predicates.push(util.format('%s && %s', fieldAndOperator.quotedField, value));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
result.params.push(value);
|
|
174
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
175
|
+
result.predicates.push(util.format('%s %s ANY(%s)', value, fieldAndOperator.operator, fieldAndOperator.quotedField));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
else if (['LIKE', 'ILIKE', 'NOT LIKE', 'NOT ILIKE', 'SIMILAR TO', 'NOT SIMILAR TO'].indexOf(fieldAndOperator.operator) != -1) {
|
|
179
|
+
result.params.push(value);
|
|
180
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
181
|
+
let q = 'EXISTS (SELECT * FROM (SELECT UNNEST(' + tableName + '.%s) _el) _arr WHERE _arr._el %s %s)';
|
|
182
|
+
result.predicates.push(util.format(q, fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
throw new Error('[326] Not implemented operator: "' + fieldAndOperator.operator + '" for type ' + fieldType);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
result.params.push((fieldType == pgDb_1.FieldType.TIME && !(value instanceof Date)) ? new Date(value) : value);
|
|
190
|
+
value = util.format("$%s", result.params.length + result.offset);
|
|
191
|
+
result.predicates.push(util.format('%s %s %s', fieldAndOperator.quotedField, fieldAndOperator.operator, value));
|
|
192
|
+
}
|
|
193
|
+
return result;
|
|
194
|
+
}
|
|
195
|
+
function strip(arr) {
|
|
196
|
+
return arr.map((s) => s.trim()).filter(v => v != '');
|
|
197
|
+
}
|
|
198
|
+
function getOp(str) {
|
|
199
|
+
for (let i = 0; i < str.length; i++) {
|
|
200
|
+
if (pgDbOperators_1.default[str.substr(i)]) {
|
|
201
|
+
return str.substr(i);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return '';
|
|
205
|
+
}
|
|
206
|
+
function parseKey(key) {
|
|
207
|
+
key = key.trim();
|
|
208
|
+
let userOp = getOp(key);
|
|
209
|
+
if (userOp) {
|
|
210
|
+
key = key.substr(0, key.length - userOp.length);
|
|
211
|
+
}
|
|
212
|
+
let operation = pgDbOperators_1.default[userOp] || {};
|
|
213
|
+
let jsonRegexp = /(->[^>]|->>|#>[^>]|#>>)/;
|
|
214
|
+
let field;
|
|
215
|
+
let quotedField;
|
|
216
|
+
let quotedByUser = key.indexOf('"') > -1;
|
|
217
|
+
if (quotedByUser) {
|
|
218
|
+
quotedField = key;
|
|
219
|
+
field = /[^"]*"([^"]*)".*/.exec(key)[1];
|
|
220
|
+
if (!quotedField || !field) {
|
|
221
|
+
console.error("Parsing error!");
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
let parts = strip(key.split(jsonRegexp));
|
|
226
|
+
field = parts.shift();
|
|
227
|
+
quotedField = util.format('"%s"', field);
|
|
228
|
+
if (parts.length > 1) {
|
|
229
|
+
let jsonOp = parts.shift();
|
|
230
|
+
let jsonKey = parts.shift();
|
|
231
|
+
if (isNaN(jsonKey) && jsonKey.indexOf("'") == -1) {
|
|
232
|
+
jsonKey = util.format("'%s'", jsonKey);
|
|
233
|
+
}
|
|
234
|
+
quotedField = util.format('%s%s%s', quotedField, jsonOp, jsonKey);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (operation.fieldMutator) {
|
|
238
|
+
quotedField = operation.fieldMutator(field, quotedField);
|
|
239
|
+
}
|
|
240
|
+
return {
|
|
241
|
+
field: field,
|
|
242
|
+
quotedField: quotedField,
|
|
243
|
+
operator: (operation.operator || '=').toUpperCase(),
|
|
244
|
+
mutator: operation.mutator,
|
|
245
|
+
originalOp: userOp
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
exports.default = generateWhere;
|
|
249
|
+
//# sourceMappingURL=queryWhere.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryWhere.js","sourceRoot":"","sources":["../src/queryWhere.ts"],"names":[],"mappings":"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"}
|
package/mkdocs.yml
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
site_name: pogi | The PostgreSQL handler you have dreamed of :)
|
|
2
|
+
repo_url: https://github.com/holdfenytolvaj/pogi
|
|
3
|
+
site_url: http://pogi.readthedocs.io
|
|
4
|
+
theme: readthedocs
|
|
5
|
+
pages:
|
|
6
|
+
- Home : index.md
|
|
7
|
+
- Connection : connection.md
|
|
8
|
+
- Executing SQL files : executingSqlFile.md
|
|
9
|
+
- Functions : functions.md
|
|
10
|
+
- Generate interface for Db : generatingInterfaceForTables.md
|
|
11
|
+
- Logger : logger.md
|
|
12
|
+
- Mapping database types : mappingDatabaseTypes.md
|
|
13
|
+
- Transaction : transaction.md
|
|
14
|
+
- Stream : streams.md
|
|
15
|
+
- Notification : notification.md
|
|
16
|
+
- FAQ : faq.md
|
|
17
|
+
- Known pitfalls : pitfalls.md
|
|
18
|
+
- API :
|
|
19
|
+
- PgDb: API/PgDb.md
|
|
20
|
+
- PgSchema: API/PgSchema.md
|
|
21
|
+
- PgTable: API/PgTable.md
|
|
22
|
+
- Condition : API/condition.md
|
|
23
|
+
- Query options : API/QueryOptions.md
|
|
24
|
+
extra_css:
|
|
25
|
+
- css/docs.css
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pogi",
|
|
3
|
+
"version": "2.11.0",
|
|
4
|
+
"description": "An easy PostgreSQL query handler on top of pg.js",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc -p src/tsconfig.json",
|
|
9
|
+
"test": "node spec/run.js",
|
|
10
|
+
"test_debug": "node --inspect-brk=9229 spec/run.js",
|
|
11
|
+
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
|
|
12
|
+
"release_patch": "npm version patch; conventional-changelog -p angular -i CHANGELOG.md -s -r2; git add --all ./; git commit -m\"chore:generate changelog\"; git push; npm publish",
|
|
13
|
+
"release_minor": "npm version minor; conventional-changelog -p angular -i CHANGELOG.md -s -r2; git add --all ./; git commit -m\"chore:generate changelog\"; git push; npm publish",
|
|
14
|
+
"release_major": "npm version minor; conventional-changelog -p angular -i CHANGELOG.md -s -r2; git add --all ./; git commit -m\"chore:generate changelog\"; git push; npm publish"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/holdfenytolvaj/pogi.git"
|
|
19
|
+
},
|
|
20
|
+
"keywords": [
|
|
21
|
+
"typescript",
|
|
22
|
+
"postgresql",
|
|
23
|
+
"postgres",
|
|
24
|
+
"postgre",
|
|
25
|
+
"pgsql",
|
|
26
|
+
"pg"
|
|
27
|
+
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"handlebars": "^4.7.6",
|
|
30
|
+
"lodash": "^4.17.20",
|
|
31
|
+
"minimatch": "^3.0.4",
|
|
32
|
+
"moment": "^2.29.1",
|
|
33
|
+
"pg": "^8.5.1",
|
|
34
|
+
"pg-query-stream": "^4",
|
|
35
|
+
"through": "~2.3.8",
|
|
36
|
+
"tslib": "^2"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/jasmine": "^3.6",
|
|
40
|
+
"@types/node": "^14",
|
|
41
|
+
"@types/yargs": "^17.0.2",
|
|
42
|
+
"jasmine": "^3.6.4",
|
|
43
|
+
"semantic-release": "^17.3.7",
|
|
44
|
+
"shelljs": "^0.8.4",
|
|
45
|
+
"typescript": "^4",
|
|
46
|
+
"yargs": "^16.2.0"
|
|
47
|
+
},
|
|
48
|
+
"author": "Laszlo Radics<laszlo.radics@labcup.net>, Geza Radics<radicsge@protonmail.com>",
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/holdfenytolvaj/pogi/issues"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/holdfenytolvaj/pogi#readme",
|
|
54
|
+
"config": {
|
|
55
|
+
"commitizen": {
|
|
56
|
+
"path": "cz-conventional-changelog"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"release": {
|
|
60
|
+
"debug": false,
|
|
61
|
+
"verifyConditions": {
|
|
62
|
+
"path": "./node_modules/semantic-release/src/lib/plugin-noop.js"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
SET search_path TO __SCHEMA__;
|
|
2
|
+
DROP FUNCTION IF EXISTS list_gold_users();
|
|
3
|
+
DROP FUNCTION IF EXISTS increment();
|
|
4
|
+
|
|
5
|
+
-- drop tables
|
|
6
|
+
DROP VIEW IF EXISTS "users_view";
|
|
7
|
+
DROP TABLE IF EXISTS "users";
|
|
8
|
+
DROP TABLE IF EXISTS "groups";
|
|
9
|
+
DROP TABLE IF EXISTS "types";
|
|
10
|
+
-- drop sequences
|
|
11
|
+
DROP SEQUENCE IF EXISTS "users_id_seq";
|
|
12
|
+
-- drop types
|
|
13
|
+
DROP TYPE IF EXISTS __SCHEMA__."membershipType";
|
|
14
|
+
DROP TYPE IF EXISTS __SCHEMA__."categoryType";
|
|
15
|
+
DROP TYPE IF EXISTS __SCHEMA__."permissionForResourceType";
|
|
16
|
+
DROP TYPE IF EXISTS __SCHEMA__."permissionType";
|
|
17
|
+
|
|
18
|
+
DROP FUNCTION IF EXISTS update_tsv();
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
CREATE TYPE __SCHEMA__."membershipType" AS ENUM ('bronze', 'silver', 'gold');
|
|
22
|
+
CREATE TYPE __SCHEMA__."categoryType" AS ENUM ('sport', 'food', 'tech', 'music');
|
|
23
|
+
CREATE TYPE __SCHEMA__."permissionType" AS ENUM ('read', 'write', 'admin');
|
|
24
|
+
CREATE TYPE __SCHEMA__."permissionForResourceType" AS (
|
|
25
|
+
"permission" "permissionType",
|
|
26
|
+
"resource" "text"
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE TABLE IF NOT EXISTS "groups" (
|
|
30
|
+
"id" SERIAL PRIMARY KEY,
|
|
31
|
+
"name" varchar UNIQUE NOT NULL
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE SEQUENCE "users_id_seq";
|
|
35
|
+
CREATE TABLE IF NOT EXISTS "users" (
|
|
36
|
+
"id" varchar PRIMARY KEY NOT NULL DEFAULT ('us' || nextval('users_id_seq')::text || (LPAD(floor(random()*100)::text, 2, '0'))),
|
|
37
|
+
"name" varchar UNIQUE NOT NULL,
|
|
38
|
+
"aCategory" varchar,
|
|
39
|
+
|
|
40
|
+
"textList" text[],
|
|
41
|
+
"jsonbList" jsonb[],
|
|
42
|
+
"numberList" integer[], -- int4
|
|
43
|
+
"bigNumberList" bigInt[], -- int8
|
|
44
|
+
"timestamptzList" timestamptz[],
|
|
45
|
+
|
|
46
|
+
"membership" "membershipType",
|
|
47
|
+
"favourites" "categoryType"[],
|
|
48
|
+
|
|
49
|
+
"jsonList" jsonb,
|
|
50
|
+
"jsonObject" jsonb,
|
|
51
|
+
"mainGroup" integer REFERENCES groups(id),
|
|
52
|
+
"permission" "permissionForResourceType",
|
|
53
|
+
"permissionList" "permissionForResourceType"[],
|
|
54
|
+
|
|
55
|
+
"tsv" tsvector,
|
|
56
|
+
"updated" timestamp with time zone,
|
|
57
|
+
"created" timestamp,
|
|
58
|
+
"createdtz" timestamptz
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE IF NOT EXISTS "types" (
|
|
62
|
+
"text" varchar,
|
|
63
|
+
"int" integer,
|
|
64
|
+
"bigInt" bigInt,
|
|
65
|
+
"real" real,
|
|
66
|
+
"double" float8,
|
|
67
|
+
"bool" boolean,
|
|
68
|
+
"json" json,
|
|
69
|
+
"jsonB" jsonb,
|
|
70
|
+
"timestamptz" timestamptz,
|
|
71
|
+
|
|
72
|
+
"arrayText" varchar[],
|
|
73
|
+
"arrayInt" integer[],
|
|
74
|
+
"arrayBigInt" bigInt[],
|
|
75
|
+
"arrayReal" real[],
|
|
76
|
+
"arrayDouble" float8[],
|
|
77
|
+
"arrayBool" boolean[],
|
|
78
|
+
"arrayJson" json[],
|
|
79
|
+
"arrayJsonB" jsonb[],
|
|
80
|
+
"arrayTimestamptz" timestamptz[]
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
CREATE OR REPLACE FUNCTION update_updated_column() RETURNS TRIGGER AS $$
|
|
85
|
+
BEGIN
|
|
86
|
+
NEW.updated = now();
|
|
87
|
+
RETURN NEW;
|
|
88
|
+
END;
|
|
89
|
+
$$ language 'plpgsql';
|
|
90
|
+
|
|
91
|
+
CREATE TRIGGER "update_users_updated" BEFORE INSERT ON "users" FOR EACH ROW EXECUTE PROCEDURE __SCHEMA__.update_updated_column();
|
|
92
|
+
|
|
93
|
+
CREATE OR REPLACE FUNCTION list_gold_users()
|
|
94
|
+
RETURNS SETOF varchar AS $$
|
|
95
|
+
SELECT name FROM __SCHEMA__.users WHERE membership = 'gold';
|
|
96
|
+
$$ LANGUAGE SQL;
|
|
97
|
+
|
|
98
|
+
CREATE OR REPLACE FUNCTION increment(i INT)
|
|
99
|
+
RETURNS INT AS $$
|
|
100
|
+
BEGIN
|
|
101
|
+
RETURN i + 1;
|
|
102
|
+
END;
|
|
103
|
+
$$ LANGUAGE plpgsql;
|
|
104
|
+
|
|
105
|
+
CREATE FUNCTION update_tsv() RETURNS trigger AS $$
|
|
106
|
+
begin
|
|
107
|
+
new.tsv :=
|
|
108
|
+
setweight(to_tsvector('pg_catalog.english', coalesce(new.name,'')), 'A') ||
|
|
109
|
+
setweight(to_tsvector('pg_catalog.english', coalesce(new."aCategory",'')), 'B') ||
|
|
110
|
+
setweight(to_tsvector('pg_catalog.english', coalesce(new."jsonList"::text,'')), 'C');
|
|
111
|
+
return new;
|
|
112
|
+
end
|
|
113
|
+
$$ LANGUAGE plpgsql;
|
|
114
|
+
|
|
115
|
+
CREATE TRIGGER update_tsv BEFORE INSERT OR UPDATE ON __SCHEMA__."users" FOR EACH ROW EXECUTE PROCEDURE update_tsv();
|
|
116
|
+
|
|
117
|
+
CREATE OR REPLACE FUNCTION LOWER(text[]) RETURNS text[] LANGUAGE SQL IMMUTABLE AS
|
|
118
|
+
$$
|
|
119
|
+
SELECT array_agg(LOWER(value)) FROM unnest($1) value;
|
|
120
|
+
$$;
|
|
121
|
+
|
|
122
|
+
CREATE OR REPLACE VIEW users_view AS SELECT * FROM users;
|