@dbx-tools/teams 0.6.82 → 0.6.86

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/lib/src/config.js CHANGED
@@ -28,7 +28,8 @@
28
28
  * @module
29
29
  */
30
30
  import { ValidationError } from "@databricks/appkit";
31
- import { env, object } from "@dbx-tools/shared-core";
31
+ import { config as runtimeConfig } from "@dbx-tools/core";
32
+ import { object } from "@dbx-tools/shared-core";
32
33
  import { card } from "@dbx-tools/shared-teams";
33
34
  /** Dedicated override for the Adaptive Card schema version the builder targets. */
34
35
  export const CARD_VERSION_ENV = "TEAMS_CARD_VERSION";
@@ -103,25 +104,27 @@ export const TEAMS_CONFIG_SCHEMA = {
103
104
  * valid absolute URL, since that is a deploy-time mistake.
104
105
  */
105
106
  export function resolveTeamsConfig(overrides) {
106
- const cardVersion = env.string(overrides?.cardVersion, CARD_VERSION_ENV) ?? card.ADAPTIVE_CARD_VERSION;
107
- const webhookUrl = env.string(overrides?.webhookUrl, WEBHOOK_URL_ENV);
108
- if (webhookUrl !== null && !isHttpsUrl(webhookUrl)) {
107
+ const cardVersion = runtimeConfig.string(overrides?.cardVersion, CARD_VERSION_ENV, runtimeConfig.ENV_ONLY) ??
108
+ card.ADAPTIVE_CARD_VERSION;
109
+ const webhookUrl = runtimeConfig.string(overrides?.webhookUrl, WEBHOOK_URL_ENV, runtimeConfig.ENV_ONLY);
110
+ if (webhookUrl !== undefined && !isHttpsUrl(webhookUrl)) {
109
111
  throw ValidationError.invalidValue(WEBHOOK_URL_ENV, webhookUrl, "an absolute https URL for the Teams webhook");
110
112
  }
111
- const agentPlugin = env.string(overrides?.agentPlugin, AGENT_PLUGIN_ENV) ?? DEFAULT_AGENT_PLUGIN;
113
+ const agentPlugin = runtimeConfig.string(overrides?.agentPlugin, AGENT_PLUGIN_ENV, runtimeConfig.ENV_ONLY) ??
114
+ DEFAULT_AGENT_PLUGIN;
112
115
  // Two independent conditions must BOTH hold: the operator asked for it, and
113
116
  // this is a development build. Gating on `NODE_ENV` as well means a stray
114
117
  // variable in a production environment cannot silently expose the endpoint.
115
- const requested = env.boolean(overrides?.allowUnauthenticated, ALLOW_UNAUTHENTICATED_ENV);
118
+ const requested = runtimeConfig.boolean(overrides?.allowUnauthenticated, ALLOW_UNAUTHENTICATED_ENV, runtimeConfig.ENV_ONLY);
116
119
  const allowUnauthenticated = requested === true && process.env.NODE_ENV === "development";
117
120
  return {
118
121
  cardVersion,
119
122
  agentPlugin,
120
123
  allowUnauthenticated,
121
124
  ...object.optional("webhookUrl", webhookUrl),
122
- ...object.optional("appId", env.string(overrides?.appId, APP_ID_ENVS)),
123
- ...object.optional("appPassword", env.string(overrides?.appPassword, APP_PASSWORD_ENVS)),
124
- ...object.optional("appTenantId", env.string(overrides?.appTenantId, APP_TENANT_ENVS)),
125
+ ...object.optional("appId", runtimeConfig.string(overrides?.appId, APP_ID_ENVS, runtimeConfig.ENV_ONLY)),
126
+ ...object.optional("appPassword", runtimeConfig.string(overrides?.appPassword, APP_PASSWORD_ENVS, runtimeConfig.ENV_ONLY)),
127
+ ...object.optional("appTenantId", runtimeConfig.string(overrides?.appTenantId, APP_TENANT_ENVS, runtimeConfig.ENV_ONLY)),
125
128
  };
126
129
  }
127
130
  /** Whether `value` parses as an absolute HTTPS URL. */
@@ -133,4 +136,4 @@ function isHttpsUrl(value) {
133
136
  return false;
134
137
  }
135
138
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHL0MsbUZBQW1GO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBRXJELG1FQUFtRTtBQUNuRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFFbkQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBRXJEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQVUsQ0FBQztBQUV6RSwwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSx3QkFBd0IsQ0FBVSxDQUFDO0FBRTNGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixDQUFVLENBQUM7QUFFM0Y7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDZCQUE2QixDQUFDO0FBRXZFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztBQW1GN0Msa0ZBQWtGO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFnQjtJQUM5QyxJQUFJLEVBQUUsUUFBUTtJQUNkLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsVUFB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QUFRLENBQUM7SUFDOUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBUZWFtcyBwbHVnaW46IHRoZSB0eXBlZCB7QGxpbmsgVGVhbXNQbHVnaW5Db25maWd9XG4gKiAodGhlIHBsdWdpbidzIHNsaWNlIG9mIEFwcEtpdCBjb25maWcpLCB0aGUgSlNPTiBTY2hlbWEgdGhlIG1hbmlmZXN0XG4gKiBwdWJsaXNoZXMgZm9yIGl0LCBhbmQge0BsaW5rIHJlc29sdmVUZWFtc0NvbmZpZ30gd2hpY2ggbGF5ZXJzIHRoYXQgY29uZmlnXG4gKiBvdmVyIGVudmlyb25tZW50IGRlZmF1bHRzIGludG8gdGhlIGNvbmNyZXRlIHtAbGluayBSZXNvbHZlZFRlYW1zQ29uZmlnfSB0aGVcbiAqIHJ1bnRpbWUgKyB0b29scyByZWFkLlxuICpcbiAqIEJ1aWxkaW5nIGEgY2FyZCBpcyBhIHB1cmUgdHJhbnNmb3JtLCBzbyB0aGUgY29uZmlnIGlzIGRlbGliZXJhdGVseSBzbWFsbDpcbiAqIHRoZSBBZGFwdGl2ZSBDYXJkIHZlcnNpb24gdGhlIGJ1aWxkZXIgdGFyZ2V0cywgYW4gb3B0aW9uYWwgVGVhbXNcbiAqIGluY29taW5nLXdlYmhvb2sgVVJMIGEgZGVwbG95bWVudCBjYW4gd2lyZSB1cCB0byBhY3R1YWxseSBQT1NUIGNhcmRzIHRvIGFcbiAqIGNoYW5uZWwsIGFuZCB3aGljaCBzaWJsaW5nIHBsdWdpbiBvd25zIHRoZSBhZ2VudHMgdGhlIGNvbnZlcnNhdGlvbiBlbmRwb2ludFxuICogYW5zd2VycyB3aXRoLlxuICpcbiAqIFRoZSByZW1haW5pbmcgZmllbGRzIGFyZSB0aGUgQXp1cmUgQm90IHJlZ2lzdHJhdGlvbiBhIHJlYWwgVGVhbXMgY2hhbm5lbFxuICogbmVlZHM6IGBhcHBJZGAgLyBgYXBwUGFzc3dvcmRgICh0aGUgYm90J3MgRW50cmEgYXBwbGljYXRpb24gY3JlZGVudGlhbHMsIHVzZWRcbiAqIGJvdGggdG8gdmFsaWRhdGUgdGhlIGluYm91bmQgSldUIGF1ZGllbmNlIGFuZCB0byBmZXRjaCB0aGUgb3V0Ym91bmQgQ29ubmVjdG9yXG4gKiB0b2tlbikgYW5kIGBhcHBUZW5hbnRJZGAgKHNldCBvbmx5IGZvciBhIHNpbmdsZS10ZW5hbnQgYm90KS4gV2hlbiBubyBgYXBwSWRgXG4gKiBpcyBjb25maWd1cmVkIHRoZSBgL21lc3NhZ2VzYCBlbmRwb2ludCBzdGF5cyBNT1VOVEVEIGJ1dCByZWZ1c2VzIGV2ZXJ5XG4gKiByZXF1ZXN0LCBzbyBhbiB1bmNvbmZpZ3VyZWQgZGVwbG95bWVudCBjYW5ub3QgYWNjaWRlbnRhbGx5IGV4cG9zZSBhblxuICogdW5hdXRoZW50aWNhdGVkIGJvdCBlbmRwb2ludC5cbiAqXG4gKiBFbnYgZmFsbGJhY2tzOiBgVEVBTVNfQ0FSRF9WRVJTSU9OYCwgYFRFQU1TX1dFQkhPT0tfVVJMYCxcbiAqIGBURUFNU19BR0VOVF9QTFVHSU5gLCBgVEVBTVNfQVBQX0lEYCwgYFRFQU1TX0FQUF9QQVNTV09SRGAsXG4gKiBgVEVBTVNfQVBQX1RFTkFOVF9JRGAuIFRoZSBgTUlDUk9TT0ZUX0FQUF8qYCBzcGVsbGluZ3MgdGhlIEJvdCBGcmFtZXdvcmsgU0RLXG4gKiB1c2VzIGFyZSBhY2NlcHRlZCBhcyBhbGlhc2VzIHNvIGFuIGV4aXN0aW5nIGJvdCdzIGVudmlyb25tZW50IGRyb3BzIGluXG4gKiB1bmNoYW5nZWQuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgdHlwZSBCYXNlUGx1Z2luQ29uZmlnIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgZW52LCBvYmplY3QgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgY2FyZCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC10ZWFtc1wiO1xuaW1wb3J0IHR5cGUgeyBKU09OU2NoZW1hNyB9IGZyb20gXCJqc29uLXNjaGVtYVwiO1xuXG4vKiogRGVkaWNhdGVkIG92ZXJyaWRlIGZvciB0aGUgQWRhcHRpdmUgQ2FyZCBzY2hlbWEgdmVyc2lvbiB0aGUgYnVpbGRlciB0YXJnZXRzLiAqL1xuZXhwb3J0IGNvbnN0IENBUkRfVkVSU0lPTl9FTlYgPSBcIlRFQU1TX0NBUkRfVkVSU0lPTlwiO1xuXG4vKiogRW52aXJvbm1lbnQgbmFtZSBmb3IgYW4gb3B0aW9uYWwgVGVhbXMgaW5jb21pbmctd2ViaG9vayBVUkwuICovXG5leHBvcnQgY29uc3QgV0VCSE9PS19VUkxfRU5WID0gXCJURUFNU19XRUJIT09LX1VSTFwiO1xuXG4vKiogRW52aXJvbm1lbnQgbmFtZSBvdmVycmlkaW5nIHdoaWNoIHNpYmxpbmcgcGx1Z2luIHByb3ZpZGVzIHRoZSBhZ2VudHMuICovXG5leHBvcnQgY29uc3QgQUdFTlRfUExVR0lOX0VOViA9IFwiVEVBTVNfQUdFTlRfUExVR0lOXCI7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgbmFtZXMgZm9yIHRoZSBib3QncyBFbnRyYSBhcHAgaWQsIGluIHByZWNlZGVuY2Ugb3JkZXIuIFRoZVxuICogYE1JQ1JPU09GVF9BUFBfSURgIGFsaWFzIGlzIHdoYXQgdGhlIEJvdCBGcmFtZXdvcmsgU0RLIGFuZCB0aGUgQXp1cmUgcG9ydGFsJ3NcbiAqIGdlbmVyYXRlZCBzZXR0aW5ncyB1c2UsIHNvIGFuIGV4aXN0aW5nIGJvdCBkZXBsb3ltZW50IG5lZWRzIG5vIG5ldyB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFQUF9JRF9FTlZTID0gW1wiVEVBTVNfQVBQX0lEXCIsIFwiTUlDUk9TT0ZUX0FQUF9JRFwiXSBhcyBjb25zdDtcblxuLyoqIEVudmlyb25tZW50IG5hbWVzIGZvciB0aGUgYm90J3MgY2xpZW50IHNlY3JldCwgaW4gcHJlY2VkZW5jZSBvcmRlci4gKi9cbmV4cG9ydCBjb25zdCBBUFBfUEFTU1dPUkRfRU5WUyA9IFtcIlRFQU1TX0FQUF9QQVNTV09SRFwiLCBcIk1JQ1JPU09GVF9BUFBfUEFTU1dPUkRcIl0gYXMgY29uc3Q7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgbmFtZXMgZm9yIHRoZSBib3QncyB0ZW5hbnQsIGluIHByZWNlZGVuY2Ugb3JkZXIuIFNldCBvbmx5IGZvciBhXG4gKiBzaW5nbGUtdGVuYW50IGJvdDsgYSBtdWx0aS10ZW5hbnQgYm90IGxlYXZlcyBpdCB1bnNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFQUF9URU5BTlRfRU5WUyA9IFtcIlRFQU1TX0FQUF9URU5BTlRfSURcIiwgXCJNSUNST1NPRlRfQVBQX1RFTkFOVF9JRFwiXSBhcyBjb25zdDtcblxuLyoqXG4gKiBFbnZpcm9ubWVudCBuYW1lIGZvciB0aGUgdW5hdXRoZW50aWNhdGVkLW1lc3NhZ2luZyBlc2NhcGUgaGF0Y2guIE5hbWVkXG4gKiBgVEVBTVNfQUxMT1dfVU5BVVRIRU5USUNBVEVEYCAocmF0aGVyIHRoYW4gc29tZXRoaW5nIHNvZnRlciBsaWtlIGBURUFNU19ERVZgKVxuICogc28gd2hhdCBpdCBkaXNhYmxlcyBpcyB1bm1pc3Rha2FibGUgaW4gYSBzaGVsbCBoaXN0b3J5IG9yIGRlcGxveSBtYW5pZmVzdC5cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTE9XX1VOQVVUSEVOVElDQVRFRF9FTlYgPSBcIlRFQU1TX0FMTE9XX1VOQVVUSEVOVElDQVRFRFwiO1xuXG4vKipcbiAqIERlZmF1bHQgcmVnaXN0ZXJlZCBuYW1lIG9mIHRoZSBwbHVnaW4gdGhlIGNvbnZlcnNhdGlvbiBlbmRwb2ludCBhc2tzIGZvciBhblxuICogYWdlbnQuIGBtYXN0cmFgIGlzIHRoZSBuYW1lIGBAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFgIHJlZ2lzdGVycyB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUdFTlRfUExVR0lOID0gXCJtYXN0cmFcIjtcblxuLyoqIEFwcEtpdCBjb25maWcgYWNjZXB0ZWQgYnkgdGhlIFRlYW1zIHBsdWdpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVhbXNQbHVnaW5Db25maWcgZXh0ZW5kcyBCYXNlUGx1Z2luQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFkYXB0aXZlIENhcmQgc2NoZW1hIHZlcnNpb24gdGhlIGJ1aWxkZXIgdGFyZ2V0cy4gRGVmYXVsdHMgdG9cbiAgICoge0BsaW5rIGNhcmQuQURBUFRJVkVfQ0FSRF9WRVJTSU9OfSAoYFwiMS41XCJgLCB3aGF0IFRlYW1zIHN1cHBvcnRzKS4gRmFsbHNcbiAgICogYmFjayB0byBgVEVBTVNfQ0FSRF9WRVJTSU9OYC5cbiAgICovXG4gIGNhcmRWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgVGVhbXMgaW5jb21pbmctd2ViaG9vayBVUkwuIFdoZW4gc2V0LCB0aGUgcGx1Z2luJ3MgYHBvc3RDYXJkYFxuICAgKiBleHBvcnQgLyByb3V0ZSBwb3N0cyB0aGUgY29tcGlsZWQgY2FyZCB0byB0aGlzIGNoYW5uZWw7IHdoZW4gdW5zZXQsXG4gICAqIHBvc3RpbmcgaXMgZGlzYWJsZWQgYW5kIHRoZSBwbHVnaW4gb25seSBidWlsZHMgY2FyZHMgZm9yIHRoZSBVSSB0byByZW5kZXIuXG4gICAqIEZhbGxzIGJhY2sgdG8gYFRFQU1TX1dFQkhPT0tfVVJMYC5cbiAgICovXG4gIHdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZWdpc3RlcmVkIG5hbWUgb2YgdGhlIHNpYmxpbmcgcGx1Z2luIHdob3NlIGFnZW50cyBhbnN3ZXIgYSBjb252ZXJzYXRpb25cbiAgICogdHVybi4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfQUdFTlRfUExVR0lOfSAoYFwibWFzdHJhXCJgKTsgc2V0IGl0IHdoZW4gdGhlXG4gICAqIE1hc3RyYSBwbHVnaW4gaXMgbW91bnRlZCB1bmRlciBhIGBjb25maWcubmFtZWAgb3ZlcnJpZGUuIEZhbGxzIGJhY2sgdG9cbiAgICogYFRFQU1TX0FHRU5UX1BMVUdJTmAuXG4gICAqL1xuICBhZ2VudFBsdWdpbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBib3QncyBFbnRyYSBhcHBsaWNhdGlvbiAoY2xpZW50KSBpZCBmcm9tIGl0cyBBenVyZSBCb3QgcmVnaXN0cmF0aW9uLlxuICAgKiBSZXF1aXJlZCBiZWZvcmUgYFBPU1QgL2FwaS90ZWFtcy9tZXNzYWdlc2Agd2lsbCBhY2NlcHQgYSByZXF1ZXN0OiBpdCBpcyB0aGVcbiAgICogYXVkaWVuY2UgYW4gaW5ib3VuZCBCb3QgRnJhbWV3b3JrIHRva2VuIG11c3QgY2FycnksIGFuZCB0aGUgY2xpZW50IGlkIHVzZWRcbiAgICogdG8gZmV0Y2ggYW4gb3V0Ym91bmQgQ29ubmVjdG9yIHRva2VuLiBGYWxscyBiYWNrIHRvIGBURUFNU19BUFBfSURgIC9cbiAgICogYE1JQ1JPU09GVF9BUFBfSURgLlxuICAgKi9cbiAgYXBwSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDbGllbnQgc2VjcmV0IGZvciB7QGxpbmsgYXBwSWR9LiBOZWVkZWQgdG8gc2VuZCByZXBsaWVzIHRocm91Z2ggdGhlXG4gICAqIENvbm5lY3RvciBBUEk7IHdpdGhvdXQgaXQgaW5ib3VuZCBhY3Rpdml0aWVzIHN0aWxsIHZhbGlkYXRlIGJ1dCB0aGUgYm90XG4gICAqIGNhbm5vdCBhbnN3ZXIuIEZhbGxzIGJhY2sgdG8gYFRFQU1TX0FQUF9QQVNTV09SRGAgL1xuICAgKiBgTUlDUk9TT0ZUX0FQUF9QQVNTV09SRGAuXG4gICAqL1xuICBhcHBQYXNzd29yZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRlbmFudCBpZCBmb3IgYSBTSU5HTEUtdGVuYW50IGJvdCByZWdpc3RyYXRpb24uIExlYXZlIHVuc2V0IGZvciBhXG4gICAqIG11bHRpLXRlbmFudCBib3QuIEZhbGxzIGJhY2sgdG8gYFRFQU1TX0FQUF9URU5BTlRfSURgIC9cbiAgICogYE1JQ1JPU09GVF9BUFBfVEVOQU5UX0lEYC5cbiAgICovXG4gIGFwcFRlbmFudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogU2VydmUgYFBPU1QgL21lc3NhZ2VzYCB3aXRoIE5PIGluYm91bmQgdG9rZW4gdmFsaWRhdGlvbiwgYW5kIHJlcGx5IGluIHRoZVxuICAgKiBIVFRQIHJlc3BvbnNlIGluc3RlYWQgb2YgdGhyb3VnaCB0aGUgQ29ubmVjdG9yIEFQSS5cbiAgICpcbiAgICogVGhpcyBleGlzdHMgc28gdGhlIG1lc3NhZ2luZyBlbmRwb2ludCBjYW4gYmUgZXhlcmNpc2VkIGxvY2FsbHkgLSBieSB0aGVcbiAgICogaW4tcmVwbyBwcmV2aWV3IGNoYXQsIGEgYGN1cmxgLCBvciB0aGUgQm90IEZyYW1ld29yayBFbXVsYXRvciAtIHdpdGhvdXQgYW5cbiAgICogQXp1cmUgQm90IHJlZ2lzdHJhdGlvbi4gSXQgcmVtb3ZlcyB0aGUgZW5kcG9pbnQncyBPTkxZIHRydXN0IGJvdW5kYXJ5OiBhbnlcbiAgICogY2FsbGVyIHRoYXQgY2FuIHJlYWNoIHRoZSByb3V0ZSBjYW4gZHJpdmUgdGhlIGFnZW50IGFuZCByZWFkIGl0cyBhbnN3ZXJzLlxuICAgKlxuICAgKiBOZXZlciBlbmFibGUgaXQgb24gYSBkZXBsb3ltZW50IHJlYWNoYWJsZSBmcm9tIHRoZSBpbnRlcm5ldC4gSXQgaXMgaWdub3JlZFxuICAgKiB1bmxlc3MgYE5PREVfRU5WYCBpcyBgZGV2ZWxvcG1lbnRgIChzZWUge0BsaW5rIHJlc29sdmVUZWFtc0NvbmZpZ30pLCBzbyBhXG4gICAqIHByb2R1Y3Rpb24gYnVpbGQgY2Fubm90IGJlIHRhbGtlZCBpbnRvIGl0IGJ5IGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGFsb25lLlxuICAgKiBGYWxscyBiYWNrIHRvIGBURUFNU19BTExPV19VTkFVVEhFTlRJQ0FURURgLlxuICAgKi9cbiAgYWxsb3dVbmF1dGhlbnRpY2F0ZWQ/OiBib29sZWFuO1xufVxuXG4vKiogVGhlIGNvbmNyZXRlIGNvbmZpZyB0aGUgcnVudGltZSByZWFkcywgYWZ0ZXIgY29uZmlnICsgZW52IHJlc29sdXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVGVhbXNDb25maWcge1xuICAvKiogQWRhcHRpdmUgQ2FyZCBzY2hlbWEgdmVyc2lvbiB0aGUgYnVpbGRlciBzdGFtcHMgb250byBldmVyeSBkb2N1bWVudC4gKi9cbiAgY2FyZFZlcnNpb246IHN0cmluZztcbiAgLyoqIFRlYW1zIGluY29taW5nLXdlYmhvb2sgVVJMLCBvciBgdW5kZWZpbmVkYCB3aGVuIHBvc3RpbmcgaXMgZGlzYWJsZWQuICovXG4gIHdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gIC8qKiBSZWdpc3RlcmVkIG5hbWUgb2YgdGhlIHBsdWdpbiB0aGUgY29udmVyc2F0aW9uIGVuZHBvaW50IHJlc29sdmVzIGFnZW50cyBmcm9tLiAqL1xuICBhZ2VudFBsdWdpbjogc3RyaW5nO1xuICAvKiogQm90IGFwcCAoY2xpZW50KSBpZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBib3QgcmVnaXN0cmF0aW9uIGlzIGNvbmZpZ3VyZWQuICovXG4gIGFwcElkPzogc3RyaW5nO1xuICAvKiogQm90IGNsaWVudCBzZWNyZXQsIG9yIGB1bmRlZmluZWRgIHdoZW4gcmVwbGllcyBjYW5ub3QgYmUgc2VudC4gKi9cbiAgYXBwUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIC8qKiBUZW5hbnQgaWQgZm9yIGEgc2luZ2xlLXRlbmFudCBib3QsIG9yIGB1bmRlZmluZWRgIGZvciBhIG11bHRpLXRlbmFudCBvbmUuICovXG4gIGFwcFRlbmFudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBgUE9TVCAvbWVzc2FnZXNgIHNlcnZlcyB0dXJucyB3aXRoIE5PIHRva2VuIHZhbGlkYXRpb24uIFNlZVxuICAgKiB7QGxpbmsgVGVhbXNQbHVnaW5Db25maWcuYWxsb3dVbmF1dGhlbnRpY2F0ZWR9LlxuICAgKi9cbiAgYWxsb3dVbmF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBKU09OIFNjaGVtYSBwdWJsaXNoZWQgaW4gdGhlIHBsdWdpbiBtYW5pZmVzdCBmb3Ige0BsaW5rIFRlYW1zUGx1Z2luQ29uZmlnfS4gKi9cbmV4cG9ydCBjb25zdCBURUFNU19DT05GSUdfU0NIRU1BOiBKU09OU2NoZW1hNyA9IHtcbiAgdHlwZTogXCJvYmplY3RcIixcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgY2FyZFZlcnNpb246IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYEFkYXB0aXZlIENhcmQgc2NoZW1hIHZlcnNpb24gdGhlIGJ1aWxkZXIgdGFyZ2V0cy4gJHtDQVJEX1ZFUlNJT05fRU5WfSBvdmVycmlkZXMgaXQuYCxcbiAgICB9LFxuICAgIHdlYmhvb2tVcmw6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYE9wdGlvbmFsIFRlYW1zIGluY29taW5nLXdlYmhvb2sgVVJMIHVzZWQgdG8gcG9zdCBjYXJkcy4gJHtXRUJIT09LX1VSTF9FTlZ9IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gICAgYWdlbnRQbHVnaW46IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYFJlZ2lzdGVyZWQgbmFtZSBvZiB0aGUgc2libGluZyBwbHVnaW4gd2hvc2UgYWdlbnRzIGFuc3dlciBhIGNvbnZlcnNhdGlvbiB0dXJuLiAke0FHRU5UX1BMVUdJTl9FTlZ9IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gICAgYXBwSWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYEVudHJhIGFwcCAoY2xpZW50KSBpZCBvZiB0aGUgQXp1cmUgQm90IHJlZ2lzdHJhdGlvbi4gUmVxdWlyZWQgZm9yIHRoZSBUZWFtcyBtZXNzYWdpbmcgZW5kcG9pbnQuICR7QVBQX0lEX0VOVlNbMF19IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gICAgYXBwUGFzc3dvcmQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYENsaWVudCBzZWNyZXQgZm9yIHRoZSBib3QgYXBwIGlkLCB1c2VkIHRvIGZldGNoIGFuIG91dGJvdW5kIENvbm5lY3RvciB0b2tlbi4gJHtBUFBfUEFTU1dPUkRfRU5WU1swXX0gb3ZlcnJpZGVzIGl0LmAsXG4gICAgfSxcbiAgICBhcHBUZW5hbnRJZDoge1xuICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBgVGVuYW50IGlkIGZvciBhIHNpbmdsZS10ZW5hbnQgYm90IHJlZ2lzdHJhdGlvbjsgdW5zZXQgZm9yIG11bHRpLXRlbmFudC4gJHtBUFBfVEVOQU5UX0VOVlNbMF19IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWQ6IHtcbiAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiU2VydmUgdGhlIFRlYW1zIG1lc3NhZ2luZyBlbmRwb2ludCB3aXRoIE5PIHRva2VuIHZhbGlkYXRpb24sIHJlcGx5aW5nIGluIFwiICtcbiAgICAgICAgXCJ0aGUgSFRUUCByZXNwb25zZS4gTG9jYWwgZGV2ZWxvcG1lbnQgb25seTsgaWdub3JlZCB1bmxlc3MgTk9ERV9FTlYgaXMgXCIgK1xuICAgICAgICBgZGV2ZWxvcG1lbnQuICR7QUxMT1dfVU5BVVRIRU5USUNBVEVEX0VOVn0gb3ZlcnJpZGVzIGl0LmAsXG4gICAgfSxcbiAgfSxcbn07XG5cbi8qKlxuICogTGF5ZXIgdGhlIHBsdWdpbiBjb25maWcgb3ZlciBlbnZpcm9ubWVudCBkZWZhdWx0cyBpbnRvIHRoZSBjb25jcmV0ZSBjb25maWdcbiAqIHRoZSBydW50aW1lIHVzZXMuIEZhaWxzIGxvdWRseSBvbiBhIHdlYmhvb2sgVVJMIHRoYXQgaXMgcHJlc2VudCBidXQgbm90IGFcbiAqIHZhbGlkIGFic29sdXRlIFVSTCwgc2luY2UgdGhhdCBpcyBhIGRlcGxveS10aW1lIG1pc3Rha2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVGVhbXNDb25maWcob3ZlcnJpZGVzPzogVGVhbXNQbHVnaW5Db25maWcpOiBSZXNvbHZlZFRlYW1zQ29uZmlnIHtcbiAgY29uc3QgY2FyZFZlcnNpb24gPVxuICAgIGVudi5zdHJpbmcob3ZlcnJpZGVzPy5jYXJkVmVyc2lvbiwgQ0FSRF9WRVJTSU9OX0VOVikgPz8gY2FyZC5BREFQVElWRV9DQVJEX1ZFUlNJT047XG4gIGNvbnN0IHdlYmhvb2tVcmwgPSBlbnYuc3RyaW5nKG92ZXJyaWRlcz8ud2ViaG9va1VybCwgV0VCSE9PS19VUkxfRU5WKTtcbiAgaWYgKHdlYmhvb2tVcmwgIT09IG51bGwgJiYgIWlzSHR0cHNVcmwod2ViaG9va1VybCkpIHtcbiAgICB0aHJvdyBWYWxpZGF0aW9uRXJyb3IuaW52YWxpZFZhbHVlKFxuICAgICAgV0VCSE9PS19VUkxfRU5WLFxuICAgICAgd2ViaG9va1VybCxcbiAgICAgIFwiYW4gYWJzb2x1dGUgaHR0cHMgVVJMIGZvciB0aGUgVGVhbXMgd2ViaG9va1wiLFxuICAgICk7XG4gIH1cbiAgY29uc3QgYWdlbnRQbHVnaW4gPSBlbnYuc3RyaW5nKG92ZXJyaWRlcz8uYWdlbnRQbHVnaW4sIEFHRU5UX1BMVUdJTl9FTlYpID8/IERFRkFVTFRfQUdFTlRfUExVR0lOO1xuICAvLyBUd28gaW5kZXBlbmRlbnQgY29uZGl0aW9ucyBtdXN0IEJPVEggaG9sZDogdGhlIG9wZXJhdG9yIGFza2VkIGZvciBpdCwgYW5kXG4gIC8vIHRoaXMgaXMgYSBkZXZlbG9wbWVudCBidWlsZC4gR2F0aW5nIG9uIGBOT0RFX0VOVmAgYXMgd2VsbCBtZWFucyBhIHN0cmF5XG4gIC8vIHZhcmlhYmxlIGluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCBjYW5ub3Qgc2lsZW50bHkgZXhwb3NlIHRoZSBlbmRwb2ludC5cbiAgY29uc3QgcmVxdWVzdGVkID0gZW52LmJvb2xlYW4ob3ZlcnJpZGVzPy5hbGxvd1VuYXV0aGVudGljYXRlZCwgQUxMT1dfVU5BVVRIRU5USUNBVEVEX0VOVik7XG4gIGNvbnN0IGFsbG93VW5hdXRoZW50aWNhdGVkID0gcmVxdWVzdGVkID09PSB0cnVlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCI7XG4gIHJldHVybiB7XG4gICAgY2FyZFZlcnNpb24sXG4gICAgYWdlbnRQbHVnaW4sXG4gICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWQsXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFwid2ViaG9va1VybFwiLCB3ZWJob29rVXJsKSxcbiAgICAuLi5vYmplY3Qub3B0aW9uYWwoXCJhcHBJZFwiLCBlbnYuc3RyaW5nKG92ZXJyaWRlcz8uYXBwSWQsIEFQUF9JRF9FTlZTKSksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFwiYXBwUGFzc3dvcmRcIiwgZW52LnN0cmluZyhvdmVycmlkZXM/LmFwcFBhc3N3b3JkLCBBUFBfUEFTU1dPUkRfRU5WUykpLFxuICAgIC4uLm9iamVjdC5vcHRpb25hbChcImFwcFRlbmFudElkXCIsIGVudi5zdHJpbmcob3ZlcnJpZGVzPy5hcHBUZW5hbnRJZCwgQVBQX1RFTkFOVF9FTlZTKSksXG4gIH07XG59XG5cbi8qKiBXaGV0aGVyIGB2YWx1ZWAgcGFyc2VzIGFzIGFuIGFic29sdXRlIEhUVFBTIFVSTC4gKi9cbmZ1bmN0aW9uIGlzSHR0cHNVcmwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgVVJMKHZhbHVlKS5wcm90b2NvbCA9PT0gXCJodHRwczpcIjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRy9DLG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztBQUVyRCxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLG1CQUFtQixDQUFDO0FBRW5ELDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFVLENBQUM7QUFFekUsMEVBQTBFO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsb0JBQW9CLEVBQUUsd0JBQXdCLENBQVUsQ0FBQztBQUUzRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSx5QkFBeUIsQ0FBVSxDQUFDO0FBRTNGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQztBQUV2RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUM7QUFtRjdDLGtGQUFrRjtBQUNsRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0I7SUFDOUMsSUFB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QyxNQUFNLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUN0RjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsdURBQXVEO0FBQ3ZELFNBQVMsVUFBVSxDQUFDLEtBQWE7SUFDL0IsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgVGVhbXMgcGx1Z2luOiB0aGUgdHlwZWQge0BsaW5rIFRlYW1zUGx1Z2luQ29uZmlnfVxuICogKHRoZSBwbHVnaW4ncyBzbGljZSBvZiBBcHBLaXQgY29uZmlnKSwgdGhlIEpTT04gU2NoZW1hIHRoZSBtYW5pZmVzdFxuICogcHVibGlzaGVzIGZvciBpdCwgYW5kIHtAbGluayByZXNvbHZlVGVhbXNDb25maWd9IHdoaWNoIGxheWVycyB0aGF0IGNvbmZpZ1xuICogb3ZlciBlbnZpcm9ubWVudCBkZWZhdWx0cyBpbnRvIHRoZSBjb25jcmV0ZSB7QGxpbmsgUmVzb2x2ZWRUZWFtc0NvbmZpZ30gdGhlXG4gKiBydW50aW1lICsgdG9vbHMgcmVhZC5cbiAqXG4gKiBCdWlsZGluZyBhIGNhcmQgaXMgYSBwdXJlIHRyYW5zZm9ybSwgc28gdGhlIGNvbmZpZyBpcyBkZWxpYmVyYXRlbHkgc21hbGw6XG4gKiB0aGUgQWRhcHRpdmUgQ2FyZCB2ZXJzaW9uIHRoZSBidWlsZGVyIHRhcmdldHMsIGFuIG9wdGlvbmFsIFRlYW1zXG4gKiBpbmNvbWluZy13ZWJob29rIFVSTCBhIGRlcGxveW1lbnQgY2FuIHdpcmUgdXAgdG8gYWN0dWFsbHkgUE9TVCBjYXJkcyB0byBhXG4gKiBjaGFubmVsLCBhbmQgd2hpY2ggc2libGluZyBwbHVnaW4gb3ducyB0aGUgYWdlbnRzIHRoZSBjb252ZXJzYXRpb24gZW5kcG9pbnRcbiAqIGFuc3dlcnMgd2l0aC5cbiAqXG4gKiBUaGUgcmVtYWluaW5nIGZpZWxkcyBhcmUgdGhlIEF6dXJlIEJvdCByZWdpc3RyYXRpb24gYSByZWFsIFRlYW1zIGNoYW5uZWxcbiAqIG5lZWRzOiBgYXBwSWRgIC8gYGFwcFBhc3N3b3JkYCAodGhlIGJvdCdzIEVudHJhIGFwcGxpY2F0aW9uIGNyZWRlbnRpYWxzLCB1c2VkXG4gKiBib3RoIHRvIHZhbGlkYXRlIHRoZSBpbmJvdW5kIEpXVCBhdWRpZW5jZSBhbmQgdG8gZmV0Y2ggdGhlIG91dGJvdW5kIENvbm5lY3RvclxuICogdG9rZW4pIGFuZCBgYXBwVGVuYW50SWRgIChzZXQgb25seSBmb3IgYSBzaW5nbGUtdGVuYW50IGJvdCkuIFdoZW4gbm8gYGFwcElkYFxuICogaXMgY29uZmlndXJlZCB0aGUgYC9tZXNzYWdlc2AgZW5kcG9pbnQgc3RheXMgTU9VTlRFRCBidXQgcmVmdXNlcyBldmVyeVxuICogcmVxdWVzdCwgc28gYW4gdW5jb25maWd1cmVkIGRlcGxveW1lbnQgY2Fubm90IGFjY2lkZW50YWxseSBleHBvc2UgYW5cbiAqIHVuYXV0aGVudGljYXRlZCBib3QgZW5kcG9pbnQuXG4gKlxuICogRW52IGZhbGxiYWNrczogYFRFQU1TX0NBUkRfVkVSU0lPTmAsIGBURUFNU19XRUJIT09LX1VSTGAsXG4gKiBgVEVBTVNfQUdFTlRfUExVR0lOYCwgYFRFQU1TX0FQUF9JRGAsIGBURUFNU19BUFBfUEFTU1dPUkRgLFxuICogYFRFQU1TX0FQUF9URU5BTlRfSURgLiBUaGUgYE1JQ1JPU09GVF9BUFBfKmAgc3BlbGxpbmdzIHRoZSBCb3QgRnJhbWV3b3JrIFNES1xuICogdXNlcyBhcmUgYWNjZXB0ZWQgYXMgYWxpYXNlcyBzbyBhbiBleGlzdGluZyBib3QncyBlbnZpcm9ubWVudCBkcm9wcyBpblxuICogdW5jaGFuZ2VkLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IsIHR5cGUgQmFzZVBsdWdpbkNvbmZpZyB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB7IGNvbmZpZyBhcyBydW50aW1lQ29uZmlnIH0gZnJvbSBcIkBkYngtdG9vbHMvY29yZVwiO1xuaW1wb3J0IHsgb2JqZWN0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGNhcmQgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtdGVhbXNcIjtcbmltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTcgfSBmcm9tIFwianNvbi1zY2hlbWFcIjtcblxuLyoqIERlZGljYXRlZCBvdmVycmlkZSBmb3IgdGhlIEFkYXB0aXZlIENhcmQgc2NoZW1hIHZlcnNpb24gdGhlIGJ1aWxkZXIgdGFyZ2V0cy4gKi9cbmV4cG9ydCBjb25zdCBDQVJEX1ZFUlNJT05fRU5WID0gXCJURUFNU19DQVJEX1ZFUlNJT05cIjtcblxuLyoqIEVudmlyb25tZW50IG5hbWUgZm9yIGFuIG9wdGlvbmFsIFRlYW1zIGluY29taW5nLXdlYmhvb2sgVVJMLiAqL1xuZXhwb3J0IGNvbnN0IFdFQkhPT0tfVVJMX0VOViA9IFwiVEVBTVNfV0VCSE9PS19VUkxcIjtcblxuLyoqIEVudmlyb25tZW50IG5hbWUgb3ZlcnJpZGluZyB3aGljaCBzaWJsaW5nIHBsdWdpbiBwcm92aWRlcyB0aGUgYWdlbnRzLiAqL1xuZXhwb3J0IGNvbnN0IEFHRU5UX1BMVUdJTl9FTlYgPSBcIlRFQU1TX0FHRU5UX1BMVUdJTlwiO1xuXG4vKipcbiAqIEVudmlyb25tZW50IG5hbWVzIGZvciB0aGUgYm90J3MgRW50cmEgYXBwIGlkLCBpbiBwcmVjZWRlbmNlIG9yZGVyLiBUaGVcbiAqIGBNSUNST1NPRlRfQVBQX0lEYCBhbGlhcyBpcyB3aGF0IHRoZSBCb3QgRnJhbWV3b3JrIFNESyBhbmQgdGhlIEF6dXJlIHBvcnRhbCdzXG4gKiBnZW5lcmF0ZWQgc2V0dGluZ3MgdXNlLCBzbyBhbiBleGlzdGluZyBib3QgZGVwbG95bWVudCBuZWVkcyBubyBuZXcgdmFyaWFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBBUFBfSURfRU5WUyA9IFtcIlRFQU1TX0FQUF9JRFwiLCBcIk1JQ1JPU09GVF9BUFBfSURcIl0gYXMgY29uc3Q7XG5cbi8qKiBFbnZpcm9ubWVudCBuYW1lcyBmb3IgdGhlIGJvdCdzIGNsaWVudCBzZWNyZXQsIGluIHByZWNlZGVuY2Ugb3JkZXIuICovXG5leHBvcnQgY29uc3QgQVBQX1BBU1NXT1JEX0VOVlMgPSBbXCJURUFNU19BUFBfUEFTU1dPUkRcIiwgXCJNSUNST1NPRlRfQVBQX1BBU1NXT1JEXCJdIGFzIGNvbnN0O1xuXG4vKipcbiAqIEVudmlyb25tZW50IG5hbWVzIGZvciB0aGUgYm90J3MgdGVuYW50LCBpbiBwcmVjZWRlbmNlIG9yZGVyLiBTZXQgb25seSBmb3IgYVxuICogc2luZ2xlLXRlbmFudCBib3Q7IGEgbXVsdGktdGVuYW50IGJvdCBsZWF2ZXMgaXQgdW5zZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBBUFBfVEVOQU5UX0VOVlMgPSBbXCJURUFNU19BUFBfVEVOQU5UX0lEXCIsIFwiTUlDUk9TT0ZUX0FQUF9URU5BTlRfSURcIl0gYXMgY29uc3Q7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgbmFtZSBmb3IgdGhlIHVuYXV0aGVudGljYXRlZC1tZXNzYWdpbmcgZXNjYXBlIGhhdGNoLiBOYW1lZFxuICogYFRFQU1TX0FMTE9XX1VOQVVUSEVOVElDQVRFRGAgKHJhdGhlciB0aGFuIHNvbWV0aGluZyBzb2Z0ZXIgbGlrZSBgVEVBTVNfREVWYClcbiAqIHNvIHdoYXQgaXQgZGlzYWJsZXMgaXMgdW5taXN0YWthYmxlIGluIGEgc2hlbGwgaGlzdG9yeSBvciBkZXBsb3kgbWFuaWZlc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBBTExPV19VTkFVVEhFTlRJQ0FURURfRU5WID0gXCJURUFNU19BTExPV19VTkFVVEhFTlRJQ0FURURcIjtcblxuLyoqXG4gKiBEZWZhdWx0IHJlZ2lzdGVyZWQgbmFtZSBvZiB0aGUgcGx1Z2luIHRoZSBjb252ZXJzYXRpb24gZW5kcG9pbnQgYXNrcyBmb3IgYW5cbiAqIGFnZW50LiBgbWFzdHJhYCBpcyB0aGUgbmFtZSBgQGRieC10b29scy9hcHBraXQtbWFzdHJhYCByZWdpc3RlcnMgdW5kZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FHRU5UX1BMVUdJTiA9IFwibWFzdHJhXCI7XG5cbi8qKiBBcHBLaXQgY29uZmlnIGFjY2VwdGVkIGJ5IHRoZSBUZWFtcyBwbHVnaW4uICovXG5leHBvcnQgaW50ZXJmYWNlIFRlYW1zUGx1Z2luQ29uZmlnIGV4dGVuZHMgQmFzZVBsdWdpbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBBZGFwdGl2ZSBDYXJkIHNjaGVtYSB2ZXJzaW9uIHRoZSBidWlsZGVyIHRhcmdldHMuIERlZmF1bHRzIHRvXG4gICAqIHtAbGluayBjYXJkLkFEQVBUSVZFX0NBUkRfVkVSU0lPTn0gKGBcIjEuNVwiYCwgd2hhdCBUZWFtcyBzdXBwb3J0cykuIEZhbGxzXG4gICAqIGJhY2sgdG8gYFRFQU1TX0NBUkRfVkVSU0lPTmAuXG4gICAqL1xuICBjYXJkVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIFRlYW1zIGluY29taW5nLXdlYmhvb2sgVVJMLiBXaGVuIHNldCwgdGhlIHBsdWdpbidzIGBwb3N0Q2FyZGBcbiAgICogZXhwb3J0IC8gcm91dGUgcG9zdHMgdGhlIGNvbXBpbGVkIGNhcmQgdG8gdGhpcyBjaGFubmVsOyB3aGVuIHVuc2V0LFxuICAgKiBwb3N0aW5nIGlzIGRpc2FibGVkIGFuZCB0aGUgcGx1Z2luIG9ubHkgYnVpbGRzIGNhcmRzIGZvciB0aGUgVUkgdG8gcmVuZGVyLlxuICAgKiBGYWxscyBiYWNrIHRvIGBURUFNU19XRUJIT09LX1VSTGAuXG4gICAqL1xuICB3ZWJob29rVXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVnaXN0ZXJlZCBuYW1lIG9mIHRoZSBzaWJsaW5nIHBsdWdpbiB3aG9zZSBhZ2VudHMgYW5zd2VyIGEgY29udmVyc2F0aW9uXG4gICAqIHR1cm4uIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0FHRU5UX1BMVUdJTn0gKGBcIm1hc3RyYVwiYCk7IHNldCBpdCB3aGVuIHRoZVxuICAgKiBNYXN0cmEgcGx1Z2luIGlzIG1vdW50ZWQgdW5kZXIgYSBgY29uZmlnLm5hbWVgIG92ZXJyaWRlLiBGYWxscyBiYWNrIHRvXG4gICAqIGBURUFNU19BR0VOVF9QTFVHSU5gLlxuICAgKi9cbiAgYWdlbnRQbHVnaW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYm90J3MgRW50cmEgYXBwbGljYXRpb24gKGNsaWVudCkgaWQgZnJvbSBpdHMgQXp1cmUgQm90IHJlZ2lzdHJhdGlvbi5cbiAgICogUmVxdWlyZWQgYmVmb3JlIGBQT1NUIC9hcGkvdGVhbXMvbWVzc2FnZXNgIHdpbGwgYWNjZXB0IGEgcmVxdWVzdDogaXQgaXMgdGhlXG4gICAqIGF1ZGllbmNlIGFuIGluYm91bmQgQm90IEZyYW1ld29yayB0b2tlbiBtdXN0IGNhcnJ5LCBhbmQgdGhlIGNsaWVudCBpZCB1c2VkXG4gICAqIHRvIGZldGNoIGFuIG91dGJvdW5kIENvbm5lY3RvciB0b2tlbi4gRmFsbHMgYmFjayB0byBgVEVBTVNfQVBQX0lEYCAvXG4gICAqIGBNSUNST1NPRlRfQVBQX0lEYC5cbiAgICovXG4gIGFwcElkPzogc3RyaW5nO1xuICAvKipcbiAgICogQ2xpZW50IHNlY3JldCBmb3Ige0BsaW5rIGFwcElkfS4gTmVlZGVkIHRvIHNlbmQgcmVwbGllcyB0aHJvdWdoIHRoZVxuICAgKiBDb25uZWN0b3IgQVBJOyB3aXRob3V0IGl0IGluYm91bmQgYWN0aXZpdGllcyBzdGlsbCB2YWxpZGF0ZSBidXQgdGhlIGJvdFxuICAgKiBjYW5ub3QgYW5zd2VyLiBGYWxscyBiYWNrIHRvIGBURUFNU19BUFBfUEFTU1dPUkRgIC9cbiAgICogYE1JQ1JPU09GVF9BUFBfUEFTU1dPUkRgLlxuICAgKi9cbiAgYXBwUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZW5hbnQgaWQgZm9yIGEgU0lOR0xFLXRlbmFudCBib3QgcmVnaXN0cmF0aW9uLiBMZWF2ZSB1bnNldCBmb3IgYVxuICAgKiBtdWx0aS10ZW5hbnQgYm90LiBGYWxscyBiYWNrIHRvIGBURUFNU19BUFBfVEVOQU5UX0lEYCAvXG4gICAqIGBNSUNST1NPRlRfQVBQX1RFTkFOVF9JRGAuXG4gICAqL1xuICBhcHBUZW5hbnRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNlcnZlIGBQT1NUIC9tZXNzYWdlc2Agd2l0aCBOTyBpbmJvdW5kIHRva2VuIHZhbGlkYXRpb24sIGFuZCByZXBseSBpbiB0aGVcbiAgICogSFRUUCByZXNwb25zZSBpbnN0ZWFkIG9mIHRocm91Z2ggdGhlIENvbm5lY3RvciBBUEkuXG4gICAqXG4gICAqIFRoaXMgZXhpc3RzIHNvIHRoZSBtZXNzYWdpbmcgZW5kcG9pbnQgY2FuIGJlIGV4ZXJjaXNlZCBsb2NhbGx5IC0gYnkgdGhlXG4gICAqIGluLXJlcG8gcHJldmlldyBjaGF0LCBhIGBjdXJsYCwgb3IgdGhlIEJvdCBGcmFtZXdvcmsgRW11bGF0b3IgLSB3aXRob3V0IGFuXG4gICAqIEF6dXJlIEJvdCByZWdpc3RyYXRpb24uIEl0IHJlbW92ZXMgdGhlIGVuZHBvaW50J3MgT05MWSB0cnVzdCBib3VuZGFyeTogYW55XG4gICAqIGNhbGxlciB0aGF0IGNhbiByZWFjaCB0aGUgcm91dGUgY2FuIGRyaXZlIHRoZSBhZ2VudCBhbmQgcmVhZCBpdHMgYW5zd2Vycy5cbiAgICpcbiAgICogTmV2ZXIgZW5hYmxlIGl0IG9uIGEgZGVwbG95bWVudCByZWFjaGFibGUgZnJvbSB0aGUgaW50ZXJuZXQuIEl0IGlzIGlnbm9yZWRcbiAgICogdW5sZXNzIGBOT0RFX0VOVmAgaXMgYGRldmVsb3BtZW50YCAoc2VlIHtAbGluayByZXNvbHZlVGVhbXNDb25maWd9KSwgc28gYVxuICAgKiBwcm9kdWN0aW9uIGJ1aWxkIGNhbm5vdCBiZSB0YWxrZWQgaW50byBpdCBieSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbG9uZS5cbiAgICogRmFsbHMgYmFjayB0byBgVEVBTVNfQUxMT1dfVU5BVVRIRU5USUNBVEVEYC5cbiAgICovXG4gIGFsbG93VW5hdXRoZW50aWNhdGVkPzogYm9vbGVhbjtcbn1cblxuLyoqIFRoZSBjb25jcmV0ZSBjb25maWcgdGhlIHJ1bnRpbWUgcmVhZHMsIGFmdGVyIGNvbmZpZyArIGVudiByZXNvbHV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFRlYW1zQ29uZmlnIHtcbiAgLyoqIEFkYXB0aXZlIENhcmQgc2NoZW1hIHZlcnNpb24gdGhlIGJ1aWxkZXIgc3RhbXBzIG9udG8gZXZlcnkgZG9jdW1lbnQuICovXG4gIGNhcmRWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBUZWFtcyBpbmNvbWluZy13ZWJob29rIFVSTCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBwb3N0aW5nIGlzIGRpc2FibGVkLiAqL1xuICB3ZWJob29rVXJsPzogc3RyaW5nO1xuICAvKiogUmVnaXN0ZXJlZCBuYW1lIG9mIHRoZSBwbHVnaW4gdGhlIGNvbnZlcnNhdGlvbiBlbmRwb2ludCByZXNvbHZlcyBhZ2VudHMgZnJvbS4gKi9cbiAgYWdlbnRQbHVnaW46IHN0cmluZztcbiAgLyoqIEJvdCBhcHAgKGNsaWVudCkgaWQsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gYm90IHJlZ2lzdHJhdGlvbiBpcyBjb25maWd1cmVkLiAqL1xuICBhcHBJZD86IHN0cmluZztcbiAgLyoqIEJvdCBjbGllbnQgc2VjcmV0LCBvciBgdW5kZWZpbmVkYCB3aGVuIHJlcGxpZXMgY2Fubm90IGJlIHNlbnQuICovXG4gIGFwcFBhc3N3b3JkPzogc3RyaW5nO1xuICAvKiogVGVuYW50IGlkIGZvciBhIHNpbmdsZS10ZW5hbnQgYm90LCBvciBgdW5kZWZpbmVkYCBmb3IgYSBtdWx0aS10ZW5hbnQgb25lLiAqL1xuICBhcHBUZW5hbnRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgYFBPU1QgL21lc3NhZ2VzYCBzZXJ2ZXMgdHVybnMgd2l0aCBOTyB0b2tlbiB2YWxpZGF0aW9uLiBTZWVcbiAgICoge0BsaW5rIFRlYW1zUGx1Z2luQ29uZmlnLmFsbG93VW5hdXRoZW50aWNhdGVkfS5cbiAgICovXG4gIGFsbG93VW5hdXRoZW50aWNhdGVkOiBib29sZWFuO1xufVxuXG4vKiogSlNPTiBTY2hlbWEgcHVibGlzaGVkIGluIHRoZSBwbHVnaW4gbWFuaWZlc3QgZm9yIHtAbGluayBUZWFtc1BsdWdpbkNvbmZpZ30uICovXG5leHBvcnQgY29uc3QgVEVBTVNfQ09ORklHX1NDSEVNQTogSlNPTlNjaGVtYTcgPSB7XG4gIHR5cGU6IFwib2JqZWN0XCIsXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgcHJvcGVydGllczoge1xuICAgIGNhcmRWZXJzaW9uOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IGBBZGFwdGl2ZSBDYXJkIHNjaGVtYSB2ZXJzaW9uIHRoZSBidWlsZGVyIHRhcmdldHMuICR7Q0FSRF9WRVJTSU9OX0VOVn0gb3ZlcnJpZGVzIGl0LmAsXG4gICAgfSxcbiAgICB3ZWJob29rVXJsOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IGBPcHRpb25hbCBUZWFtcyBpbmNvbWluZy13ZWJob29rIFVSTCB1c2VkIHRvIHBvc3QgY2FyZHMuICR7V0VCSE9PS19VUkxfRU5WfSBvdmVycmlkZXMgaXQuYCxcbiAgICB9LFxuICAgIGFnZW50UGx1Z2luOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IGBSZWdpc3RlcmVkIG5hbWUgb2YgdGhlIHNpYmxpbmcgcGx1Z2luIHdob3NlIGFnZW50cyBhbnN3ZXIgYSBjb252ZXJzYXRpb24gdHVybi4gJHtBR0VOVF9QTFVHSU5fRU5WfSBvdmVycmlkZXMgaXQuYCxcbiAgICB9LFxuICAgIGFwcElkOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IGBFbnRyYSBhcHAgKGNsaWVudCkgaWQgb2YgdGhlIEF6dXJlIEJvdCByZWdpc3RyYXRpb24uIFJlcXVpcmVkIGZvciB0aGUgVGVhbXMgbWVzc2FnaW5nIGVuZHBvaW50LiAke0FQUF9JRF9FTlZTWzBdfSBvdmVycmlkZXMgaXQuYCxcbiAgICB9LFxuICAgIGFwcFBhc3N3b3JkOiB7XG4gICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgZGVzY3JpcHRpb246IGBDbGllbnQgc2VjcmV0IGZvciB0aGUgYm90IGFwcCBpZCwgdXNlZCB0byBmZXRjaCBhbiBvdXRib3VuZCBDb25uZWN0b3IgdG9rZW4uICR7QVBQX1BBU1NXT1JEX0VOVlNbMF19IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gICAgYXBwVGVuYW50SWQ6IHtcbiAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICBkZXNjcmlwdGlvbjogYFRlbmFudCBpZCBmb3IgYSBzaW5nbGUtdGVuYW50IGJvdCByZWdpc3RyYXRpb247IHVuc2V0IGZvciBtdWx0aS10ZW5hbnQuICR7QVBQX1RFTkFOVF9FTlZTWzBdfSBvdmVycmlkZXMgaXQuYCxcbiAgICB9LFxuICAgIGFsbG93VW5hdXRoZW50aWNhdGVkOiB7XG4gICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlNlcnZlIHRoZSBUZWFtcyBtZXNzYWdpbmcgZW5kcG9pbnQgd2l0aCBOTyB0b2tlbiB2YWxpZGF0aW9uLCByZXBseWluZyBpbiBcIiArXG4gICAgICAgIFwidGhlIEhUVFAgcmVzcG9uc2UuIExvY2FsIGRldmVsb3BtZW50IG9ubHk7IGlnbm9yZWQgdW5sZXNzIE5PREVfRU5WIGlzIFwiICtcbiAgICAgICAgYGRldmVsb3BtZW50LiAke0FMTE9XX1VOQVVUSEVOVElDQVRFRF9FTlZ9IG92ZXJyaWRlcyBpdC5gLFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIExheWVyIHRoZSBwbHVnaW4gY29uZmlnIG92ZXIgZW52aXJvbm1lbnQgZGVmYXVsdHMgaW50byB0aGUgY29uY3JldGUgY29uZmlnXG4gKiB0aGUgcnVudGltZSB1c2VzLiBGYWlscyBsb3VkbHkgb24gYSB3ZWJob29rIFVSTCB0aGF0IGlzIHByZXNlbnQgYnV0IG5vdCBhXG4gKiB2YWxpZCBhYnNvbHV0ZSBVUkwsIHNpbmNlIHRoYXQgaXMgYSBkZXBsb3ktdGltZSBtaXN0YWtlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRlYW1zQ29uZmlnKG92ZXJyaWRlcz86IFRlYW1zUGx1Z2luQ29uZmlnKTogUmVzb2x2ZWRUZWFtc0NvbmZpZyB7XG4gIGNvbnN0IGNhcmRWZXJzaW9uID1cbiAgICBydW50aW1lQ29uZmlnLnN0cmluZyhvdmVycmlkZXM/LmNhcmRWZXJzaW9uLCBDQVJEX1ZFUlNJT05fRU5WLCBydW50aW1lQ29uZmlnLkVOVl9PTkxZKSA/P1xuICAgIGNhcmQuQURBUFRJVkVfQ0FSRF9WRVJTSU9OO1xuICBjb25zdCB3ZWJob29rVXJsID0gcnVudGltZUNvbmZpZy5zdHJpbmcoXG4gICAgb3ZlcnJpZGVzPy53ZWJob29rVXJsLFxuICAgIFdFQkhPT0tfVVJMX0VOVixcbiAgICBydW50aW1lQ29uZmlnLkVOVl9PTkxZLFxuICApO1xuICBpZiAod2ViaG9va1VybCAhPT0gdW5kZWZpbmVkICYmICFpc0h0dHBzVXJsKHdlYmhvb2tVcmwpKSB7XG4gICAgdGhyb3cgVmFsaWRhdGlvbkVycm9yLmludmFsaWRWYWx1ZShcbiAgICAgIFdFQkhPT0tfVVJMX0VOVixcbiAgICAgIHdlYmhvb2tVcmwsXG4gICAgICBcImFuIGFic29sdXRlIGh0dHBzIFVSTCBmb3IgdGhlIFRlYW1zIHdlYmhvb2tcIixcbiAgICApO1xuICB9XG4gIGNvbnN0IGFnZW50UGx1Z2luID1cbiAgICBydW50aW1lQ29uZmlnLnN0cmluZyhvdmVycmlkZXM/LmFnZW50UGx1Z2luLCBBR0VOVF9QTFVHSU5fRU5WLCBydW50aW1lQ29uZmlnLkVOVl9PTkxZKSA/P1xuICAgIERFRkFVTFRfQUdFTlRfUExVR0lOO1xuICAvLyBUd28gaW5kZXBlbmRlbnQgY29uZGl0aW9ucyBtdXN0IEJPVEggaG9sZDogdGhlIG9wZXJhdG9yIGFza2VkIGZvciBpdCwgYW5kXG4gIC8vIHRoaXMgaXMgYSBkZXZlbG9wbWVudCBidWlsZC4gR2F0aW5nIG9uIGBOT0RFX0VOVmAgYXMgd2VsbCBtZWFucyBhIHN0cmF5XG4gIC8vIHZhcmlhYmxlIGluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCBjYW5ub3Qgc2lsZW50bHkgZXhwb3NlIHRoZSBlbmRwb2ludC5cbiAgY29uc3QgcmVxdWVzdGVkID0gcnVudGltZUNvbmZpZy5ib29sZWFuKFxuICAgIG92ZXJyaWRlcz8uYWxsb3dVbmF1dGhlbnRpY2F0ZWQsXG4gICAgQUxMT1dfVU5BVVRIRU5USUNBVEVEX0VOVixcbiAgICBydW50aW1lQ29uZmlnLkVOVl9PTkxZLFxuICApO1xuICBjb25zdCBhbGxvd1VuYXV0aGVudGljYXRlZCA9IHJlcXVlc3RlZCA9PT0gdHJ1ZSAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiO1xuICByZXR1cm4ge1xuICAgIGNhcmRWZXJzaW9uLFxuICAgIGFnZW50UGx1Z2luLFxuICAgIGFsbG93VW5hdXRoZW50aWNhdGVkLFxuICAgIC4uLm9iamVjdC5vcHRpb25hbChcIndlYmhvb2tVcmxcIiwgd2ViaG9va1VybCksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJhcHBJZFwiLFxuICAgICAgcnVudGltZUNvbmZpZy5zdHJpbmcob3ZlcnJpZGVzPy5hcHBJZCwgQVBQX0lEX0VOVlMsIHJ1bnRpbWVDb25maWcuRU5WX09OTFkpLFxuICAgICksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJhcHBQYXNzd29yZFwiLFxuICAgICAgcnVudGltZUNvbmZpZy5zdHJpbmcob3ZlcnJpZGVzPy5hcHBQYXNzd29yZCwgQVBQX1BBU1NXT1JEX0VOVlMsIHJ1bnRpbWVDb25maWcuRU5WX09OTFkpLFxuICAgICksXG4gICAgLi4ub2JqZWN0Lm9wdGlvbmFsKFxuICAgICAgXCJhcHBUZW5hbnRJZFwiLFxuICAgICAgcnVudGltZUNvbmZpZy5zdHJpbmcob3ZlcnJpZGVzPy5hcHBUZW5hbnRJZCwgQVBQX1RFTkFOVF9FTlZTLCBydW50aW1lQ29uZmlnLkVOVl9PTkxZKSxcbiAgICApLFxuICB9O1xufVxuXG4vKiogV2hldGhlciBgdmFsdWVgIHBhcnNlcyBhcyBhbiBhYnNvbHV0ZSBIVFRQUyBVUkwuICovXG5mdW5jdGlvbiBpc0h0dHBzVXJsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTCh2YWx1ZSkucHJvdG9jb2wgPT09IFwiaHR0cHM6XCI7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -26,8 +26,9 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@databricks/appkit": "^0.43.0",
29
- "@dbx-tools/shared-core": "0.6.82",
30
- "@dbx-tools/shared-teams": "0.6.82",
29
+ "@dbx-tools/core": "0.6.86",
30
+ "@dbx-tools/shared-core": "0.6.86",
31
+ "@dbx-tools/shared-teams": "0.6.86",
31
32
  "@mastra/core": "^1.47.0",
32
33
  "jose": "^6.2.3",
33
34
  "zod": "4.3.6"
@@ -46,7 +47,7 @@
46
47
  "./package.json": "./package.json"
47
48
  }
48
49
  },
