@or-sdk/pgsql 0.22.5-pgsql.0 → 0.23.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/Pgsql.js +250 -8
  3. package/dist/cjs/Pgsql.js.map +1 -1
  4. package/dist/cjs/constants.js +2 -1
  5. package/dist/cjs/constants.js.map +1 -1
  6. package/dist/cjs/utils/createSchemaQuery.js +4 -0
  7. package/dist/cjs/utils/createSchemaQuery.js.map +1 -0
  8. package/dist/cjs/utils/encodeValue.js +17 -0
  9. package/dist/cjs/utils/encodeValue.js.map +1 -0
  10. package/dist/cjs/utils/getAddColumnsQuery.js +6 -0
  11. package/dist/cjs/utils/getAddColumnsQuery.js.map +1 -0
  12. package/dist/cjs/utils/getCreateTableQuery.js +6 -0
  13. package/dist/cjs/utils/getCreateTableQuery.js.map +1 -0
  14. package/dist/cjs/utils/getDeleteRowsQuery.js +9 -0
  15. package/dist/cjs/utils/getDeleteRowsQuery.js.map +1 -0
  16. package/dist/cjs/utils/getDropSchemaQuery.js +4 -0
  17. package/dist/cjs/utils/getDropSchemaQuery.js.map +1 -0
  18. package/dist/cjs/utils/getDropTableQuery.js +4 -0
  19. package/dist/cjs/utils/getDropTableQuery.js.map +1 -0
  20. package/dist/cjs/utils/getEditRowQuery.js +10 -0
  21. package/dist/cjs/utils/getEditRowQuery.js.map +1 -0
  22. package/dist/cjs/utils/getGenerateTableSchemaQuery.js +4 -0
  23. package/dist/cjs/utils/getGenerateTableSchemaQuery.js.map +1 -0
  24. package/dist/cjs/utils/getGetPrimaryKeysQuery.js +4 -0
  25. package/dist/cjs/utils/getGetPrimaryKeysQuery.js.map +1 -0
  26. package/dist/cjs/utils/getInsertKeys.js +9 -0
  27. package/dist/cjs/utils/getInsertKeys.js.map +1 -0
  28. package/dist/cjs/utils/getInsertQueries.js +18 -0
  29. package/dist/cjs/utils/getInsertQueries.js.map +1 -0
  30. package/dist/cjs/utils/getListTablesQuery.js +4 -0
  31. package/dist/cjs/utils/getListTablesQuery.js.map +1 -0
  32. package/dist/cjs/utils/getSelectAllCountQuery.js +4 -0
  33. package/dist/cjs/utils/getSelectAllCountQuery.js.map +1 -0
  34. package/dist/cjs/utils/getSelectAllQuery.js +4 -0
  35. package/dist/cjs/utils/getSelectAllQuery.js.map +1 -0
  36. package/dist/cjs/utils/index.js +33 -1
  37. package/dist/cjs/utils/index.js.map +1 -1
  38. package/dist/cjs/utils/splitPrimaryKeys.js +8 -0
  39. package/dist/cjs/utils/splitPrimaryKeys.js.map +1 -0
  40. package/dist/esm/Pgsql.js +160 -8
  41. package/dist/esm/Pgsql.js.map +1 -1
  42. package/dist/esm/constants.js +2 -0
  43. package/dist/esm/constants.js.map +1 -1
  44. package/dist/esm/utils/createSchemaQuery.js +2 -0
  45. package/dist/esm/utils/createSchemaQuery.js.map +1 -0
  46. package/dist/esm/utils/encodeValue.js +12 -0
  47. package/dist/esm/utils/encodeValue.js.map +1 -0
  48. package/dist/esm/utils/getAddColumnsQuery.js +2 -0
  49. package/dist/esm/utils/getAddColumnsQuery.js.map +1 -0
  50. package/dist/esm/utils/getCreateTableQuery.js +2 -0
  51. package/dist/esm/utils/getCreateTableQuery.js.map +1 -0
  52. package/dist/esm/utils/getDeleteRowsQuery.js +8 -0
  53. package/dist/esm/utils/getDeleteRowsQuery.js.map +1 -0
  54. package/dist/esm/utils/getDropSchemaQuery.js +2 -0
  55. package/dist/esm/utils/getDropSchemaQuery.js.map +1 -0
  56. package/dist/esm/utils/getDropTableQuery.js +2 -0
  57. package/dist/esm/utils/getDropTableQuery.js.map +1 -0
  58. package/dist/esm/utils/getEditRowQuery.js +10 -0
  59. package/dist/esm/utils/getEditRowQuery.js.map +1 -0
  60. package/dist/esm/utils/getGenerateTableSchemaQuery.js +18 -0
  61. package/dist/esm/utils/getGenerateTableSchemaQuery.js.map +1 -0
  62. package/dist/esm/utils/getGetPrimaryKeysQuery.js +9 -0
  63. package/dist/esm/utils/getGetPrimaryKeysQuery.js.map +1 -0
  64. package/dist/esm/utils/getInsertKeys.js +7 -0
  65. package/dist/esm/utils/getInsertKeys.js.map +1 -0
  66. package/dist/esm/utils/getInsertQueries.js +14 -0
  67. package/dist/esm/utils/getInsertQueries.js.map +1 -0
  68. package/dist/esm/utils/getListTablesQuery.js +4 -0
  69. package/dist/esm/utils/getListTablesQuery.js.map +1 -0
  70. package/dist/esm/utils/getSelectAllCountQuery.js +2 -0
  71. package/dist/esm/utils/getSelectAllCountQuery.js.map +1 -0
  72. package/dist/esm/utils/getSelectAllQuery.js +2 -0
  73. package/dist/esm/utils/getSelectAllQuery.js.map +1 -0
  74. package/dist/esm/utils/index.js +16 -0
  75. package/dist/esm/utils/index.js.map +1 -1
  76. package/dist/esm/utils/splitPrimaryKeys.js +3 -0
  77. package/dist/esm/utils/splitPrimaryKeys.js.map +1 -0
  78. package/dist/types/Pgsql.d.ts +45 -4
  79. package/dist/types/constants.d.ts +1 -0
  80. package/dist/types/types.d.ts +66 -7
  81. package/dist/types/utils/createSchemaQuery.d.ts +2 -0
  82. package/dist/types/utils/encodeValue.d.ts +3 -0
  83. package/dist/types/utils/getAddColumnsQuery.d.ts +3 -0
  84. package/dist/types/utils/getCreateTableQuery.d.ts +3 -0
  85. package/dist/types/utils/getDeleteRowsQuery.d.ts +3 -0
  86. package/dist/types/utils/getDropSchemaQuery.d.ts +2 -0
  87. package/dist/types/utils/getDropTableQuery.d.ts +2 -0
  88. package/dist/types/utils/getEditRowQuery.d.ts +3 -0
  89. package/dist/types/utils/getGenerateTableSchemaQuery.d.ts +2 -0
  90. package/dist/types/utils/getGetPrimaryKeysQuery.d.ts +2 -0
  91. package/dist/types/utils/getInsertKeys.d.ts +3 -0
  92. package/dist/types/utils/getInsertQueries.d.ts +3 -0
  93. package/dist/types/utils/getListTablesQuery.d.ts +2 -0
  94. package/dist/types/utils/getSelectAllCountQuery.d.ts +2 -0
  95. package/dist/types/utils/getSelectAllQuery.d.ts +2 -0
  96. package/dist/types/utils/index.d.ts +16 -0
  97. package/dist/types/utils/splitPrimaryKeys.d.ts +2 -0
  98. package/package.json +5 -3
  99. package/src/Pgsql.ts +310 -20
  100. package/src/constants.ts +3 -0
  101. package/src/types.ts +76 -8
  102. package/src/utils/createSchemaQuery.ts +1 -0
  103. package/src/utils/encodeValue.ts +11 -0
  104. package/src/utils/getAddColumnsQuery.ts +4 -0
  105. package/src/utils/getCreateTableQuery.ts +4 -0
  106. package/src/utils/getDeleteRowsQuery.ts +10 -0
  107. package/src/utils/getDropSchemaQuery.ts +1 -0
  108. package/src/utils/getDropTableQuery.ts +1 -0
  109. package/src/utils/getEditRowQuery.ts +12 -0
  110. package/src/utils/getGenerateTableSchemaQuery.ts +17 -0
  111. package/src/utils/getGetPrimaryKeysQuery.ts +8 -0
  112. package/src/utils/getInsertKeys.ts +9 -0
  113. package/src/utils/getInsertQueries.ts +18 -0
  114. package/src/utils/getListTablesQuery.ts +3 -0
  115. package/src/utils/getSelectAllCountQuery.ts +1 -0
  116. package/src/utils/getSelectAllQuery.ts +1 -0
  117. package/src/utils/index.ts +16 -0
  118. package/src/utils/splitPrimaryKeys.ts +3 -0
