@l-v-yonsama/multi-platform-database-drivers 0.14.4 → 1.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/built/src/drivers/Auth0Driver.d.ts +3 -3
- package/built/src/drivers/Auth0Driver.js +10 -10
- package/built/src/drivers/Auth0Driver.js.map +1 -1
- package/built/src/drivers/BaseDriver.d.ts +2 -2
- package/built/src/drivers/KeycloakDriver.d.ts +3 -3
- package/built/src/drivers/KeycloakDriver.js +8 -8
- package/built/src/drivers/KeycloakDriver.js.map +1 -1
- package/built/src/drivers/MemcacheDriver.d.ts +3 -3
- package/built/src/drivers/MemcacheDriver.js +10 -9
- package/built/src/drivers/MemcacheDriver.js.map +1 -1
- package/built/src/drivers/MqttDriver.d.ts +5 -3
- package/built/src/drivers/MqttDriver.js +56 -5
- package/built/src/drivers/MqttDriver.js.map +1 -1
- package/built/src/drivers/MySQLDriver.js +5 -1
- package/built/src/drivers/MySQLDriver.js.map +1 -1
- package/built/src/drivers/PostgresDriver.js +3 -0
- package/built/src/drivers/PostgresDriver.js.map +1 -1
- package/built/src/drivers/RedisDriver.d.ts +4 -4
- package/built/src/drivers/RedisDriver.js +4 -4
- package/built/src/drivers/RedisDriver.js.map +1 -1
- package/built/src/drivers/SQLServerDriver.js +3 -2
- package/built/src/drivers/SQLServerDriver.js.map +1 -1
- package/built/src/drivers/SQLiteDriver.js +7 -0
- package/built/src/drivers/SQLiteDriver.js.map +1 -1
- package/built/src/drivers/aws/AwsCloudwatchServiceClient.d.ts +7 -5
- package/built/src/drivers/aws/AwsCloudwatchServiceClient.js +14 -15
- package/built/src/drivers/aws/AwsCloudwatchServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsDynamoServiceClient.d.ts +2 -4
- package/built/src/drivers/aws/AwsDynamoServiceClient.js +0 -5
- package/built/src/drivers/aws/AwsDynamoServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsS3ServiceClient.d.ts +3 -3
- package/built/src/drivers/aws/AwsS3ServiceClient.js +6 -6
- package/built/src/drivers/aws/AwsS3ServiceClient.js.map +1 -1
- package/built/src/drivers/aws/AwsSQSServiceClient.d.ts +3 -3
- package/built/src/drivers/aws/AwsSQSServiceClient.js +5 -4
- package/built/src/drivers/aws/AwsSQSServiceClient.js.map +1 -1
- package/built/src/helpers/ProposalHelper.d.ts +5 -0
- package/built/src/helpers/ProposalHelper.js +275 -0
- package/built/src/helpers/ProposalHelper.js.map +1 -0
- package/built/src/helpers/SQLHelper.d.ts +4 -9
- package/built/src/helpers/SQLHelper.js +22 -390
- package/built/src/helpers/SQLHelper.js.map +1 -1
- package/built/src/helpers/index.d.ts +2 -0
- package/built/src/helpers/index.js +2 -0
- package/built/src/helpers/index.js.map +1 -1
- package/built/src/helpers/prompts/Auth0PromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/Auth0PromptHelper.js +45 -0
- package/built/src/helpers/prompts/Auth0PromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/AwsPromptHelper.d.ts +6 -0
- package/built/src/helpers/prompts/AwsPromptHelper.js +200 -0
- package/built/src/helpers/prompts/AwsPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/KeycloakPromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/KeycloakPromptHelper.js +38 -0
- package/built/src/helpers/prompts/KeycloakPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/MemcachePromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/MemcachePromptHelper.js +31 -0
- package/built/src/helpers/prompts/MemcachePromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/MqttPromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/MqttPromptHelper.js +31 -0
- package/built/src/helpers/prompts/MqttPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/RdsPromptHelper.d.ts +7 -0
- package/built/src/helpers/prompts/RdsPromptHelper.js +164 -0
- package/built/src/helpers/prompts/RdsPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/RedisPromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/RedisPromptHelper.js +22 -0
- package/built/src/helpers/prompts/RedisPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/SchemaPromptHelper.d.ts +2 -0
- package/built/src/helpers/prompts/SchemaPromptHelper.js +82 -0
- package/built/src/helpers/prompts/SchemaPromptHelper.js.map +1 -0
- package/built/src/helpers/prompts/index.d.ts +8 -0
- package/built/src/helpers/prompts/index.js +12 -0
- package/built/src/helpers/prompts/index.js.map +1 -0
- package/built/src/helpers/prompts/promptFormatUtils.d.ts +1 -0
- package/built/src/helpers/prompts/promptFormatUtils.js +8 -0
- package/built/src/helpers/prompts/promptFormatUtils.js.map +1 -0
- package/built/src/resource/DbResource.d.ts +3 -1
- package/built/src/resource/DbResource.js +3 -0
- package/built/src/resource/DbResource.js.map +1 -1
- package/built/src/types/drivers/ScanParams.d.ts +66 -8
- package/built/src/types/helpers/index.d.ts +38 -1
- package/built/src/types/helpers/index.js.map +1 -1
- package/built/src/types/resource/AwsDynamoTableAttributes.d.ts +1 -0
- package/built/src/types/resource/ConnectionSetting.d.ts +12 -0
- package/built/src/types/resource/ConnectionSetting.js +9 -0
- package/built/src/types/resource/ConnectionSetting.js.map +1 -1
- package/built/src/utils/dbType.d.ts +1 -0
- package/built/src/utils/dbType.js +11 -1
- package/built/src/utils/dbType.js.map +1 -1
- package/package.json +5 -7
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./constant"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./prompts"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./ProposalHelper"), exports);
|
|
5
7
|
tslib_1.__exportStar(require("./RdhRecordRuleHelper"), exports);
|
|
6
8
|
tslib_1.__exportStar(require("./RuleEngine"), exports);
|
|
7
9
|
tslib_1.__exportStar(require("./SQLHelper"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,gEAAsC;AACtC,uDAA6B;AAC7B,sDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,oDAA0B;AAC1B,2DAAiC;AACjC,gEAAsC;AACtC,uDAA6B;AAC7B,sDAA4B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAuth0SchemaDefinitionsForPrompt = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pluralize_1 = tslib_1.__importDefault(require("pluralize"));
|
|
6
|
+
const resource_1 = require("../../resource");
|
|
7
|
+
const promptFormatUtils_1 = require("./promptFormatUtils");
|
|
8
|
+
const createAuth0SchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
9
|
+
const { db } = params;
|
|
10
|
+
try {
|
|
11
|
+
const databases = Array.isArray(db) ? db : [db];
|
|
12
|
+
if (databases.length === 0) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const blocks = databases.map((auth0Db) => {
|
|
16
|
+
const lines = [
|
|
17
|
+
`Auth0 has no relational schema. This connection has ${(0, pluralize_1.default)('user', auth0Db.numOfUsers, true)} and ${(0, pluralize_1.default)('organization', auth0Db.numOfOrganizations, true)}.`,
|
|
18
|
+
];
|
|
19
|
+
const organizations = auth0Db.children.filter((it) => it instanceof resource_1.IamOrganization);
|
|
20
|
+
if (organizations.length > 0) {
|
|
21
|
+
lines.push('');
|
|
22
|
+
lines.push((0, promptFormatUtils_1.formatResourceGroupHeading)('Organizations', 'organization', organizations.length));
|
|
23
|
+
organizations.forEach((org) => {
|
|
24
|
+
lines.push(`- ${org.name}${org.comment ? ` (${org.comment})` : ''}`);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const clients = auth0Db.children.filter((it) => it instanceof resource_1.IamClient);
|
|
28
|
+
if (clients.length > 0) {
|
|
29
|
+
lines.push('');
|
|
30
|
+
lines.push((0, promptFormatUtils_1.formatResourceGroupHeading)('Clients', 'client', clients.length));
|
|
31
|
+
clients.forEach((client) => {
|
|
32
|
+
lines.push(`- ${client.name}${client.appType ? ` (type: ${client.appType})` : ''}`);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return lines.join('\n');
|
|
36
|
+
});
|
|
37
|
+
return blocks.join('\n\n');
|
|
38
|
+
}
|
|
39
|
+
catch (_) {
|
|
40
|
+
console.error(_);
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
});
|
|
44
|
+
exports.createAuth0SchemaDefinitionsForPrompt = createAuth0SchemaDefinitionsForPrompt;
|
|
45
|
+
//# sourceMappingURL=Auth0PromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth0PromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/Auth0PromptHelper.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,6CAA2E;AAE3E,2DAAiE;AAe1D,MAAM,qCAAqC,GAAG,CACnD,MAAmD,EACtB,EAAE;IAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEtB,IAAI;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAsB,EAAE,EAAE;YACtD,MAAM,KAAK,GAAa;gBACtB,uDAAuD,IAAA,mBAAS,EAC9D,MAAM,EACN,OAAO,CAAC,UAAU,EAClB,IAAI,CACL,QAAQ,IAAA,mBAAS,EAAC,cAAc,EAAE,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG;aACxE,CAAC;YAEF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC3C,CAAC,EAAE,EAAyB,EAAE,CAAC,EAAE,YAAY,0BAAe,CAC7D,CAAC;YACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CACR,IAAA,8CAA0B,EACxB,eAAe,EACf,cAAc,EACd,aAAa,CAAC,MAAM,CACrB,CACF,CAAC;gBACF,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;aACJ;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrC,CAAC,EAAE,EAAmB,EAAE,CAAC,EAAE,YAAY,oBAAS,CACjD,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,IAAA,8CAA0B,EAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACzB,KAAK,CAAC,IAAI,CACR,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,CAAC;gBACJ,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAElB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AA5DW,QAAA,qCAAqC,yCA4DhD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DbDynamoTable } from '../../resource';
|
|
2
|
+
import { CreateAwsSchemaDefinitionsForPromptParams } from '../../types';
|
|
3
|
+
export declare const toDynamoTableSchemaText: ({ dbTable, }: {
|
|
4
|
+
dbTable: DbDynamoTable;
|
|
5
|
+
}) => string;
|
|
6
|
+
export declare const createAwsSchemaDefinitionsForPrompt: (params: CreateAwsSchemaDefinitionsForPromptParams) => Promise<string | undefined>;
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAwsSchemaDefinitionsForPrompt = exports.toDynamoTableSchemaText = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const rdh_1 = require("@l-v-yonsama/rdh");
|
|
6
|
+
const resource_1 = require("../../resource");
|
|
7
|
+
const types_1 = require("../../types");
|
|
8
|
+
const promptFormatUtils_1 = require("./promptFormatUtils");
|
|
9
|
+
const DYNAMO_ATTR_TYPE_LABELS = {
|
|
10
|
+
S: 'String',
|
|
11
|
+
N: 'Number',
|
|
12
|
+
B: 'Binary',
|
|
13
|
+
SS: 'String Set',
|
|
14
|
+
NS: 'Number Set',
|
|
15
|
+
BS: 'Binary Set',
|
|
16
|
+
M: 'Map',
|
|
17
|
+
L: 'List',
|
|
18
|
+
NULL: 'Null',
|
|
19
|
+
BOOL: 'Boolean',
|
|
20
|
+
};
|
|
21
|
+
const formatDynamoAttrType = (attrType) => { var _a; return (_a = DYNAMO_ATTR_TYPE_LABELS[attrType]) !== null && _a !== void 0 ? _a : attrType; };
|
|
22
|
+
const formatDynamoKeySchemaLine = (attrName, keyType, attrTypeByName) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const typeLabel = formatDynamoAttrType((_a = attrTypeByName.get(attrName)) !== null && _a !== void 0 ? _a : '');
|
|
25
|
+
const keyLabel = keyType === 'RANGE' ? 'SORT KEY' : 'PARTITION KEY';
|
|
26
|
+
return `${attrName} ${typeLabel} ${keyLabel}`;
|
|
27
|
+
};
|
|
28
|
+
const DYNAMO_INDENT = ' ';
|
|
29
|
+
const toDynamoTableSchemaText = ({ dbTable, }) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
const attrTypeByName = new Map(dbTable.children.map((col) => [col.name, col.attrType]));
|
|
32
|
+
const blocks = [];
|
|
33
|
+
const pkCol = dbTable.children.find((col) => col.pk);
|
|
34
|
+
const skCol = dbTable.children.find((col) => col.sk);
|
|
35
|
+
const pkLines = [];
|
|
36
|
+
if (pkCol) {
|
|
37
|
+
pkLines.push(formatDynamoKeySchemaLine(pkCol.name, 'HASH', attrTypeByName));
|
|
38
|
+
}
|
|
39
|
+
if (skCol) {
|
|
40
|
+
pkLines.push(formatDynamoKeySchemaLine(skCol.name, 'RANGE', attrTypeByName));
|
|
41
|
+
}
|
|
42
|
+
blocks.push(pkLines.map((line) => `${DYNAMO_INDENT}${line}`).join(',\n'));
|
|
43
|
+
((_a = dbTable.attr.gsi) !== null && _a !== void 0 ? _a : []).forEach((index) => {
|
|
44
|
+
var _a;
|
|
45
|
+
const keyLines = ((_a = index.KeySchema) !== null && _a !== void 0 ? _a : []).map((ks) => { var _a; return formatDynamoKeySchemaLine((_a = ks.AttributeName) !== null && _a !== void 0 ? _a : '', ks.KeyType, attrTypeByName); });
|
|
46
|
+
const body = keyLines
|
|
47
|
+
.map((line) => `${DYNAMO_INDENT}${DYNAMO_INDENT}${line}`)
|
|
48
|
+
.join(',\n');
|
|
49
|
+
blocks.push(`${DYNAMO_INDENT}GSI ${index.IndexName} (\n${body}\n${DYNAMO_INDENT})`);
|
|
50
|
+
});
|
|
51
|
+
((_b = dbTable.attr.lsi) !== null && _b !== void 0 ? _b : []).forEach((index) => {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
const sortKey = ((_a = index.KeySchema) !== null && _a !== void 0 ? _a : []).find((ks) => ks.KeyType === 'RANGE');
|
|
54
|
+
const keyLines = sortKey
|
|
55
|
+
? [formatDynamoKeySchemaLine((_b = sortKey.AttributeName) !== null && _b !== void 0 ? _b : '', 'RANGE', attrTypeByName)]
|
|
56
|
+
: [];
|
|
57
|
+
const body = keyLines
|
|
58
|
+
.map((line) => `${DYNAMO_INDENT}${DYNAMO_INDENT}${line}`)
|
|
59
|
+
.join(',\n');
|
|
60
|
+
blocks.push(`${DYNAMO_INDENT}LSI ${index.IndexName} (\n${body}\n${DYNAMO_INDENT})`);
|
|
61
|
+
});
|
|
62
|
+
const attrLines = dbTable.children
|
|
63
|
+
.map((col) => `${DYNAMO_INDENT}${DYNAMO_INDENT}${col.name} ${formatDynamoAttrType(col.attrType)}`)
|
|
64
|
+
.join(',\n');
|
|
65
|
+
blocks.push(`${DYNAMO_INDENT}ATTRIBUTES (\n${attrLines}\n${DYNAMO_INDENT})`);
|
|
66
|
+
return `${dbTable.name} (\n${blocks.join('\n\n')}\n)`;
|
|
67
|
+
};
|
|
68
|
+
exports.toDynamoTableSchemaText = toDynamoTableSchemaText;
|
|
69
|
+
const renderDynamoTableSection = (awsDb, resourceName) => {
|
|
70
|
+
const tables = awsDb.children.filter((it) => it instanceof resource_1.DbDynamoTable);
|
|
71
|
+
const matches = resourceName
|
|
72
|
+
? tables.filter((it) => (0, rdh_1.equalsIgnoreCase)(it.name, resourceName))
|
|
73
|
+
: tables;
|
|
74
|
+
const lines = [
|
|
75
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('Tables', 'table', matches.length),
|
|
76
|
+
];
|
|
77
|
+
matches.forEach((table) => {
|
|
78
|
+
lines.push((0, exports.toDynamoTableSchemaText)({ dbTable: table }));
|
|
79
|
+
lines.push('');
|
|
80
|
+
});
|
|
81
|
+
return lines;
|
|
82
|
+
};
|
|
83
|
+
const renderS3Section = (awsDb, resourceName) => {
|
|
84
|
+
const buckets = awsDb.children.filter((it) => it instanceof resource_1.DbS3Bucket);
|
|
85
|
+
const owners = awsDb.children.filter((it) => it instanceof resource_1.DbS3Owner);
|
|
86
|
+
const matchedBuckets = resourceName
|
|
87
|
+
? buckets.filter((it) => (0, rdh_1.equalsIgnoreCase)(it.name, resourceName))
|
|
88
|
+
: buckets;
|
|
89
|
+
const matchedOwners = resourceName
|
|
90
|
+
? owners.filter((it) => (0, rdh_1.equalsIgnoreCase)(it.name, resourceName))
|
|
91
|
+
: owners;
|
|
92
|
+
const lines = [
|
|
93
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('Buckets', 'bucket', matchedBuckets.length),
|
|
94
|
+
];
|
|
95
|
+
matchedBuckets.forEach((bucket) => {
|
|
96
|
+
const created = bucket.attr.CreationDate
|
|
97
|
+
? new Date(bucket.attr.CreationDate).toISOString()
|
|
98
|
+
: 'unknown';
|
|
99
|
+
lines.push(`- Bucket: ${bucket.name} (created: ${created})`);
|
|
100
|
+
});
|
|
101
|
+
lines.push('');
|
|
102
|
+
lines.push((0, promptFormatUtils_1.formatResourceGroupHeading)('Owners', 'owner', matchedOwners.length));
|
|
103
|
+
matchedOwners.forEach((owner) => {
|
|
104
|
+
lines.push(`- Owner: ${owner.name} (id: ${owner.ownerId})`);
|
|
105
|
+
});
|
|
106
|
+
lines.push('');
|
|
107
|
+
return lines;
|
|
108
|
+
};
|
|
109
|
+
const renderCloudwatchSection = (awsDb, resourceName) => {
|
|
110
|
+
const groups = awsDb.children.filter((it) => it instanceof resource_1.DbLogGroup);
|
|
111
|
+
const matches = resourceName
|
|
112
|
+
? groups.filter((it) => (0, rdh_1.equalsIgnoreCase)(it.name, resourceName))
|
|
113
|
+
: groups;
|
|
114
|
+
const lines = [
|
|
115
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('LogGroups', 'log group', matches.length),
|
|
116
|
+
];
|
|
117
|
+
matches.forEach((group) => {
|
|
118
|
+
const parts = [];
|
|
119
|
+
if (group.attr.retentionInDays !== undefined) {
|
|
120
|
+
parts.push(`retention: ${group.attr.retentionInDays} days`);
|
|
121
|
+
}
|
|
122
|
+
if (group.attr.storedBytes !== undefined) {
|
|
123
|
+
parts.push(`size: ${group.attr.storedBytes} bytes`);
|
|
124
|
+
}
|
|
125
|
+
if (group.attr.creationTime !== undefined) {
|
|
126
|
+
parts.push(`created: ${new Date(group.attr.creationTime).toISOString()}`);
|
|
127
|
+
}
|
|
128
|
+
lines.push(`- LogGroup: ${group.name}${parts.length ? ` (${parts.join(', ')})` : ''}`);
|
|
129
|
+
});
|
|
130
|
+
lines.push('');
|
|
131
|
+
return lines;
|
|
132
|
+
};
|
|
133
|
+
const renderSqsSection = (awsDb, resourceName) => {
|
|
134
|
+
const queues = awsDb.children.filter((it) => it instanceof resource_1.DbSQSQueue);
|
|
135
|
+
const matches = resourceName
|
|
136
|
+
? queues.filter((it) => (0, rdh_1.equalsIgnoreCase)(it.name, resourceName))
|
|
137
|
+
: queues;
|
|
138
|
+
const lines = [
|
|
139
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('Queues', 'queue', matches.length),
|
|
140
|
+
];
|
|
141
|
+
matches.forEach((queue) => {
|
|
142
|
+
var _a;
|
|
143
|
+
const type = queue.attr.FifoQueue ? 'FIFO' : 'Standard';
|
|
144
|
+
let dlqInfo = 'DLQ: none';
|
|
145
|
+
if (queue.attr.RedrivePolicy) {
|
|
146
|
+
try {
|
|
147
|
+
const policy = typeof queue.attr.RedrivePolicy === 'string'
|
|
148
|
+
? JSON.parse(queue.attr.RedrivePolicy)
|
|
149
|
+
: queue.attr.RedrivePolicy;
|
|
150
|
+
if (policy === null || policy === void 0 ? void 0 : policy.deadLetterTargetArn) {
|
|
151
|
+
dlqInfo = `DLQ: ${policy.deadLetterTargetArn} (maxReceiveCount: ${(_a = policy.maxReceiveCount) !== null && _a !== void 0 ? _a : 'unknown'})`;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (_) {
|
|
155
|
+
dlqInfo = `DLQ: ${queue.attr.RedrivePolicy}`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
lines.push(`- ${queue.name} (type: ${type}, ${dlqInfo})`);
|
|
159
|
+
});
|
|
160
|
+
lines.push('');
|
|
161
|
+
return lines;
|
|
162
|
+
};
|
|
163
|
+
const createAwsSchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
+
const { db, resourceName, serviceType } = params;
|
|
165
|
+
try {
|
|
166
|
+
const databases = (Array.isArray(db) ? db : [db]).filter((it) => !serviceType || it.serviceType === serviceType);
|
|
167
|
+
const lines = [];
|
|
168
|
+
for (const awsDb of databases) {
|
|
169
|
+
let serviceLines = [];
|
|
170
|
+
switch (awsDb.serviceType) {
|
|
171
|
+
case types_1.AwsServiceType.DynamoDB:
|
|
172
|
+
serviceLines = renderDynamoTableSection(awsDb, resourceName);
|
|
173
|
+
break;
|
|
174
|
+
case types_1.AwsServiceType.S3:
|
|
175
|
+
serviceLines = renderS3Section(awsDb, resourceName);
|
|
176
|
+
break;
|
|
177
|
+
case types_1.AwsServiceType.Cloudwatch:
|
|
178
|
+
serviceLines = renderCloudwatchSection(awsDb, resourceName);
|
|
179
|
+
break;
|
|
180
|
+
case types_1.AwsServiceType.SQS:
|
|
181
|
+
serviceLines = renderSqsSection(awsDb, resourceName);
|
|
182
|
+
break;
|
|
183
|
+
default:
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
if (serviceLines.length === 0) {
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
lines.push(`-- ${awsDb.serviceType} --`);
|
|
190
|
+
lines.push(...serviceLines);
|
|
191
|
+
}
|
|
192
|
+
return lines.length > 0 ? lines.join('\n') : undefined;
|
|
193
|
+
}
|
|
194
|
+
catch (_) {
|
|
195
|
+
console.error(_);
|
|
196
|
+
}
|
|
197
|
+
return undefined;
|
|
198
|
+
});
|
|
199
|
+
exports.createAwsSchemaDefinitionsForPrompt = createAwsSchemaDefinitionsForPrompt;
|
|
200
|
+
//# sourceMappingURL=AwsPromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwsPromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/AwsPromptHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createKeycloakSchemaDefinitionsForPrompt = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const rdh_1 = require("@l-v-yonsama/rdh");
|
|
6
|
+
const promptFormatUtils_1 = require("./promptFormatUtils");
|
|
7
|
+
const createKeycloakSchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
const { db, realmName } = params;
|
|
9
|
+
try {
|
|
10
|
+
const databases = Array.isArray(db) ? db : [db];
|
|
11
|
+
if (databases.length === 0) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const realms = [];
|
|
15
|
+
databases.forEach((keycloakDb) => {
|
|
16
|
+
keycloakDb.children
|
|
17
|
+
.filter((it) => (realmName ? (0, rdh_1.equalsIgnoreCase)(it.name, realmName) : true))
|
|
18
|
+
.forEach((realm) => realms.push(realm));
|
|
19
|
+
});
|
|
20
|
+
if (realmName && realms.length === 0) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const lines = [
|
|
24
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('Realms', 'realm', realms.length),
|
|
25
|
+
];
|
|
26
|
+
realms.forEach((realm) => {
|
|
27
|
+
const marker = realm.isDefault ? ' [default]' : '';
|
|
28
|
+
lines.push(`- ${realm.name}${marker} (users: ${realm.numOfUsers}, groups: ${realm.numOfGroups})`);
|
|
29
|
+
});
|
|
30
|
+
return lines.join('\n');
|
|
31
|
+
}
|
|
32
|
+
catch (_) {
|
|
33
|
+
console.error(_);
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
});
|
|
37
|
+
exports.createKeycloakSchemaDefinitionsForPrompt = createKeycloakSchemaDefinitionsForPrompt;
|
|
38
|
+
//# sourceMappingURL=KeycloakPromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeycloakPromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/KeycloakPromptHelper.ts"],"names":[],"mappings":";;;;AAAA,0CAAoD;AAGpD,2DAAiE;AAQ1D,MAAM,wCAAwC,GAAG,CACtD,MAAsD,EACzB,EAAE;IAC/B,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEjC,IAAI;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,SAAS,CAAC,OAAO,CAAC,CAAC,UAA4B,EAAE,EAAE;YACjD,UAAU,CAAC,QAAQ;iBAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAgB,EAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,KAAK,GAAa;YACtB,IAAA,8CAA0B,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;SAC7D,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,IAAI,GAAG,MAAM,YAAY,KAAK,CAAC,UAAU,aAAa,KAAK,CAAC,WAAW,GAAG,CACtF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAElB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAvCW,QAAA,wCAAwC,4CAuCnD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMemcacheSchemaDefinitionsForPrompt = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const createMemcacheSchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
6
|
+
const { db } = params;
|
|
7
|
+
try {
|
|
8
|
+
const databases = Array.isArray(db) ? db : [db];
|
|
9
|
+
if (databases.length === 0) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const blocks = databases.map((memcacheDb) => {
|
|
13
|
+
const lines = [
|
|
14
|
+
`Memcache has no relational schema. Instead, keys move through Memcached's segmented LRU as they age, landing in one of three cache tiers ("generations"):`,
|
|
15
|
+
`- HOT: ${memcacheDb.hot} keys — most recently written or promoted; least likely to be evicted`,
|
|
16
|
+
`- WARM: ${memcacheDb.warm} keys — accessed at least once since arriving; protected from most eviction`,
|
|
17
|
+
`- COLD: ${memcacheDb.cold} keys — least recently used; first to be evicted under memory pressure`,
|
|
18
|
+
'',
|
|
19
|
+
`Servers: ${memcacheDb.servers}`,
|
|
20
|
+
];
|
|
21
|
+
return lines.join('\n');
|
|
22
|
+
});
|
|
23
|
+
return blocks.join('\n\n');
|
|
24
|
+
}
|
|
25
|
+
catch (_) {
|
|
26
|
+
console.error(_);
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
});
|
|
30
|
+
exports.createMemcacheSchemaDefinitionsForPrompt = createMemcacheSchemaDefinitionsForPrompt;
|
|
31
|
+
//# sourceMappingURL=MemcachePromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemcachePromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/MemcachePromptHelper.ts"],"names":[],"mappings":";;;;AAQO,MAAM,wCAAwC,GAAG,CACtD,MAAsD,EACzB,EAAE;IAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEtB,IAAI;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,UAA4B,EAAE,EAAE;YAC5D,MAAM,KAAK,GAAa;gBACtB,2JAA2J;gBAC3J,UAAU,UAAU,CAAC,GAAG,uEAAuE;gBAC/F,WAAW,UAAU,CAAC,IAAI,6EAA6E;gBACvG,WAAW,UAAU,CAAC,IAAI,wEAAwE;gBAClG,EAAE;gBACF,YAAY,UAAU,CAAC,OAAO,EAAE;aACjC,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAElB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AA9BW,QAAA,wCAAwC,4CA8BnD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMqttSchemaDefinitionsForPrompt = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const promptFormatUtils_1 = require("./promptFormatUtils");
|
|
6
|
+
const createMqttSchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
7
|
+
const { db } = params;
|
|
8
|
+
try {
|
|
9
|
+
const databases = Array.isArray(db) ? db : [db];
|
|
10
|
+
if (databases.length === 0) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const topicFilters = [];
|
|
14
|
+
databases.forEach((mqttDb) => {
|
|
15
|
+
topicFilters.push(...mqttDb.children);
|
|
16
|
+
});
|
|
17
|
+
const lines = [
|
|
18
|
+
(0, promptFormatUtils_1.formatResourceGroupHeading)('Topic filters', 'topic filter', topicFilters.length),
|
|
19
|
+
];
|
|
20
|
+
topicFilters.forEach((topic) => {
|
|
21
|
+
lines.push(`- ${topic.name} (QoS: ${topic.qos}, subscribed: ${topic.isSubscribed ? 'yes' : 'no'})`);
|
|
22
|
+
});
|
|
23
|
+
return lines.join('\n');
|
|
24
|
+
}
|
|
25
|
+
catch (_) {
|
|
26
|
+
console.error(_);
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
});
|
|
30
|
+
exports.createMqttSchemaDefinitionsForPrompt = createMqttSchemaDefinitionsForPrompt;
|
|
31
|
+
//# sourceMappingURL=MqttPromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MqttPromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/MqttPromptHelper.ts"],"names":[],"mappings":";;;;AAEA,2DAAiE;AAO1D,MAAM,oCAAoC,GAAG,CAClD,MAAkD,EACrB,EAAE;IAC/B,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAEtB,IAAI;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,YAAY,GAAqB,EAAE,CAAC;QAC1C,SAAS,CAAC,OAAO,CAAC,CAAC,MAAoB,EAAE,EAAE;YACzC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa;YACtB,IAAA,8CAA0B,EAAC,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,MAAM,CAAC;SACjF,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,GAAG,iBAAiB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAElB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AAhCW,QAAA,oCAAoC,wCAgC/C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DbTable } from '../../resource';
|
|
2
|
+
import { CreateRdsSchemaDefinitionsForPromptParams, CreateTableDefinitionsForPromptParams } from '../../types';
|
|
3
|
+
export declare const createTableDefinitionsForPrompt: (params: CreateTableDefinitionsForPromptParams) => Promise<string | undefined>;
|
|
4
|
+
export declare const createRdsSchemaDefinitionsForPrompt: (params: CreateRdsSchemaDefinitionsForPromptParams) => Promise<string | undefined>;
|
|
5
|
+
export declare const toCreateTableDDL: ({ dbTable }: {
|
|
6
|
+
dbTable: DbTable;
|
|
7
|
+
}) => string;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toCreateTableDDL = exports.createRdsSchemaDefinitionsForPrompt = exports.createTableDefinitionsForPrompt = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const rdh_1 = require("@l-v-yonsama/rdh");
|
|
6
|
+
const resource_1 = require("../../resource");
|
|
7
|
+
const SQLHelper_1 = require("../SQLHelper");
|
|
8
|
+
const renderRdsTableDefinitionsForPrompt = ({ dbTableWithSchemas, rdsDriver, }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
9
|
+
if (dbTableWithSchemas.length === 0) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const lines = [];
|
|
13
|
+
for (const dbTable of dbTableWithSchemas) {
|
|
14
|
+
let tableDDL = '';
|
|
15
|
+
if (rdsDriver && rdsDriver.supportsShowCreate()) {
|
|
16
|
+
tableDDL = yield rdsDriver.getTableDDL({
|
|
17
|
+
schemaName: dbTable.schemaName,
|
|
18
|
+
tableName: dbTable.table.name,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (tableDDL) {
|
|
22
|
+
lines.push(tableDDL);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const tableDef = (0, exports.toCreateTableDDL)({ dbTable: dbTable.table });
|
|
26
|
+
lines.push(tableDef);
|
|
27
|
+
}
|
|
28
|
+
lines.push('');
|
|
29
|
+
}
|
|
30
|
+
return lines.join('\n');
|
|
31
|
+
});
|
|
32
|
+
const createTableDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const { db: idb, sql, rdsDriver } = params;
|
|
34
|
+
const db = idb instanceof resource_1.RdsDatabase ? idb : (0, SQLHelper_1.toRdsDatabase)(idb);
|
|
35
|
+
try {
|
|
36
|
+
if (db) {
|
|
37
|
+
const qst = (0, SQLHelper_1.parseQuery)(sql);
|
|
38
|
+
if (qst === undefined || qst.names === undefined) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const dbTableWithSchemas = [];
|
|
42
|
+
const qnameList = [qst.names];
|
|
43
|
+
if (qst.additionalNames) {
|
|
44
|
+
qnameList.push(...qst.additionalNames);
|
|
45
|
+
}
|
|
46
|
+
qnameList.forEach(({ schemaName, tableName }) => {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
const schemas = db.children.filter((it) => schemaName ? (0, rdh_1.equalsIgnoreCase)(it.name, schemaName) : true);
|
|
49
|
+
for (const schema of schemas) {
|
|
50
|
+
const tbl = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, tableName));
|
|
51
|
+
if (tbl) {
|
|
52
|
+
dbTableWithSchemas.push({ table: tbl, schemaName: schema.name });
|
|
53
|
+
if ((_a = tbl.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) {
|
|
54
|
+
Object.values(tbl.foreignKeys.referenceTo).forEach((refTo) => {
|
|
55
|
+
const tblTo = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, refTo.tableName));
|
|
56
|
+
if (tblTo &&
|
|
57
|
+
dbTableWithSchemas.find((it) => it.table.name === tblTo.name) === undefined) {
|
|
58
|
+
dbTableWithSchemas.push({
|
|
59
|
+
table: tblTo,
|
|
60
|
+
schemaName: schema.name,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if ((_b = tbl.foreignKeys) === null || _b === void 0 ? void 0 : _b.referencedFrom) {
|
|
66
|
+
Object.values(tbl.foreignKeys.referencedFrom).forEach((refFrom) => {
|
|
67
|
+
const tblFrom = schema.children.find((it) => (0, rdh_1.equalsIgnoreCase)(it.name, refFrom.tableName));
|
|
68
|
+
if (tblFrom &&
|
|
69
|
+
dbTableWithSchemas.find((it) => it.table.name === tblFrom.name) === undefined) {
|
|
70
|
+
dbTableWithSchemas.push({
|
|
71
|
+
table: tblFrom,
|
|
72
|
+
schemaName: schema.name,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return yield renderRdsTableDefinitionsForPrompt({
|
|
82
|
+
dbTableWithSchemas,
|
|
83
|
+
rdsDriver,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (_) {
|
|
88
|
+
console.error(_);
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
});
|
|
92
|
+
exports.createTableDefinitionsForPrompt = createTableDefinitionsForPrompt;
|
|
93
|
+
const createRdsSchemaDefinitionsForPrompt = (params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
94
|
+
const { db, rdsDriver, schemaName, tableName } = params;
|
|
95
|
+
try {
|
|
96
|
+
const databases = Array.isArray(db) ? db : [db];
|
|
97
|
+
const dbTableWithSchemas = [];
|
|
98
|
+
for (const rdsDb of databases) {
|
|
99
|
+
const schemas = rdsDb.children.filter((it) => schemaName ? (0, rdh_1.equalsIgnoreCase)(it.name, schemaName) : true);
|
|
100
|
+
for (const schema of schemas) {
|
|
101
|
+
schema.children
|
|
102
|
+
.filter((it) => tableName ? (0, rdh_1.equalsIgnoreCase)(it.name, tableName) : true)
|
|
103
|
+
.forEach((table) => {
|
|
104
|
+
dbTableWithSchemas.push({ table, schemaName: schema.name });
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return yield renderRdsTableDefinitionsForPrompt({
|
|
109
|
+
dbTableWithSchemas,
|
|
110
|
+
rdsDriver,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (_) {
|
|
114
|
+
console.error(_);
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
});
|
|
118
|
+
exports.createRdsSchemaDefinitionsForPrompt = createRdsSchemaDefinitionsForPrompt;
|
|
119
|
+
const toCreateTableDDL = ({ dbTable }) => {
|
|
120
|
+
var _a;
|
|
121
|
+
const columns = dbTable.children;
|
|
122
|
+
const colDefs = [];
|
|
123
|
+
columns.forEach((col) => {
|
|
124
|
+
let line = ` ${col.name} ${col.colType}`;
|
|
125
|
+
if (col.primaryKey) {
|
|
126
|
+
line += ' PRIMARY KEY';
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
if (col.nullable === false) {
|
|
130
|
+
line += ' NOT NULL';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (col.uniqKey) {
|
|
134
|
+
line += ' UNIQUE';
|
|
135
|
+
}
|
|
136
|
+
if (col.extra) {
|
|
137
|
+
if (col.extra.toLocaleLowerCase() === 'auto_increment') {
|
|
138
|
+
line += ' AUTO_INCREMENT';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (col.default) {
|
|
142
|
+
line += ` DEFAULT ${col.default}`;
|
|
143
|
+
}
|
|
144
|
+
if (col.comment) {
|
|
145
|
+
line += ` COMMENT '${col.comment}'`;
|
|
146
|
+
}
|
|
147
|
+
colDefs.push(line);
|
|
148
|
+
});
|
|
149
|
+
if ((_a = dbTable.foreignKeys) === null || _a === void 0 ? void 0 : _a.referenceTo) {
|
|
150
|
+
Object.entries(dbTable.foreignKeys.referenceTo).forEach(([colName, refTo]) => {
|
|
151
|
+
colDefs.push(` FOREIGN KEY ${refTo.constraintName}(${colName}) REFERENCES ${refTo.tableName}(${refTo.columnName})`);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
let tableDef = `CREATE TABLE ${dbTable.name} (\n${colDefs.join(',\n')}\n)`;
|
|
155
|
+
if (dbTable.comment) {
|
|
156
|
+
tableDef += ` COMMENT '${dbTable.comment}';`;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
tableDef += `;`;
|
|
160
|
+
}
|
|
161
|
+
return tableDef;
|
|
162
|
+
};
|
|
163
|
+
exports.toCreateTableDDL = toCreateTableDDL;
|
|
164
|
+
//# sourceMappingURL=RdsPromptHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RdsPromptHelper.js","sourceRoot":"","sources":["../../../../src/helpers/prompts/RdsPromptHelper.ts"],"names":[],"mappings":"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"}
|