49
- "version": "0.6.82",
50
+ "version": "0.6.86",
50
51
  "types": "./lib/index.d.ts",
51
52
  "type": "module",
52
53
  "exports": {
package/src/config.ts CHANGED
@@ -29,7 +29,8 @@
29
29
  */
30
30
 
31
31
  import { ValidationError, type BasePluginConfig } from "@databricks/appkit";
32
- import { env, object } from "@dbx-tools/shared-core";
32
+ import { config as runtimeConfig } from "@dbx-tools/core";
33
+ import { object } from "@dbx-tools/shared-core";
33
34
  import { card } from "@dbx-tools/shared-teams";
34
35
  import type { JSONSchema7 } from "json-schema";
35
36
 
@@ -198,29 +199,49 @@ export const TEAMS_CONFIG_SCHEMA: JSONSchema7 = {
198
199
  */
199
200
  export function resolveTeamsConfig(overrides?: TeamsPluginConfig): ResolvedTeamsConfig {
200
201
  const cardVersion =
201
- env.string(overrides?.cardVersion, CARD_VERSION_ENV) ?? card.ADAPTIVE_CARD_VERSION;
202
- const webhookUrl = env.string(overrides?.webhookUrl, WEBHOOK_URL_ENV);
203
- if (webhookUrl !== null && !isHttpsUrl(webhookUrl)) {
202
+ runtimeConfig.string(overrides?.cardVersion, CARD_VERSION_ENV, runtimeConfig.ENV_ONLY) ??
203
+ card.ADAPTIVE_CARD_VERSION;
204
+ const webhookUrl = runtimeConfig.string(
205
+ overrides?.webhookUrl,
206
+ WEBHOOK_URL_ENV,
207
+ runtimeConfig.ENV_ONLY,
208
+ );
209
+ if (webhookUrl !== undefined && !isHttpsUrl(webhookUrl)) {
204
210
  throw ValidationError.invalidValue(
205
211
  WEBHOOK_URL_ENV,
206
212
  webhookUrl,
207
213
  "an absolute https URL for the Teams webhook",
208
214
  );
209
215
  }
210
- const agentPlugin = env.string(overrides?.agentPlugin, AGENT_PLUGIN_ENV) ?? DEFAULT_AGENT_PLUGIN;
216
+ const agentPlugin =
217
+ runtimeConfig.string(overrides?.agentPlugin, AGENT_PLUGIN_ENV, runtimeConfig.ENV_ONLY) ??
218
+ DEFAULT_AGENT_PLUGIN;
211
219
  // Two independent conditions must BOTH hold: the operator asked for it, and
212
220
  // this is a development build. Gating on `NODE_ENV` as well means a stray
213
221
  // variable in a production environment cannot silently expose the endpoint.
214
- const requested = env.boolean(overrides?.allowUnauthenticated, ALLOW_UNAUTHENTICATED_ENV);
222
+ const requested = runtimeConfig.boolean(
223
+ overrides?.allowUnauthenticated,
224
+ ALLOW_UNAUTHENTICATED_ENV,
225
+ runtimeConfig.ENV_ONLY,
226
+ );
215
227
  const allowUnauthenticated = requested === true && process.env.NODE_ENV === "development";
216
228
  return {
217
229
  cardVersion,
218
230
  agentPlugin,
219
231
  allowUnauthenticated,
220
232
  ...object.optional("webhookUrl", webhookUrl),
221
- ...object.optional("appId", env.string(overrides?.appId, APP_ID_ENVS)),
222
- ...object.optional("appPassword", env.string(overrides?.appPassword, APP_PASSWORD_ENVS)),
223
- ...object.optional("appTenantId", env.string(overrides?.appTenantId, APP_TENANT_ENVS)),
233
+ ...object.optional(
234
+ "appId",
235
+ runtimeConfig.string(overrides?.appId, APP_ID_ENVS, runtimeConfig.ENV_ONLY),
236
+ ),
237
+ ...object.optional(
238
+ "appPassword",
239
+ runtimeConfig.string(overrides?.appPassword, APP_PASSWORD_ENVS, runtimeConfig.ENV_ONLY),
240
+ ),
241
+ ...object.optional(
242
+ "appTenantId",
243
+ runtimeConfig.string(overrides?.appTenantId, APP_TENANT_ENVS, runtimeConfig.ENV_ONLY),
244
+ ),
224
245
  };
225
246
  }
226
247