package/dist/esm/Pgsql.js CHANGED
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { Base, makeList } from '@or-sdk/base';
11
- import { SERVICE_KEY } from './constants';
12
- import { extractDatabaseNames } from './utils';
11
+ import { LIST_SCHEMAS_QUERY, SERVICE_KEY } from './constants';
12
+ import { extractDatabaseNames, getAddColumnsQuery, getCreateTableQuery, getDropSchemaQuery, getDropTableQuery, getEditRowQuery, getGenerateTableSchemaQuery, getInsertQueries, getListTablesQuery, getSelectAllCountQuery, getSelectAllQuery, getDeleteRowsQuery, createSchemaQuery, getGetPrimaryKeysQuery, } from './utils';
13
13
  export class Pgsql extends Base {
14
14
  constructor(params) {
15
15
  const { token, discoveryUrl, accountId, pgsqlUrl } = params;
@@ -29,7 +29,11 @@ export class Pgsql extends Base {
29
29
  executeQuery({ query, params, database }) {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
31
  return this.callApi({
32
- data: { query, params, database },
32
+ data: {
33
+ query,
34
+ params,
35
+ database,
36
+ },
33
37
  method: 'POST',
34
38
  route: 'query',
35
39
  });
@@ -39,26 +43,174 @@ export class Pgsql extends Base {
39
43
  return __awaiter(this, void 0, void 0, function* () {
40
44
  const { databases } = yield this.callApi({
41
45
  method: 'GET',
42
- route: 'databases'
46
+ route: 'databases',
43
47
  });
44
48
  return makeList(extractDatabaseNames(databases));
45
49
  });
46
50
  }
47
- createDatabase(database) {
51
+ createDatabase({ database }) {
48
52
  return __awaiter(this, void 0, void 0, function* () {
49
53
  return this.callApi({
50
54
  data: { database },
51
55
  method: 'PUT',
52
- route: 'databases'
56
+ route: 'databases',
53
57
  });
54
58
  });
55
59
  }
56
- dropDatabase(database) {
60
+ dropDatabase({ database }) {
57
61
  return __awaiter(this, void 0, void 0, function* () {
58
62
  return this.callApi({
59
63
  data: { database },
60
64
  method: 'DELETE',
61
- route: 'databases'
65
+ route: 'databases',
66
+ });
67
+ });
68
+ }
69
+ listTables({ database, schema = 'public' }) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const { rows } = yield this.executeQuery({
72
+ query: getListTablesQuery(schema),
73
+ database,
74
+ });
75
+ return makeList(rows.map(x => x.table_name));
76
+ });
77
+ }
78
+ listSchemas({ database }) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const { rows } = yield this.executeQuery({
81
+ query: LIST_SCHEMAS_QUERY,
82
+ database,
83
+ });
84
+ return makeList(rows.map(x => x.schema_name));
85
+ });
86
+ }
87
+ createSchema({ database, schema }) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ return this.executeQuery({
90
+ query: createSchemaQuery(schema),
91
+ database,
92
+ });
93
+ });
94
+ }
95
+ dropSchema({ database, schema }) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ return this.executeQuery({
98
+ query: getDropSchemaQuery(schema),
99
+ database,
100
+ });
101
+ });
102
+ }
103
+ dropTable({ database, schema, table }) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ return this.executeQuery({
106
+ query: getDropTableQuery(schema, table),
107
+ database,
108
+ });
109
+ });
110
+ }
111
+ createTable({ database, schema, table, columns, primaryKey }) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ return this.executeQuery({
114
+ query: getCreateTableQuery(schema, table, columns, primaryKey),
115
+ database,
116
+ });
117
+ });
118
+ }
119
+ addColumns({ database, schema, table, columns }) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ return this.executeQuery({
122
+ query: getAddColumnsQuery(schema, table, columns),
123
+ database,
124
+ });
125
+ });
126
+ }
127
+ insert({ database, schema, table, rows, chunkSize = 300, context }) {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ const res = [];
130
+ const queries = getInsertQueries(schema, table, rows, chunkSize);
131
+ for (const [index, query] of Array.from(queries.entries())) {
132
+ res.push(yield this.executeQuery({
133
+ query,
134
+ database,
135
+ }));
136
+ if (context) {
137
+ context.progress = Math.min((index + 1) / (rows.length / Math.min(chunkSize, rows.length)), 1) * 100;
138
+ }
139
+ }
140
+ return res;
141
+ });
142
+ }
143
+ selectAll({ database, query, context, chunkSize = 1000, offset = 0, limit }) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ let count, rows, result = [];
146
+ if (limit && limit < chunkSize) {
147
+ chunkSize = limit;
148
+ }
149
+ if (context) {
150
+ const { rows } = yield this.executeQuery({
151
+ query: getSelectAllCountQuery(query),
152
+ database,
153
+ });
154
+ count = rows[0].count;
155
+ context.total = count;
156
+ }
157
+ do {
158
+ ({ rows } = yield this.executeQuery({
159
+ query: getSelectAllQuery(query, offset, chunkSize),
160
+ database,
161
+ }));
162
+ offset += chunkSize;
163
+ result = result.concat(rows);
164
+ if (context) {
165
+ context.progress = Math.min(offset / count * 100, 100);
166
+ }
167
+ if (limit && result.length >= limit) {
168
+ result = result.slice(0, limit);
169
+ break;
170
+ }
171
+ } while (rows.length);
172
+ return makeList(result);
173
+ });
174
+ }
175
+ getPrimaryKeys({ database, schema, table }) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const { rows } = yield this.executeQuery({
178
+ database,
179
+ query: getGetPrimaryKeysQuery(schema, table),
180
+ });
181
+ return rows[0].pk;
182
+ });
183
+ }
184
+ editRow({ database, schema, table, key, value, row, primaryKeys }) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ return this.executeQuery({
187
+ database,
188
+ query: getEditRowQuery(schema, table, key, value, row, primaryKeys),
189
+ });
190
+ });
191
+ }
192
+ deleteRows({ database, schema, table, rows, primaryKeys }) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ return this.executeQuery({
195
+ database,
196
+ query: getDeleteRowsQuery(schema, table, rows, primaryKeys),
197
+ });
198
+ });
199
+ }
200
+ generateTableSchema({ database, schema, table }) {
201
+ return __awaiter(this, void 0, void 0, function* () {
202
+ const { rows } = yield this.executeQuery({
203
+ database,
204
+ query: getGenerateTableSchemaQuery(schema, table),
205
+ });
206
+ return rows[0].code;
207
+ });
208
+ }
209
+ getDBSize() {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ return yield this.callApi({
212
+ method: 'GET',
213
+ route: 'size',
62
214
  });
63
215
  });
