@aerokit/sdk 14.76.0 → 14.81.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/core/configurations.js +19 -1
- package/dist/dts/core/configurations.d.ts +56 -0
- package/dist/esm/core/configurations.mjs +19 -1
- package/package.json +1 -1
- package/test/flows/list.js +35 -2
- package/test/form.js +36 -2
- package/dist/cjs/kafka/consumer.js +0 -71
- package/dist/cjs/kafka/index.js +0 -29
- package/dist/cjs/kafka/producer.js +0 -72
- package/dist/dts/kafka/consumer.d.ts +0 -79
- package/dist/dts/kafka/index.d.ts +0 -15
- package/dist/dts/kafka/producer.d.ts +0 -81
- package/dist/esm/kafka/consumer.mjs +0 -52
- package/dist/esm/kafka/index.mjs +0 -9
- package/dist/esm/kafka/producer.mjs +0 -53
|
@@ -21,6 +21,7 @@ __export(configurations_exports, {
|
|
|
21
21
|
});
|
|
22
22
|
module.exports = __toCommonJS(configurations_exports);
|
|
23
23
|
const Configuration = Java.type("org.eclipse.dirigible.commons.config.Configuration");
|
|
24
|
+
const ConfigurationsFacade = Java.type("org.eclipse.dirigible.components.api.core.ConfigurationsFacade");
|
|
24
25
|
class Configurations {
|
|
25
26
|
/**
|
|
26
27
|
* Retrieves the configuration value associated with the given key.
|
|
@@ -55,6 +56,23 @@ class Configurations {
|
|
|
55
56
|
static getKeys() {
|
|
56
57
|
return Configuration.getKeys();
|
|
57
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Retrieves the configuration groups, in display order, with the number of keys and of set keys in each.
|
|
61
|
+
* @returns The groups.
|
|
62
|
+
*/
|
|
63
|
+
static getGroups() {
|
|
64
|
+
return JSON.parse(ConfigurationsFacade.getGroups());
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Retrieves the described configuration keys, grouped: default, effective value, its source and the value
|
|
68
|
+
* of each source. Sensitive values are masked.
|
|
69
|
+
* @param group A group id (e.g. "database") or several; all groups when omitted.
|
|
70
|
+
* @returns The groups that have keys.
|
|
71
|
+
*/
|
|
72
|
+
static getDescriptors(group) {
|
|
73
|
+
const groups = group === void 0 ? null : Array.isArray(group) ? group.join(",") : group;
|
|
74
|
+
return JSON.parse(ConfigurationsFacade.getDescriptors(groups));
|
|
75
|
+
}
|
|
58
76
|
/**
|
|
59
77
|
* Loads configuration properties from a file at the specified path, overriding existing ones.
|
|
60
78
|
* @param path The file path to load configurations from.
|
|
@@ -107,4 +125,4 @@ class Configurations {
|
|
|
107
125
|
if (typeof module !== "undefined") {
|
|
108
126
|
module.exports = Configurations;
|
|
109
127
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvY29uZmlndXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBjb3JlL2NvbmZpZ3VyYXRpb25zXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvY29yZVxuICogQG5hbWUgQ29uZmlndXJhdGlvbnNcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uZmlndXJhdGlvbnMgQVBJIHByb3ZpZGVzIGEgY2VudHJhbGl6ZWQsIHR5cGUtc2FmZSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhbmQgZGV0ZWN0aW5nIHRoZSBydW50aW1lIG9wZXJhdGluZyBzeXN0ZW0uIEl0IHNlcnZlcyBhcyB0aGUgZm91bmRhdGlvbiBmb3IgZW52aXJvbm1lbnQtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHN5c3RlbS1hd2FyZSBiZWhhdmlvciBpbiBBZXJva2l0IGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlc1xuICogXG4gKiAtICoqU3RhdGljIEludGVyZmFjZSoqOiBUaHJlYWQtc2FmZSwgc2luZ2xldG9uLWxpa2UgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gZGF0YVxuICogLSAqKlR5cGUgU2FmZXR5Kio6IEZ1bGwgVHlwZVNjcmlwdCBzdXBwb3J0IHdpdGggcHJvcGVyIHR5cGUgZGVmaW5pdGlvbnNcbiAqIC0gKipGaWxlIExvYWRpbmcqKjogU3VwcG9ydCBmb3IgbG9hZGluZyBjb25maWd1cmF0aW9ucyBmcm9tIGV4dGVybmFsIGZpbGVzXG4gKiAtICoqT1MgRGV0ZWN0aW9uKio6IENvbXByZWhlbnNpdmUgb3BlcmF0aW5nIHN5c3RlbSBpZGVudGlmaWNhdGlvblxuICogLSAqKk1lbW9yeSBFZmZpY2llbnQqKjogSW4tbWVtb3J5IHN0b3JhZ2Ugd2l0aCBvcHRpb25hbCBwZXJzaXN0ZW5jZVxuICogXG4gKiAjIyMgVXNlIENhc2VzXG4gKiAtIEFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudFxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZSBtYW5hZ2VtZW50XG4gKiAtIEZlYXR1cmUgZmxhZyBjb25maWd1cmF0aW9uXG4gKiAtIERhdGFiYXNlIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAqIC0gQVBJIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25cbiAqIC0gUGxhdGZvcm0tc3BlY2lmaWMgYmVoYXZpb3IgYWRhcHRhdGlvblxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9jb3JlXCI7XG4gKiBcbiAqIC8vIFNldCBhIGNvbmZpZ3VyYXRpb24gcHJvcGVydHlcbiAqIENvbmZpZ3VyYXRpb25zLnNldChcImFwaUVuZHBvaW50XCIsIFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIik7XG4gKiAvLyBHZXQgYSBjb25maWd1cmF0aW9uIHByb3BlcnR5XG4gKiBjb25zdCBhcGlFbmRwb2ludCA9IENvbmZpZ3VyYXRpb25zLmdldChcImFwaUVuZHBvaW50XCIpO1xuICogY29uc29sZS5sb2coYXBpRW5kcG9pbnQpOyAvLyBPdXRwdXQ6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIlxuICogXG4gKiAvLyBDaGVjayB0aGUgb3BlcmF0aW5nIHN5c3RlbVxuICogaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NXaW5kb3dzKCkpIHtcbiAqICAgY29uc29sZS5sb2coXCJSdW5uaW5nIG9uIFdpbmRvd3NcIik7XG4gKiB9IGVsc2UgaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NNYWMoKSkge1xuICogICBjb25zb2xlLmxvZyhcIlJ1bm5pbmcgb24gTWFjXCIpO1xuICogfSBlbHNlIGlmIChDb25maWd1cmF0aW9ucy5pc09TVU5JWCgpKSB7XG4gKiAgIGNvbnNvbGUubG9nKFwiUnVubmluZyBvbiBVTklYXCIpO1xuICogfVxuICogYGBgXG4qL1xuXG5jb25zdCBDb25maWd1cmF0aW9uID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbW1vbnMuY29uZmlnLkNvbmZpZ3VyYXRpb25cIik7XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9ucyB7XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleS5cblx0ICogQHBhcmFtIGtleSBUaGUgY29uZmlndXJhdGlvbiBrZXkuXG5cdCAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVGhlIG9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kLlxuXHQgKiBAcmV0dXJucyBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZSBhcyBhIHN0cmluZywgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGtleSBpcyBub3QgZm91bmQgYW5kIG5vIGRlZmF1bHQgaXMgcHJvdmlkZWQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldChrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB2YWx1ZSA9IENvbmZpZ3VyYXRpb24uZ2V0KGtleSwgZGVmYXVsdFZhbHVlKTtcblx0XHRyZXR1cm4gdmFsdWUgPz8gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkuXG5cdCAqIElmIHRoZSBrZXkgYWxyZWFkeSBleGlzdHMsIGl0cyB2YWx1ZSBpcyBvdmVyd3JpdHRlbi5cblx0ICogQHBhcmFtIGtleSBUaGUgY29uZmlndXJhdGlvbiBrZXkuXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZSB0byBzZXQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24uc2V0KGtleSwgdmFsdWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5IHRvIHJlbW92ZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi5yZW1vdmUoa2V5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBjdXJyZW50IGNvbmZpZ3VyYXRpb24ga2V5cy5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBrZXlzIChzdHJpbmdzKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0S2V5cygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uZ2V0S2V5cygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExvYWRzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmcm9tIGEgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIHBhdGgsIG92ZXJyaWRpbmcgZXhpc3Rpbmcgb25lcy5cblx0ICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCB0byBsb2FkIGNvbmZpZ3VyYXRpb25zIGZyb20uXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxvYWQocGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi5sb2FkKHBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbG9hZHMgb3IgdXBkYXRlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gdGhlaXIgc291cmNlIChlLmcuLCBwZXJzaXN0ZW5jZSBsYXllcikuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwZGF0ZSgpOiB2b2lkIHtcblx0XHRDb25maWd1cmF0aW9uLnVwZGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtLlxuXHQgKiBAcmV0dXJucyBUaGUgT1MgbmFtZSBhcyBhIHN0cmluZyAoZS5nLiwgXCJXaW5kb3dzXCIsIFwiTGludXhcIiwgXCJNYWMgT1MgWFwiKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0T1MoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbi5nZXRPUygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIFdpbmRvd3MuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIFdpbmRvd3MsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1dpbmRvd3MoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1dpbmRvd3MoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBNYWMgT1MgKG9yIE1hYyBPUyBYKS5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgT1MgaXMgTWFjLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NNYWMoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU01hYygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIGEgVU5JWC1saWtlIHN5c3RlbSAoZS5nLiwgTGludXgsIG1hY09TLCBvciBvdGhlcnMpLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBhIFVOSVggdmFyaWFudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBpc09TVU5JWCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbi5pc09TVU5JWCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIFNvbGFyaXMuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIFNvbGFyaXMsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1NvbGFyaXMoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1NvbGFyaXMoKTtcblx0fVxuXG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gQ29uZmlndXJhdGlvbnM7XG59Il0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkNBLE1BQU0sZ0JBQWdCLEtBQUssS0FBSyxvREFBb0Q7QUFFN0UsTUFBTSxlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRM0IsT0FBYyxJQUFJLEtBQWEsY0FBMkM7QUFDekUsVUFBTSxRQUFRLGNBQWMsSUFBSSxLQUFLLFlBQVk7QUFDakQsV0FBTyxTQUFTO0FBQUEsRUFDakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsSUFBSSxLQUFhLE9BQXFCO0FBQ25ELGtCQUFjLElBQUksS0FBSyxLQUFLO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxPQUFPLEtBQW1CO0FBQ3ZDLGtCQUFjLE9BQU8sR0FBRztBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsVUFBb0I7QUFDakMsV0FBTyxjQUFjLFFBQVE7QUFBQSxFQUM5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLEtBQUssTUFBb0I7QUFDdEMsa0JBQWMsS0FBSyxJQUFJO0FBQUEsRUFDeEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsU0FBZTtBQUM1QixrQkFBYyxPQUFPO0FBQUEsRUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxRQUFnQjtBQUM3QixXQUFPLGNBQWMsTUFBTTtBQUFBLEVBQzVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsY0FBdUI7QUFDcEMsV0FBTyxjQUFjLFlBQVk7QUFBQSxFQUNsQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFVBQW1CO0FBQ2hDLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxXQUFvQjtBQUNqQyxXQUFPLGNBQWMsU0FBUztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsY0FBdUI7QUFDcEMsV0FBTyxjQUFjLFlBQVk7QUFBQSxFQUNsQztBQUVEO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvY29uZmlndXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBjb3JlL2NvbmZpZ3VyYXRpb25zXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvY29yZVxuICogQG5hbWUgQ29uZmlndXJhdGlvbnNcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uZmlndXJhdGlvbnMgQVBJIHByb3ZpZGVzIGEgY2VudHJhbGl6ZWQsIHR5cGUtc2FmZSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhbmQgZGV0ZWN0aW5nIHRoZSBydW50aW1lIG9wZXJhdGluZyBzeXN0ZW0uIEl0IHNlcnZlcyBhcyB0aGUgZm91bmRhdGlvbiBmb3IgZW52aXJvbm1lbnQtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHN5c3RlbS1hd2FyZSBiZWhhdmlvciBpbiBBZXJva2l0IGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlc1xuICogXG4gKiAtICoqU3RhdGljIEludGVyZmFjZSoqOiBUaHJlYWQtc2FmZSwgc2luZ2xldG9uLWxpa2UgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gZGF0YVxuICogLSAqKlR5cGUgU2FmZXR5Kio6IEZ1bGwgVHlwZVNjcmlwdCBzdXBwb3J0IHdpdGggcHJvcGVyIHR5cGUgZGVmaW5pdGlvbnNcbiAqIC0gKipGaWxlIExvYWRpbmcqKjogU3VwcG9ydCBmb3IgbG9hZGluZyBjb25maWd1cmF0aW9ucyBmcm9tIGV4dGVybmFsIGZpbGVzXG4gKiAtICoqT1MgRGV0ZWN0aW9uKio6IENvbXByZWhlbnNpdmUgb3BlcmF0aW5nIHN5c3RlbSBpZGVudGlmaWNhdGlvblxuICogLSAqKk1lbW9yeSBFZmZpY2llbnQqKjogSW4tbWVtb3J5IHN0b3JhZ2Ugd2l0aCBvcHRpb25hbCBwZXJzaXN0ZW5jZVxuICogXG4gKiAjIyMgVXNlIENhc2VzXG4gKiAtIEFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudFxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZSBtYW5hZ2VtZW50XG4gKiAtIEZlYXR1cmUgZmxhZyBjb25maWd1cmF0aW9uXG4gKiAtIERhdGFiYXNlIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAqIC0gQVBJIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25cbiAqIC0gUGxhdGZvcm0tc3BlY2lmaWMgYmVoYXZpb3IgYWRhcHRhdGlvblxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9jb3JlXCI7XG4gKiBcbiAqIC8vIFNldCBhIGNvbmZpZ3VyYXRpb24gcHJvcGVydHlcbiAqIENvbmZpZ3VyYXRpb25zLnNldChcImFwaUVuZHBvaW50XCIsIFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIik7XG4gKiAvLyBHZXQgYSBjb25maWd1cmF0aW9uIHByb3BlcnR5XG4gKiBjb25zdCBhcGlFbmRwb2ludCA9IENvbmZpZ3VyYXRpb25zLmdldChcImFwaUVuZHBvaW50XCIpO1xuICogY29uc29sZS5sb2coYXBpRW5kcG9pbnQpOyAvLyBPdXRwdXQ6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIlxuICogXG4gKiAvLyBDaGVjayB0aGUgb3BlcmF0aW5nIHN5c3RlbVxuICogaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NXaW5kb3dzKCkpIHtcbiAqICAgY29uc29sZS5sb2coXCJSdW5uaW5nIG9uIFdpbmRvd3NcIik7XG4gKiB9IGVsc2UgaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NNYWMoKSkge1xuICogICBjb25zb2xlLmxvZyhcIlJ1bm5pbmcgb24gTWFjXCIpO1xuICogfSBlbHNlIGlmIChDb25maWd1cmF0aW9ucy5pc09TVU5JWCgpKSB7XG4gKiAgIGNvbnNvbGUubG9nKFwiUnVubmluZyBvbiBVTklYXCIpO1xuICogfVxuICogYGBgXG4qL1xuXG5jb25zdCBDb25maWd1cmF0aW9uID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbW1vbnMuY29uZmlnLkNvbmZpZ3VyYXRpb25cIik7XG5jb25zdCBDb25maWd1cmF0aW9uc0ZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5jb3JlLkNvbmZpZ3VyYXRpb25zRmFjYWRlXCIpO1xuXG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBncm91cCB3aXRoIHRoZSBudW1iZXIgb2YgaXRzIGtleXMgYW5kIG9mIHRoZSBrZXlzIGFueSBzb3VyY2Ugc2V0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uR3JvdXAge1xuXHRpZDogc3RyaW5nO1xuXHRzZWN0aW9uOiBzdHJpbmc7XG5cdGxhYmVsOiBzdHJpbmc7XG5cdG9yZGVyOiBudW1iZXI7XG5cdHRvdGFsOiBudW1iZXI7XG5cdHNldDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZGVzY3JpYmVkIGNvbmZpZ3VyYXRpb24ga2V5LiBFdmVyeSB2YWx1ZSBpcyBtYXNrZWQgYXMgXCIqKioqKioqKlwiIHdoZW4gdGhlIGtleSBpcyBzZW5zaXRpdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvbkRlc2NyaXB0b3Ige1xuXHRrZXk6IHN0cmluZztcblx0c3ViZ3JvdXA/OiBzdHJpbmc7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblx0LyoqIFRoZSBlZmZlY3RpdmUgdmFsdWUuICovXG5cdHZhbHVlPzogc3RyaW5nO1xuXHQvKiogV2hlcmUgdGhlIGVmZmVjdGl2ZSB2YWx1ZSBjb21lcyBmcm9tLiAqL1xuXHRzb3VyY2U6IFwicnVudGltZVwiIHwgXCJlbnZpcm9ubWVudFwiIHwgXCJkZXBsb3ltZW50XCIgfCBcIm1vZHVsZVwiIHwgXCJkZWZhdWx0XCIgfCBcInVuc2V0XCI7XG5cdC8qKiBUaGUgdmFsdWUgZWFjaCBzb3VyY2UgZ2l2ZXMgdGhlIGtleS4gKi9cblx0dmFsdWVzOiB7IHJ1bnRpbWU/OiBzdHJpbmc7IGVudmlyb25tZW50Pzogc3RyaW5nOyBkZXBsb3ltZW50Pzogc3RyaW5nOyBtb2R1bGU/OiBzdHJpbmcgfTtcblx0c2Vuc2l0aXZlOiBib29sZWFuO1xuXHRyZXN0YXJ0UmVxdWlyZWQ/OiBib29sZWFuO1xuXHR0ZW5hbnRPdmVycmlkYWJsZTogYm9vbGVhbjtcblx0ZGVwcmVjYXRlZEJ5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBncm91cCB3aXRoIGl0cyBkZXNjcmliZWQga2V5cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uRGVzY3JpcHRvckdyb3VwIHtcblx0Z3JvdXA6IHN0cmluZztcblx0c2VjdGlvbjogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRlbnRyaWVzOiBDb25maWd1cmF0aW9uRGVzY3JpcHRvcltdO1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbnMge1xuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5LlxuXHQgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFRoZSBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUga2V5IGlzIG5vdCBmb3VuZC5cblx0ICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgYXMgYSBzdHJpbmcsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kIGFuZCBubyBkZWZhdWx0IGlzIHByb3ZpZGVkLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXQoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdmFsdWUgPSBDb25maWd1cmF0aW9uLmdldChrZXksIGRlZmF1bHRWYWx1ZSk7XG5cdFx0cmV0dXJuIHZhbHVlID8/IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LlxuXHQgKiBJZiB0aGUga2V5IGFscmVhZHkgZXhpc3RzLCBpdHMgdmFsdWUgaXMgb3ZlcndyaXR0ZW4uXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5LlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgdG8gc2V0LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRDb25maWd1cmF0aW9uLnNldChrZXksIHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4ga2V5LlxuXHQgKiBAcGFyYW0ga2V5IFRoZSBjb25maWd1cmF0aW9uIGtleSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24ucmVtb3ZlKGtleSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgY3VycmVudCBjb25maWd1cmF0aW9uIGtleXMuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGNvbmZpZ3VyYXRpb24ga2V5cyAoc3RyaW5ncykuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldEtleXMoKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmdldEtleXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbmZpZ3VyYXRpb24gZ3JvdXBzLCBpbiBkaXNwbGF5IG9yZGVyLCB3aXRoIHRoZSBudW1iZXIgb2Yga2V5cyBhbmQgb2Ygc2V0IGtleXMgaW4gZWFjaC5cblx0ICogQHJldHVybnMgVGhlIGdyb3Vwcy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0R3JvdXBzKCk6IENvbmZpZ3VyYXRpb25Hcm91cFtdIHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShDb25maWd1cmF0aW9uc0ZhY2FkZS5nZXRHcm91cHMoKSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBkZXNjcmliZWQgY29uZmlndXJhdGlvbiBrZXlzLCBncm91cGVkOiBkZWZhdWx0LCBlZmZlY3RpdmUgdmFsdWUsIGl0cyBzb3VyY2UgYW5kIHRoZSB2YWx1ZVxuXHQgKiBvZiBlYWNoIHNvdXJjZS4gU2Vuc2l0aXZlIHZhbHVlcyBhcmUgbWFza2VkLlxuXHQgKiBAcGFyYW0gZ3JvdXAgQSBncm91cCBpZCAoZS5nLiBcImRhdGFiYXNlXCIpIG9yIHNldmVyYWw7IGFsbCBncm91cHMgd2hlbiBvbWl0dGVkLlxuXHQgKiBAcmV0dXJucyBUaGUgZ3JvdXBzIHRoYXQgaGF2ZSBrZXlzLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXREZXNjcmlwdG9ycyhncm91cD86IHN0cmluZyB8IHN0cmluZ1tdKTogQ29uZmlndXJhdGlvbkRlc2NyaXB0b3JHcm91cFtdIHtcblx0XHRjb25zdCBncm91cHMgPSBncm91cCA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IEFycmF5LmlzQXJyYXkoZ3JvdXApID8gZ3JvdXAuam9pbihcIixcIikgOiBncm91cDtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShDb25maWd1cmF0aW9uc0ZhY2FkZS5nZXREZXNjcmlwdG9ycyhncm91cHMpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMb2FkcyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZnJvbSBhIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBwYXRoLCBvdmVycmlkaW5nIGV4aXN0aW5nIG9uZXMuXG5cdCAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGggdG8gbG9hZCBjb25maWd1cmF0aW9ucyBmcm9tLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBsb2FkKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24ubG9hZChwYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWxvYWRzIG9yIHVwZGF0ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmcm9tIHRoZWlyIHNvdXJjZSAoZS5nLiwgcGVyc2lzdGVuY2UgbGF5ZXIpLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cGRhdGUoKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi51cGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbS5cblx0ICogQHJldHVybnMgVGhlIE9TIG5hbWUgYXMgYSBzdHJpbmcgKGUuZy4sIFwiV2luZG93c1wiLCBcIkxpbnV4XCIsIFwiTWFjIE9TIFhcIikuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldE9TKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uZ2V0T1MoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBXaW5kb3dzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBXaW5kb3dzLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NXaW5kb3dzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NXaW5kb3dzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IE9wZXJhdGluZyBTeXN0ZW0gaXMgTWFjIE9TIChvciBNYWMgT1MgWCkuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIE1hYywgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBpc09TTWFjKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NNYWMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBhIFVOSVgtbGlrZSBzeXN0ZW0gKGUuZy4sIExpbnV4LCBtYWNPUywgb3Igb3RoZXJzKS5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgT1MgaXMgYSBVTklYIHZhcmlhbnQsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1VOSVgoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1VOSVgoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBTb2xhcmlzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBTb2xhcmlzLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NTb2xhcmlzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NTb2xhcmlzKCk7XG5cdH1cblxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IENvbmZpZ3VyYXRpb25zO1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZDQSxNQUFNLGdCQUFnQixLQUFLLEtBQUssb0RBQW9EO0FBQ3BGLE1BQU0sdUJBQXVCLEtBQUssS0FBSyxnRUFBZ0U7QUE0Q2hHLE1BQU0sZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTNCLE9BQWMsSUFBSSxLQUFhLGNBQTJDO0FBQ3pFLFVBQU0sUUFBUSxjQUFjLElBQUksS0FBSyxZQUFZO0FBQ2pELFdBQU8sU0FBUztBQUFBLEVBQ2pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLElBQUksS0FBYSxPQUFxQjtBQUNuRCxrQkFBYyxJQUFJLEtBQUssS0FBSztBQUFBLEVBQzdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsT0FBTyxLQUFtQjtBQUN2QyxrQkFBYyxPQUFPLEdBQUc7QUFBQSxFQUN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFVBQW9CO0FBQ2pDLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxZQUFrQztBQUMvQyxXQUFPLEtBQUssTUFBTSxxQkFBcUIsVUFBVSxDQUFDO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsZUFBZSxPQUEyRDtBQUN2RixVQUFNLFNBQVMsVUFBVSxTQUFZLE9BQU8sTUFBTSxRQUFRLEtBQUssSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJO0FBQ3JGLFdBQU8sS0FBSyxNQUFNLHFCQUFxQixlQUFlLE1BQU0sQ0FBQztBQUFBLEVBQzlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsS0FBSyxNQUFvQjtBQUN0QyxrQkFBYyxLQUFLLElBQUk7QUFBQSxFQUN4QjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxTQUFlO0FBQzVCLGtCQUFjLE9BQU87QUFBQSxFQUN0QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFFBQWdCO0FBQzdCLFdBQU8sY0FBYyxNQUFNO0FBQUEsRUFDNUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxjQUF1QjtBQUNwQyxXQUFPLGNBQWMsWUFBWTtBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsVUFBbUI7QUFDaEMsV0FBTyxjQUFjLFFBQVE7QUFBQSxFQUM5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFdBQW9CO0FBQ2pDLFdBQU8sY0FBYyxTQUFTO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxjQUF1QjtBQUNwQyxXQUFPLGNBQWMsWUFBWTtBQUFBLEVBQ2xDO0FBRUQ7QUFHQSxJQUFJLE9BQU8sV0FBVyxhQUFhO0FBRWxDLFNBQU8sVUFBVTtBQUNsQjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -42,6 +42,50 @@
|
|
|
42
42
|
* }
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
|
+
/**
|
|
46
|
+
* A configuration group with the number of its keys and of the keys any source sets.
|
|
47
|
+
*/
|
|
48
|
+
export interface ConfigurationGroup {
|
|
49
|
+
id: string;
|
|
50
|
+
section: string;
|
|
51
|
+
label: string;
|
|
52
|
+
order: number;
|
|
53
|
+
total: number;
|
|
54
|
+
set: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A described configuration key. Every value is masked as "********" when the key is sensitive.
|
|
58
|
+
*/
|
|
59
|
+
export interface ConfigurationDescriptor {
|
|
60
|
+
key: string;
|
|
61
|
+
subgroup?: string;
|
|
62
|
+
type?: string;
|
|
63
|
+
defaultValue?: string;
|
|
64
|
+
/** The effective value. */
|
|
65
|
+
value?: string;
|
|
66
|
+
/** Where the effective value comes from. */
|
|
67
|
+
source: "runtime" | "environment" | "deployment" | "module" | "default" | "unset";
|
|
68
|
+
/** The value each source gives the key. */
|
|
69
|
+
values: {
|
|
70
|
+
runtime?: string;
|
|
71
|
+
environment?: string;
|
|
72
|
+
deployment?: string;
|
|
73
|
+
module?: string;
|
|
74
|
+
};
|
|
75
|
+
sensitive: boolean;
|
|
76
|
+
restartRequired?: boolean;
|
|
77
|
+
tenantOverridable: boolean;
|
|
78
|
+
deprecatedBy?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A configuration group with its described keys.
|
|
82
|
+
*/
|
|
83
|
+
export interface ConfigurationDescriptorGroup {
|
|
84
|
+
group: string;
|
|
85
|
+
section: string;
|
|
86
|
+
label: string;
|
|
87
|
+
entries: ConfigurationDescriptor[];
|
|
88
|
+
}
|
|
45
89
|
export declare class Configurations {
|
|
46
90
|
/**
|
|
47
91
|
* Retrieves the configuration value associated with the given key.
|
|
@@ -67,6 +111,18 @@ export declare class Configurations {
|
|
|
67
111
|
* @returns An array of configuration keys (strings).
|
|
68
112
|
*/
|
|
69
113
|
static getKeys(): string[];
|
|
114
|
+
/**
|
|
115
|
+
* Retrieves the configuration groups, in display order, with the number of keys and of set keys in each.
|
|
116
|
+
* @returns The groups.
|
|
117
|
+
*/
|
|
118
|
+
static getGroups(): ConfigurationGroup[];
|
|
119
|
+
/**
|
|
120
|
+
* Retrieves the described configuration keys, grouped: default, effective value, its source and the value
|
|
121
|
+
* of each source. Sensitive values are masked.
|
|
122
|
+
* @param group A group id (e.g. "database") or several; all groups when omitted.
|
|
123
|
+
* @returns The groups that have keys.
|
|
124
|
+
*/
|
|
125
|
+
static getDescriptors(group?: string | string[]): ConfigurationDescriptorGroup[];
|
|
70
126
|
/**
|
|
71
127
|
* Loads configuration properties from a file at the specified path, overriding existing ones.
|
|
72
128
|
* @param path The file path to load configurations from.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const Configuration = Java.type("org.eclipse.dirigible.commons.config.Configuration");
|
|
2
|
+
const ConfigurationsFacade = Java.type("org.eclipse.dirigible.components.api.core.ConfigurationsFacade");
|
|
2
3
|
class Configurations {
|
|
3
4
|
/**
|
|
4
5
|
* Retrieves the configuration value associated with the given key.
|
|
@@ -33,6 +34,23 @@ class Configurations {
|
|
|
33
34
|
static getKeys() {
|
|
34
35
|
return Configuration.getKeys();
|
|
35
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Retrieves the configuration groups, in display order, with the number of keys and of set keys in each.
|
|
39
|
+
* @returns The groups.
|
|
40
|
+
*/
|
|
41
|
+
static getGroups() {
|
|
42
|
+
return JSON.parse(ConfigurationsFacade.getGroups());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Retrieves the described configuration keys, grouped: default, effective value, its source and the value
|
|
46
|
+
* of each source. Sensitive values are masked.
|
|
47
|
+
* @param group A group id (e.g. "database") or several; all groups when omitted.
|
|
48
|
+
* @returns The groups that have keys.
|
|
49
|
+
*/
|
|
50
|
+
static getDescriptors(group) {
|
|
51
|
+
const groups = group === void 0 ? null : Array.isArray(group) ? group.join(",") : group;
|
|
52
|
+
return JSON.parse(ConfigurationsFacade.getDescriptors(groups));
|
|
53
|
+
}
|
|
36
54
|
/**
|
|
37
55
|
* Loads configuration properties from a file at the specified path, overriding existing ones.
|
|
38
56
|
* @param path The file path to load configurations from.
|
|
@@ -88,4 +106,4 @@ if (typeof module !== "undefined") {
|
|
|
88
106
|
export {
|
|
89
107
|
Configurations
|
|
90
108
|
};
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvY29uZmlndXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBjb3JlL2NvbmZpZ3VyYXRpb25zXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvY29yZVxuICogQG5hbWUgQ29uZmlndXJhdGlvbnNcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uZmlndXJhdGlvbnMgQVBJIHByb3ZpZGVzIGEgY2VudHJhbGl6ZWQsIHR5cGUtc2FmZSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhbmQgZGV0ZWN0aW5nIHRoZSBydW50aW1lIG9wZXJhdGluZyBzeXN0ZW0uIEl0IHNlcnZlcyBhcyB0aGUgZm91bmRhdGlvbiBmb3IgZW52aXJvbm1lbnQtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHN5c3RlbS1hd2FyZSBiZWhhdmlvciBpbiBBZXJva2l0IGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlc1xuICogXG4gKiAtICoqU3RhdGljIEludGVyZmFjZSoqOiBUaHJlYWQtc2FmZSwgc2luZ2xldG9uLWxpa2UgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gZGF0YVxuICogLSAqKlR5cGUgU2FmZXR5Kio6IEZ1bGwgVHlwZVNjcmlwdCBzdXBwb3J0IHdpdGggcHJvcGVyIHR5cGUgZGVmaW5pdGlvbnNcbiAqIC0gKipGaWxlIExvYWRpbmcqKjogU3VwcG9ydCBmb3IgbG9hZGluZyBjb25maWd1cmF0aW9ucyBmcm9tIGV4dGVybmFsIGZpbGVzXG4gKiAtICoqT1MgRGV0ZWN0aW9uKio6IENvbXByZWhlbnNpdmUgb3BlcmF0aW5nIHN5c3RlbSBpZGVudGlmaWNhdGlvblxuICogLSAqKk1lbW9yeSBFZmZpY2llbnQqKjogSW4tbWVtb3J5IHN0b3JhZ2Ugd2l0aCBvcHRpb25hbCBwZXJzaXN0ZW5jZVxuICogXG4gKiAjIyMgVXNlIENhc2VzXG4gKiAtIEFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudFxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZSBtYW5hZ2VtZW50XG4gKiAtIEZlYXR1cmUgZmxhZyBjb25maWd1cmF0aW9uXG4gKiAtIERhdGFiYXNlIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAqIC0gQVBJIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25cbiAqIC0gUGxhdGZvcm0tc3BlY2lmaWMgYmVoYXZpb3IgYWRhcHRhdGlvblxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9jb3JlXCI7XG4gKiBcbiAqIC8vIFNldCBhIGNvbmZpZ3VyYXRpb24gcHJvcGVydHlcbiAqIENvbmZpZ3VyYXRpb25zLnNldChcImFwaUVuZHBvaW50XCIsIFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIik7XG4gKiAvLyBHZXQgYSBjb25maWd1cmF0aW9uIHByb3BlcnR5XG4gKiBjb25zdCBhcGlFbmRwb2ludCA9IENvbmZpZ3VyYXRpb25zLmdldChcImFwaUVuZHBvaW50XCIpO1xuICogY29uc29sZS5sb2coYXBpRW5kcG9pbnQpOyAvLyBPdXRwdXQ6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIlxuICogXG4gKiAvLyBDaGVjayB0aGUgb3BlcmF0aW5nIHN5c3RlbVxuICogaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NXaW5kb3dzKCkpIHtcbiAqICAgY29uc29sZS5sb2coXCJSdW5uaW5nIG9uIFdpbmRvd3NcIik7XG4gKiB9IGVsc2UgaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NNYWMoKSkge1xuICogICBjb25zb2xlLmxvZyhcIlJ1bm5pbmcgb24gTWFjXCIpO1xuICogfSBlbHNlIGlmIChDb25maWd1cmF0aW9ucy5pc09TVU5JWCgpKSB7XG4gKiAgIGNvbnNvbGUubG9nKFwiUnVubmluZyBvbiBVTklYXCIpO1xuICogfVxuICogYGBgXG4qL1xuXG5jb25zdCBDb25maWd1cmF0aW9uID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbW1vbnMuY29uZmlnLkNvbmZpZ3VyYXRpb25cIik7XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9ucyB7XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleS5cblx0ICogQHBhcmFtIGtleSBUaGUgY29uZmlndXJhdGlvbiBrZXkuXG5cdCAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVGhlIG9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kLlxuXHQgKiBAcmV0dXJucyBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZSBhcyBhIHN0cmluZywgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGtleSBpcyBub3QgZm91bmQgYW5kIG5vIGRlZmF1bHQgaXMgcHJvdmlkZWQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldChrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB2YWx1ZSA9IENvbmZpZ3VyYXRpb24uZ2V0KGtleSwgZGVmYXVsdFZhbHVlKTtcblx0XHRyZXR1cm4gdmFsdWUgPz8gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkuXG5cdCAqIElmIHRoZSBrZXkgYWxyZWFkeSBleGlzdHMsIGl0cyB2YWx1ZSBpcyBvdmVyd3JpdHRlbi5cblx0ICogQHBhcmFtIGtleSBUaGUgY29uZmlndXJhdGlvbiBrZXkuXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZSB0byBzZXQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24uc2V0KGtleSwgdmFsdWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5IHRvIHJlbW92ZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi5yZW1vdmUoa2V5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCBjdXJyZW50IGNvbmZpZ3VyYXRpb24ga2V5cy5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBrZXlzIChzdHJpbmdzKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0S2V5cygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uZ2V0S2V5cygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExvYWRzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmcm9tIGEgZmlsZSBhdCB0aGUgc3BlY2lmaWVkIHBhdGgsIG92ZXJyaWRpbmcgZXhpc3Rpbmcgb25lcy5cblx0ICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCB0byBsb2FkIGNvbmZpZ3VyYXRpb25zIGZyb20uXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxvYWQocGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi5sb2FkKHBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbG9hZHMgb3IgdXBkYXRlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gdGhlaXIgc291cmNlIChlLmcuLCBwZXJzaXN0ZW5jZSBsYXllcikuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwZGF0ZSgpOiB2b2lkIHtcblx0XHRDb25maWd1cmF0aW9uLnVwZGF0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtLlxuXHQgKiBAcmV0dXJucyBUaGUgT1MgbmFtZSBhcyBhIHN0cmluZyAoZS5nLiwgXCJXaW5kb3dzXCIsIFwiTGludXhcIiwgXCJNYWMgT1MgWFwiKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0T1MoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbi5nZXRPUygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIFdpbmRvd3MuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIFdpbmRvd3MsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1dpbmRvd3MoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1dpbmRvd3MoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBNYWMgT1MgKG9yIE1hYyBPUyBYKS5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgT1MgaXMgTWFjLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NNYWMoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU01hYygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIGEgVU5JWC1saWtlIHN5c3RlbSAoZS5nLiwgTGludXgsIG1hY09TLCBvciBvdGhlcnMpLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBhIFVOSVggdmFyaWFudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBpc09TVU5JWCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29uZmlndXJhdGlvbi5pc09TVU5JWCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBPcGVyYXRpbmcgU3lzdGVtIGlzIFNvbGFyaXMuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIFNvbGFyaXMsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1NvbGFyaXMoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1NvbGFyaXMoKTtcblx0fVxuXG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gQ29uZmlndXJhdGlvbnM7XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBNkNBLE1BQU0sZ0JBQWdCLEtBQUssS0FBSyxvREFBb0Q7QUFFN0UsTUFBTSxlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRM0IsT0FBYyxJQUFJLEtBQWEsY0FBMkM7QUFDekUsVUFBTSxRQUFRLGNBQWMsSUFBSSxLQUFLLFlBQVk7QUFDakQsV0FBTyxTQUFTO0FBQUEsRUFDakI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsSUFBSSxLQUFhLE9BQXFCO0FBQ25ELGtCQUFjLElBQUksS0FBSyxLQUFLO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxPQUFPLEtBQW1CO0FBQ3ZDLGtCQUFjLE9BQU8sR0FBRztBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsVUFBb0I7QUFDakMsV0FBTyxjQUFjLFFBQVE7QUFBQSxFQUM5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLEtBQUssTUFBb0I7QUFDdEMsa0JBQWMsS0FBSyxJQUFJO0FBQUEsRUFDeEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsU0FBZTtBQUM1QixrQkFBYyxPQUFPO0FBQUEsRUFDdEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxRQUFnQjtBQUM3QixXQUFPLGNBQWMsTUFBTTtBQUFBLEVBQzVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsY0FBdUI7QUFDcEMsV0FBTyxjQUFjLFlBQVk7QUFBQSxFQUNsQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFVBQW1CO0FBQ2hDLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxXQUFvQjtBQUNqQyxXQUFPLGNBQWMsU0FBUztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsY0FBdUI7QUFDcEMsV0FBTyxjQUFjLFlBQVk7QUFBQSxFQUNsQztBQUVEO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVU7QUFDbEI7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvY29uZmlndXJhdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBjb3JlL2NvbmZpZ3VyYXRpb25zXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvY29yZVxuICogQG5hbWUgQ29uZmlndXJhdGlvbnNcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uZmlndXJhdGlvbnMgQVBJIHByb3ZpZGVzIGEgY2VudHJhbGl6ZWQsIHR5cGUtc2FmZSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhbmQgZGV0ZWN0aW5nIHRoZSBydW50aW1lIG9wZXJhdGluZyBzeXN0ZW0uIEl0IHNlcnZlcyBhcyB0aGUgZm91bmRhdGlvbiBmb3IgZW52aXJvbm1lbnQtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIHN5c3RlbS1hd2FyZSBiZWhhdmlvciBpbiBBZXJva2l0IGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlc1xuICogXG4gKiAtICoqU3RhdGljIEludGVyZmFjZSoqOiBUaHJlYWQtc2FmZSwgc2luZ2xldG9uLWxpa2UgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gZGF0YVxuICogLSAqKlR5cGUgU2FmZXR5Kio6IEZ1bGwgVHlwZVNjcmlwdCBzdXBwb3J0IHdpdGggcHJvcGVyIHR5cGUgZGVmaW5pdGlvbnNcbiAqIC0gKipGaWxlIExvYWRpbmcqKjogU3VwcG9ydCBmb3IgbG9hZGluZyBjb25maWd1cmF0aW9ucyBmcm9tIGV4dGVybmFsIGZpbGVzXG4gKiAtICoqT1MgRGV0ZWN0aW9uKio6IENvbXByZWhlbnNpdmUgb3BlcmF0aW5nIHN5c3RlbSBpZGVudGlmaWNhdGlvblxuICogLSAqKk1lbW9yeSBFZmZpY2llbnQqKjogSW4tbWVtb3J5IHN0b3JhZ2Ugd2l0aCBvcHRpb25hbCBwZXJzaXN0ZW5jZVxuICogXG4gKiAjIyMgVXNlIENhc2VzXG4gKiAtIEFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudFxuICogLSBFbnZpcm9ubWVudCB2YXJpYWJsZSBtYW5hZ2VtZW50XG4gKiAtIEZlYXR1cmUgZmxhZyBjb25maWd1cmF0aW9uXG4gKiAtIERhdGFiYXNlIGNvbm5lY3Rpb24gc2V0dGluZ3NcbiAqIC0gQVBJIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25cbiAqIC0gUGxhdGZvcm0tc3BlY2lmaWMgYmVoYXZpb3IgYWRhcHRhdGlvblxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9jb3JlXCI7XG4gKiBcbiAqIC8vIFNldCBhIGNvbmZpZ3VyYXRpb24gcHJvcGVydHlcbiAqIENvbmZpZ3VyYXRpb25zLnNldChcImFwaUVuZHBvaW50XCIsIFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIik7XG4gKiAvLyBHZXQgYSBjb25maWd1cmF0aW9uIHByb3BlcnR5XG4gKiBjb25zdCBhcGlFbmRwb2ludCA9IENvbmZpZ3VyYXRpb25zLmdldChcImFwaUVuZHBvaW50XCIpO1xuICogY29uc29sZS5sb2coYXBpRW5kcG9pbnQpOyAvLyBPdXRwdXQ6IFwiaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb21cIlxuICogXG4gKiAvLyBDaGVjayB0aGUgb3BlcmF0aW5nIHN5c3RlbVxuICogaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NXaW5kb3dzKCkpIHtcbiAqICAgY29uc29sZS5sb2coXCJSdW5uaW5nIG9uIFdpbmRvd3NcIik7XG4gKiB9IGVsc2UgaWYgKENvbmZpZ3VyYXRpb25zLmlzT1NNYWMoKSkge1xuICogICBjb25zb2xlLmxvZyhcIlJ1bm5pbmcgb24gTWFjXCIpO1xuICogfSBlbHNlIGlmIChDb25maWd1cmF0aW9ucy5pc09TVU5JWCgpKSB7XG4gKiAgIGNvbnNvbGUubG9nKFwiUnVubmluZyBvbiBVTklYXCIpO1xuICogfVxuICogYGBgXG4qL1xuXG5jb25zdCBDb25maWd1cmF0aW9uID0gSmF2YS50eXBlKFwib3JnLmVjbGlwc2UuZGlyaWdpYmxlLmNvbW1vbnMuY29uZmlnLkNvbmZpZ3VyYXRpb25cIik7XG5jb25zdCBDb25maWd1cmF0aW9uc0ZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5jb3JlLkNvbmZpZ3VyYXRpb25zRmFjYWRlXCIpO1xuXG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBncm91cCB3aXRoIHRoZSBudW1iZXIgb2YgaXRzIGtleXMgYW5kIG9mIHRoZSBrZXlzIGFueSBzb3VyY2Ugc2V0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uR3JvdXAge1xuXHRpZDogc3RyaW5nO1xuXHRzZWN0aW9uOiBzdHJpbmc7XG5cdGxhYmVsOiBzdHJpbmc7XG5cdG9yZGVyOiBudW1iZXI7XG5cdHRvdGFsOiBudW1iZXI7XG5cdHNldDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZGVzY3JpYmVkIGNvbmZpZ3VyYXRpb24ga2V5LiBFdmVyeSB2YWx1ZSBpcyBtYXNrZWQgYXMgXCIqKioqKioqKlwiIHdoZW4gdGhlIGtleSBpcyBzZW5zaXRpdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvbkRlc2NyaXB0b3Ige1xuXHRrZXk6IHN0cmluZztcblx0c3ViZ3JvdXA/OiBzdHJpbmc7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblx0LyoqIFRoZSBlZmZlY3RpdmUgdmFsdWUuICovXG5cdHZhbHVlPzogc3RyaW5nO1xuXHQvKiogV2hlcmUgdGhlIGVmZmVjdGl2ZSB2YWx1ZSBjb21lcyBmcm9tLiAqL1xuXHRzb3VyY2U6IFwicnVudGltZVwiIHwgXCJlbnZpcm9ubWVudFwiIHwgXCJkZXBsb3ltZW50XCIgfCBcIm1vZHVsZVwiIHwgXCJkZWZhdWx0XCIgfCBcInVuc2V0XCI7XG5cdC8qKiBUaGUgdmFsdWUgZWFjaCBzb3VyY2UgZ2l2ZXMgdGhlIGtleS4gKi9cblx0dmFsdWVzOiB7IHJ1bnRpbWU/OiBzdHJpbmc7IGVudmlyb25tZW50Pzogc3RyaW5nOyBkZXBsb3ltZW50Pzogc3RyaW5nOyBtb2R1bGU/OiBzdHJpbmcgfTtcblx0c2Vuc2l0aXZlOiBib29sZWFuO1xuXHRyZXN0YXJ0UmVxdWlyZWQ/OiBib29sZWFuO1xuXHR0ZW5hbnRPdmVycmlkYWJsZTogYm9vbGVhbjtcblx0ZGVwcmVjYXRlZEJ5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBncm91cCB3aXRoIGl0cyBkZXNjcmliZWQga2V5cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uRGVzY3JpcHRvckdyb3VwIHtcblx0Z3JvdXA6IHN0cmluZztcblx0c2VjdGlvbjogc3RyaW5nO1xuXHRsYWJlbDogc3RyaW5nO1xuXHRlbnRyaWVzOiBDb25maWd1cmF0aW9uRGVzY3JpcHRvcltdO1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbnMge1xuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5LlxuXHQgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIFRoZSBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUga2V5IGlzIG5vdCBmb3VuZC5cblx0ICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgYXMgYSBzdHJpbmcsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSBrZXkgaXMgbm90IGZvdW5kIGFuZCBubyBkZWZhdWx0IGlzIHByb3ZpZGVkLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXQoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdmFsdWUgPSBDb25maWd1cmF0aW9uLmdldChrZXksIGRlZmF1bHRWYWx1ZSk7XG5cdFx0cmV0dXJuIHZhbHVlID8/IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LlxuXHQgKiBJZiB0aGUga2V5IGFscmVhZHkgZXhpc3RzLCBpdHMgdmFsdWUgaXMgb3ZlcndyaXR0ZW4uXG5cdCAqIEBwYXJhbSBrZXkgVGhlIGNvbmZpZ3VyYXRpb24ga2V5LlxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgdG8gc2V0LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRDb25maWd1cmF0aW9uLnNldChrZXksIHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4ga2V5LlxuXHQgKiBAcGFyYW0ga2V5IFRoZSBjb25maWd1cmF0aW9uIGtleSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24ucmVtb3ZlKGtleSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgY3VycmVudCBjb25maWd1cmF0aW9uIGtleXMuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGNvbmZpZ3VyYXRpb24ga2V5cyAoc3RyaW5ncykuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldEtleXMoKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmdldEtleXMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGNvbmZpZ3VyYXRpb24gZ3JvdXBzLCBpbiBkaXNwbGF5IG9yZGVyLCB3aXRoIHRoZSBudW1iZXIgb2Yga2V5cyBhbmQgb2Ygc2V0IGtleXMgaW4gZWFjaC5cblx0ICogQHJldHVybnMgVGhlIGdyb3Vwcy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0R3JvdXBzKCk6IENvbmZpZ3VyYXRpb25Hcm91cFtdIHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShDb25maWd1cmF0aW9uc0ZhY2FkZS5nZXRHcm91cHMoKSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBkZXNjcmliZWQgY29uZmlndXJhdGlvbiBrZXlzLCBncm91cGVkOiBkZWZhdWx0LCBlZmZlY3RpdmUgdmFsdWUsIGl0cyBzb3VyY2UgYW5kIHRoZSB2YWx1ZVxuXHQgKiBvZiBlYWNoIHNvdXJjZS4gU2Vuc2l0aXZlIHZhbHVlcyBhcmUgbWFza2VkLlxuXHQgKiBAcGFyYW0gZ3JvdXAgQSBncm91cCBpZCAoZS5nLiBcImRhdGFiYXNlXCIpIG9yIHNldmVyYWw7IGFsbCBncm91cHMgd2hlbiBvbWl0dGVkLlxuXHQgKiBAcmV0dXJucyBUaGUgZ3JvdXBzIHRoYXQgaGF2ZSBrZXlzLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXREZXNjcmlwdG9ycyhncm91cD86IHN0cmluZyB8IHN0cmluZ1tdKTogQ29uZmlndXJhdGlvbkRlc2NyaXB0b3JHcm91cFtdIHtcblx0XHRjb25zdCBncm91cHMgPSBncm91cCA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IEFycmF5LmlzQXJyYXkoZ3JvdXApID8gZ3JvdXAuam9pbihcIixcIikgOiBncm91cDtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShDb25maWd1cmF0aW9uc0ZhY2FkZS5nZXREZXNjcmlwdG9ycyhncm91cHMpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMb2FkcyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZnJvbSBhIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBwYXRoLCBvdmVycmlkaW5nIGV4aXN0aW5nIG9uZXMuXG5cdCAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGggdG8gbG9hZCBjb25maWd1cmF0aW9ucyBmcm9tLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBsb2FkKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRcdENvbmZpZ3VyYXRpb24ubG9hZChwYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWxvYWRzIG9yIHVwZGF0ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmcm9tIHRoZWlyIHNvdXJjZSAoZS5nLiwgcGVyc2lzdGVuY2UgbGF5ZXIpLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cGRhdGUoKTogdm9pZCB7XG5cdFx0Q29uZmlndXJhdGlvbi51cGRhdGUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbS5cblx0ICogQHJldHVybnMgVGhlIE9TIG5hbWUgYXMgYSBzdHJpbmcgKGUuZy4sIFwiV2luZG93c1wiLCBcIkxpbnV4XCIsIFwiTWFjIE9TIFhcIikuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldE9TKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uZ2V0T1MoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBXaW5kb3dzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBXaW5kb3dzLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NXaW5kb3dzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NXaW5kb3dzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IE9wZXJhdGluZyBTeXN0ZW0gaXMgTWFjIE9TIChvciBNYWMgT1MgWCkuXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIE9TIGlzIE1hYywgZmFsc2Ugb3RoZXJ3aXNlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBpc09TTWFjKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NNYWMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBhIFVOSVgtbGlrZSBzeXN0ZW0gKGUuZy4sIExpbnV4LCBtYWNPUywgb3Igb3RoZXJzKS5cblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgT1MgaXMgYSBVTklYIHZhcmlhbnQsIGZhbHNlIG90aGVyd2lzZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgaXNPU1VOSVgoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ3VyYXRpb24uaXNPU1VOSVgoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgT3BlcmF0aW5nIFN5c3RlbSBpcyBTb2xhcmlzLlxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBPUyBpcyBTb2xhcmlzLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGlzT1NTb2xhcmlzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb25maWd1cmF0aW9uLmlzT1NTb2xhcmlzKCk7XG5cdH1cblxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IENvbmZpZ3VyYXRpb25zO1xufSJdLAogICJtYXBwaW5ncyI6ICJBQTZDQSxNQUFNLGdCQUFnQixLQUFLLEtBQUssb0RBQW9EO0FBQ3BGLE1BQU0sdUJBQXVCLEtBQUssS0FBSyxnRUFBZ0U7QUE0Q2hHLE1BQU0sZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUTNCLE9BQWMsSUFBSSxLQUFhLGNBQTJDO0FBQ3pFLFVBQU0sUUFBUSxjQUFjLElBQUksS0FBSyxZQUFZO0FBQ2pELFdBQU8sU0FBUztBQUFBLEVBQ2pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxPQUFjLElBQUksS0FBYSxPQUFxQjtBQUNuRCxrQkFBYyxJQUFJLEtBQUssS0FBSztBQUFBLEVBQzdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsT0FBTyxLQUFtQjtBQUN2QyxrQkFBYyxPQUFPLEdBQUc7QUFBQSxFQUN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFVBQW9CO0FBQ2pDLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDOUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxZQUFrQztBQUMvQyxXQUFPLEtBQUssTUFBTSxxQkFBcUIsVUFBVSxDQUFDO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsZUFBZSxPQUEyRDtBQUN2RixVQUFNLFNBQVMsVUFBVSxTQUFZLE9BQU8sTUFBTSxRQUFRLEtBQUssSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJO0FBQ3JGLFdBQU8sS0FBSyxNQUFNLHFCQUFxQixlQUFlLE1BQU0sQ0FBQztBQUFBLEVBQzlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsS0FBSyxNQUFvQjtBQUN0QyxrQkFBYyxLQUFLLElBQUk7QUFBQSxFQUN4QjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxTQUFlO0FBQzVCLGtCQUFjLE9BQU87QUFBQSxFQUN0QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFFBQWdCO0FBQzdCLFdBQU8sY0FBYyxNQUFNO0FBQUEsRUFDNUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxjQUF1QjtBQUNwQyxXQUFPLGNBQWMsWUFBWTtBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLE9BQWMsVUFBbUI7QUFDaEMsV0FBTyxjQUFjLFFBQVE7QUFBQSxFQUM5QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxPQUFjLFdBQW9CO0FBQ2pDLFdBQU8sY0FBYyxTQUFTO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsT0FBYyxjQUF1QjtBQUNwQyxXQUFPLGNBQWMsWUFBWTtBQUFBLEVBQ2xDO0FBRUQ7QUFHQSxJQUFJLE9BQU8sV0FBVyxhQUFhO0FBRWxDLFNBQU8sVUFBVTtBQUNsQjsiLAogICJuYW1lcyI6IFtdCn0K
|
package/package.json
CHANGED
package/test/flows/list.js
CHANGED
|
@@ -40,10 +40,43 @@ export function listFlow(manifest, entity) {
|
|
|
40
40
|
const emptyState = page.getByText('Get started by creating the first record').filter({ visible: true }).first();
|
|
41
41
|
await expect(firstHeader.or(emptyState).first()).toBeVisible();
|
|
42
42
|
if (entity.expectSeedData || (await firstHeader.isVisible())) {
|
|
43
|
-
for (const
|
|
44
|
-
await expect(page.getByRole('columnheader').filter({ hasText:
|
|
43
|
+
for (const label of declaredColumns(entity)) {
|
|
44
|
+
await expect(page.getByRole('columnheader').filter({ hasText: label }).first()).toBeVisible();
|
|
45
|
+
}
|
|
46
|
+
for (const label of hiddenColumns(entity)) {
|
|
47
|
+
await expect(page.getByRole('columnheader').filter({ hasText: label })).toHaveCount(0);
|
|
45
48
|
}
|
|
46
49
|
await expect(page.locator('tbody tr:visible').first()).toBeVisible();
|
|
47
50
|
}
|
|
48
51
|
});
|
|
49
52
|
}
|
|
53
|
+
|
|
54
|
+
// The headers the list is expected to render, in order (dirigible #7664). `list:` curates the list
|
|
55
|
+
// INDEPENDENTLY of each field's own `major`, so an entity that declares it renders exactly those
|
|
56
|
+
// columns and the `major` rule says nothing about it - which is why asserting the rule against a
|
|
57
|
+
// curated entity failed on the first instance that held a row, and passed on every empty one,
|
|
58
|
+
// where the assertion never runs at all.
|
|
59
|
+
function declaredColumns(entity) {
|
|
60
|
+
if (entity.list?.length) return entity.list.map((name) => columnLabel(entity, name));
|
|
61
|
+
return (entity.fields ?? []).filter((f) => f.major !== false && !f.primaryKey).map(labelOf);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ...and the ones it must NOT render. A curated list is the whole statement, so a field left off it
|
|
65
|
+
// is absent from the table however its own `major` reads - the half that catches a `list:` the page
|
|
66
|
+
// ignored.
|
|
67
|
+
function hiddenColumns(entity) {
|
|
68
|
+
if (!entity.list?.length) return [];
|
|
69
|
+
const listed = new Set(entity.list);
|
|
70
|
+
return (entity.fields ?? [])
|
|
71
|
+
.filter((f) => !f.primaryKey && !listed.has(f.name))
|
|
72
|
+
.map(labelOf);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// A `list:` entry names a property - a field, or a to-one relation - and the header carries that
|
|
76
|
+
// property's own label, which is what the manifest's `label` on the field already is.
|
|
77
|
+
function columnLabel(entity, name) {
|
|
78
|
+
const field = (entity.fields ?? []).find((f) => f.name === name);
|
|
79
|
+
if (field) return labelOf(field);
|
|
80
|
+
const relation = (entity.relations ?? []).find((r) => r.name === name);
|
|
81
|
+
return relation?.label ?? name;
|
|
82
|
+
}
|
package/test/form.js
CHANGED
|
@@ -86,9 +86,20 @@ export async function resolveRelationSamples(request, manifest, entity) {
|
|
|
86
86
|
if (relation.entityStatus) continue;
|
|
87
87
|
// a filtered picker needs a matching candidate, so fetch a page and filter client-side; a
|
|
88
88
|
// constrained relation needs alternatives to choose from
|
|
89
|
-
const wide =
|
|
89
|
+
const wide =
|
|
90
|
+
relation.where || relation.leafOnly || relation.pickable || relation.forbiddenTarget || constrained.has(relation.name);
|
|
90
91
|
const { rows: fetched, labelFrom } = await fetchRows(relation, wide ? 200 : 1);
|
|
91
92
|
let rows = relation.where ? fetched?.filter((r) => String(r[relation.where.by]) === String(relation.where.value)) : fetched;
|
|
93
|
+
// A picker rule narrows what the chooser OFFERS (dirigible #7663) and the child's own
|
|
94
|
+
// forbidWhen decides which parent it accepts at all (#7667). Both refuse a row the manifest
|
|
95
|
+
// otherwise describes as a candidate, so the sample has to respect them or the record is built
|
|
96
|
+
// from a row the UI never offers and the REST create is answered 400.
|
|
97
|
+
if (rows?.length && relation.pickable?.when?.length) {
|
|
98
|
+
rows = rows.filter((row) => relation.pickable.when.every((term) => termHolds(row, term)));
|
|
99
|
+
}
|
|
100
|
+
if (rows?.length && relation.forbiddenTarget?.length) {
|
|
101
|
+
rows = rows.filter((row) => !relation.forbiddenTarget.some((term) => termHolds(row, term)));
|
|
102
|
+
}
|
|
92
103
|
if (relation.leafOnly && rows?.length) {
|
|
93
104
|
// the generated validation rejects a non-leaf target - pick a row no other row parents
|
|
94
105
|
const prop = relation.leafOnly.hierarchyProperty;
|
|
@@ -97,7 +108,7 @@ export async function resolveRelationSamples(request, manifest, entity) {
|
|
|
97
108
|
}
|
|
98
109
|
if (!rows?.length) {
|
|
99
110
|
// a required FK cannot be satisfied - fail loudly; an optional one is simply left unset
|
|
100
|
-
if (relation.required) throw new Error(`Relation ${entity.name}.${relation.name}:
|
|
111
|
+
if (relation.required) throw new Error(`Relation ${entity.name}.${relation.name}: ${noCandidateReason(relation)}`);
|
|
101
112
|
continue;
|
|
102
113
|
}
|
|
103
114
|
const label = rows[0][labelFrom];
|
|
@@ -178,3 +189,26 @@ export async function fillForm(page, manifest, entity, record, relationSamples,
|
|
|
178
189
|
const dependents = pickable.filter((s) => s.relation.dependsOn);
|
|
179
190
|
for (const sample of [...triggers, ...dependents]) await pickDropdown(page, sample.relation, sample.label);
|
|
180
191
|
}
|
|
192
|
+
|
|
193
|
+
// One term of a picker rule or of a forbidWhen reaching through a relation, as the manifest writes
|
|
194
|
+
// it: `{ by, op, value }` with `op` one of eq / ne / present / absent, a presence test carrying no
|
|
195
|
+
// value. Compared as strings, because an id arrives as a number from REST and as text from a
|
|
196
|
+
// rendered option.
|
|
197
|
+
function termHolds(row, term) {
|
|
198
|
+
const value = row?.[term.by];
|
|
199
|
+
const empty = value == null || String(value).trim() === '';
|
|
200
|
+
if (term.op === 'present') return !empty;
|
|
201
|
+
if (term.op === 'absent') return empty;
|
|
202
|
+
if (term.op === 'ne') return String(value) !== String(term.value);
|
|
203
|
+
return String(value) === String(term.value);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Why a required relation had nothing to pick: the rule that excluded every row, in the words the
|
|
207
|
+
// model authored it in, so the failure names the business rule rather than "no rows".
|
|
208
|
+
function noCandidateReason(relation) {
|
|
209
|
+
const refusal = (relation.forbiddenTarget ?? []).find((term) => term.message)?.message;
|
|
210
|
+
if (refusal) return `every ${relation.to} is refused - ${refusal}`;
|
|
211
|
+
if (relation.forbiddenTarget?.length) return `every ${relation.to} is in a state this record refuses`;
|
|
212
|
+
if (relation.pickable?.when?.length) return `no ${relation.to} row satisfies the picker rule`;
|
|
213
|
+
return `no ${relation.to} rows to pick from`;
|
|
214
|
+
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var consumer_exports = {};
|
|
19
|
-
__export(consumer_exports, {
|
|
20
|
-
Consumer: () => Consumer
|
|
21
|
-
});
|
|
22
|
-
module.exports = __toCommonJS(consumer_exports);
|
|
23
|
-
const KafkaFacade = Java.type("org.eclipse.dirigible.components.api.kafka.KafkaFacade");
|
|
24
|
-
class Consumer {
|
|
25
|
-
/**
|
|
26
|
-
* Creates a new topic configuration wrapper that can be used to start or
|
|
27
|
-
* stop listening for messages on a Kafka topic.
|
|
28
|
-
*
|
|
29
|
-
* @param destination The name of the Kafka topic to consume messages from.
|
|
30
|
-
* @param configuration Optional key-value object containing Kafka consumer properties
|
|
31
|
-
* (e.g., 'group.id', 'auto.offset.reset').
|
|
32
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
33
|
-
*/
|
|
34
|
-
static topic(destination, configuration = {}) {
|
|
35
|
-
return new Topic(destination, configuration);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
class Topic {
|
|
39
|
-
destination;
|
|
40
|
-
configuration = {};
|
|
41
|
-
/**
|
|
42
|
-
* @param destination The name of the Kafka topic.
|
|
43
|
-
* @param configuration Optional key-value object for consumer properties.
|
|
44
|
-
*/
|
|
45
|
-
constructor(destination, configuration = {}) {
|
|
46
|
-
this.destination = destination;
|
|
47
|
-
this.configuration = configuration;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Starts listening to the configured topic in a background process.
|
|
51
|
-
*
|
|
52
|
-
* @param handler The path to the script or function name that will handle the incoming Kafka messages.
|
|
53
|
-
* This function should accept two arguments: `message` (string) and `headers` (object).
|
|
54
|
-
* @param timeout The maximum amount of time (in milliseconds) the consumer should wait for messages.
|
|
55
|
-
*/
|
|
56
|
-
startListening(handler, timeout) {
|
|
57
|
-
KafkaFacade.startListening(this.destination, handler, timeout, JSON.stringify(this.configuration));
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Stops the background process that is listening to the configured topic.
|
|
61
|
-
* Note: Stopping is based on matching the topic and configuration, so the same
|
|
62
|
-
* configuration object used in `startListening` should be used here.
|
|
63
|
-
*/
|
|
64
|
-
stopListening() {
|
|
65
|
-
KafkaFacade.stopListening(this.destination, JSON.stringify(this.configuration));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (typeof module !== "undefined") {
|
|
69
|
-
module.exports = Consumer;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL2NvbnN1bWVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvY29uc3VtZXJcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG5hbWUgQ29uc3VtZXJcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uc3VtZXIgbW9kdWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgY29uZmlndXJpbmcgYW5kIG1hbmFnaW5nIEthZmthIGNvbnN1bWVycywgYWxsb3dpbmcgc2NyaXB0cyB0byBzdGFydCBhbmQgc3RvcCBsaXN0ZW5pbmcgdG8gc3BlY2lmaWMgdG9waWNzLiBJdCBhYnN0cmFjdHMgdGhlIGNvbXBsZXhpdGllcyBvZiBLYWZrYSBjb25zdW1lciBjb25maWd1cmF0aW9uIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudCwgZW5hYmxpbmcgZGV2ZWxvcGVycyB0byBlYXNpbHkgaW50ZWdyYXRlIEthZmthIG1lc3NhZ2UgY29uc3VtcHRpb24gaW50byB0aGVpciBhcHBsaWNhdGlvbnMuXG4gKiBcbiAqICMjIyBLZXkgRmVhdHVyZXM6XG4gKiAtICoqVG9waWMgQ29uZmlndXJhdGlvbioqOiBUaGUgYENvbnN1bWVyLnRvcGljYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gY3JlYXRlIGEgdG9waWMgY29uZmlndXJhdGlvbiB3cmFwcGVyIHdpdGggc3BlY2lmaWVkIGRlc3RpbmF0aW9uIGFuZCBwcm9wZXJ0aWVzLlxuICogLSAqKkJhY2tncm91bmQgTGlzdGVuaW5nKio6IFRoZSBgc3RhcnRMaXN0ZW5pbmdgIG1ldGhvZCBzdGFydHMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MgdGhhdCBsaXN0ZW5zIGZvciBtZXNzYWdlcyBvbiB0aGUgY29uZmlndXJlZCB0b3BpYywgaW52b2tpbmcgYSBzcGVjaWZpZWQgaGFuZGxlciBmdW5jdGlvbiBmb3IgaW5jb21pbmcgbWVzc2FnZXMuXG4gKiAtICoqR3JhY2VmdWwgU2h1dGRvd24qKjogVGhlIGBzdG9wTGlzdGVuaW5nYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gc3RvcCB0aGUgYmFja2dyb3VuZCBsaXN0ZW5pbmcgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdG9waWMgYW5kIGNvbmZpZ3VyYXRpb24uXG4gKiBcbiAqICMjIyBVc2UgQ2FzZXM6XG4gKiAtICoqUmVhbC10aW1lIERhdGEgUHJvY2Vzc2luZyoqOiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhpcyBtb2R1bGUgdG8gY29uc3VtZSBtZXNzYWdlcyBmcm9tIEthZmthIHRvcGljcyBpbiByZWFsLXRpbWUsIGVuYWJsaW5nIHVzZSBjYXNlcyBzdWNoIGFzIHN0cmVhbSBwcm9jZXNzaW5nLCBldmVudC1kcml2ZW4gYXJjaGl0ZWN0dXJlcywgYW5kIG1pY3Jvc2VydmljZXMgY29tbXVuaWNhdGlvbi5cbiAqIC0gKipJbnRlZ3JhdGlvbiB3aXRoIE90aGVyIFN5c3RlbXMqKjogQnkgY29uc3VtaW5nIEthZmthIG1lc3NhZ2VzLCBhcHBsaWNhdGlvbnMgY2FuIGludGVncmF0ZSB3aXRoIG90aGVyIHN5c3RlbXMgdGhhdCBwcm9kdWNlIG1lc3NhZ2VzIHRvIEthZmthLCBmYWNpbGl0YXRpbmcgZGF0YSBmbG93IGFjcm9zcyBkaWZmZXJlbnQgY29tcG9uZW50cyBvZiBhbiBlY29zeXN0ZW0uXG4gKiBcbiAqICMjIyBFeGFtcGxlIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbnN1bWVyIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9rYWZrYVwiO1xuICogXG4gKiAvLyBDcmVhdGUgYSBjb25zdW1lciBmb3IgdGhlIFwib3JkZXJzXCIgdG9waWMgd2l0aCBzcGVjaWZpYyBjb25maWd1cmF0aW9uXG4gKiBjb25zdCBvcmRlcnNDb25zdW1lciA9IENvbnN1bWVyLnRvcGljKFwib3JkZXJzXCIsIHsgXCJncm91cC5pZFwiOiBcIm9yZGVyLXByb2Nlc3NvcnNcIiB9KTtcbiAqIFxuICogLy8gU3RhcnQgbGlzdGVuaW5nIHRvIHRoZSBcIm9yZGVyc1wiIHRvcGljIHdpdGggYSBtZXNzYWdlIGhhbmRsZXIgYW5kIHRpbWVvdXRcbiAqIG9yZGVyc0NvbnN1bWVyLnN0YXJ0TGlzdGVuaW5nKFwiaGFuZGxlT3JkZXJNZXNzYWdlXCIsIDMwMDAwKTtcbiAqIFxuICogLy8gTGF0ZXIsIHN0b3AgbGlzdGVuaW5nIHRvIHRoZSBcIm9yZGVyc1wiIHRvcGljXG4gKiBvcmRlcnNDb25zdW1lci5zdG9wTGlzdGVuaW5nKCk7XG4gKiBgYGBcbiAqL1xuXG5jb25zdCBLYWZrYUZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5rYWZrYS5LYWZrYUZhY2FkZVwiKTtcblxuLyoqXG4gKiBUaGUgQ29uc3VtZXIgY2xhc3MgYWN0cyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nXG4gKiBLYWZrYSB0b3BpYyBjb25zdW1lcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zdW1lciB7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHRvcGljIGNvbmZpZ3VyYXRpb24gd3JhcHBlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHN0YXJ0IG9yXG4gICAgICogc3RvcCBsaXN0ZW5pbmcgZm9yIG1lc3NhZ2VzIG9uIGEgS2Fma2EgdG9waWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVzdGluYXRpb24gVGhlIG5hbWUgb2YgdGhlIEthZmthIHRvcGljIHRvIGNvbnN1bWUgbWVzc2FnZXMgZnJvbS5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBPcHRpb25hbCBrZXktdmFsdWUgb2JqZWN0IGNvbnRhaW5pbmcgS2Fma2EgY29uc3VtZXIgcHJvcGVydGllc1xuICAgICAqIChlLmcuLCAnZ3JvdXAuaWQnLCAnYXV0by5vZmZzZXQucmVzZXQnKS5cbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBUb3BpY30gaW5zdGFuY2UgY29uZmlndXJlZCBmb3IgdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiBhbmQgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHRvcGljKGRlc3RpbmF0aW9uOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSk6IFRvcGljIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUb3BpYyhkZXN0aW5hdGlvbiwgY29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb25maWd1cmVkIEthZmthIHRvcGljIGNvbnN1bWVyIGNhcGFibGUgb2Ygc3RhcnRpbmcgYW5kIHN0b3BwaW5nXG4gKiBiYWNrZ3JvdW5kIG1lc3NhZ2UgbGlzdGVuaW5nLlxuICovXG5jbGFzcyBUb3BpYyB7XG4gICAgcHJpdmF0ZSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYy5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBPcHRpb25hbCBrZXktdmFsdWUgb2JqZWN0IGZvciBjb25zdW1lciBwcm9wZXJ0aWVzLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRlc3RpbmF0aW9uOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RhcnRzIGxpc3RlbmluZyB0byB0aGUgY29uZmlndXJlZCB0b3BpYyBpbiBhIGJhY2tncm91bmQgcHJvY2Vzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBwYXRoIHRvIHRoZSBzY3JpcHQgb3IgZnVuY3Rpb24gbmFtZSB0aGF0IHdpbGwgaGFuZGxlIHRoZSBpbmNvbWluZyBLYWZrYSBtZXNzYWdlcy5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgdHdvIGFyZ3VtZW50czogYG1lc3NhZ2VgIChzdHJpbmcpIGFuZCBgaGVhZGVyc2AgKG9iamVjdCkuXG4gICAgICogQHBhcmFtIHRpbWVvdXQgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhlIGNvbnN1bWVyIHNob3VsZCB3YWl0IGZvciBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnRMaXN0ZW5pbmcoaGFuZGxlcjogc3RyaW5nLCB0aW1lb3V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgS2Fma2FGYWNhZGUuc3RhcnRMaXN0ZW5pbmcodGhpcy5kZXN0aW5hdGlvbiwgaGFuZGxlciwgdGltZW91dCwgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWd1cmF0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RvcHMgdGhlIGJhY2tncm91bmQgcHJvY2VzcyB0aGF0IGlzIGxpc3RlbmluZyB0byB0aGUgY29uZmlndXJlZCB0b3BpYy5cbiAgICAgKiBOb3RlOiBTdG9wcGluZyBpcyBiYXNlZCBvbiBtYXRjaGluZyB0aGUgdG9waWMgYW5kIGNvbmZpZ3VyYXRpb24sIHNvIHRoZSBzYW1lXG4gICAgICogY29uZmlndXJhdGlvbiBvYmplY3QgdXNlZCBpbiBgc3RhcnRMaXN0ZW5pbmdgIHNob3VsZCBiZSB1c2VkIGhlcmUuXG4gICAgICovXG4gICAgcHVibGljIHN0b3BMaXN0ZW5pbmcoKTogdm9pZCB7XG4gICAgICAgIEthZmthRmFjYWRlLnN0b3BMaXN0ZW5pbmcodGhpcy5kZXN0aW5hdGlvbiwgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWd1cmF0aW9uKSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbW9kdWxlLmV4cG9ydHMgPSBDb25zdW1lcjtcbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQ0EsTUFBTSxjQUFjLEtBQUssS0FBSyx3REFBd0Q7QUFNL0UsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXbEIsT0FBYyxNQUFNLGFBQXFCLGdCQUEyQyxDQUFDLEdBQVU7QUFDM0YsV0FBTyxJQUFJLE1BQU0sYUFBYSxhQUFhO0FBQUEsRUFDL0M7QUFDSjtBQU1BLE1BQU0sTUFBTTtBQUFBLEVBQ0E7QUFBQSxFQUNBLGdCQUEyQyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1wRCxZQUFZLGFBQXFCLGdCQUEyQyxDQUFDLEdBQUc7QUFDNUUsU0FBSyxjQUFjO0FBQ25CLFNBQUssZ0JBQWdCO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sZUFBZSxTQUFpQixTQUF1QjtBQUMxRCxnQkFBWSxlQUFlLEtBQUssYUFBYSxTQUFTLFNBQVMsS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDckc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxnQkFBc0I7QUFDekIsZ0JBQVksY0FBYyxLQUFLLGFBQWEsS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDbEY7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFL0IsU0FBTyxVQUFVO0FBQ3JCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/cjs/kafka/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var kafka_exports = {};
|
|
20
|
-
__export(kafka_exports, {
|
|
21
|
-
consumer: () => import_consumer.Consumer,
|
|
22
|
-
producer: () => import_producer.Producer
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(kafka_exports);
|
|
25
|
-
var import_consumer = require("./consumer");
|
|
26
|
-
__reExport(kafka_exports, require("./consumer"), module.exports);
|
|
27
|
-
var import_producer = require("./producer");
|
|
28
|
-
__reExport(kafka_exports, require("./producer"), module.exports);
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvaW5kZXhcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyBmb3IgS2Fma2EgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBBZXJva2l0IFNESy4gSXQgaW5jbHVkZXMgY2xhc3NlcyBhbmQgbWV0aG9kcyBmb3IgcHJvZHVjaW5nIGFuZCBjb25zdW1pbmcgbWVzc2FnZXMgZnJvbSBLYWZrYSB0b3BpY3MsIGFzIHdlbGwgYXMgbWFuYWdpbmcgS2Fma2EgY29uZmlndXJhdGlvbnMgYW5kIGNvbm5lY3Rpb25zLlxuICogXG4gKiBUaGUgbWFpbiBjb21wb25lbnRzIG9mIHRoaXMgbW9kdWxlIGFyZTpcbiAqIC0gQ29uc3VtZXI6IFJlcHJlc2VudHMgYSBLYWZrYSBjb25zdW1lciB0aGF0IGNhbiBzdWJzY3JpYmUgdG8gdG9waWNzIGFuZCBjb25zdW1lIG1lc3NhZ2VzLlxuICogLSBQcm9kdWNlcjogUmVwcmVzZW50cyBhIEthZmthIHByb2R1Y2VyIHRoYXQgY2FuIHNlbmQgbWVzc2FnZXMgdG8gdG9waWNzLlxuICovXG5cbmV4cG9ydCB7IENvbnN1bWVyIGFzIGNvbnN1bWVyIH0gZnJvbSBcIi4vY29uc3VtZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN1bWVyXCI7XG5leHBvcnQgeyBQcm9kdWNlciBhcyBwcm9kdWNlciB9IGZyb20gXCIuL3Byb2R1Y2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9kdWNlclwiOyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLHNCQUFxQztBQUNyQywwQkFBYyx1QkFiZDtBQWNBLHNCQUFxQztBQUNyQywwQkFBYyx1QkFmZDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var producer_exports = {};
|
|
19
|
-
__export(producer_exports, {
|
|
20
|
-
Producer: () => Producer
|
|
21
|
-
});
|
|
22
|
-
module.exports = __toCommonJS(producer_exports);
|
|
23
|
-
const KafkaFacade = Java.type("org.eclipse.dirigible.components.api.kafka.KafkaFacade");
|
|
24
|
-
class Producer {
|
|
25
|
-
/**
|
|
26
|
-
* Creates a new topic configuration wrapper that can be used to send messages
|
|
27
|
-
* to a specific Kafka topic.
|
|
28
|
-
*
|
|
29
|
-
* @param destination The name of the Kafka topic to send messages to.
|
|
30
|
-
* @param configuration Optional key-value object containing Kafka producer properties
|
|
31
|
-
* (e.g., 'bootstrap.servers', 'acks').
|
|
32
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
33
|
-
*/
|
|
34
|
-
static topic(destination, configuration = {}) {
|
|
35
|
-
return new Topic(destination, configuration);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Closes the Kafka producer connection pool, releasing associated resources.
|
|
39
|
-
* This should be called when message sending is complete to ensure proper cleanup.
|
|
40
|
-
*
|
|
41
|
-
* @param configuration Optional key-value object containing the configuration
|
|
42
|
-
* used to initialize the producer to be closed.
|
|
43
|
-
*/
|
|
44
|
-
static close(configuration = {}) {
|
|
45
|
-
KafkaFacade.closeProducer(configuration);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
class Topic {
|
|
49
|
-
destination;
|
|
50
|
-
configuration;
|
|
51
|
-
/**
|
|
52
|
-
* @param destination The name of the Kafka topic.
|
|
53
|
-
* @param configuration Key-value object for producer properties.
|
|
54
|
-
*/
|
|
55
|
-
constructor(destination, configuration) {
|
|
56
|
-
this.destination = destination;
|
|
57
|
-
this.configuration = configuration;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Sends a message with an optional key to the configured Kafka topic.
|
|
61
|
-
*
|
|
62
|
-
* @param key The key of the message. Messages with the same key go to the same partition.
|
|
63
|
-
* @param value The content of the message to be sent.
|
|
64
|
-
*/
|
|
65
|
-
send(key, value) {
|
|
66
|
-
KafkaFacade.send(this.destination, key, value, JSON.stringify(this.configuration));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (typeof module !== "undefined") {
|
|
70
|
-
module.exports = Producer;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL3Byb2R1Y2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvcHJvZHVjZXJcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG5hbWUgUHJvZHVjZXJcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgUHJvZHVjZXIgbW9kdWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgY29uZmlndXJpbmcgYW5kIG1hbmFnaW5nIEthZmthIHByb2R1Y2VycywgYWxsb3dpbmcgc2NyaXB0cyB0byBjcmVhdGUgdG9waWNzLCBzZW5kIG1lc3NhZ2VzLCBhbmQgY2xvc2UgdGhlIHByb2R1Y2VyIGNvbm5lY3Rpb24uIEl0IGFic3RyYWN0cyB0aGUgY29tcGxleGl0aWVzIG9mIEthZmthIHByb2R1Y2VyIGNvbmZpZ3VyYXRpb24gYW5kIG1lc3NhZ2Ugc2VuZGluZywgZW5hYmxpbmcgZGV2ZWxvcGVycyB0byBlYXNpbHkgaW50ZWdyYXRlIEthZmthIG1lc3NhZ2UgcHJvZHVjdGlvbiBpbnRvIHRoZWlyIGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gKipUb3BpYyBDb25maWd1cmF0aW9uKio6IFRoZSBgUHJvZHVjZXIudG9waWNgIG1ldGhvZCBhbGxvd3MgZGV2ZWxvcGVycyB0byBjcmVhdGUgYSB0b3BpYyBjb25maWd1cmF0aW9uIHdyYXBwZXIgd2l0aCBzcGVjaWZpZWQgZGVzdGluYXRpb24gYW5kIHByb3BlcnRpZXMuXG4gKiAtICoqTWVzc2FnZSBTZW5kaW5nKio6IFRoZSBgc2VuZGAgbWV0aG9kIG9uIHRoZSBUb3BpYyBjbGFzcyBlbmFibGVzIHNlbmRpbmcgbWVzc2FnZXMgd2l0aCBvcHRpb25hbCBrZXlzIHRvIHRoZSBjb25maWd1cmVkIEthZmthIHRvcGljLlxuICogLSAqKkNvbm5lY3Rpb24gTWFuYWdlbWVudCoqOiBUaGUgYGNsb3NlYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gY2xvc2UgdGhlIEthZmthIHByb2R1Y2VyIGNvbm5lY3Rpb24gcG9vbCwgZW5zdXJpbmcgcHJvcGVyIHJlc291cmNlIGNsZWFudXAuXG4gKiBcbiAqICMjIyBVc2UgQ2FzZXM6XG4gKiAtICoqRXZlbnQgUHJvZHVjdGlvbioqOiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhpcyBtb2R1bGUgdG8gcHJvZHVjZSBtZXNzYWdlcyB0byBLYWZrYSB0b3BpY3MgaW4gcmVhbC10aW1lLCBlbmFibGluZyB1c2UgY2FzZXMgc3VjaCBhcyBldmVudC1kcml2ZW4gYXJjaGl0ZWN0dXJlcyBhbmQgbWljcm9zZXJ2aWNlcyBjb21tdW5pY2F0aW9uLlxuICogLSAqKkludGVncmF0aW9uIHdpdGggT3RoZXIgU3lzdGVtcyoqOiBCeSBzZW5kaW5nIEthZmthIG1lc3NhZ2VzLCBhcHBsaWNhdGlvbnMgY2FuIGludGVncmF0ZSB3aXRoIG90aGVyIHN5c3RlbXMgdGhhdCBjb25zdW1lIG1lc3NhZ2VzIGZyb20gS2Fma2EsIGZhY2lsaXRhdGluZyBkYXRhIGZsb3cgYWNyb3NzIGRpZmZlcmVudCBjb21wb25lbnRzIG9mIGFuIGVjb3N5c3RlbS5cbiAqIFxuICogIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2thZmthXCI7XG4gKiBcbiAqIC8vIENyZWF0ZSBhIHByb2R1Y2VyIGZvciB0aGUgXCJvcmRlcnNcIiB0b3BpYyB3aXRoIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAqIGNvbnN0IG9yZGVyc1Byb2R1Y2VyID0gUHJvZHVjZXIudG9waWMoXCJvcmRlcnNcIiwgeyBcImJvb3RzdHJhcC5zZXJ2ZXJzXCI6IFwibG9jYWxob3N0OjkwOTJcIiB9KTtcbiAqIFxuICogLy8gU2VuZCBhIG1lc3NhZ2Ugd2l0aCBhIGtleSB0byB0aGUgXCJvcmRlcnNcIiB0b3BpY1xuICogb3JkZXJzUHJvZHVjZXIuc2VuZChcIm9yZGVyMTIzXCIsIFwiTmV3IG9yZGVyIHBsYWNlZFwiKTtcbiAqIFxuICogLy8gTGF0ZXIsIGNsb3NlIHRoZSBwcm9kdWNlciBjb25uZWN0aW9uXG4gKiBQcm9kdWNlci5jbG9zZSh7IFwiYm9vdHN0cmFwLnNlcnZlcnNcIjogXCJsb2NhbGhvc3Q6OTA5MlwiIH0pO1xuICogYGBgXG4gKi9cblxuY29uc3QgS2Fma2FGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkua2Fma2EuS2Fma2FGYWNhZGVcIik7XG5cbi8qKlxuICogVGhlIFByb2R1Y2VyIGNsYXNzIHNlcnZlcyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nXG4gKiBLYWZrYSB0b3BpYyBwcm9kdWNlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9kdWNlciB7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHRvcGljIGNvbmZpZ3VyYXRpb24gd3JhcHBlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlbmQgbWVzc2FnZXNcbiAgICAgKiB0byBhIHNwZWNpZmljIEthZmthIHRvcGljLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYyB0byBzZW5kIG1lc3NhZ2VzIHRvLlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIE9wdGlvbmFsIGtleS12YWx1ZSBvYmplY3QgY29udGFpbmluZyBLYWZrYSBwcm9kdWNlciBwcm9wZXJ0aWVzXG4gICAgICogKGUuZy4sICdib290c3RyYXAuc2VydmVycycsICdhY2tzJykuXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgVG9waWN9IGluc3RhbmNlIGNvbmZpZ3VyZWQgZm9yIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24gYW5kIHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b3BpYyhkZXN0aW5hdGlvbjogc3RyaW5nLCBjb25maWd1cmF0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge30pOiBUb3BpYyB7XG4gICAgICAgIHJldHVybiBuZXcgVG9waWMoZGVzdGluYXRpb24sIGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgS2Fma2EgcHJvZHVjZXIgY29ubmVjdGlvbiBwb29sLCByZWxlYXNpbmcgYXNzb2NpYXRlZCByZXNvdXJjZXMuXG4gICAgICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gbWVzc2FnZSBzZW5kaW5nIGlzIGNvbXBsZXRlIHRvIGVuc3VyZSBwcm9wZXIgY2xlYW51cC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIE9wdGlvbmFsIGtleS12YWx1ZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvblxuICAgICAqIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvZHVjZXIgdG8gYmUgY2xvc2VkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2xvc2UoY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogdm9pZCB7XG4gICAgICAgIEthZmthRmFjYWRlLmNsb3NlUHJvZHVjZXIoY29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb25maWd1cmVkIEthZmthIHRvcGljIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VuZCBtZXNzYWdlcy5cbiAqL1xuY2xhc3MgVG9waWMge1xuXG4gICAgcHJpdmF0ZSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvbiBUaGUgbmFtZSBvZiB0aGUgS2Fma2EgdG9waWMuXG4gICAgICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gS2V5LXZhbHVlIG9iamVjdCBmb3IgcHJvZHVjZXIgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbjogc3RyaW5nLCBjb25maWd1cmF0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIG1lc3NhZ2Ugd2l0aCBhbiBvcHRpb25hbCBrZXkgdG8gdGhlIGNvbmZpZ3VyZWQgS2Fma2EgdG9waWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UuIE1lc3NhZ2VzIHdpdGggdGhlIHNhbWUga2V5IGdvIHRvIHRoZSBzYW1lIHBhcnRpdGlvbi5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbnRlbnQgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VuZChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBLYWZrYUZhY2FkZS5zZW5kKHRoaXMuZGVzdGluYXRpb24sIGtleSwgdmFsdWUsIEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlndXJhdGlvbikpO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBQcm9kdWNlcjtcbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQ0EsTUFBTSxjQUFjLEtBQUssS0FBSyx3REFBd0Q7QUFNL0UsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXbEIsT0FBYyxNQUFNLGFBQXFCLGdCQUEyQyxDQUFDLEdBQVU7QUFDM0YsV0FBTyxJQUFJLE1BQU0sYUFBYSxhQUFhO0FBQUEsRUFDL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU0EsT0FBYyxNQUFNLGdCQUEyQyxDQUFDLEdBQVM7QUFDckUsZ0JBQVksY0FBYyxhQUFhO0FBQUEsRUFDM0M7QUFDSjtBQUtBLE1BQU0sTUFBTTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1SLFlBQVksYUFBcUIsZUFBMEM7QUFDdkUsU0FBSyxjQUFjO0FBQ25CLFNBQUssZ0JBQWdCO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLEtBQUssS0FBYSxPQUFxQjtBQUMxQyxnQkFBWSxLQUFLLEtBQUssYUFBYSxLQUFLLE9BQU8sS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDckY7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVO0FBQ2xCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module kafka/consumer
|
|
3
|
-
* @package @aerokit/sdk/kafka
|
|
4
|
-
* @name Consumer
|
|
5
|
-
* @overview
|
|
6
|
-
*
|
|
7
|
-
* The Consumer module provides an API for configuring and managing Kafka consumers, allowing scripts to start and stop listening to specific topics. It abstracts the complexities of Kafka consumer configuration and lifecycle management, enabling developers to easily integrate Kafka message consumption into their applications.
|
|
8
|
-
*
|
|
9
|
-
* ### Key Features:
|
|
10
|
-
* - **Topic Configuration**: The `Consumer.topic` method allows developers to create a topic configuration wrapper with specified destination and properties.
|
|
11
|
-
* - **Background Listening**: The `startListening` method starts a background process that listens for messages on the configured topic, invoking a specified handler function for incoming messages.
|
|
12
|
-
* - **Graceful Shutdown**: The `stopListening` method allows developers to stop the background listening process based on the topic and configuration.
|
|
13
|
-
*
|
|
14
|
-
* ### Use Cases:
|
|
15
|
-
* - **Real-time Data Processing**: Developers can use this module to consume messages from Kafka topics in real-time, enabling use cases such as stream processing, event-driven architectures, and microservices communication.
|
|
16
|
-
* - **Integration with Other Systems**: By consuming Kafka messages, applications can integrate with other systems that produce messages to Kafka, facilitating data flow across different components of an ecosystem.
|
|
17
|
-
*
|
|
18
|
-
* ### Example Usage:
|
|
19
|
-
* ```ts
|
|
20
|
-
* import { Consumer } from "@aerokit/sdk/kafka";
|
|
21
|
-
*
|
|
22
|
-
* // Create a consumer for the "orders" topic with specific configuration
|
|
23
|
-
* const ordersConsumer = Consumer.topic("orders", { "group.id": "order-processors" });
|
|
24
|
-
*
|
|
25
|
-
* // Start listening to the "orders" topic with a message handler and timeout
|
|
26
|
-
* ordersConsumer.startListening("handleOrderMessage", 30000);
|
|
27
|
-
*
|
|
28
|
-
* // Later, stop listening to the "orders" topic
|
|
29
|
-
* ordersConsumer.stopListening();
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* The Consumer class acts as the main entry point for creating and configuring
|
|
34
|
-
* Kafka topic consumers.
|
|
35
|
-
*/
|
|
36
|
-
export declare class Consumer {
|
|
37
|
-
/**
|
|
38
|
-
* Creates a new topic configuration wrapper that can be used to start or
|
|
39
|
-
* stop listening for messages on a Kafka topic.
|
|
40
|
-
*
|
|
41
|
-
* @param destination The name of the Kafka topic to consume messages from.
|
|
42
|
-
* @param configuration Optional key-value object containing Kafka consumer properties
|
|
43
|
-
* (e.g., 'group.id', 'auto.offset.reset').
|
|
44
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
45
|
-
*/
|
|
46
|
-
static topic(destination: string, configuration?: {
|
|
47
|
-
[key: string]: string;
|
|
48
|
-
}): Topic;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Represents a configured Kafka topic consumer capable of starting and stopping
|
|
52
|
-
* background message listening.
|
|
53
|
-
*/
|
|
54
|
-
declare class Topic {
|
|
55
|
-
private destination;
|
|
56
|
-
private configuration;
|
|
57
|
-
/**
|
|
58
|
-
* @param destination The name of the Kafka topic.
|
|
59
|
-
* @param configuration Optional key-value object for consumer properties.
|
|
60
|
-
*/
|
|
61
|
-
constructor(destination: string, configuration?: {
|
|
62
|
-
[key: string]: string;
|
|
63
|
-
});
|
|
64
|
-
/**
|
|
65
|
-
* Starts listening to the configured topic in a background process.
|
|
66
|
-
*
|
|
67
|
-
* @param handler The path to the script or function name that will handle the incoming Kafka messages.
|
|
68
|
-
* This function should accept two arguments: `message` (string) and `headers` (object).
|
|
69
|
-
* @param timeout The maximum amount of time (in milliseconds) the consumer should wait for messages.
|
|
70
|
-
*/
|
|
71
|
-
startListening(handler: string, timeout: number): void;
|
|
72
|
-
/**
|
|
73
|
-
* Stops the background process that is listening to the configured topic.
|
|
74
|
-
* Note: Stopping is based on matching the topic and configuration, so the same
|
|
75
|
-
* configuration object used in `startListening` should be used here.
|
|
76
|
-
*/
|
|
77
|
-
stopListening(): void;
|
|
78
|
-
}
|
|
79
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module kafka/index
|
|
3
|
-
* @package @aerokit/sdk/kafka
|
|
4
|
-
* @overview
|
|
5
|
-
*
|
|
6
|
-
* This module provides functionalities for Kafka integration within the Aerokit SDK. It includes classes and methods for producing and consuming messages from Kafka topics, as well as managing Kafka configurations and connections.
|
|
7
|
-
*
|
|
8
|
-
* The main components of this module are:
|
|
9
|
-
* - Consumer: Represents a Kafka consumer that can subscribe to topics and consume messages.
|
|
10
|
-
* - Producer: Represents a Kafka producer that can send messages to topics.
|
|
11
|
-
*/
|
|
12
|
-
export { Consumer as consumer } from "./consumer";
|
|
13
|
-
export * from "./consumer";
|
|
14
|
-
export { Producer as producer } from "./producer";
|
|
15
|
-
export * from "./producer";
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module kafka/producer
|
|
3
|
-
* @package @aerokit/sdk/kafka
|
|
4
|
-
* @name Producer
|
|
5
|
-
* @overview
|
|
6
|
-
*
|
|
7
|
-
* The Producer module provides an API for configuring and managing Kafka producers, allowing scripts to create topics, send messages, and close the producer connection. It abstracts the complexities of Kafka producer configuration and message sending, enabling developers to easily integrate Kafka message production into their applications.
|
|
8
|
-
*
|
|
9
|
-
* ### Key Features:
|
|
10
|
-
* - **Topic Configuration**: The `Producer.topic` method allows developers to create a topic configuration wrapper with specified destination and properties.
|
|
11
|
-
* - **Message Sending**: The `send` method on the Topic class enables sending messages with optional keys to the configured Kafka topic.
|
|
12
|
-
* - **Connection Management**: The `close` method allows developers to close the Kafka producer connection pool, ensuring proper resource cleanup.
|
|
13
|
-
*
|
|
14
|
-
* ### Use Cases:
|
|
15
|
-
* - **Event Production**: Developers can use this module to produce messages to Kafka topics in real-time, enabling use cases such as event-driven architectures and microservices communication.
|
|
16
|
-
* - **Integration with Other Systems**: By sending Kafka messages, applications can integrate with other systems that consume messages from Kafka, facilitating data flow across different components of an ecosystem.
|
|
17
|
-
*
|
|
18
|
-
* ### Example Usage:
|
|
19
|
-
* ```ts
|
|
20
|
-
* import { Producer } from "@aerokit/sdk/kafka";
|
|
21
|
-
*
|
|
22
|
-
* // Create a producer for the "orders" topic with specific configuration
|
|
23
|
-
* const ordersProducer = Producer.topic("orders", { "bootstrap.servers": "localhost:9092" });
|
|
24
|
-
*
|
|
25
|
-
* // Send a message with a key to the "orders" topic
|
|
26
|
-
* ordersProducer.send("order123", "New order placed");
|
|
27
|
-
*
|
|
28
|
-
* // Later, close the producer connection
|
|
29
|
-
* Producer.close({ "bootstrap.servers": "localhost:9092" });
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* The Producer class serves as the main entry point for creating and configuring
|
|
34
|
-
* Kafka topic producers.
|
|
35
|
-
*/
|
|
36
|
-
export declare class Producer {
|
|
37
|
-
/**
|
|
38
|
-
* Creates a new topic configuration wrapper that can be used to send messages
|
|
39
|
-
* to a specific Kafka topic.
|
|
40
|
-
*
|
|
41
|
-
* @param destination The name of the Kafka topic to send messages to.
|
|
42
|
-
* @param configuration Optional key-value object containing Kafka producer properties
|
|
43
|
-
* (e.g., 'bootstrap.servers', 'acks').
|
|
44
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
45
|
-
*/
|
|
46
|
-
static topic(destination: string, configuration?: {
|
|
47
|
-
[key: string]: string;
|
|
48
|
-
}): Topic;
|
|
49
|
-
/**
|
|
50
|
-
* Closes the Kafka producer connection pool, releasing associated resources.
|
|
51
|
-
* This should be called when message sending is complete to ensure proper cleanup.
|
|
52
|
-
*
|
|
53
|
-
* @param configuration Optional key-value object containing the configuration
|
|
54
|
-
* used to initialize the producer to be closed.
|
|
55
|
-
*/
|
|
56
|
-
static close(configuration?: {
|
|
57
|
-
[key: string]: string;
|
|
58
|
-
}): void;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Represents a configured Kafka topic that can be used to send messages.
|
|
62
|
-
*/
|
|
63
|
-
declare class Topic {
|
|
64
|
-
private destination;
|
|
65
|
-
private configuration;
|
|
66
|
-
/**
|
|
67
|
-
* @param destination The name of the Kafka topic.
|
|
68
|
-
* @param configuration Key-value object for producer properties.
|
|
69
|
-
*/
|
|
70
|
-
constructor(destination: string, configuration: {
|
|
71
|
-
[key: string]: string;
|
|
72
|
-
});
|
|
73
|
-
/**
|
|
74
|
-
* Sends a message with an optional key to the configured Kafka topic.
|
|
75
|
-
*
|
|
76
|
-
* @param key The key of the message. Messages with the same key go to the same partition.
|
|
77
|
-
* @param value The content of the message to be sent.
|
|
78
|
-
*/
|
|
79
|
-
send(key: string, value: string): void;
|
|
80
|
-
}
|
|
81
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
const KafkaFacade = Java.type("org.eclipse.dirigible.components.api.kafka.KafkaFacade");
|
|
2
|
-
class Consumer {
|
|
3
|
-
/**
|
|
4
|
-
* Creates a new topic configuration wrapper that can be used to start or
|
|
5
|
-
* stop listening for messages on a Kafka topic.
|
|
6
|
-
*
|
|
7
|
-
* @param destination The name of the Kafka topic to consume messages from.
|
|
8
|
-
* @param configuration Optional key-value object containing Kafka consumer properties
|
|
9
|
-
* (e.g., 'group.id', 'auto.offset.reset').
|
|
10
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
11
|
-
*/
|
|
12
|
-
static topic(destination, configuration = {}) {
|
|
13
|
-
return new Topic(destination, configuration);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
class Topic {
|
|
17
|
-
destination;
|
|
18
|
-
configuration = {};
|
|
19
|
-
/**
|
|
20
|
-
* @param destination The name of the Kafka topic.
|
|
21
|
-
* @param configuration Optional key-value object for consumer properties.
|
|
22
|
-
*/
|
|
23
|
-
constructor(destination, configuration = {}) {
|
|
24
|
-
this.destination = destination;
|
|
25
|
-
this.configuration = configuration;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Starts listening to the configured topic in a background process.
|
|
29
|
-
*
|
|
30
|
-
* @param handler The path to the script or function name that will handle the incoming Kafka messages.
|
|
31
|
-
* This function should accept two arguments: `message` (string) and `headers` (object).
|
|
32
|
-
* @param timeout The maximum amount of time (in milliseconds) the consumer should wait for messages.
|
|
33
|
-
*/
|
|
34
|
-
startListening(handler, timeout) {
|
|
35
|
-
KafkaFacade.startListening(this.destination, handler, timeout, JSON.stringify(this.configuration));
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Stops the background process that is listening to the configured topic.
|
|
39
|
-
* Note: Stopping is based on matching the topic and configuration, so the same
|
|
40
|
-
* configuration object used in `startListening` should be used here.
|
|
41
|
-
*/
|
|
42
|
-
stopListening() {
|
|
43
|
-
KafkaFacade.stopListening(this.destination, JSON.stringify(this.configuration));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (typeof module !== "undefined") {
|
|
47
|
-
module.exports = Consumer;
|
|
48
|
-
}
|
|
49
|
-
export {
|
|
50
|
-
Consumer
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL2NvbnN1bWVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvY29uc3VtZXJcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG5hbWUgQ29uc3VtZXJcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgQ29uc3VtZXIgbW9kdWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgY29uZmlndXJpbmcgYW5kIG1hbmFnaW5nIEthZmthIGNvbnN1bWVycywgYWxsb3dpbmcgc2NyaXB0cyB0byBzdGFydCBhbmQgc3RvcCBsaXN0ZW5pbmcgdG8gc3BlY2lmaWMgdG9waWNzLiBJdCBhYnN0cmFjdHMgdGhlIGNvbXBsZXhpdGllcyBvZiBLYWZrYSBjb25zdW1lciBjb25maWd1cmF0aW9uIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudCwgZW5hYmxpbmcgZGV2ZWxvcGVycyB0byBlYXNpbHkgaW50ZWdyYXRlIEthZmthIG1lc3NhZ2UgY29uc3VtcHRpb24gaW50byB0aGVpciBhcHBsaWNhdGlvbnMuXG4gKiBcbiAqICMjIyBLZXkgRmVhdHVyZXM6XG4gKiAtICoqVG9waWMgQ29uZmlndXJhdGlvbioqOiBUaGUgYENvbnN1bWVyLnRvcGljYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gY3JlYXRlIGEgdG9waWMgY29uZmlndXJhdGlvbiB3cmFwcGVyIHdpdGggc3BlY2lmaWVkIGRlc3RpbmF0aW9uIGFuZCBwcm9wZXJ0aWVzLlxuICogLSAqKkJhY2tncm91bmQgTGlzdGVuaW5nKio6IFRoZSBgc3RhcnRMaXN0ZW5pbmdgIG1ldGhvZCBzdGFydHMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MgdGhhdCBsaXN0ZW5zIGZvciBtZXNzYWdlcyBvbiB0aGUgY29uZmlndXJlZCB0b3BpYywgaW52b2tpbmcgYSBzcGVjaWZpZWQgaGFuZGxlciBmdW5jdGlvbiBmb3IgaW5jb21pbmcgbWVzc2FnZXMuXG4gKiAtICoqR3JhY2VmdWwgU2h1dGRvd24qKjogVGhlIGBzdG9wTGlzdGVuaW5nYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gc3RvcCB0aGUgYmFja2dyb3VuZCBsaXN0ZW5pbmcgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdG9waWMgYW5kIGNvbmZpZ3VyYXRpb24uXG4gKiBcbiAqICMjIyBVc2UgQ2FzZXM6XG4gKiAtICoqUmVhbC10aW1lIERhdGEgUHJvY2Vzc2luZyoqOiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhpcyBtb2R1bGUgdG8gY29uc3VtZSBtZXNzYWdlcyBmcm9tIEthZmthIHRvcGljcyBpbiByZWFsLXRpbWUsIGVuYWJsaW5nIHVzZSBjYXNlcyBzdWNoIGFzIHN0cmVhbSBwcm9jZXNzaW5nLCBldmVudC1kcml2ZW4gYXJjaGl0ZWN0dXJlcywgYW5kIG1pY3Jvc2VydmljZXMgY29tbXVuaWNhdGlvbi5cbiAqIC0gKipJbnRlZ3JhdGlvbiB3aXRoIE90aGVyIFN5c3RlbXMqKjogQnkgY29uc3VtaW5nIEthZmthIG1lc3NhZ2VzLCBhcHBsaWNhdGlvbnMgY2FuIGludGVncmF0ZSB3aXRoIG90aGVyIHN5c3RlbXMgdGhhdCBwcm9kdWNlIG1lc3NhZ2VzIHRvIEthZmthLCBmYWNpbGl0YXRpbmcgZGF0YSBmbG93IGFjcm9zcyBkaWZmZXJlbnQgY29tcG9uZW50cyBvZiBhbiBlY29zeXN0ZW0uXG4gKiBcbiAqICMjIyBFeGFtcGxlIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IENvbnN1bWVyIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9rYWZrYVwiO1xuICogXG4gKiAvLyBDcmVhdGUgYSBjb25zdW1lciBmb3IgdGhlIFwib3JkZXJzXCIgdG9waWMgd2l0aCBzcGVjaWZpYyBjb25maWd1cmF0aW9uXG4gKiBjb25zdCBvcmRlcnNDb25zdW1lciA9IENvbnN1bWVyLnRvcGljKFwib3JkZXJzXCIsIHsgXCJncm91cC5pZFwiOiBcIm9yZGVyLXByb2Nlc3NvcnNcIiB9KTtcbiAqIFxuICogLy8gU3RhcnQgbGlzdGVuaW5nIHRvIHRoZSBcIm9yZGVyc1wiIHRvcGljIHdpdGggYSBtZXNzYWdlIGhhbmRsZXIgYW5kIHRpbWVvdXRcbiAqIG9yZGVyc0NvbnN1bWVyLnN0YXJ0TGlzdGVuaW5nKFwiaGFuZGxlT3JkZXJNZXNzYWdlXCIsIDMwMDAwKTtcbiAqIFxuICogLy8gTGF0ZXIsIHN0b3AgbGlzdGVuaW5nIHRvIHRoZSBcIm9yZGVyc1wiIHRvcGljXG4gKiBvcmRlcnNDb25zdW1lci5zdG9wTGlzdGVuaW5nKCk7XG4gKiBgYGBcbiAqL1xuXG5jb25zdCBLYWZrYUZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5rYWZrYS5LYWZrYUZhY2FkZVwiKTtcblxuLyoqXG4gKiBUaGUgQ29uc3VtZXIgY2xhc3MgYWN0cyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nXG4gKiBLYWZrYSB0b3BpYyBjb25zdW1lcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zdW1lciB7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHRvcGljIGNvbmZpZ3VyYXRpb24gd3JhcHBlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHN0YXJ0IG9yXG4gICAgICogc3RvcCBsaXN0ZW5pbmcgZm9yIG1lc3NhZ2VzIG9uIGEgS2Fma2EgdG9waWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVzdGluYXRpb24gVGhlIG5hbWUgb2YgdGhlIEthZmthIHRvcGljIHRvIGNvbnN1bWUgbWVzc2FnZXMgZnJvbS5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBPcHRpb25hbCBrZXktdmFsdWUgb2JqZWN0IGNvbnRhaW5pbmcgS2Fma2EgY29uc3VtZXIgcHJvcGVydGllc1xuICAgICAqIChlLmcuLCAnZ3JvdXAuaWQnLCAnYXV0by5vZmZzZXQucmVzZXQnKS5cbiAgICAgKiBAcmV0dXJucyBBIHtAbGluayBUb3BpY30gaW5zdGFuY2UgY29uZmlndXJlZCBmb3IgdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiBhbmQgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHRvcGljKGRlc3RpbmF0aW9uOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSk6IFRvcGljIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUb3BpYyhkZXN0aW5hdGlvbiwgY29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb25maWd1cmVkIEthZmthIHRvcGljIGNvbnN1bWVyIGNhcGFibGUgb2Ygc3RhcnRpbmcgYW5kIHN0b3BwaW5nXG4gKiBiYWNrZ3JvdW5kIG1lc3NhZ2UgbGlzdGVuaW5nLlxuICovXG5jbGFzcyBUb3BpYyB7XG4gICAgcHJpdmF0ZSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYy5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBPcHRpb25hbCBrZXktdmFsdWUgb2JqZWN0IGZvciBjb25zdW1lciBwcm9wZXJ0aWVzLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRlc3RpbmF0aW9uOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gZGVzdGluYXRpb247XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RhcnRzIGxpc3RlbmluZyB0byB0aGUgY29uZmlndXJlZCB0b3BpYyBpbiBhIGJhY2tncm91bmQgcHJvY2Vzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBwYXRoIHRvIHRoZSBzY3JpcHQgb3IgZnVuY3Rpb24gbmFtZSB0aGF0IHdpbGwgaGFuZGxlIHRoZSBpbmNvbWluZyBLYWZrYSBtZXNzYWdlcy5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBhY2NlcHQgdHdvIGFyZ3VtZW50czogYG1lc3NhZ2VgIChzdHJpbmcpIGFuZCBgaGVhZGVyc2AgKG9iamVjdCkuXG4gICAgICogQHBhcmFtIHRpbWVvdXQgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgdGhlIGNvbnN1bWVyIHNob3VsZCB3YWl0IGZvciBtZXNzYWdlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhcnRMaXN0ZW5pbmcoaGFuZGxlcjogc3RyaW5nLCB0aW1lb3V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgS2Fma2FGYWNhZGUuc3RhcnRMaXN0ZW5pbmcodGhpcy5kZXN0aW5hdGlvbiwgaGFuZGxlciwgdGltZW91dCwgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWd1cmF0aW9uKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RvcHMgdGhlIGJhY2tncm91bmQgcHJvY2VzcyB0aGF0IGlzIGxpc3RlbmluZyB0byB0aGUgY29uZmlndXJlZCB0b3BpYy5cbiAgICAgKiBOb3RlOiBTdG9wcGluZyBpcyBiYXNlZCBvbiBtYXRjaGluZyB0aGUgdG9waWMgYW5kIGNvbmZpZ3VyYXRpb24sIHNvIHRoZSBzYW1lXG4gICAgICogY29uZmlndXJhdGlvbiBvYmplY3QgdXNlZCBpbiBgc3RhcnRMaXN0ZW5pbmdgIHNob3VsZCBiZSB1c2VkIGhlcmUuXG4gICAgICovXG4gICAgcHVibGljIHN0b3BMaXN0ZW5pbmcoKTogdm9pZCB7XG4gICAgICAgIEthZmthRmFjYWRlLnN0b3BMaXN0ZW5pbmcodGhpcy5kZXN0aW5hdGlvbiwgSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWd1cmF0aW9uKSk7XG4gICAgfVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbW9kdWxlLmV4cG9ydHMgPSBDb25zdW1lcjtcbn0iXSwKICAibWFwcGluZ3MiOiAiQUFnQ0EsTUFBTSxjQUFjLEtBQUssS0FBSyx3REFBd0Q7QUFNL0UsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXbEIsT0FBYyxNQUFNLGFBQXFCLGdCQUEyQyxDQUFDLEdBQVU7QUFDM0YsV0FBTyxJQUFJLE1BQU0sYUFBYSxhQUFhO0FBQUEsRUFDL0M7QUFDSjtBQU1BLE1BQU0sTUFBTTtBQUFBLEVBQ0E7QUFBQSxFQUNBLGdCQUEyQyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1wRCxZQUFZLGFBQXFCLGdCQUEyQyxDQUFDLEdBQUc7QUFDNUUsU0FBSyxjQUFjO0FBQ25CLFNBQUssZ0JBQWdCO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU08sZUFBZSxTQUFpQixTQUF1QjtBQUMxRCxnQkFBWSxlQUFlLEtBQUssYUFBYSxTQUFTLFNBQVMsS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDckc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxnQkFBc0I7QUFDekIsZ0JBQVksY0FBYyxLQUFLLGFBQWEsS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDbEY7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFL0IsU0FBTyxVQUFVO0FBQ3JCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/esm/kafka/index.mjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Consumer } from "./consumer";
|
|
2
|
-
export * from "./consumer";
|
|
3
|
-
import { Producer } from "./producer";
|
|
4
|
-
export * from "./producer";
|
|
5
|
-
export {
|
|
6
|
-
Consumer as consumer,
|
|
7
|
-
Producer as producer
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvaW5kZXhcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyBmb3IgS2Fma2EgaW50ZWdyYXRpb24gd2l0aGluIHRoZSBBZXJva2l0IFNESy4gSXQgaW5jbHVkZXMgY2xhc3NlcyBhbmQgbWV0aG9kcyBmb3IgcHJvZHVjaW5nIGFuZCBjb25zdW1pbmcgbWVzc2FnZXMgZnJvbSBLYWZrYSB0b3BpY3MsIGFzIHdlbGwgYXMgbWFuYWdpbmcgS2Fma2EgY29uZmlndXJhdGlvbnMgYW5kIGNvbm5lY3Rpb25zLlxuICogXG4gKiBUaGUgbWFpbiBjb21wb25lbnRzIG9mIHRoaXMgbW9kdWxlIGFyZTpcbiAqIC0gQ29uc3VtZXI6IFJlcHJlc2VudHMgYSBLYWZrYSBjb25zdW1lciB0aGF0IGNhbiBzdWJzY3JpYmUgdG8gdG9waWNzIGFuZCBjb25zdW1lIG1lc3NhZ2VzLlxuICogLSBQcm9kdWNlcjogUmVwcmVzZW50cyBhIEthZmthIHByb2R1Y2VyIHRoYXQgY2FuIHNlbmQgbWVzc2FnZXMgdG8gdG9waWNzLlxuICovXG5cbmV4cG9ydCB7IENvbnN1bWVyIGFzIGNvbnN1bWVyIH0gZnJvbSBcIi4vY29uc3VtZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN1bWVyXCI7XG5leHBvcnQgeyBQcm9kdWNlciBhcyBwcm9kdWNlciB9IGZyb20gXCIuL3Byb2R1Y2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9kdWNlclwiOyJdLAogICJtYXBwaW5ncyI6ICJBQVlBLFNBQXFCLGdCQUFnQjtBQUNyQyxjQUFjO0FBQ2QsU0FBcUIsZ0JBQWdCO0FBQ3JDLGNBQWM7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
const KafkaFacade = Java.type("org.eclipse.dirigible.components.api.kafka.KafkaFacade");
|
|
2
|
-
class Producer {
|
|
3
|
-
/**
|
|
4
|
-
* Creates a new topic configuration wrapper that can be used to send messages
|
|
5
|
-
* to a specific Kafka topic.
|
|
6
|
-
*
|
|
7
|
-
* @param destination The name of the Kafka topic to send messages to.
|
|
8
|
-
* @param configuration Optional key-value object containing Kafka producer properties
|
|
9
|
-
* (e.g., 'bootstrap.servers', 'acks').
|
|
10
|
-
* @returns A {@link Topic} instance configured for the specified destination and properties.
|
|
11
|
-
*/
|
|
12
|
-
static topic(destination, configuration = {}) {
|
|
13
|
-
return new Topic(destination, configuration);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Closes the Kafka producer connection pool, releasing associated resources.
|
|
17
|
-
* This should be called when message sending is complete to ensure proper cleanup.
|
|
18
|
-
*
|
|
19
|
-
* @param configuration Optional key-value object containing the configuration
|
|
20
|
-
* used to initialize the producer to be closed.
|
|
21
|
-
*/
|
|
22
|
-
static close(configuration = {}) {
|
|
23
|
-
KafkaFacade.closeProducer(configuration);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
class Topic {
|
|
27
|
-
destination;
|
|
28
|
-
configuration;
|
|
29
|
-
/**
|
|
30
|
-
* @param destination The name of the Kafka topic.
|
|
31
|
-
* @param configuration Key-value object for producer properties.
|
|
32
|
-
*/
|
|
33
|
-
constructor(destination, configuration) {
|
|
34
|
-
this.destination = destination;
|
|
35
|
-
this.configuration = configuration;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Sends a message with an optional key to the configured Kafka topic.
|
|
39
|
-
*
|
|
40
|
-
* @param key The key of the message. Messages with the same key go to the same partition.
|
|
41
|
-
* @param value The content of the message to be sent.
|
|
42
|
-
*/
|
|
43
|
-
send(key, value) {
|
|
44
|
-
KafkaFacade.send(this.destination, key, value, JSON.stringify(this.configuration));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (typeof module !== "undefined") {
|
|
48
|
-
module.exports = Producer;
|
|
49
|
-
}
|
|
50
|
-
export {
|
|
51
|
-
Producer
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2thZmthL3Byb2R1Y2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUga2Fma2EvcHJvZHVjZXJcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9rYWZrYVxuICogQG5hbWUgUHJvZHVjZXJcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgUHJvZHVjZXIgbW9kdWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgY29uZmlndXJpbmcgYW5kIG1hbmFnaW5nIEthZmthIHByb2R1Y2VycywgYWxsb3dpbmcgc2NyaXB0cyB0byBjcmVhdGUgdG9waWNzLCBzZW5kIG1lc3NhZ2VzLCBhbmQgY2xvc2UgdGhlIHByb2R1Y2VyIGNvbm5lY3Rpb24uIEl0IGFic3RyYWN0cyB0aGUgY29tcGxleGl0aWVzIG9mIEthZmthIHByb2R1Y2VyIGNvbmZpZ3VyYXRpb24gYW5kIG1lc3NhZ2Ugc2VuZGluZywgZW5hYmxpbmcgZGV2ZWxvcGVycyB0byBlYXNpbHkgaW50ZWdyYXRlIEthZmthIG1lc3NhZ2UgcHJvZHVjdGlvbiBpbnRvIHRoZWlyIGFwcGxpY2F0aW9ucy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gKipUb3BpYyBDb25maWd1cmF0aW9uKio6IFRoZSBgUHJvZHVjZXIudG9waWNgIG1ldGhvZCBhbGxvd3MgZGV2ZWxvcGVycyB0byBjcmVhdGUgYSB0b3BpYyBjb25maWd1cmF0aW9uIHdyYXBwZXIgd2l0aCBzcGVjaWZpZWQgZGVzdGluYXRpb24gYW5kIHByb3BlcnRpZXMuXG4gKiAtICoqTWVzc2FnZSBTZW5kaW5nKio6IFRoZSBgc2VuZGAgbWV0aG9kIG9uIHRoZSBUb3BpYyBjbGFzcyBlbmFibGVzIHNlbmRpbmcgbWVzc2FnZXMgd2l0aCBvcHRpb25hbCBrZXlzIHRvIHRoZSBjb25maWd1cmVkIEthZmthIHRvcGljLlxuICogLSAqKkNvbm5lY3Rpb24gTWFuYWdlbWVudCoqOiBUaGUgYGNsb3NlYCBtZXRob2QgYWxsb3dzIGRldmVsb3BlcnMgdG8gY2xvc2UgdGhlIEthZmthIHByb2R1Y2VyIGNvbm5lY3Rpb24gcG9vbCwgZW5zdXJpbmcgcHJvcGVyIHJlc291cmNlIGNsZWFudXAuXG4gKiBcbiAqICMjIyBVc2UgQ2FzZXM6XG4gKiAtICoqRXZlbnQgUHJvZHVjdGlvbioqOiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhpcyBtb2R1bGUgdG8gcHJvZHVjZSBtZXNzYWdlcyB0byBLYWZrYSB0b3BpY3MgaW4gcmVhbC10aW1lLCBlbmFibGluZyB1c2UgY2FzZXMgc3VjaCBhcyBldmVudC1kcml2ZW4gYXJjaGl0ZWN0dXJlcyBhbmQgbWljcm9zZXJ2aWNlcyBjb21tdW5pY2F0aW9uLlxuICogLSAqKkludGVncmF0aW9uIHdpdGggT3RoZXIgU3lzdGVtcyoqOiBCeSBzZW5kaW5nIEthZmthIG1lc3NhZ2VzLCBhcHBsaWNhdGlvbnMgY2FuIGludGVncmF0ZSB3aXRoIG90aGVyIHN5c3RlbXMgdGhhdCBjb25zdW1lIG1lc3NhZ2VzIGZyb20gS2Fma2EsIGZhY2lsaXRhdGluZyBkYXRhIGZsb3cgYWNyb3NzIGRpZmZlcmVudCBjb21wb25lbnRzIG9mIGFuIGVjb3N5c3RlbS5cbiAqIFxuICogIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2thZmthXCI7XG4gKiBcbiAqIC8vIENyZWF0ZSBhIHByb2R1Y2VyIGZvciB0aGUgXCJvcmRlcnNcIiB0b3BpYyB3aXRoIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAqIGNvbnN0IG9yZGVyc1Byb2R1Y2VyID0gUHJvZHVjZXIudG9waWMoXCJvcmRlcnNcIiwgeyBcImJvb3RzdHJhcC5zZXJ2ZXJzXCI6IFwibG9jYWxob3N0OjkwOTJcIiB9KTtcbiAqIFxuICogLy8gU2VuZCBhIG1lc3NhZ2Ugd2l0aCBhIGtleSB0byB0aGUgXCJvcmRlcnNcIiB0b3BpY1xuICogb3JkZXJzUHJvZHVjZXIuc2VuZChcIm9yZGVyMTIzXCIsIFwiTmV3IG9yZGVyIHBsYWNlZFwiKTtcbiAqIFxuICogLy8gTGF0ZXIsIGNsb3NlIHRoZSBwcm9kdWNlciBjb25uZWN0aW9uXG4gKiBQcm9kdWNlci5jbG9zZSh7IFwiYm9vdHN0cmFwLnNlcnZlcnNcIjogXCJsb2NhbGhvc3Q6OTA5MlwiIH0pO1xuICogYGBgXG4gKi9cblxuY29uc3QgS2Fma2FGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkua2Fma2EuS2Fma2FGYWNhZGVcIik7XG5cbi8qKlxuICogVGhlIFByb2R1Y2VyIGNsYXNzIHNlcnZlcyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgY3JlYXRpbmcgYW5kIGNvbmZpZ3VyaW5nXG4gKiBLYWZrYSB0b3BpYyBwcm9kdWNlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9kdWNlciB7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHRvcGljIGNvbmZpZ3VyYXRpb24gd3JhcHBlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlbmQgbWVzc2FnZXNcbiAgICAgKiB0byBhIHNwZWNpZmljIEthZmthIHRvcGljLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlc3RpbmF0aW9uIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYyB0byBzZW5kIG1lc3NhZ2VzIHRvLlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIE9wdGlvbmFsIGtleS12YWx1ZSBvYmplY3QgY29udGFpbmluZyBLYWZrYSBwcm9kdWNlciBwcm9wZXJ0aWVzXG4gICAgICogKGUuZy4sICdib290c3RyYXAuc2VydmVycycsICdhY2tzJykuXG4gICAgICogQHJldHVybnMgQSB7QGxpbmsgVG9waWN9IGluc3RhbmNlIGNvbmZpZ3VyZWQgZm9yIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24gYW5kIHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0b3BpYyhkZXN0aW5hdGlvbjogc3RyaW5nLCBjb25maWd1cmF0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge30pOiBUb3BpYyB7XG4gICAgICAgIHJldHVybiBuZXcgVG9waWMoZGVzdGluYXRpb24sIGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgS2Fma2EgcHJvZHVjZXIgY29ubmVjdGlvbiBwb29sLCByZWxlYXNpbmcgYXNzb2NpYXRlZCByZXNvdXJjZXMuXG4gICAgICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gbWVzc2FnZSBzZW5kaW5nIGlzIGNvbXBsZXRlIHRvIGVuc3VyZSBwcm9wZXIgY2xlYW51cC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIE9wdGlvbmFsIGtleS12YWx1ZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvblxuICAgICAqIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvZHVjZXIgdG8gYmUgY2xvc2VkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2xvc2UoY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogdm9pZCB7XG4gICAgICAgIEthZmthRmFjYWRlLmNsb3NlUHJvZHVjZXIoY29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb25maWd1cmVkIEthZmthIHRvcGljIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VuZCBtZXNzYWdlcy5cbiAqL1xuY2xhc3MgVG9waWMge1xuXG4gICAgcHJpdmF0ZSBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvbiBUaGUgbmFtZSBvZiB0aGUgS2Fma2EgdG9waWMuXG4gICAgICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gS2V5LXZhbHVlIG9iamVjdCBmb3IgcHJvZHVjZXIgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbjogc3RyaW5nLCBjb25maWd1cmF0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIG1lc3NhZ2Ugd2l0aCBhbiBvcHRpb25hbCBrZXkgdG8gdGhlIGNvbmZpZ3VyZWQgS2Fma2EgdG9waWMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UuIE1lc3NhZ2VzIHdpdGggdGhlIHNhbWUga2V5IGdvIHRvIHRoZSBzYW1lIHBhcnRpdGlvbi5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbnRlbnQgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VuZChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBLYWZrYUZhY2FkZS5zZW5kKHRoaXMuZGVzdGluYXRpb24sIGtleSwgdmFsdWUsIEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlndXJhdGlvbikpO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBQcm9kdWNlcjtcbn0iXSwKICAibWFwcGluZ3MiOiAiQUFnQ0EsTUFBTSxjQUFjLEtBQUssS0FBSyx3REFBd0Q7QUFNL0UsTUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXbEIsT0FBYyxNQUFNLGFBQXFCLGdCQUEyQyxDQUFDLEdBQVU7QUFDM0YsV0FBTyxJQUFJLE1BQU0sYUFBYSxhQUFhO0FBQUEsRUFDL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU0EsT0FBYyxNQUFNLGdCQUEyQyxDQUFDLEdBQVM7QUFDckUsZ0JBQVksY0FBYyxhQUFhO0FBQUEsRUFDM0M7QUFDSjtBQUtBLE1BQU0sTUFBTTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1SLFlBQVksYUFBcUIsZUFBMEM7QUFDdkUsU0FBSyxjQUFjO0FBQ25CLFNBQUssZ0JBQWdCO0FBQUEsRUFDekI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLEtBQUssS0FBYSxPQUFxQjtBQUMxQyxnQkFBWSxLQUFLLEtBQUssYUFBYSxLQUFLLE9BQU8sS0FBSyxVQUFVLEtBQUssYUFBYSxDQUFDO0FBQUEsRUFDckY7QUFDSjtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVO0FBQ2xCOyIsCiAgIm5hbWVzIjogW10KfQo=
|