@k8slens/public-utilities 1.0.0 → 1.1.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/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { shellQuote, windowsShellQuote } from "./src/shell-quote";
8
8
  export { assertDefined } from "./src/assert-defined";
9
9
  export { isDefined, isObject } from "./src/type-narrowing";
10
10
  export { noop } from "./src/noop";
11
+ export { getKeyedSingletonLifecycleForObject } from "./src/get-keyed-singleton-lifecycle-for-object";
11
12
  export { cssNames, type IClassName, type IgnoredClassNames } from "./src/css-names";
12
13
  export { onMiddleClick, onTrigger, stopPropagation } from "./src/event-handlers";
13
14
  export { sanitizeScssModules } from "./src/sanitize-scss-modules";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ __export(index_exports, {
24
24
  cssNames: () => cssNames,
25
25
  detectShellType: () => detectShellType,
26
26
  expectDefined: () => expectDefined,
27
+ getKeyedSingletonLifecycleForObject: () => getKeyedSingletonLifecycleForObject,
27
28
  isDefined: () => isDefined,
28
29
  isObject: () => isObject,
29
30
  noop: () => noop,
@@ -69,6 +70,17 @@ function noop() {
69
70
  return;
70
71
  }
71
72
 
73
+ // src/get-keyed-singleton-lifecycle-for-object.ts
74
+ var import_injectable = require("@k8slens/injectable");
75
+ var getKeyedSingletonLifecycleForObject = () => (keys) => () => import_injectable.lifecycleEnum.keyedSingleton({
76
+ getInstanceKey: (_di, data) => (0, import_injectable.getKeyedSingletonCompositeKey)(...keys.map((key) => data[key]))
77
+ });
78
+ var _lifecycleMustAcceptNonPrimitiveFields = getKeyedSingletonLifecycleForObject()(["a"])();
79
+ var _lifecycleProvidedKeysMustNotBeEmpty = getKeyedSingletonLifecycleForObject()([])();
80
+ var _lifecycleProvidedKeysHaveToBeAllKeys = getKeyedSingletonLifecycleForObject()(["a"])();
81
+ var _lifecycleProvidedKeysMayProvideMultipleKeys = getKeyedSingletonLifecycleForObject()(["a", "b"])();
82
+ var _lifecycleProvidedKeysMustExistInType = getKeyedSingletonLifecycleForObject()(["c"])();
83
+
72
84
  // src/css-names.ts
73
85
  function cssNames(...classNames) {
74
86
  const convertToArrayOfNames = (names) => {
@@ -188,6 +200,7 @@ var shellFamilyOf = (shell) => {
188
200
  cssNames,
189
201
  detectShellType,
190
202
  expectDefined,
203
+ getKeyedSingletonLifecycleForObject,
191
204
  isDefined,
192
205
  isObject,
193
206
  noop,
@@ -199,4 +212,4 @@ var shellFamilyOf = (shell) => {
199
212
  stopPropagation,
200
213
  windowsShellQuote
201
214
  });
202
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL2V4cGVjdC1kZWZpbmVkLnRzIiwgIi4uL3NyYy9zaGVsbC1xdW90ZS50cyIsICIuLi9zcmMvYXNzZXJ0LWRlZmluZWQudHMiLCAiLi4vc3JjL3R5cGUtbmFycm93aW5nLnRzIiwgIi4uL3NyYy9ub29wLnRzIiwgIi4uL3NyYy9jc3MtbmFtZXMudHMiLCAiLi4vc3JjL2V2ZW50LWhhbmRsZXJzLnRzIiwgIi4uL3NyYy9zYW5pdGl6ZS1zY3NzLW1vZHVsZXMudHMiLCAiLi4vc3JjL3NoZWxsLXR5cGUvc2hlbGwtdHlwZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tIFwiLi9zcmMvbWF5YmUtcHJvbWlzZVwiO1xuZXhwb3J0IHR5cGUgeyBBbnlGdW5jdGlvbiwgRGlzcG9zZXIgfSBmcm9tIFwiLi9zcmMvZnVuY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IEFzeW5jVm9pZEZ1bmN0aW9uLCBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIi4vc3JjL3ZvaWQtZnVuY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IFNpbmdsZU9yTWFueSB9IGZyb20gXCIuL3NyYy9zaW5nbGUtb3ItbWFueVwiO1xuZXhwb3J0IHR5cGUgeyBUdXBsZSB9IGZyb20gXCIuL3NyYy90dXBsZVwiO1xuZXhwb3J0IHsgZXhwZWN0RGVmaW5lZCB9IGZyb20gXCIuL3NyYy9leHBlY3QtZGVmaW5lZFwiO1xuZXhwb3J0IHsgc2hlbGxRdW90ZSwgd2luZG93c1NoZWxsUXVvdGUgfSBmcm9tIFwiLi9zcmMvc2hlbGwtcXVvdGVcIjtcbmV4cG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiLi9zcmMvYXNzZXJ0LWRlZmluZWRcIjtcbmV4cG9ydCB7IGlzRGVmaW5lZCwgaXNPYmplY3QgfSBmcm9tIFwiLi9zcmMvdHlwZS1uYXJyb3dpbmdcIjtcbmV4cG9ydCB7IG5vb3AgfSBmcm9tIFwiLi9zcmMvbm9vcFwiO1xuZXhwb3J0IHsgY3NzTmFtZXMsIHR5cGUgSUNsYXNzTmFtZSwgdHlwZSBJZ25vcmVkQ2xhc3NOYW1lcyB9IGZyb20gXCIuL3NyYy9jc3MtbmFtZXNcIjtcbmV4cG9ydCB7IG9uTWlkZGxlQ2xpY2ssIG9uVHJpZ2dlciwgc3RvcFByb3BhZ2F0aW9uIH0gZnJvbSBcIi4vc3JjL2V2ZW50LWhhbmRsZXJzXCI7XG5leHBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIi4vc3JjL3Nhbml0aXplLXNjc3MtbW9kdWxlc1wiO1xuXG4vLyBUaGUgcHVyZSBzaGVsbCB0eXBlcy4gVGhlIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHRoYXQgdXNlIHRoZW0gcHJvZHVjZVxuLy8gaW5qZWN0YWJsZXMsIHNvIHRoZXkgbGl2ZSBpbiBAazhzbGVucy9wbGF0Zm9ybS1zcGVjaWZpYy1pbmplY3RhYmxlcyBpbnN0ZWFkLlxuZXhwb3J0IHsgdHlwZSBTaGVsbFR5cGUsIHR5cGUgU2hlbGxGYW1pbHksIGRldGVjdFNoZWxsVHlwZSwgc2hlbGxGYW1pbHlPZiB9IGZyb20gXCIuL3NyYy9zaGVsbC10eXBlL3NoZWxsLXR5cGVcIjtcbiIsICJleHBvcnQgZnVuY3Rpb24gZXhwZWN0RGVmaW5lZDxUPih2YWx1ZTogVCwgbWVzc2FnZSA9IFwiRXhwZWN0ZWQgdmFsdWUgdG8gYmUgZGVmaW5lZFwiKTogTm9uTnVsbGFibGU8VD4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiIsICIvKiogV3JhcCBhIHZhbHVlIGluIHNpbmdsZSBxdW90ZXMsIGVzY2FwaW5nIGVtYmVkZGVkIHNpbmdsZSBxdW90ZXMsIGZvciBzYWZlIFBPU0lYIHNoZWxsIHVzZS4gKi9cbmV4cG9ydCBjb25zdCBzaGVsbFF1b3RlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCcke3ZhbHVlLnJlcGxhY2UoLycvZywgYCdcXFxcJydgKX0nYDtcblxuLyoqXG4gKiBXcmFwIGEgdmFsdWUgaW4gZG91YmxlIHF1b3RlcyBmb3Igc2FmZSBgY21kLmV4ZWAgdXNlLCBlc2NhcGluZyBlbWJlZGRlZCBkb3VibGVcbiAqIHF1b3RlcyBieSBkb3VibGluZyB0aGVtIChjbWQncyBvd24gY29udmVudGlvbikuIFRoZSBXaW5kb3dzIGNvdW50ZXJwYXJ0IHRvXG4gKiB7QGxpbmsgc2hlbGxRdW90ZX0gXHUyMDE0IFBPU0lYIHNpbmdsZS1xdW90aW5nIGlzIG5vdCBob25vdXJlZCBieSBgY21kLmV4ZWAuXG4gKi9cbmV4cG9ydCBjb25zdCB3aW5kb3dzU2hlbGxRdW90ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IGBcIiR7dmFsdWUucmVwbGFjZSgvXCIvZywgYFwiXCJgKX1cImA7XG4iLCAiLyoqIE5hcnJvd3MgdG8gYSBkZWZpbmVkIHZhbHVlLCB0aHJvd2luZyB3aGVuIGl0IGlzIG51bGwgb3IgdW5kZWZpbmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlZmluZWQ8VD4odmFsdWU6IFQsIG1lc3NhZ2UgPSBcIkV4cGVjdGVkIHZhbHVlIHRvIGJlIGRlZmluZWRcIik6IGFzc2VydHMgdmFsdWUgaXMgTm9uTnVsbGFibGU8VD4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuIiwgIi8qKiBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3QsIG5hcnJvd2luZyBpdCB0byBhbiBpbmRleGFibGUgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbDogdW5rbm93bik6IHZhbCBpcyBSZWNvcmQ8c3RyaW5nIHwgc3ltYm9sIHwgbnVtYmVyLCB1bmtub3duPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiICYmIHZhbCAhPT0gbnVsbDtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIHZhbHVlIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLiBVc2VmdWwgYXMgYW4gYXJyYXkgZmlsdGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWw6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsIGlzIFQge1xuICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsO1xufVxuIiwgIi8qKiBBIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKTogdm9pZCB7XG4gIHJldHVybjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IFNpbmdsZU9yTWFueSB9IGZyb20gXCIuL3NpbmdsZS1vci1tYW55XCI7XG5cbmV4cG9ydCB0eXBlIElnbm9yZWRDbGFzc05hbWVzID0gbnVtYmVyIHwgc3ltYm9sIHwgRnVuY3Rpb247XG5cbi8qKiBBbnl0aGluZyBhY2NlcHRlZCBhcyBhIGNsYXNzIG5hbWU6IHN0cmluZ3MsIGFycmF5cywgb3IgYSBmbGFnLXBlci1uYW1lIHJlY29yZC4gKi9cbmV4cG9ydCB0eXBlIElDbGFzc05hbWUgPSBTaW5nbGVPck1hbnk8c3RyaW5nIHwgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB8IG51bGwgfCBmYWxzZT4gfCBJZ25vcmVkQ2xhc3NOYW1lcztcblxuLyoqIEpvaW5zIGNsYXNzIG5hbWVzLCBkcm9wcGluZyB0aGUgZmFsc3kgb25lcyBhbmQgZGUtZHVwbGljYXRpbmcgdGhlIHJlc3QuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzTmFtZXMoLi4uY2xhc3NOYW1lczogSUNsYXNzTmFtZVtdKTogc3RyaW5nIHtcbiAgY29uc3QgY29udmVydFRvQXJyYXlPZk5hbWVzID0gKG5hbWVzOiBJQ2xhc3NOYW1lKTogc3RyaW5nW10gPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG5hbWVzKSkge1xuICAgICAgcmV0dXJuIG5hbWVzLmZsYXRNYXAoY29udmVydFRvQXJyYXlPZk5hbWVzKTtcbiAgICB9XG5cbiAgICBpZiAoIW5hbWVzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIFtuYW1lc107XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgbmFtZXMgPT09IFwic3ltYm9sXCIgfHwgdHlwZW9mIG5hbWVzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobmFtZXMpXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbiAgfTtcblxuICBjb25zdCBub25EZWR1cGxpY2F0ZWQgPSBjbGFzc05hbWVzXG4gICAgLmZsYXRNYXAoY29udmVydFRvQXJyYXlPZk5hbWVzKVxuICAgIC5tYXAoKGNsYXNzTmFtZSkgPT4gY2xhc3NOYW1lLnRyaW0oKSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oXCIgXCIpXG4gICAgLnNwbGl0KFwiIFwiKTtcblxuICByZXR1cm4gWy4uLm5ldyBTZXQobm9uRGVkdXBsaWNhdGVkKV0uam9pbihcIiBcIik7XG59XG4iLCAiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKiBTdG9wcyBhbiBldmVudCBmcm9tIGJ1YmJsaW5nIGZ1cnRoZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCB8IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSB7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25UcmlnZ2VyPFQ+KGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+LCBjYWxsYmFjazogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIG9uVHJpZ2dlcjxUPihjYWxsYmFjazogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD4pOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPjtcblxuLyoqXG4gKiBBY3RpdmF0ZXMgb24gdGhlIGtleXMgdGhhdCBjb3VudCBhcyBcInRyaWdnZXIgdGhpc1wiIFx1MjAxNCBFbnRlciBhbnl3aGVyZSBpbiB0aGVcbiAqIGVsZW1lbnQsIFNwYWNlIG9ubHkgb24gdGhlIGVsZW1lbnQgaXRzZWxmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25UcmlnZ2VyKFxuICAuLi5hcmdzOiBbUmVhY3QuS2V5Ym9hcmRFdmVudCwgUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXJdIHwgW1JlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyXVxuKTogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBbY2FsbGJhY2tdID0gYXJncztcblxuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnJlcGVhdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5jb2RlID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQSBzcGFjZSBwcmVzc2VkIGluIHNvbWV0aGluZyBmb2N1c2FibGUgKmluc2lkZSogdGhlIGVsZW1lbnQgKGEgZmllbGQgb2YgYSBtZW51XG4gICAgICAvLyByb3cncyBjb25maWd1cmF0aW9uIHBhbmVsLCBzYXkpIG1lcmVseSBidWJibGVzIHRocm91Z2ggaXQ6IGl0IGlzIGEgY2hhcmFjdGVyIG9mXG4gICAgICAvLyB3aGF0IGlzIGJlaW5nIHdyaXR0ZW4sIG5vdCBhIGNsaWNrIG9uIGV2ZXJ5dGhpbmcgYXJvdW5kIGl0LiBFbnRlciBhYm92ZSBpcyB0aGVcbiAgICAgIC8vIG9wcG9zaXRlIFx1MjAxNCBpdCBpcyB0aGF0IGZpZWxkJ3MgXCJkb25lXCIsIHNvIGl0IHN0aWxsIGFjdGl2YXRlcyB3aGF0IGVuY2xvc2VzIGl0LlxuICAgICAgaWYgKGV2ZW50LmNvZGUgPT09IFwiU3BhY2VcIiAmJiBldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBjb25zdCBbZXZlbnQsIGNhbGxiYWNrXSA9IGFyZ3M7XG5cbiAgb25UcmlnZ2VyKGNhbGxiYWNrKShldmVudCk7XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uTWlkZGxlQ2xpY2s8VD4oZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxUPik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gb25NaWRkbGVDbGljazxUPihjYWxsYmFjazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8VD4pOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjtcblxuLyoqIEFjdGl2YXRlcyBvbiB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiwgYW5kIG9ubHkgb24gYW4gdW5tb2RpZmllZCBwcmVzcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbk1pZGRsZUNsaWNrKFxuICAuLi5hcmdzOiBbUmVhY3QuTW91c2VFdmVudCwgUmVhY3QuTW91c2VFdmVudEhhbmRsZXJdIHwgW1JlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyXVxuKTogUmVhY3QuTW91c2VFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBbY2FsbGJhY2tdID0gYXJncztcblxuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xuICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IFtldmVudCwgY2FsbGJhY2tdID0gYXJncztcblxuICBvbk1pZGRsZUNsaWNrKGNhbGxiYWNrKShldmVudCk7XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiIsICIvKipcbiAqIE1ha2VzIGEgQ1NTLW1vZHVsZSBsb29rdXAgcmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lIHdoaWxlIHVuaXQgdGVzdHMgcnVuLCBzbyBhXG4gKiBwYWNrYWdlIHRoYXQgZXhwb3J0cyBhIGNsYXNzIG5hbWUgZm9yIGEgY29uc3VtZXIgdG8gYXNzZXJ0IG9uIGFuZCB0aGVcbiAqIGNvbnN1bWVyIGFzc2VydGluZyBvbiBpdCBhZ3JlZSBhYm91dCB3aGF0IHRoZSBuYW1lIGlzLiBPdXRzaWRlIGEgdGVzdCB3b3JrZXJcbiAqIGl0IGhhbmRzIHRoZSByZWFsLCBoYXNoZWQgbWFwcGluZyBzdHJhaWdodCBiYWNrLlxuICpcbiAqIEEgaG9sZGluZyBwb3NpdGlvbiwgbm90IGEgZGVzaWduOiBpdCBleGlzdHMgYmVjYXVzZSBleHBvcnRpbmcgQ1NTLW1vZHVsZVxuICogY2xhc3MgbmFtZXMgYWNyb3NzIGEgcGFja2FnZSBib3VuZGFyeSBuZWVkcyB0aGUgdHdvIHNpZGVzIHRvIGFncmVlLCBhbmQgaXRcbiAqIGdvZXMgYXdheSB3aXRoIHRob3NlIGV4cG9ydHMuXG4gKi9cbmV4cG9ydCBjb25zdCBzYW5pdGl6ZVNjc3NNb2R1bGVzID0gPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih2YXJpYWJsZXM6IFQpOiBUID0+IHtcbiAgY29uc3QgdW5pdFRlc3RzQXJlUnVubmluZyA9IHByb2Nlc3MuZW52LkpFU1RfV09SS0VSX0lEICYmICFwcm9jZXNzLmVudi5MRU5TX0FDVElWQVRJT05fQ09ERV9GT1JfSU5URUdSQVRJT05fVEVTVFM7XG5cbiAgaWYgKHVuaXRUZXN0c0FyZVJ1bm5pbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb3h5KHZhcmlhYmxlcywge1xuICAgICAgZ2V0OiAoX3RhcmdldCwgcHJvcCkgPT4gcHJvcCxcbiAgICB9KSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlcztcbn07XG4iLCAiLyoqXG4gKiBBIHNwZWNpZmljIGludGVyYWN0aXZlIHNoZWxsLCBjbGFzc2lmaWVkIGZyb20gYSBzaGVsbCBwYXRoLiBgdW5rbm93bmAgY292ZXJzXG4gKiBhbnkgUE9TSVgtaXNoIHNoZWxsIHdlIGRvIG5vdCByZWNvZ25pemUgYnkgbmFtZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxUeXBlID0gXCJwb3dlcnNoZWxsXCIgfCBcImNtZFwiIHwgXCJiYXNoXCIgfCBcInpzaFwiIHwgXCJmaXNoXCIgfCBcInNoXCIgfCBcInVua25vd25cIjtcblxuLyoqXG4gKiBUaGUgYmVoYXZpb3VyYWwgZmFtaWx5IGEgc2hlbGwgYmVsb25ncyB0byBcdTIwMTQgdGhlIGdyYW51bGFyaXR5IGF0IHdoaWNoIHNoZWxsXG4gKiBoYW5kbGluZyAoZS5nLiBob3cgYSBjb21tYW5kIGlzIHJ1biBzbyB0aGUgdGVybWluYWwgc3RheXMgaW50ZXJhY3RpdmUpIGRpZmZlcnMuXG4gKiBgYmFzaGAvYHpzaGAvYHNoYC9gdW5rbm93bmAgY29sbGFwc2UgaW50byBgcG9zaXhgIHNpbmNlIHRoZXkgc2hhcmUgdGhhdCBzeW50YXguXG4gKi9cbmV4cG9ydCB0eXBlIFNoZWxsRmFtaWx5ID0gXCJwb3NpeFwiIHwgXCJmaXNoXCIgfCBcImNtZFwiIHwgXCJwb3dlcnNoZWxsXCI7XG5cbi8qKlxuICogQ2xhc3NpZnkgYSBzaGVsbCBmcm9tIGl0cyBwYXRoLiBgaXNXaW5kb3dzYCBvbmx5IGRyaXZlcyB0aGUgZmFsbGJhY2sgd2hlbiB0aGVcbiAqIHBhdGggaXMgdW5yZWNvZ25pemVkIChvbiBXaW5kb3dzIGFuIHVua25vd24gc2hlbGwgaXMgYXNzdW1lZCB0byBiZSBQb3dlclNoZWxsKS5cbiAqIEtlcHQgZnJlZSBvZiBhbnkgcGxhdGZvcm0gdHlwZSBzbyBpdCBjYW4gbGl2ZSBpbiB0aGlzIGxvdy1sZXZlbCBwYWNrYWdlLlxuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0U2hlbGxUeXBlID0gKHNoZWxsUGF0aDogc3RyaW5nLCBpc1dpbmRvd3M6IGJvb2xlYW4pOiBTaGVsbFR5cGUgPT4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHNoZWxsUGF0aC50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcInBvd2Vyc2hlbGxcIikgfHwgbm9ybWFsaXplZFBhdGguaW5jbHVkZXMoXCJwd3NoXCIpKSB7XG4gICAgcmV0dXJuIFwicG93ZXJzaGVsbFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcImNtZC5leGVcIikgfHwgbm9ybWFsaXplZFBhdGguZW5kc1dpdGgoXCJjbWRcIikpIHtcbiAgICByZXR1cm4gXCJjbWRcIjtcbiAgfVxuICBpZiAobm9ybWFsaXplZFBhdGguaW5jbHVkZXMoXCJiYXNoXCIpKSB7XG4gICAgcmV0dXJuIFwiYmFzaFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcInpzaFwiKSkge1xuICAgIHJldHVybiBcInpzaFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcImZpc2hcIikpIHtcbiAgICByZXR1cm4gXCJmaXNoXCI7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKFwiL3NoXCIpIHx8IG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKFwiXFxcXHNoXCIpKSB7XG4gICAgcmV0dXJuIFwic2hcIjtcbiAgfVxuXG4gIGlmIChpc1dpbmRvd3MpIHtcbiAgICByZXR1cm4gXCJwb3dlcnNoZWxsXCI7XG4gIH1cblxuICByZXR1cm4gXCJ1bmtub3duXCI7XG59O1xuXG4vKiogQ29sbGFwc2UgYSB7QGxpbmsgU2hlbGxUeXBlfSBpbnRvIHRoZSBiZWhhdmlvdXJhbCB7QGxpbmsgU2hlbGxGYW1pbHl9LiAqL1xuZXhwb3J0IGNvbnN0IHNoZWxsRmFtaWx5T2YgPSAoc2hlbGw6IFNoZWxsVHlwZSk6IFNoZWxsRmFtaWx5ID0+IHtcbiAgc3dpdGNoIChzaGVsbCkge1xuICAgIGNhc2UgXCJmaXNoXCI6XG4gICAgICByZXR1cm4gXCJmaXNoXCI7XG4gICAgY2FzZSBcImNtZFwiOlxuICAgICAgcmV0dXJuIFwiY21kXCI7XG4gICAgY2FzZSBcInBvd2Vyc2hlbGxcIjpcbiAgICAgIHJldHVybiBcInBvd2Vyc2hlbGxcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gYmFzaCAvIHpzaCAvIHNoIC8gdW5rbm93biBhbGwgc2hhcmUgUE9TSVggc3ludGF4LlxuICAgICAgcmV0dXJuIFwicG9zaXhcIjtcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNBTyxTQUFTLGNBQWlCLE9BQVUsVUFBVSxnQ0FBZ0Q7QUFDbkcsTUFBSSxVQUFVLFVBQWEsVUFBVSxNQUFNO0FBQ3pDLFVBQU0sSUFBSSxNQUFNLE9BQU87QUFBQSxFQUN6QjtBQUVBLFNBQU87QUFDVDs7O0FDTE8sSUFBTSxhQUFhLENBQUMs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
215
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL2V4cGVjdC1kZWZpbmVkLnRzIiwgIi4uL3NyYy9zaGVsbC1xdW90ZS50cyIsICIuLi9zcmMvYXNzZXJ0LWRlZmluZWQudHMiLCAiLi4vc3JjL3R5cGUtbmFycm93aW5nLnRzIiwgIi4uL3NyYy9ub29wLnRzIiwgIi4uL3NyYy9nZXQta2V5ZWQtc2luZ2xldG9uLWxpZmVjeWNsZS1mb3Itb2JqZWN0LnRzIiwgIi4uL3NyYy9jc3MtbmFtZXMudHMiLCAiLi4vc3JjL2V2ZW50LWhhbmRsZXJzLnRzIiwgIi4uL3NyYy9zYW5pdGl6ZS1zY3NzLW1vZHVsZXMudHMiLCAiLi4vc3JjL3NoZWxsLXR5cGUvc2hlbGwtdHlwZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tIFwiLi9zcmMvbWF5YmUtcHJvbWlzZVwiO1xuZXhwb3J0IHR5cGUgeyBBbnlGdW5jdGlvbiwgRGlzcG9zZXIgfSBmcm9tIFwiLi9zcmMvZnVuY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IEFzeW5jVm9pZEZ1bmN0aW9uLCBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIi4vc3JjL3ZvaWQtZnVuY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IFNpbmdsZU9yTWFueSB9IGZyb20gXCIuL3NyYy9zaW5nbGUtb3ItbWFueVwiO1xuZXhwb3J0IHR5cGUgeyBUdXBsZSB9IGZyb20gXCIuL3NyYy90dXBsZVwiO1xuZXhwb3J0IHsgZXhwZWN0RGVmaW5lZCB9IGZyb20gXCIuL3NyYy9leHBlY3QtZGVmaW5lZFwiO1xuZXhwb3J0IHsgc2hlbGxRdW90ZSwgd2luZG93c1NoZWxsUXVvdGUgfSBmcm9tIFwiLi9zcmMvc2hlbGwtcXVvdGVcIjtcbmV4cG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiLi9zcmMvYXNzZXJ0LWRlZmluZWRcIjtcbmV4cG9ydCB7IGlzRGVmaW5lZCwgaXNPYmplY3QgfSBmcm9tIFwiLi9zcmMvdHlwZS1uYXJyb3dpbmdcIjtcbmV4cG9ydCB7IG5vb3AgfSBmcm9tIFwiLi9zcmMvbm9vcFwiO1xuZXhwb3J0IHsgZ2V0S2V5ZWRTaW5nbGV0b25MaWZlY3ljbGVGb3JPYmplY3QgfSBmcm9tIFwiLi9zcmMvZ2V0LWtleWVkLXNpbmdsZXRvbi1saWZlY3ljbGUtZm9yLW9iamVjdFwiO1xuZXhwb3J0IHsgY3NzTmFtZXMsIHR5cGUgSUNsYXNzTmFtZSwgdHlwZSBJZ25vcmVkQ2xhc3NOYW1lcyB9IGZyb20gXCIuL3NyYy9jc3MtbmFtZXNcIjtcbmV4cG9ydCB7IG9uTWlkZGxlQ2xpY2ssIG9uVHJpZ2dlciwgc3RvcFByb3BhZ2F0aW9uIH0gZnJvbSBcIi4vc3JjL2V2ZW50LWhhbmRsZXJzXCI7XG5leHBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIi4vc3JjL3Nhbml0aXplLXNjc3MtbW9kdWxlc1wiO1xuXG4vLyBUaGUgcHVyZSBzaGVsbCB0eXBlcy4gVGhlIHJlZ2lzdHJhdGlvbiBoZWxwZXJzIHRoYXQgdXNlIHRoZW0gcHJvZHVjZVxuLy8gaW5qZWN0YWJsZXMsIHNvIHRoZXkgbGl2ZSBpbiBAazhzbGVucy9wbGF0Zm9ybS1zcGVjaWZpYy1pbmplY3RhYmxlcyBpbnN0ZWFkLlxuZXhwb3J0IHsgdHlwZSBTaGVsbFR5cGUsIHR5cGUgU2hlbGxGYW1pbHksIGRldGVjdFNoZWxsVHlwZSwgc2hlbGxGYW1pbHlPZiB9IGZyb20gXCIuL3NyYy9zaGVsbC10eXBlL3NoZWxsLXR5cGVcIjtcbiIsICJleHBvcnQgZnVuY3Rpb24gZXhwZWN0RGVmaW5lZDxUPih2YWx1ZTogVCwgbWVzc2FnZSA9IFwiRXhwZWN0ZWQgdmFsdWUgdG8gYmUgZGVmaW5lZFwiKTogTm9uTnVsbGFibGU8VD4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiIsICIvKiogV3JhcCBhIHZhbHVlIGluIHNpbmdsZSBxdW90ZXMsIGVzY2FwaW5nIGVtYmVkZGVkIHNpbmdsZSBxdW90ZXMsIGZvciBzYWZlIFBPU0lYIHNoZWxsIHVzZS4gKi9cbmV4cG9ydCBjb25zdCBzaGVsbFF1b3RlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCcke3ZhbHVlLnJlcGxhY2UoLycvZywgYCdcXFxcJydgKX0nYDtcblxuLyoqXG4gKiBXcmFwIGEgdmFsdWUgaW4gZG91YmxlIHF1b3RlcyBmb3Igc2FmZSBgY21kLmV4ZWAgdXNlLCBlc2NhcGluZyBlbWJlZGRlZCBkb3VibGVcbiAqIHF1b3RlcyBieSBkb3VibGluZyB0aGVtIChjbWQncyBvd24gY29udmVudGlvbikuIFRoZSBXaW5kb3dzIGNvdW50ZXJwYXJ0IHRvXG4gKiB7QGxpbmsgc2hlbGxRdW90ZX0gXHUyMDE0IFBPU0lYIHNpbmdsZS1xdW90aW5nIGlzIG5vdCBob25vdXJlZCBieSBgY21kLmV4ZWAuXG4gKi9cbmV4cG9ydCBjb25zdCB3aW5kb3dzU2hlbGxRdW90ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IGBcIiR7dmFsdWUucmVwbGFjZSgvXCIvZywgYFwiXCJgKX1cImA7XG4iLCAiLyoqIE5hcnJvd3MgdG8gYSBkZWZpbmVkIHZhbHVlLCB0aHJvd2luZyB3aGVuIGl0IGlzIG51bGwgb3IgdW5kZWZpbmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlZmluZWQ8VD4odmFsdWU6IFQsIG1lc3NhZ2UgPSBcIkV4cGVjdGVkIHZhbHVlIHRvIGJlIGRlZmluZWRcIik6IGFzc2VydHMgdmFsdWUgaXMgTm9uTnVsbGFibGU8VD4ge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuIiwgIi8qKiBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3QsIG5hcnJvd2luZyBpdCB0byBhbiBpbmRleGFibGUgb25lLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbDogdW5rbm93bik6IHZhbCBpcyBSZWNvcmQ8c3RyaW5nIHwgc3ltYm9sIHwgbnVtYmVyLCB1bmtub3duPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiICYmIHZhbCAhPT0gbnVsbDtcbn1cblxuLyoqIFdoZXRoZXIgdGhlIHZhbHVlIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLiBVc2VmdWwgYXMgYW4gYXJyYXkgZmlsdGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGVmaW5lZDxUPih2YWw6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogdmFsIGlzIFQge1xuICByZXR1cm4gdmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsO1xufVxuIiwgIi8qKiBBIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKTogdm9pZCB7XG4gIHJldHVybjtcbn1cbiIsICJpbXBvcnQgeyBnZXRLZXllZFNpbmdsZXRvbkNvbXBvc2l0ZUtleSwgbGlmZWN5Y2xlRW51bSwgdHlwZSBMaWZlY3ljbGUgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgY29uc3QgZ2V0S2V5ZWRTaW5nbGV0b25MaWZlY3ljbGVGb3JPYmplY3QgPVxuICA8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KCkgPT5cbiAgPEtleSBleHRlbmRzIHN0cmluZz4oa2V5czogcmVhZG9ubHkgW0tleSwgLi4uKHJlYWRvbmx5IEtleVtdKV0pID0+XG4gICAgKCgpID0+XG4gICAgICBsaWZlY3ljbGVFbnVtLmtleWVkU2luZ2xldG9uKHtcbiAgICAgICAgZ2V0SW5zdGFuY2VLZXk6IChfZGksIGRhdGE6IFBpY2s8VCwgS2V5PikgPT4gZ2V0S2V5ZWRTaW5nbGV0b25Db21wb3NpdGVLZXkoLi4ua2V5cy5tYXAoKGtleSkgPT4gZGF0YVtrZXldKSksXG4gICAgICB9KSkgYXMga2V5b2YgVCBleHRlbmRzIEtleSA/ICgpID0+IExpZmVjeWNsZTxQaWNrPFQsIEtleT4+IDogbmV2ZXI7XG5cbnR5cGUgU29tZVR5cGUgPSB7XG4gIGE6IHN0cmluZztcbiAgYjogc3RyaW5nO1xufTtcblxuY29uc3QgX2xpZmVjeWNsZU11c3RBY2NlcHROb25QcmltaXRpdmVGaWVsZHMgPSBnZXRLZXllZFNpbmdsZXRvbkxpZmVjeWNsZUZvck9iamVjdDx7IGE6IHN0cmluZ1tdIH0+KCkoW1wiYVwiXSkoKTtcblxuLy8gQHRzLWV4cGVjdC1lcnJvclxuY29uc3QgX2xpZmVjeWNsZVByb3ZpZGVkS2V5c011c3ROb3RCZUVtcHR5ID0gZ2V0S2V5ZWRTaW5nbGV0b25MaWZlY3ljbGVGb3JPYmplY3Q8U29tZVR5cGU+KCkoW10pKCk7XG5cbi8vIEB0cy1leHBlY3QtZXJyb3JcbmNvbnN0IF9saWZlY3ljbGVQcm92aWRlZEtleXNIYXZlVG9CZUFsbEtleXMgPSBnZXRLZXllZFNpbmdsZXRvbkxpZmVjeWNsZUZvck9iamVjdDxTb21lVHlwZT4oKShbXCJhXCJdKSgpO1xuXG5jb25zdCBfbGlmZWN5Y2xlUHJvdmlkZWRLZXlzTWF5UHJvdmlkZU11bHRpcGxlS2V5cyA9IGdldEtleWVkU2luZ2xldG9uTGlmZWN5Y2xlRm9yT2JqZWN0PFNvbWVUeXBlPigpKFtcImFcIiwgXCJiXCJdKSgpO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5jb25zdCBfbGlmZWN5Y2xlUHJvdmlkZWRLZXlzTXVzdEV4aXN0SW5UeXBlID0gZ2V0S2V5ZWRTaW5nbGV0b25MaWZlY3ljbGVGb3JPYmplY3Q8U29tZVR5cGU+KCkoW1wiY1wiXSkoKTtcbiIsICJpbXBvcnQgdHlwZSB7IFNpbmdsZU9yTWFueSB9IGZyb20gXCIuL3NpbmdsZS1vci1tYW55XCI7XG5cbmV4cG9ydCB0eXBlIElnbm9yZWRDbGFzc05hbWVzID0gbnVtYmVyIHwgc3ltYm9sIHwgRnVuY3Rpb247XG5cbi8qKiBBbnl0aGluZyBhY2NlcHRlZCBhcyBhIGNsYXNzIG5hbWU6IHN0cmluZ3MsIGFycmF5cywgb3IgYSBmbGFnLXBlci1uYW1lIHJlY29yZC4gKi9cbmV4cG9ydCB0eXBlIElDbGFzc05hbWUgPSBTaW5nbGVPck1hbnk8c3RyaW5nIHwgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB8IG51bGwgfCBmYWxzZT4gfCBJZ25vcmVkQ2xhc3NOYW1lcztcblxuLyoqIEpvaW5zIGNsYXNzIG5hbWVzLCBkcm9wcGluZyB0aGUgZmFsc3kgb25lcyBhbmQgZGUtZHVwbGljYXRpbmcgdGhlIHJlc3QuICovXG5leHBvcnQgZnVuY3Rpb24gY3NzTmFtZXMoLi4uY2xhc3NOYW1lczogSUNsYXNzTmFtZVtdKTogc3RyaW5nIHtcbiAgY29uc3QgY29udmVydFRvQXJyYXlPZk5hbWVzID0gKG5hbWVzOiBJQ2xhc3NOYW1lKTogc3RyaW5nW10gPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG5hbWVzKSkge1xuICAgICAgcmV0dXJuIG5hbWVzLmZsYXRNYXAoY29udmVydFRvQXJyYXlPZk5hbWVzKTtcbiAgICB9XG5cbiAgICBpZiAoIW5hbWVzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIFtuYW1lc107XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgbmFtZXMgPT09IFwic3ltYm9sXCIgfHwgdHlwZW9mIG5hbWVzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobmFtZXMpXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlKVxuICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbiAgfTtcblxuICBjb25zdCBub25EZWR1cGxpY2F0ZWQgPSBjbGFzc05hbWVzXG4gICAgLmZsYXRNYXAoY29udmVydFRvQXJyYXlPZk5hbWVzKVxuICAgIC5tYXAoKGNsYXNzTmFtZSkgPT4gY2xhc3NOYW1lLnRyaW0oKSlcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oXCIgXCIpXG4gICAgLnNwbGl0KFwiIFwiKTtcblxuICByZXR1cm4gWy4uLm5ldyBTZXQobm9uRGVkdXBsaWNhdGVkKV0uam9pbihcIiBcIik7XG59XG4iLCAiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKiBTdG9wcyBhbiBldmVudCBmcm9tIGJ1YmJsaW5nIGZ1cnRoZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCB8IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSB7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25UcmlnZ2VyPFQ+KGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+LCBjYWxsYmFjazogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD4pOiB2b2lkO1xuZXhwb3J0IGZ1bmN0aW9uIG9uVHJpZ2dlcjxUPihjYWxsYmFjazogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD4pOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPjtcblxuLyoqXG4gKiBBY3RpdmF0ZXMgb24gdGhlIGtleXMgdGhhdCBjb3VudCBhcyBcInRyaWdnZXIgdGhpc1wiIFx1MjAxNCBFbnRlciBhbnl3aGVyZSBpbiB0aGVcbiAqIGVsZW1lbnQsIFNwYWNlIG9ubHkgb24gdGhlIGVsZW1lbnQgaXRzZWxmLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb25UcmlnZ2VyKFxuICAuLi5hcmdzOiBbUmVhY3QuS2V5Ym9hcmRFdmVudCwgUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXJdIHwgW1JlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyXVxuKTogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBbY2FsbGJhY2tdID0gYXJncztcblxuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnJlcGVhdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5jb2RlID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQSBzcGFjZSBwcmVzc2VkIGluIHNvbWV0aGluZyBmb2N1c2FibGUgKmluc2lkZSogdGhlIGVsZW1lbnQgKGEgZmllbGQgb2YgYSBtZW51XG4gICAgICAvLyByb3cncyBjb25maWd1cmF0aW9uIHBhbmVsLCBzYXkpIG1lcmVseSBidWJibGVzIHRocm91Z2ggaXQ6IGl0IGlzIGEgY2hhcmFjdGVyIG9mXG4gICAgICAvLyB3aGF0IGlzIGJlaW5nIHdyaXR0ZW4sIG5vdCBhIGNsaWNrIG9uIGV2ZXJ5dGhpbmcgYXJvdW5kIGl0LiBFbnRlciBhYm92ZSBpcyB0aGVcbiAgICAgIC8vIG9wcG9zaXRlIFx1MjAxNCBpdCBpcyB0aGF0IGZpZWxkJ3MgXCJkb25lXCIsIHNvIGl0IHN0aWxsIGFjdGl2YXRlcyB3aGF0IGVuY2xvc2VzIGl0LlxuICAgICAgaWYgKGV2ZW50LmNvZGUgPT09IFwiU3BhY2VcIiAmJiBldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBjb25zdCBbZXZlbnQsIGNhbGxiYWNrXSA9IGFyZ3M7XG5cbiAgb25UcmlnZ2VyKGNhbGxiYWNrKShldmVudCk7XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uTWlkZGxlQ2xpY2s8VD4oZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxUPik6IHZvaWQ7XG5leHBvcnQgZnVuY3Rpb24gb25NaWRkbGVDbGljazxUPihjYWxsYmFjazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8VD4pOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjtcblxuLyoqIEFjdGl2YXRlcyBvbiB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiwgYW5kIG9ubHkgb24gYW4gdW5tb2RpZmllZCBwcmVzcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbk1pZGRsZUNsaWNrKFxuICAuLi5hcmdzOiBbUmVhY3QuTW91c2VFdmVudCwgUmVhY3QuTW91c2VFdmVudEhhbmRsZXJdIHwgW1JlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyXVxuKTogUmVhY3QuTW91c2VFdmVudEhhbmRsZXIgfCB1bmRlZmluZWQge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBbY2FsbGJhY2tdID0gYXJncztcblxuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5zaGlmdEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xuICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IFtldmVudCwgY2FsbGJhY2tdID0gYXJncztcblxuICBvbk1pZGRsZUNsaWNrKGNhbGxiYWNrKShldmVudCk7XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiIsICIvKipcbiAqIE1ha2VzIGEgQ1NTLW1vZHVsZSBsb29rdXAgcmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lIHdoaWxlIHVuaXQgdGVzdHMgcnVuLCBzbyBhXG4gKiBwYWNrYWdlIHRoYXQgZXhwb3J0cyBhIGNsYXNzIG5hbWUgZm9yIGEgY29uc3VtZXIgdG8gYXNzZXJ0IG9uIGFuZCB0aGVcbiAqIGNvbnN1bWVyIGFzc2VydGluZyBvbiBpdCBhZ3JlZSBhYm91dCB3aGF0IHRoZSBuYW1lIGlzLiBPdXRzaWRlIGEgdGVzdCB3b3JrZXJcbiAqIGl0IGhhbmRzIHRoZSByZWFsLCBoYXNoZWQgbWFwcGluZyBzdHJhaWdodCBiYWNrLlxuICpcbiAqIEEgaG9sZGluZyBwb3NpdGlvbiwgbm90IGEgZGVzaWduOiBpdCBleGlzdHMgYmVjYXVzZSBleHBvcnRpbmcgQ1NTLW1vZHVsZVxuICogY2xhc3MgbmFtZXMgYWNyb3NzIGEgcGFja2FnZSBib3VuZGFyeSBuZWVkcyB0aGUgdHdvIHNpZGVzIHRvIGFncmVlLCBhbmQgaXRcbiAqIGdvZXMgYXdheSB3aXRoIHRob3NlIGV4cG9ydHMuXG4gKi9cbmV4cG9ydCBjb25zdCBzYW5pdGl6ZVNjc3NNb2R1bGVzID0gPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pih2YXJpYWJsZXM6IFQpOiBUID0+IHtcbiAgY29uc3QgdW5pdFRlc3RzQXJlUnVubmluZyA9IHByb2Nlc3MuZW52LkpFU1RfV09SS0VSX0lEICYmICFwcm9jZXNzLmVudi5MRU5TX0FDVElWQVRJT05fQ09ERV9GT1JfSU5URUdSQVRJT05fVEVTVFM7XG5cbiAgaWYgKHVuaXRUZXN0c0FyZVJ1bm5pbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb3h5KHZhcmlhYmxlcywge1xuICAgICAgZ2V0OiAoX3RhcmdldCwgcHJvcCkgPT4gcHJvcCxcbiAgICB9KSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlcztcbn07XG4iLCAiLyoqXG4gKiBBIHNwZWNpZmljIGludGVyYWN0aXZlIHNoZWxsLCBjbGFzc2lmaWVkIGZyb20gYSBzaGVsbCBwYXRoLiBgdW5rbm93bmAgY292ZXJzXG4gKiBhbnkgUE9TSVgtaXNoIHNoZWxsIHdlIGRvIG5vdCByZWNvZ25pemUgYnkgbmFtZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxUeXBlID0gXCJwb3dlcnNoZWxsXCIgfCBcImNtZFwiIHwgXCJiYXNoXCIgfCBcInpzaFwiIHwgXCJmaXNoXCIgfCBcInNoXCIgfCBcInVua25vd25cIjtcblxuLyoqXG4gKiBUaGUgYmVoYXZpb3VyYWwgZmFtaWx5IGEgc2hlbGwgYmVsb25ncyB0byBcdTIwMTQgdGhlIGdyYW51bGFyaXR5IGF0IHdoaWNoIHNoZWxsXG4gKiBoYW5kbGluZyAoZS5nLiBob3cgYSBjb21tYW5kIGlzIHJ1biBzbyB0aGUgdGVybWluYWwgc3RheXMgaW50ZXJhY3RpdmUpIGRpZmZlcnMuXG4gKiBgYmFzaGAvYHpzaGAvYHNoYC9gdW5rbm93bmAgY29sbGFwc2UgaW50byBgcG9zaXhgIHNpbmNlIHRoZXkgc2hhcmUgdGhhdCBzeW50YXguXG4gKi9cbmV4cG9ydCB0eXBlIFNoZWxsRmFtaWx5ID0gXCJwb3NpeFwiIHwgXCJmaXNoXCIgfCBcImNtZFwiIHwgXCJwb3dlcnNoZWxsXCI7XG5cbi8qKlxuICogQ2xhc3NpZnkgYSBzaGVsbCBmcm9tIGl0cyBwYXRoLiBgaXNXaW5kb3dzYCBvbmx5IGRyaXZlcyB0aGUgZmFsbGJhY2sgd2hlbiB0aGVcbiAqIHBhdGggaXMgdW5yZWNvZ25pemVkIChvbiBXaW5kb3dzIGFuIHVua25vd24gc2hlbGwgaXMgYXNzdW1lZCB0byBiZSBQb3dlclNoZWxsKS5cbiAqIEtlcHQgZnJlZSBvZiBhbnkgcGxhdGZvcm0gdHlwZSBzbyBpdCBjYW4gbGl2ZSBpbiB0aGlzIGxvdy1sZXZlbCBwYWNrYWdlLlxuICovXG5leHBvcnQgY29uc3QgZGV0ZWN0U2hlbGxUeXBlID0gKHNoZWxsUGF0aDogc3RyaW5nLCBpc1dpbmRvd3M6IGJvb2xlYW4pOiBTaGVsbFR5cGUgPT4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHNoZWxsUGF0aC50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcInBvd2Vyc2hlbGxcIikgfHwgbm9ybWFsaXplZFBhdGguaW5jbHVkZXMoXCJwd3NoXCIpKSB7XG4gICAgcmV0dXJuIFwicG93ZXJzaGVsbFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcImNtZC5leGVcIikgfHwgbm9ybWFsaXplZFBhdGguZW5kc1dpdGgoXCJjbWRcIikpIHtcbiAgICByZXR1cm4gXCJjbWRcIjtcbiAgfVxuICBpZiAobm9ybWFsaXplZFBhdGguaW5jbHVkZXMoXCJiYXNoXCIpKSB7XG4gICAgcmV0dXJuIFwiYmFzaFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcInpzaFwiKSkge1xuICAgIHJldHVybiBcInpzaFwiO1xuICB9XG4gIGlmIChub3JtYWxpemVkUGF0aC5pbmNsdWRlcyhcImZpc2hcIikpIHtcbiAgICByZXR1cm4gXCJmaXNoXCI7XG4gIH1cbiAgaWYgKG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKFwiL3NoXCIpIHx8IG5vcm1hbGl6ZWRQYXRoLmVuZHNXaXRoKFwiXFxcXHNoXCIpKSB7XG4gICAgcmV0dXJuIFwic2hcIjtcbiAgfVxuXG4gIGlmIChpc1dpbmRvd3MpIHtcbiAgICByZXR1cm4gXCJwb3dlcnNoZWxsXCI7XG4gIH1cblxuICByZXR1cm4gXCJ1bmtub3duXCI7XG59O1xuXG4vKiogQ29sbGFwc2UgYSB7QGxpbmsgU2hlbGxUeXBlfSBpbnRvIHRoZSBiZWhhdmlvdXJhbCB7QGxpbmsgU2hlbGxGYW1pbHl9LiAqL1xuZXhwb3J0IGNvbnN0IHNoZWxsRmFtaWx5T2YgPSAoc2hlbGw6IFNoZWxsVHlwZSk6IFNoZWxsRmFtaWx5ID0+IHtcbiAgc3dpdGNoIChzaGVsbCkge1xuICAgIGNhc2UgXCJmaXNoXCI6XG4gICAgICByZXR1cm4gXCJmaXNoXCI7XG4gICAgY2FzZSBcImNtZFwiOlxuICAgICAgcmV0dXJuIFwiY21kXCI7XG4gICAgY2FzZSBcInBvd2Vyc2hlbGxcIjpcbiAgICAgIHJldHVybiBcInBvd2Vyc2hlbGxcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gYmFzaCAvIHpzaCAvIHNoIC8gdW5rbm93biBhbGwgc2hhcmUgUE9TSVggc3ludGF4LlxuICAgICAgcmV0dXJuIFwicG9zaXhcIjtcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FPLFNBQVMsY0FBaUIsT0FBVSxVQUFVLGdDQUFnRDtBQUNuRyxNQUFJLFVBQVUsVUFBYSxVQUFVLE1BQU07QUFDekMsVUFBTSxJQUFJLE1BQU0sT0FBTztBQUFBLEVBQ3pCO0FBRUEsU0FBTztBQUNUOzs7QUNMTyxJQUFNLGFBQWEsQ0FBQyxVQUEwQixJQUFJLE1BQU0sUUFBUSxNQUFNLE9BQU8sQ0FBQztBQU85RSxJQUFNLG9CQUFvQixDQUFDLFVBQTBCLElBQUksTUFBTSxRQUFRLE1BQU0sSUFBSSxDQUFDOzs7QUNQbEYsU0FBUyxjQUFpQixPQUFVLFVBQVUsZ0NBQWlFO0FBQ3BILE1BQUksVUFBVSxVQUFhLFVBQVUsTUFBTTtBQUN6QyxVQUFNLElBQUksTUFBTSxPQUFPO0FBQUEsRUFDekI7QUFDRjs7O0FDSk8sU0FBUyxTQUFTLEtBQWdFO0FBQ3ZGLFNBQU8sT0FBTyxRQUFRLFlBQVksUUFBUTtBQUM1QztBQUdPLFNBQVMsVUFBYSxLQUFxQztBQUNoRSxTQUFPLFFBQVEsVUFBYSxRQUFRO0FBQ3RDOzs7QUNQTyxTQUFTLE9BQWE7QUFDM0I7QUFDRjs7O0FDSEEsd0JBQTZFO0FBRXRFLElBQU0sc0NBQ1gsTUFDQSxDQUFxQixTQUNsQixNQUNDLGdDQUFjLGVBQWU7QUFBQSxFQUMzQixnQkFBZ0IsQ0FBQyxLQUFLLGFBQXVCLGlE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
@@ -0,0 +1,3 @@
1
+ import { type Lifecycle } from "@k8slens/injectable";
2
+ export declare const getKeyedSingletonLifecycleForObject: <T extends Record<string, any>>() => <Key extends string>(keys: readonly [Key, ...(readonly Key[])]) => keyof T extends Key ? () => Lifecycle<Pick<T, Key>> : never;
3
+ //# sourceMappingURL=get-keyed-singleton-lifecycle-for-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-keyed-singleton-lifecycle-for-object.d.ts","sourceRoot":"","sources":["../../src/get-keyed-singleton-lifecycle-for-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEnG,eAAO,MAAM,mCAAmC,GAC7C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAC7B,GAAG,SAAS,MAAM,QAAQ,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,KAInD,MAAM,CAAC,SAAS,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC"}