64
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pgsql.js","sourceRoot":"","sources":["../../src/Pgsql.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAkC,QAAQ,EAAE,MAAM,cAAc,CAAC;AAO9E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAS/C,MAAM,OAAO,KAAM,SAAQ,IAAI;IAO7B,YAAY,MAAmB;QAC7B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE5D,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU,EAAE,WAAW;YACvB,SAAS;YACT,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAA8B;QACvC,OAAO,IAAI,CAAC,cAAc;YACxB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;IAC5B,CAAC;IAQY,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAoB;;YACrE,OAAO,IAAI,CAAC,OAAO,CAAuB;gBACxC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACjC,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;QACL,CAAC;KAAA;IAQY,aAAa;;YACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwB;gBAC9D,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAS,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,CAAC;KAAA;IAQY,cAAc,CAAC,QAAgB;;YAC1C,OAAO,IAAI,CAAC,OAAO,CAAyB;gBAC1C,IAAI,EAAE,EAAE,QAAQ,EAAE;gBAClB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,WAAW;aACnB,CAAC,CAAA;QACJ,CAAC;KAAA;IAwBY,YAAY,CAAC,QAAgB;;YACxC,OAAO,IAAI,CAAC,OAAO,CAAuB;gBACxC,IAAI,EAAE,EAAE,QAAQ,EAAE;gBAClB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAA;QACJ,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"Pgsql.js","sourceRoot":"","sources":["../../src/Pgsql.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
1
  export const SERVICE_KEY = 'pgsql';
2
+ export const LIST_SCHEMAS_QUERY = `SELECT schema_name FROM information_schema.schemata
3
+ where schema_name not in ('pg_catalog', 'information_schema')`;
2
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG;sEACoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (schema) => `create schema ${schema};`;
2
+ //# sourceMappingURL=createSchemaQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSchemaQuery.js","sourceRoot":"","sources":["../../../src/utils/createSchemaQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB,MAAM,GAAG,CAAC"}
@@ -0,0 +1,12 @@
1
+ import _ from 'lodash';
2
+ function encodeValue(value) {
3
+ if (_.isUndefined(value) || value === '' || _.isNull(value))
4
+ return 'NULL';
5
+ if (_.isString(value))
6
+ return `'${value.replaceAll('\'', '\'\'')}'`;
7
+ if (_.isNumber(value) || _.isBoolean(value))
8
+ return value;
9
+ return `'${JSON.stringify(value).replaceAll('\'', '\'\'')}'`;
10
+ }
11
+ export default encodeValue;
12
+ //# sourceMappingURL=encodeValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeValue.js","sourceRoot":"","sources":["../../../src/utils/encodeValue.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3E,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;IACpE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (schema, table, columns) => `alter table ${schema}.${table} ${columns.map(x => `add column ${x.name} ${x.type}`).join(', ')};`;
2
+ //# sourceMappingURL=getAddColumnsQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddColumnsQuery.js","sourceRoot":"","sources":["../../../src/utils/getAddColumnsQuery.ts"],"names":[],"mappings":"AAEA,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,OAAsB,EAAE,EAAE,CACvE,eAAe,MAAM,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (schema, table, columns, primaryKey) => `create table ${schema}.${table} (${columns.map(x => `${x.name} ${x.type}`).join(', ')}, primary key (${primaryKey}));`;
2
+ //# sourceMappingURL=getCreateTableQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCreateTableQuery.js","sourceRoot":"","sources":["../../../src/utils/getCreateTableQuery.ts"],"names":[],"mappings":"AAEA,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,OAAsB,EAAE,UAAkB,EAAE,EAAE,CAC3F,gBAAgB,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,KAAK,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { encodeValue, splitPrimaryKeys } from '../utils';
2
+ function getDeleteRowQuery(schema, table, rows, primaryKeys) {
3
+ const pk = splitPrimaryKeys(primaryKeys);
4
+ return `delete from ${schema}.${table}
5
+ where (${rows.map(row => `${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`).join(') \nOR (')})`;
6
+ }
7
+ export default getDeleteRowQuery;
8
+ //# sourceMappingURL=getDeleteRowsQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDeleteRowsQuery.js","sourceRoot":"","sources":["../../../src/utils/getDeleteRowsQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzD,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAa,EAAE,IAAW,EAAE,WAAmB;IACxF,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,eAAe,MAAM,IAAI,KAAK;SAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACzI,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (schema) => `drop schema ${schema} cascade;`;
2
+ //# sourceMappingURL=getDropSchemaQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDropSchemaQuery.js","sourceRoot":"","sources":["../../../src/utils/getDropSchemaQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,EAAE,CAAC,eAAe,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (schema, table) => `drop table ${schema}.${table};`;
2
+ //# sourceMappingURL=getDropTableQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDropTableQuery.js","sourceRoot":"","sources":["../../../src/utils/getDropTableQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC,cAAc,MAAM,IAAI,KAAK,GAAG,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { encodeValue, splitPrimaryKeys } from '../utils';
2
+ function getEditRowQuery(schema, table, key, value, row, primaryKeys) {
3
+ value = encodeValue(value);
4
+ const pk = splitPrimaryKeys(primaryKeys);
5
+ return `update ${schema}.${table}
6
+ set ${key} = ${value}
7
+ where ${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`;
8
+ }
9
+ export default getEditRowQuery;
10
+ //# sourceMappingURL=getEditRowQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEditRowQuery.js","sourceRoot":"","sources":["../../../src/utils/getEditRowQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGzD,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAE,KAAc,EAAE,GAAQ,EAAE,WAAmB;IAChH,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,UAAU,MAAM,IAAI,KAAK;MAC5B,GAAG,MAAM,KAAK;QACZ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ export default (schema, table) => `SELECT 'CREATE TABLE ' || '${schema}.${table}' || ' (' || '\n' || '' ||
2
+ string_agg(column_list.column_expr, ', ' || '\n' || '') ||
3
+ '' || ',\n' || 'PRIMARY KEY (' || (SELECT string_agg(a.attname, ', ') AS pk
4
+ FROM
5
+ pg_constraint AS c
6
+ CROSS JOIN LATERAL UNNEST(c.conkey) AS cols(colnum) -- conkey is a list of the columns of the constraint; so we split it into rows so that we can join all column numbers onto their names in pg_attribute
7
+ INNER JOIN pg_attribute AS a ON a.attrelid = c.conrelid AND cols.colnum = a.attnum
8
+ WHERE
9
+ c.contype = 'p' -- p = primary key constraint
10
+ AND c.conrelid = '${schema}.${table}'::REGCLASS limit 1) || '));' code
11
+ FROM (
12
+ SELECT ' ' || column_name || ' ' || data_type ||
13
+ coalesce('(' || character_maximum_length || ')', '') ||
14
+ case when is_nullable = 'YES' then '' else ' NOT NULL' end as column_expr
15
+ FROM information_schema.columns
16
+ WHERE table_schema = '${schema}' AND table_name = '${table}'
17
+ ORDER BY ordinal_position) column_list;`;
18
+ //# sourceMappingURL=getGenerateTableSchemaQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGenerateTableSchemaQuery.js","sourceRoot":"","sources":["../../../src/utils/getGenerateTableSchemaQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC,8BAA8B,MAAM,IAAI,KAAK;;;;;;;;;4BASnE,MAAM,IAAI,KAAK;;;;;;8BAMb,MAAM,uBAAuB,KAAK;+CACjB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export default (schema, table) => `SELECT string_agg(a.attname, ', ') AS pk
2
+ FROM
3
+ pg_constraint AS c
4
+ CROSS JOIN LATERAL UNNEST(c.conkey) AS cols(colnum) -- conkey is a list of the columns of the constraint; so we split it into rows so that we can join all column numbers onto their names in pg_attribute
5
+ INNER JOIN pg_attribute AS a ON a.attrelid = c.conrelid AND cols.colnum = a.attnum
6
+ WHERE
7
+ c.contype = 'p' -- p = primary key constraint
8
+ AND c.conrelid = '${schema}.${table}'::REGCLASS;`;
9
+ //# sourceMappingURL=getGetPrimaryKeysQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGetPrimaryKeysQuery.js","sourceRoot":"","sources":["../../../src/utils/getGetPrimaryKeysQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC;;;;;;;wBAO1B,MAAM,IAAI,KAAK,cAAc,CAAC"}
@@ -0,0 +1,7 @@
1
+ function getInsertKeys(rows) {
2
+ const allKeys = {};
3
+ rows.forEach(x => Object.assign(allKeys, x));
4
+ return Object.keys(allKeys);
5
+ }
6
+ export default getInsertKeys;
7
+ //# sourceMappingURL=getInsertKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInsertKeys.js","sourceRoot":"","sources":["../../../src/utils/getInsertKeys.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,IAAW;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { encodeValue, getInsertKeys } from '../utils';
2
+ import _ from 'lodash';
3
+ function getInsertQueries(schema, table, insertRows, chunkSize) {
4
+ const rows = _.isArray(insertRows) ? insertRows : [insertRows];
5
+ const keys = getInsertKeys(rows);
6
+ const stringifyRow = (row) => `${keys.map(key => encodeValue(row[key])).join(', ')}`;
7
+ return _.chain(rows)
8
+ .chunk(chunkSize)
9
+ .map((chunk) => `insert into ${schema}.${table} (${keys.join(', ')})
10
+ values (${chunk.map(stringifyRow).join('), (')});`)
11
+ .value();
12
+ }
13
+ export default getInsertQueries;
14
+ //# sourceMappingURL=getInsertQueries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInsertQueries.js","sourceRoot":"","sources":["../../../src/utils/getInsertQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,UAAiB,EAAE,SAAiB;IAC3F,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE1F,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UAC5D,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9C,KAAK,EAAE,CAAC;AACb,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export default (schema) => `SELECT table_name FROM information_schema.tables
2
+ WHERE table_schema = '${schema}'
3
+ and table_type = 'BASE TABLE';`;
4
+ //# sourceMappingURL=getListTablesQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getListTablesQuery.js","sourceRoot":"","sources":["../../../src/utils/getListTablesQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,MAAc,EAAE,EAAE,CAAC;8BACL,MAAM;qCACC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (query) => `select count(*) from (${query}) x`;
2
+ //# sourceMappingURL=getSelectAllCountQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSelectAllCountQuery.js","sourceRoot":"","sources":["../../../src/utils/getSelectAllCountQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAyB,KAAK,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export default (query, offset, chunkSize) => `${query} offset ${offset} limit ${chunkSize}`;
2
+ //# sourceMappingURL=getSelectAllQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSelectAllQuery.js","sourceRoot":"","sources":["../../../src/utils/getSelectAllQuery.ts"],"names":[],"mappings":"AAAA,eAAe,CAAC,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,MAAM,UAAU,SAAS,EAAE,CAAC"}
@@ -1,2 +1,18 @@
1
1
  export { default as extractDatabaseNames } from './extractDatabaseNames';
2
+ export { default as getInsertKeys } from './getInsertKeys';
3
+ export { default as encodeValue } from './encodeValue';
4
+ export { default as splitPrimaryKeys } from './splitPrimaryKeys';
5
+ export { default as getListTablesQuery } from './getListTablesQuery';
6
+ export { default as createSchemaQuery } from './createSchemaQuery';
7
+ export { default as getDropSchemaQuery } from './getDropSchemaQuery';
8
+ export { default as getCreateTableQuery } from './getCreateTableQuery';
9
+ export { default as getDropTableQuery } from './getDropTableQuery';
10
+ export { default as getAddColumnsQuery } from './getAddColumnsQuery';
11
+ export { default as getInsertQueries } from './getInsertQueries';
12
+ export { default as getSelectAllCountQuery } from './getSelectAllCountQuery';
13
+ export { default as getSelectAllQuery } from './getSelectAllQuery';
14
+ export { default as getEditRowQuery } from './getEditRowQuery';
15
+ export { default as getDeleteRowsQuery } from './getDeleteRowsQuery';
16
+ export { default as getGenerateTableSchemaQuery } from './getGenerateTableSchemaQuery';
17
+ export { default as getGetPrimaryKeysQuery } from './getGetPrimaryKeysQuery';
2
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import _ from 'lodash';
2
+ export default (primaryKeys) => primaryKeys.split(',').map(x => _.trim(x));
3
+ //# sourceMappingURL=splitPrimaryKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitPrimaryKeys.js","sourceRoot":"","sources":["../../../src/utils/splitPrimaryKeys.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAe,CAAC,WAAmB,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,10 +1,51 @@
1
1
  import { Base, ServiceDiscoveryResponse, List } from '@or-sdk/base';
2
- import { CreateDatabaseResponse, DropDatabaseResponse, ExecuteQueryArgs, ExecuteQueryResponse, PgsqlConfig } from './types';
2
+ import { AddColumnsArgs, CreateDatabaseResponse, CreateTableArgs, DeleteRowsArgs, DropDatabaseResponse, EditRowArgs, ExecuteQueryArgs, ExecuteQueryResponse, GetDBSizeResult, InsertArgs, PgsqlConfig, Row, SelectAllArgs } from './types';
3
3
  export declare class Pgsql extends Base {
4
4
  constructor(params: PgsqlConfig);
5
5
  makeApiUrl(data: ServiceDiscoveryResponse): string;
6
- executeQuery({ query, params, database }: ExecuteQueryArgs): Promise<ExecuteQueryResponse>;
6
+ executeQuery<T>({ query, params, database }: ExecuteQueryArgs): Promise<ExecuteQueryResponse<T>>;
7
7
  listDatabases(): Promise<List<string>>;
8
- createDatabase(database: string): Promise<CreateDatabaseResponse>;
9
- dropDatabase(database: string): Promise<DropDatabaseResponse>;
8
+ createDatabase({ database }: {
9
+ database: string;
10
+ }): Promise<CreateDatabaseResponse>;
11
+ dropDatabase({ database }: {
12
+ database: string;
13
+ }): Promise<DropDatabaseResponse>;
14
+ listTables({ database, schema }: {
15
+ database: string;
16
+ schema?: string;
17
+ }): Promise<List<string>>;
18
+ listSchemas({ database }: {
19
+ database: string;
20
+ }): Promise<List<string>>;
21
+ createSchema({ database, schema }: {
22
+ database: string;
23
+ schema: string;
24
+ }): Promise<ExecuteQueryResponse<void>>;
25
+ dropSchema({ database, schema }: {
26
+ database: string;
27
+ schema: string;
28
+ }): Promise<ExecuteQueryResponse<void>>;
29
+ dropTable({ database, schema, table }: {
30
+ database: string;
31
+ schema: string;
32
+ table: string;
33
+ }): Promise<ExecuteQueryResponse<void>>;
34
+ createTable({ database, schema, table, columns, primaryKey }: CreateTableArgs): Promise<ExecuteQueryResponse<void>>;
35
+ addColumns({ database, schema, table, columns }: AddColumnsArgs): Promise<ExecuteQueryResponse<void>>;
36
+ insert({ database, schema, table, rows, chunkSize, context }: InsertArgs): Promise<ExecuteQueryResponse<void>[]>;
37
+ selectAll({ database, query, context, chunkSize, offset, limit }: SelectAllArgs): Promise<List<Row>>;
38
+ getPrimaryKeys({ database, schema, table }: {
39
+ database: string;
40
+ schema: string;
41
+ table: string;
42
+ }): Promise<string>;
43
+ editRow({ database, schema, table, key, value, row, primaryKeys }: EditRowArgs): Promise<ExecuteQueryResponse<void>>;
44
+ deleteRows({ database, schema, table, rows, primaryKeys }: DeleteRowsArgs): Promise<ExecuteQueryResponse<void>>;
45
+ generateTableSchema({ database, schema, table }: {
46
+ database: string;
47
+ schema: string;
48
+ table: string;
49
+ }): Promise<string>;
50
+ getDBSize(): Promise<GetDBSizeResult>;
10
51
  }
@@ -1 +1,2 @@
1
1
  export declare const SERVICE_KEY = "pgsql";
2
+ export declare const LIST_SCHEMAS_QUERY = "SELECT schema_name FROM information_schema.schemata\n where schema_name not in ('pg_catalog', 'information_schema')";
@@ -5,9 +5,6 @@ export declare type PgsqlConfig = {
5
5
  accountId?: string;
6
6
  pgsqlUrl?: string;
7
7
  };
8
- export declare type QueryRow = {
9
- [key: string]: unknown;
10
- };
11
8
  export declare type QueryField = {
12
9
  name: string;
13
10
  tableID: number;
@@ -17,18 +14,18 @@ export declare type QueryField = {
17
14
  dataTypeModifier: number;
18
15
  format: string;
19
16
  };
20
- export declare type ExecuteQueryResponse = {
17
+ export declare type ExecuteQueryResponse<T> = {
21
18
  command: string;
22
- rowCount: number;
19
+ rowCount: null | number;
23
20
  oid: null | number;
24
- rows: QueryRow[];
21
+ rows: T[];
25
22
  fields: QueryField[];
26
23
  RowCtor: null | unknown;
27
24
  rowAsArray: boolean;
28
25
  };
29
26
  export declare type ExecuteQueryArgs = {
30
27
  query: string;
31
- params: {
28
+ params?: {
32
29
  [key: string]: unknown;
33
30
  };
34
31
  database: string;
@@ -49,3 +46,65 @@ export declare type ListDatabasesResponse = {
49
46
  export declare type DropDatabaseResponse = {
50
47
  ok?: number;
51
48
  };
49
+ export declare type GetDBSizeResult = {
50
+ usedSize: number;
51
+ sizeLimit: string | number;
52
+ };
53
+ export declare type TableColumn = {
54
+ name: string;
55
+ type: number;
56
+ };
57
+ export declare type CreateTableArgs = {
58
+ database: string;
59
+ schema: string;
60
+ table: string;
61
+ columns: TableColumn[];
62
+ primaryKey: string;
63
+ };
64
+ export declare type AddColumnsArgs = {
65
+ database: string;
66
+ schema: string;
67
+ table: string;
68
+ columns: TableColumn[];
69
+ };
70
+ export declare type Row = {
71
+ [key: string]: unknown;
72
+ };
73
+ export declare type InsertArgs = {
74
+ database: string;
75
+ schema: string;
76
+ table: string;
77
+ rows: Row[];
78
+ chunkSize: number;
79
+ context?: {
80
+ progress?: number;
81
+ };
82
+ };
83
+ export declare type EncodedValue = string | number | boolean;
84
+ export declare type SelectAllArgs = {
85
+ database: string;
86
+ query: string;
87
+ context?: {
88
+ progress?: number;
89
+ total?: number;
90
+ };
91
+ chunkSize?: number;
92
+ offset?: number;
93
+ limit?: number;
94
+ };
95
+ export declare type EditRowArgs = {
96
+ database: string;
97
+ schema: string;
98
+ table: string;
99
+ key: string;
100
+ value: unknown;
101
+ row: Row;
102
+ primaryKeys: string;
103
+ };
104
+ export declare type DeleteRowsArgs = {
105
+ database: string;
106
+ schema: string;
107
+ table: string;
108
+ rows: Row[];
109
+ primaryKeys: string;
110
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: (schema: string) => string;
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { EncodedValue } from '../types';
2
+ declare function encodeValue(value: unknown): EncodedValue;
3
+ export default encodeValue;
@@ -0,0 +1,3 @@
1
+ import { TableColumn } from '../types';
2
+ declare const _default: (schema: string, table: string, columns: TableColumn[]) => string;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { TableColumn } from '../types';
2
+ declare const _default: (schema: string, table: string, columns: TableColumn[], primaryKey: string) => string;
3
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { Row } from '../types';
2
+ declare function getDeleteRowQuery(schema: string, table: string, rows: Row[], primaryKeys: string): string;
3
+ export default getDeleteRowQuery;