@or-sdk/pgsql 0.22.5-pgsql.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/dist/cjs/Pgsql.js +128 -0
- package/dist/cjs/Pgsql.js.map +1 -0
- package/dist/cjs/constants.js +5 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/extractDatabaseNames.js +10 -0
- package/dist/cjs/utils/extractDatabaseNames.js.map +1 -0
- package/dist/cjs/utils/index.js +9 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/esm/Pgsql.js +66 -0
- package/dist/esm/Pgsql.js.map +1 -0
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/extractDatabaseNames.js +5 -0
- package/dist/esm/utils/extractDatabaseNames.js.map +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/types/Pgsql.d.ts +10 -0
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/types.d.ts +51 -0
- package/dist/types/utils/extractDatabaseNames.d.ts +3 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +29 -0
- package/src/Pgsql.ts +115 -0
- package/src/constants.ts +1 -0
- package/src/index.ts +2 -0
- package/src/types.ts +75 -0
- package/src/utils/extractDatabaseNames.ts +7 -0
- package/src/utils/index.ts +5 -0
- package/tsconfig.esm.json +9 -0
- package/tsconfig.json +7 -0
- package/tsconfig.types.json +9 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (_) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.Pgsql = void 0;
|
|
55
|
+
var base_1 = require("@or-sdk/base");
|
|
56
|
+
var constants_1 = require("./constants");
|
|
57
|
+
var utils_1 = require("./utils");
|
|
58
|
+
var Pgsql = (function (_super) {
|
|
59
|
+
__extends(Pgsql, _super);
|
|
60
|
+
function Pgsql(params) {
|
|
61
|
+
var token = params.token, discoveryUrl = params.discoveryUrl, accountId = params.accountId, pgsqlUrl = params.pgsqlUrl;
|
|
62
|
+
return _super.call(this, {
|
|
63
|
+
token: token,
|
|
64
|
+
discoveryUrl: discoveryUrl,
|
|
65
|
+
serviceKey: constants_1.SERVICE_KEY,
|
|
66
|
+
accountId: accountId,
|
|
67
|
+
serviceUrl: pgsqlUrl,
|
|
68
|
+
}) || this;
|
|
69
|
+
}
|
|
70
|
+
Pgsql.prototype.makeApiUrl = function (data) {
|
|
71
|
+
return this.isCrossAccount
|
|
72
|
+
? "".concat(data.url, "/").concat(this.targetAccountId)
|
|
73
|
+
: "".concat(data.url, "/current");
|
|
74
|
+
};
|
|
75
|
+
Pgsql.prototype.executeQuery = function (_a) {
|
|
76
|
+
var query = _a.query, params = _a.params, database = _a.database;
|
|
77
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
78
|
+
return __generator(this, function (_b) {
|
|
79
|
+
return [2, this.callApi({
|
|
80
|
+
data: { query: query, params: params, database: database },
|
|
81
|
+
method: 'POST',
|
|
82
|
+
route: 'query',
|
|
83
|
+
})];
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
Pgsql.prototype.listDatabases = function () {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
89
|
+
var databases;
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0: return [4, this.callApi({
|
|
93
|
+
method: 'GET',
|
|
94
|
+
route: 'databases'
|
|
95
|
+
})];
|
|
96
|
+
case 1:
|
|
97
|
+
databases = (_a.sent()).databases;
|
|
98
|
+
return [2, (0, base_1.makeList)((0, utils_1.extractDatabaseNames)(databases))];
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
Pgsql.prototype.createDatabase = function (database) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
105
|
+
return __generator(this, function (_a) {
|
|
106
|
+
return [2, this.callApi({
|
|
107
|
+
data: { database: database },
|
|
108
|
+
method: 'PUT',
|
|
109
|
+
route: 'databases'
|
|
110
|
+
})];
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
Pgsql.prototype.dropDatabase = function (database) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
116
|
+
return __generator(this, function (_a) {
|
|
117
|
+
return [2, this.callApi({
|
|
118
|
+
data: { database: database },
|
|
119
|
+
method: 'DELETE',
|
|
120
|
+
route: 'databases'
|
|
121
|
+
})];
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
return Pgsql;
|
|
126
|
+
}(base_1.Base));
|
|
127
|
+
exports.Pgsql = Pgsql;
|
|
128
|
+
//# sourceMappingURL=Pgsql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pgsql.js","sourceRoot":"","sources":["../../src/Pgsql.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA8E;AAO9E,yCAA0C;AAC1C,iCAA+C;AAS/C;IAA2B,yBAAI;IAO7B,eAAY,MAAmB;QACrB,IAAA,KAAK,GAAwC,MAAM,MAA9C,EAAE,YAAY,GAA0B,MAAM,aAAhC,EAAE,SAAS,GAAe,MAAM,UAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAY;eAE5D,kBAAM;YACJ,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,UAAU,EAAE,uBAAW;YACvB,SAAS,WAAA;YACT,UAAU,EAAE,QAAQ;SACrB,CAAC;IACJ,CAAC;IAED,0BAAU,GAAV,UAAW,IAA8B;QACvC,OAAO,IAAI,CAAC,cAAc;YACxB,CAAC,CAAC,UAAG,IAAI,CAAC,GAAG,cAAI,IAAI,CAAC,eAAe,CAAE;YACvC,CAAC,CAAC,UAAG,IAAI,CAAC,GAAG,aAAU,CAAC;IAC5B,CAAC;IAQY,4BAAY,GAAzB,UAA0B,EAA6C;YAA3C,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,QAAQ,cAAA;;;gBACjD,WAAO,IAAI,CAAC,OAAO,CAAuB;wBACxC,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE;wBACjC,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,OAAO;qBACf,CAAC,EAAC;;;KACJ;IAQY,6BAAa,GAA1B;;;;;4BACwB,WAAM,IAAI,CAAC,OAAO,CAAwB;4BAC9D,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,WAAW;yBACnB,CAAC,EAAA;;wBAHM,SAAS,GAAK,CAAA,SAGpB,CAAA,UAHe;wBAKjB,WAAO,IAAA,eAAQ,EAAS,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC,EAAC;;;;KAC1D;IAQY,8BAAc,GAA3B,UAA4B,QAAgB;;;gBAC1C,WAAO,IAAI,CAAC,OAAO,CAAyB;wBAC1C,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE;wBAClB,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,WAAW;qBACnB,CAAC,EAAA;;;KACH;IAwBY,4BAAY,GAAzB,UAA0B,QAAgB;;;gBACxC,WAAO,IAAI,CAAC,OAAO,CAAuB;wBACxC,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE;wBAClB,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,WAAW;qBACnB,CAAC,EAAA;;;KACH;IACH,YAAC;AAAD,CAAC,AAjGD,CAA2B,WAAI,GAiG9B;AAjGY,sBAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Pgsql = void 0;
|
|
18
|
+
var Pgsql_1 = require("./Pgsql");
|
|
19
|
+
Object.defineProperty(exports, "Pgsql", { enumerable: true, get: function () { return Pgsql_1.Pgsql; } });
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function extractDatabaseNames(databaseNameArr) {
|
|
4
|
+
return databaseNameArr.map(function (_a) {
|
|
5
|
+
var name = _a.name;
|
|
6
|
+
return name;
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
exports.default = extractDatabaseNames;
|
|
10
|
+
//# sourceMappingURL=extractDatabaseNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractDatabaseNames.js","sourceRoot":"","sources":["../../../src/utils/extractDatabaseNames.ts"],"names":[],"mappings":";;AAEA,SAAS,oBAAoB,CAAC,eAA4C;IACxE,OAAO,eAAe,CAAC,GAAG,CAAC,UAAC,EAAQ;YAAN,IAAI,UAAA;QAAO,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AACjD,CAAC;AAED,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extractDatabaseNames = void 0;
|
|
7
|
+
var extractDatabaseNames_1 = require("./extractDatabaseNames");
|
|
8
|
+
Object.defineProperty(exports, "extractDatabaseNames", { enumerable: true, get: function () { return __importDefault(extractDatabaseNames_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAIA,+DAAyE;AAAhE,6IAAA,OAAO,OAAwB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Base, makeList } from '@or-sdk/base';
|
|
11
|
+
import { SERVICE_KEY } from './constants';
|
|
12
|
+
import { extractDatabaseNames } from './utils';
|
|
13
|
+
export class Pgsql extends Base {
|
|
14
|
+
constructor(params) {
|
|
15
|
+
const { token, discoveryUrl, accountId, pgsqlUrl } = params;
|
|
16
|
+
super({
|
|
17
|
+
token,
|
|
18
|
+
discoveryUrl,
|
|
19
|
+
serviceKey: SERVICE_KEY,
|
|
20
|
+
accountId,
|
|
21
|
+
serviceUrl: pgsqlUrl,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
makeApiUrl(data) {
|
|
25
|
+
return this.isCrossAccount
|
|
26
|
+
? `${data.url}/${this.targetAccountId}`
|
|
27
|
+
: `${data.url}/current`;
|
|
28
|
+
}
|
|
29
|
+
executeQuery({ query, params, database }) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
return this.callApi({
|
|
32
|
+
data: { query, params, database },
|
|
33
|
+
method: 'POST',
|
|
34
|
+
route: 'query',
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
listDatabases() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const { databases } = yield this.callApi({
|
|
41
|
+
method: 'GET',
|
|
42
|
+
route: 'databases'
|
|
43
|
+
});
|
|
44
|
+
return makeList(extractDatabaseNames(databases));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
createDatabase(database) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
return this.callApi({
|
|
50
|
+
data: { database },
|
|
51
|
+
method: 'PUT',
|
|
52
|
+
route: 'databases'
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
dropDatabase(database) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
return this.callApi({
|
|
59
|
+
data: { database },
|
|
60
|
+
method: 'DELETE',
|
|
61
|
+
route: 'databases'
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=Pgsql.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractDatabaseNames.js","sourceRoot":"","sources":["../../../src/utils/extractDatabaseNames.ts"],"names":[],"mappings":"AAEA,SAAS,oBAAoB,CAAC,eAA4C;IACxE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Base, ServiceDiscoveryResponse, List } from '@or-sdk/base';
|
|
2
|
+
import { CreateDatabaseResponse, DropDatabaseResponse, ExecuteQueryArgs, ExecuteQueryResponse, PgsqlConfig } from './types';
|
|
3
|
+
export declare class Pgsql extends Base {
|
|
4
|
+
constructor(params: PgsqlConfig);
|
|
5
|
+
makeApiUrl(data: ServiceDiscoveryResponse): string;
|
|
6
|
+
executeQuery({ query, params, database }: ExecuteQueryArgs): Promise<ExecuteQueryResponse>;
|
|
7
|
+
listDatabases(): Promise<List<string>>;
|
|
8
|
+
createDatabase(database: string): Promise<CreateDatabaseResponse>;
|
|
9
|
+
dropDatabase(database: string): Promise<DropDatabaseResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SERVICE_KEY = "pgsql";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Token } from '@or-sdk/base';
|
|
2
|
+
export declare type PgsqlConfig = {
|
|
3
|
+
token: Token;
|
|
4
|
+
discoveryUrl?: string;
|
|
5
|
+
accountId?: string;
|
|
6
|
+
pgsqlUrl?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare type QueryRow = {
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
export declare type QueryField = {
|
|
12
|
+
name: string;
|
|
13
|
+
tableID: number;
|
|
14
|
+
columnID: number;
|
|
15
|
+
dataTypeID: number;
|
|
16
|
+
dataTypeSize: number;
|
|
17
|
+
dataTypeModifier: number;
|
|
18
|
+
format: string;
|
|
19
|
+
};
|
|
20
|
+
export declare type ExecuteQueryResponse = {
|
|
21
|
+
command: string;
|
|
22
|
+
rowCount: number;
|
|
23
|
+
oid: null | number;
|
|
24
|
+
rows: QueryRow[];
|
|
25
|
+
fields: QueryField[];
|
|
26
|
+
RowCtor: null | unknown;
|
|
27
|
+
rowAsArray: boolean;
|
|
28
|
+
};
|
|
29
|
+
export declare type ExecuteQueryArgs = {
|
|
30
|
+
query: string;
|
|
31
|
+
params: {
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
database: string;
|
|
35
|
+
};
|
|
36
|
+
export declare type CreateDatabaseResponse = {
|
|
37
|
+
ok: number;
|
|
38
|
+
result: [
|
|
39
|
+
unknown[],
|
|
40
|
+
unknown[]
|
|
41
|
+
];
|
|
42
|
+
};
|
|
43
|
+
export declare type ListDatabasesResponseItem = {
|
|
44
|
+
name: string;
|
|
45
|
+
};
|
|
46
|
+
export declare type ListDatabasesResponse = {
|
|
47
|
+
databases: ListDatabasesResponseItem[];
|
|
48
|
+
};
|
|
49
|
+
export declare type DropDatabaseResponse = {
|
|
50
|
+
ok?: number;
|
|
51
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as extractDatabaseNames } from './extractDatabaseNames';
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.22.5-pgsql.0",
|
|
3
|
+
"name": "@or-sdk/pgsql",
|
|
4
|
+
"main": "dist/cjs/index.js",
|
|
5
|
+
"module": "dist/esm/index.js",
|
|
6
|
+
"types": "dist/types/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "npm run clean && concurrently \"npm run build:cjs\" \"npm run build:esm\" \"npm run build:types\"",
|
|
9
|
+
"build:watch": "concurrently -r --hide 1,2 \"npm run build:watch:cjs\" \"npm run build:watch:esm\" \"npm run build:watch:types\"",
|
|
10
|
+
"build:cjs": "tsc --project tsconfig.json",
|
|
11
|
+
"build:watch:cjs": "tsc --project tsconfig.json -w",
|
|
12
|
+
"build:esm": "tsc --project tsconfig.esm.json",
|
|
13
|
+
"build:watch:esm": "tsc --project tsconfig.esm.json -w",
|
|
14
|
+
"build:types": "tsc --project tsconfig.types.json",
|
|
15
|
+
"build:watch:types": "tsc --project tsconfig.types.json -w",
|
|
16
|
+
"clean": "rm -rf ./dist"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"concurrently": "^6.4.0",
|
|
20
|
+
"typescript": "^4.4.4"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@or-sdk/base": "^0.23.0-pgsql.0"
|
|
27
|
+
},
|
|
28
|
+
"gitHead": "1ae7d9d2916f04d84b9cd47b525cb56d1ce1274c"
|
|
29
|
+
}
|
package/src/Pgsql.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Base, ServiceDiscoveryResponse, List, makeList } from '@or-sdk/base';
|
|
2
|
+
import {
|
|
3
|
+
CreateDatabaseResponse, DropDatabaseResponse,
|
|
4
|
+
ExecuteQueryArgs, ExecuteQueryResponse,
|
|
5
|
+
ListDatabasesResponse,
|
|
6
|
+
PgsqlConfig
|
|
7
|
+
} from './types';
|
|
8
|
+
import { SERVICE_KEY } from './constants';
|
|
9
|
+
import { extractDatabaseNames } from './utils';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* OneReach Pgsql service client
|
|
13
|
+
* ## Installation:
|
|
14
|
+
* ```
|
|
15
|
+
* $ npm i @or-sdk/pgsql
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class Pgsql extends Base {
|
|
19
|
+
/**
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { Pgsql } from '@or-sdk/pgsql'
|
|
22
|
+
* const pgsql = new Pgsql({token: 'my-account-token-string', discoveryUrl: 'http://example.pgsql/endpoint'});
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
constructor(params: PgsqlConfig) {
|
|
26
|
+
const { token, discoveryUrl, accountId, pgsqlUrl } = params;
|
|
27
|
+
|
|
28
|
+
super({
|
|
29
|
+
token,
|
|
30
|
+
discoveryUrl,
|
|
31
|
+
serviceKey: SERVICE_KEY,
|
|
32
|
+
accountId,
|
|
33
|
+
serviceUrl: pgsqlUrl,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
makeApiUrl(data: ServiceDiscoveryResponse): string {
|
|
38
|
+
return this.isCrossAccount
|
|
39
|
+
? `${data.url}/${this.targetAccountId}`
|
|
40
|
+
: `${data.url}/current`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Execute query
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const result = await pgsql.executeQuery();
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
public async executeQuery({ query, params, database }: ExecuteQueryArgs): Promise<ExecuteQueryResponse> {
|
|
50
|
+
return this.callApi<ExecuteQueryResponse>({
|
|
51
|
+
data: { query, params, database },
|
|
52
|
+
method: 'POST',
|
|
53
|
+
route: 'query',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* List databases
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const databaseList = await pgsql.listDatabases();
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
public async listDatabases(): Promise<List<string>> {
|
|
64
|
+
const { databases } = await this.callApi<ListDatabasesResponse>({
|
|
65
|
+
method: 'GET',
|
|
66
|
+
route: 'databases'
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
return makeList<string>(extractDatabaseNames(databases));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Create database
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const result = await pgsql.createDatabase();
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
public async createDatabase(database: string): Promise<CreateDatabaseResponse> {
|
|
79
|
+
return this.callApi<CreateDatabaseResponse>({
|
|
80
|
+
data: { database },
|
|
81
|
+
method: 'PUT',
|
|
82
|
+
route: 'databases'
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get database info
|
|
88
|
+
*
|
|
89
|
+
* @deprecated route not available
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const result = await pgsql.getDatabaseInfo();
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
// TODO: uncomment or replace route?
|
|
95
|
+
// public async getDatabaseInfo(database: string): Promise<unknown> {
|
|
96
|
+
// return this.callApi<unknown>({
|
|
97
|
+
// method: 'GET',
|
|
98
|
+
// route: `databases/${encodeURIComponent(database)}`
|
|
99
|
+
// })
|
|
100
|
+
// }
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Drop database
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const result = await pgsql.dropDatabase();
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
public async dropDatabase(database: string): Promise<DropDatabaseResponse> {
|
|
109
|
+
return this.callApi<DropDatabaseResponse>({
|
|
110
|
+
data: { database },
|
|
111
|
+
method: 'DELETE',
|
|
112
|
+
route: 'databases'
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
}
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SERVICE_KEY = 'pgsql';
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Token } from '@or-sdk/base';
|
|
2
|
+
|
|
3
|
+
export type PgsqlConfig = {
|
|
4
|
+
/**
|
|
5
|
+
* token
|
|
6
|
+
*/
|
|
7
|
+
token: Token;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Url of OneReach service discovery api
|
|
11
|
+
*/
|
|
12
|
+
discoveryUrl?: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Account ID for cross-account requests (super admin only)
|
|
16
|
+
*/
|
|
17
|
+
accountId?: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Url of OneReach Pgsql api
|
|
21
|
+
*/
|
|
22
|
+
pgsqlUrl?: string;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type QueryRow = {
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type QueryField = {
|
|
30
|
+
name: string;
|
|
31
|
+
tableID: number;
|
|
32
|
+
columnID: number;
|
|
33
|
+
dataTypeID: number;
|
|
34
|
+
dataTypeSize: number;
|
|
35
|
+
dataTypeModifier: number;
|
|
36
|
+
format: string;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type ExecuteQueryResponse = {
|
|
40
|
+
command: string;
|
|
41
|
+
rowCount: number;
|
|
42
|
+
oid: null | number;
|
|
43
|
+
rows: QueryRow[];
|
|
44
|
+
fields: QueryField[];
|
|
45
|
+
RowCtor: null | unknown;
|
|
46
|
+
rowAsArray: boolean;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export type ExecuteQueryArgs = {
|
|
50
|
+
query: string;
|
|
51
|
+
params: {
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
};
|
|
54
|
+
database: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export type CreateDatabaseResponse = {
|
|
58
|
+
ok: number;
|
|
59
|
+
result: [
|
|
60
|
+
unknown[],
|
|
61
|
+
unknown[]
|
|
62
|
+
];
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export type ListDatabasesResponseItem = {
|
|
66
|
+
name: string;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export type ListDatabasesResponse = {
|
|
70
|
+
databases: ListDatabasesResponseItem[];
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export type DropDatabaseResponse = {
|
|
74
|
+
ok?: number;
|
|
75
|
+
};
|
package/tsconfig.json
ADDED