@kaspernj/api-maker 1.0.2166 → 1.0.2168

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.
@@ -1,11 +1,8 @@
1
1
  export default class ApiMakerBootstrapInvalidFeedback extends React.PureComponent<any, any, any> {
2
- static propTypes: PropTypes.ValidationMap<{
3
- errors: any[];
4
- }>;
2
+ static propTypes: ValidationMap<T>;
5
3
  constructor(props: any);
6
4
  render(): import("react/jsx-runtime").JSX.Element;
7
5
  errorMessages(): any[];
8
6
  }
9
7
  import React from "react";
10
- import PropTypes from "prop-types";
11
8
  //# sourceMappingURL=invalid-feedback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invalid-feedback.d.ts","sourceRoot":"/src/","sources":["bootstrap/invalid-feedback.jsx"],"names":[],"mappings":"AAMA;IACE;;OAEE;;IAEF,kDAMC;IAED,uBAWC;CACF;kBA3BiB,OAAO;sBAFH,YAAY"}
1
+ {"version":3,"file":"invalid-feedback.d.ts","sourceRoot":"/src/","sources":["bootstrap/invalid-feedback.jsx"],"names":[],"mappings":"AAMA;IACE,mCAEE;;IAEF,kDAMC;IAED,uBAWC;CACF;kBA3BiB,OAAO"}
package/build/devise.d.ts CHANGED
@@ -32,7 +32,7 @@ export default class ApiMakerDevise {
32
32
  * @param {string} username
33
33
  * @param {string} password
34
34
  * @param {DeviseScopeArgs} args
35
- * @returns {Promise<{model: import("./base-model.js").default | undefined, response: DeviseSignInResponse}>}
35
+ * @returns {Promise<{model: import("./base-model.js").default, response: DeviseSignInResponse}>}
36
36
  */
37
37
  static signIn(username: string, password: string, args?: DeviseScopeArgs): Promise<{
38
38
  model: {
@@ -135,7 +135,7 @@ export default class ApiMakerDevise {
135
135
  getModel: (relationshipType: string, relationshipId: number | string) => /*elided*/ any;
136
136
  }): void;
137
137
  primaryKey(): number | string;
138
- } | undefined;
138
+ };
139
139
  response: DeviseSignInResponse;
140
140
  }>;
141
141
  /**
@@ -147,10 +147,18 @@ export default class ApiMakerDevise {
147
147
  static persistSession(args?: DeviseScopeArgs): Promise<DeviseSessionStatusResult>;
148
148
  /**
149
149
  * Updates the locally cached current model for one scope.
150
- * @param {DeviseCurrentScope} model
150
+ *
151
+ * Always requires a real model instance. Writing a falsy value here used to
152
+ * be a silent foot-gun: when a caller awaited a query that returned
153
+ * `undefined` (for example `Collection#first()` on an empty result) and
154
+ * passed the value through, the scope cache flipped to "signed out" without
155
+ * any indication, dropping the user back on the sign-in screen right after
156
+ * a successful sign-in. Use `Devise.setSignedOut({scope})` to sign out.
157
+ *
158
+ * @param {NonNullable<DeviseCurrentScope>} model
151
159
  * @param {DeviseScopeArgs} args
152
160
  */
153
- static updateSession(model: DeviseCurrentScope, args?: DeviseScopeArgs): void;
161
+ static updateSession(model: NonNullable<DeviseCurrentScope>, args?: DeviseScopeArgs): void;
154
162
  /**
155
163
  * Marks one scope as signed out in the local current-model cache.
156
164
  * @param {DeviseScopeArgs} args
@@ -1 +1 @@
1
- {"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"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"}
package/build/devise.js CHANGED
@@ -105,7 +105,7 @@ export default class ApiMakerDevise {
105
105
  * @param {string} username
106
106
  * @param {string} password
107
107
  * @param {DeviseScopeArgs} args
108
- * @returns {Promise<{model: import("./base-model.js").default | undefined, response: DeviseSignInResponse}>}
108
+ * @returns {Promise<{model: import("./base-model.js").default, response: DeviseSignInResponse}>}
109
109
  */
110
110
  static async signIn(username, password, args = {}) {
111
111
  if (!args.scope)
@@ -117,6 +117,9 @@ export default class ApiMakerDevise {
117
117
  let model = response.model;
118
118
  if (Array.isArray(model))
119
119
  model = model[0];
120
+ if (!model) {
121
+ throw new Error(`Devise.signIn: Devise::SignIn response for scope "${args.scope}" did not include a model`);
122
+ }
120
123
  await ApiMakerDevise.syncSessionStatusAndRefreshWebsocket({
121
124
  httpResponse: response,
122
125
  scope: args.scope,
@@ -153,12 +156,24 @@ export default class ApiMakerDevise {
153
156
  }
154
157
  /**
155
158
  * Updates the locally cached current model for one scope.
156
- * @param {DeviseCurrentScope} model
159
+ *
160
+ * Always requires a real model instance. Writing a falsy value here used to
161
+ * be a silent foot-gun: when a caller awaited a query that returned
162
+ * `undefined` (for example `Collection#first()` on an empty result) and
163
+ * passed the value through, the scope cache flipped to "signed out" without
164
+ * any indication, dropping the user back on the sign-in screen right after
165
+ * a successful sign-in. Use `Devise.setSignedOut({scope})` to sign out.
166
+ *
167
+ * @param {NonNullable<DeviseCurrentScope>} model
157
168
  * @param {DeviseScopeArgs} args
158
169
  */
159
170
  static updateSession(model, args = {}) {
160
171
  if (!args.scope)
161
172
  args.scope = "user";
173
+ if (!model) {
174
+ throw new Error(`Devise.updateSession was called with a falsy model for scope "${args.scope}". ` +
175
+ "Use Devise.setSignedOut({scope}) to sign out instead.");
176
+ }
162
177
  const camelizedScopeName = inflection.camelize(args.scope, true);
163
178
  ApiMakerDevise.current().currents[camelizedScopeName] = model;
164
179
  }
@@ -295,4 +310,4 @@ export default class ApiMakerDevise {
295
310
  return modelInstance;
296
311
  }
297
312
  }
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBLENBQUMsbUNBQW1DO0FBQzVFLE9BQU8sbUJBQW1CLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQSxDQUFDLG1DQUFtQztBQUNoRixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBLENBQUMsbUNBQW1DO0FBQ2xHLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQSxDQUFDLG1DQUFtQztBQUV4RSxpSEFBaUg7QUFDakgsK0RBQStEO0FBQy9EOzs7Ozs7R0FNRztBQUNILHVIQUF1SDtBQUN2SCxvSkFBb0o7QUFDcEosMEhBQTBIO0FBQzFILDZFQUE2RTtBQUU3RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7SUFBRSxVQUFVLENBQUMsY0FBYyxHQUFHLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFBO0FBRXhFLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTlFLG1CQUFtQjtBQUNuQixNQUFNLFdBQVc7SUFDZjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFB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Q3JELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxxQkFBcUIsQ0FBQyxLQUFLO1FBQ3pCLElBQUksVUFBVSxDQUFDLHFCQUFxQixJQUFJLEtBQUssSUFBSSxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNsRixPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXpELElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFFM0IsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVyRCxxREFBcUQ7UUFDckQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUFFLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTdELE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQUE7UUFFN0QsT0FBTyxhQUFhLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBDYWJsZUNvbm5lY3Rpb25Qb29sIGZyb20gXCIuL2NhYmxlLWNvbm5lY3Rpb24tcG9vbC5qc1wiXG5pbXBvcnQge2NyZWF0ZUNvbnRleHR9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgRGVzZXJpYWxpemVyIGZyb20gXCIuL2Rlc2VyaWFsaXplci5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgZXZlbnRzIGZyb20gXCIuL2V2ZW50cy5qc1wiXG5pbXBvcnQgbW9kZWxDbGFzc1JlcXVpcmUgZnJvbSBcIi4vbW9kZWwtY2xhc3MtcmVxdWlyZS5qc1wiXG5pbXBvcnQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIgZnJvbSBcIi4vc2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgU2VydmljZXMgZnJvbSBcIi4vc2VydmljZXMuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG4vKiogQHR5cGVkZWYge3tzY29wZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiwgY3VycmVudEFwaU1ha2VyRGV2aXNlPzogQXBpTWFrZXJEZXZpc2V9fSBBcGlNYWtlckRldmlzZVNoYXJlZCAqL1xuLyoqIEB0eXBlZGVmIHt7c2lnbmVkX2luOiBib29sZWFufX0gRGV2aXNlU2Vzc2lvblN0YXR1c1Njb3BlICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbY3NyZl90b2tlbl1cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgRGV2aXNlU2Vzc2lvblN0YXR1c1Njb3BlPn0gc2NvcGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3NoYWRvd19zZXNzaW9uX3Rva2VuXVxuICogQHByb3BlcnR5IHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSBbc2Vzc2lvbl9zdGF0dXNdXG4gKi9cbi8qKiBAdHlwZWRlZiB7e3JlbWVtYmVyTWU/OiBib29sZWFuLCBzY29wZT86IHN0cmluZywgc2lnbmVkSW4/OiBib29sZWFuLCBza2lwU2lnbkluRXZlbnQ/OiBib29sZWFufX0gRGV2aXNlU2NvcGVBcmdzICovXG4vKiogQHR5cGVkZWYge0RldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQgJiB7bW9kZWw/OiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0W119fSBEZXZpc2VTaWduSW5SZXNwb25zZSAqL1xuLyoqIEB0eXBlZGVmIHt7aHR0cFJlc3BvbnNlOiBEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0LCBzY29wZTogc3RyaW5nLCB3ZWJzb2NrZXRBcmdzOiBEZXZpc2VTY29wZUFyZ3N9fSBTeW5jU2Vzc2lvbkFyZ3MgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfCBudWxsfSBEZXZpc2VDdXJyZW50U2NvcGUgKi9cblxuaWYgKCFnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlKSBnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlID0ge3Njb3Blczoge319XG5cbmNvbnN0IHNoYXJlZCA9IC8qKiBAdHlwZSB7QXBpTWFrZXJEZXZpc2VTaGFyZWR9ICovIChnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlKVxuXG4vKiogRGV2aXNlU2NvcGUuICovXG5jbGFzcyBEZXZpc2VTY29wZSB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZSwgYXJncykge1xuICAgIHRoaXMuYXJncyA9IGFyZ3NcbiAgICB0aGlzLmNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLnNjb3BlID0gc2NvcGVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgUHJvdmlkZXIgd3JpdGVzIGEgYHtsb2FkZWQsIG1vZGVsfWAgd3JhcHBlciAoc2VlXG4gICAqIGBVc2VDdXJyZW50VXNlckNvbnRleHRgKTsgYHVzZUN1cnJlbnRVc2VyYCB1bndyYXBzIGl0IG9uIHJlYWQuIFRoZVxuICAgKiBjb250ZXh0IHR5cGUgaXMgdGhlIHdyYXBwZXIsIG5vdCB0aGUgcmF3IG1vZGVsLlxuICAgKlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwicmVhY3RcIikuQ29udGV4dDxpbXBvcnQoXCIuL3VzZS1jdXJyZW50LXVzZXIuanNcIikuQ3VycmVudFVzZXJDb250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+fVxuICAgKi9cbiAgZ2V0Q29udGV4dCA9ICgpID0+IHRoaXMuY29udGV4dFxufVxuXG4vKiogQXBpTWFrZXJEZXZpc2UuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckRldmlzZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2hhcmVkIHNpZ24tb3V0IGV2ZW50IHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgY2FsbFNpZ25PdXRFdmVudChhcmdzKSB7XG4gICAgZXZlbnRzLmVtaXQoXCJvbkRldmlzZVNpZ25PdXRcIiwge2FyZ3N9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcGlNYWtlckRldmlzZX0gKi9cbiAgc3RhdGljIGN1cnJlbnQoKSB7XG4gICAgaWYgKCFzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlKSB7XG4gICAgICBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlID0gbmV3IEFwaU1ha2VyRGV2aXNlKClcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNoYXJlZCBldmVudCBlbWl0dGVyIHVzZWQgZm9yIERldmlzZSBsaWZlY3ljbGUgZXZlbnRzLlxuICAgKiBAcmV0dXJucyB7dHlwZW9mIGV2ZW50c31cbiAgICovXG4gIHN0YXRpYyBldmVudHMoKSB7XG4gICAgcmV0dXJuIGV2ZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBvbmUgRGV2aXNlIHNjb3BlIGFuZCBpdHMgaGVscGVyIGFjY2Vzc29ycy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqL1xuICBzdGF0aWMgYWRkVXNlclNjb3BlKHNjb3BlLCBhcmdzID0ge30pIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgY3VycmVudE1ldGhvZE5hbWUgPSBgY3VycmVudCR7c2NvcGVDYW1lbGl6ZWR9YFxuICAgIGNvbnN0IGlzU2lnbmVkSW5NZXRob2ROYW1lID0gYGlzJHtzY29wZUNhbWVsaXplZH1TaWduZWRJbmBcbiAgICBjb25zdCBnZXRBcmdzTWV0aG9kTmFtZSA9IGBnZXQke3Njb3BlQ2FtZWxpemVkfUFyZ3NgXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG4gICAgY29uc3Qgc2NvcGVJbnN0YW5jZSA9IG5ldyBEZXZpc2VTY29wZShzY29wZSwgYXJncylcblxuICAgIHNoYXJlZC5zY29wZXNbc2NvcGVdID0gdHJ1ZVxuICAgIEFwaU1ha2VyRGV2aXNlW2N1cnJlbnRNZXRob2ROYW1lXSA9ICgpID0+IEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG4gICAgQXBpTWFrZXJEZXZpc2VbaXNTaWduZWRJbk1ldGhvZE5hbWVdID0gKCkgPT4gQm9vbGVhbihBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSlcbiAgICBBcGlNYWtlckRldmlzZVtnZXRBcmdzTWV0aG9kTmFtZV0gPSAoKSA9PiBhcmdzXG4gICAgQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSA9ICgpID0+IHNjb3BlSW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZWdpc3RlcmVkIHNjb3BlIGhlbHBlciBmb3Igb25lIHNjb3BlIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7RGV2aXNlU2NvcGV9XG4gICAqL1xuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ1tdfSAqL1xuICBzdGF0aWMgcmVnaXN0ZXJlZFNjb3BlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2hhcmVkLnNjb3BlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBpbiBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VybmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFzc3dvcmRcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8e21vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZCwgcmVzcG9uc2U6IERldmlzZVNpZ25JblJlc3BvbnNlfT59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2lnbkluKHVzZXJuYW1lLCBwYXNzd29yZCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHBvc3REYXRhID0ge3VzZXJuYW1lLCBwYXNzd29yZCwgYXJnc31cblxuICAgIC8vIFNpZ24gaW4gb3ZlciBIVFRQIGZpcnN0IHNvIERldmlzZSBjYW4gd3JpdGUgdGhlIHJlYWwgc2Vzc2lvbiBjb29raWUgYW5kXG4gICAgLy8gcmVtZW1iZXItbWUgdG9rZW4gaW4gdGhlIEhUVFAgcmVzcG9uc2UuXG4gICAgY29uc3QgcmVzcG9uc2UgPSAvKiogQHR5cGUge0RldmlzZVNpZ25JblJlc3BvbnNlfSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlNpZ25JblwiLCBwb3N0RGF0YSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuXG4gICAgbGV0IG1vZGVsID0gcmVzcG9uc2UubW9kZWxcblxuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgbW9kZWwgPSBtb2RlbFswXVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgcmVtZW1iZXJNZTogYXJncy5yZW1lbWJlck1lLFxuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcblxuICAgIGlmICghYXJncy5za2lwU2lnbkluRXZlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduSW5cIiwge3VzZXJuYW1lLCAuLi5hcmdzfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbml6ZXMgdGhlIGN1cnJlbnQgYmFja2VuZCBhdXRoIHN0YXRlIGludG8gcmVhbCBIVFRQIHJlc3BvbnNlIGNvb2tpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdD59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcGVyc2lzdFNlc3Npb24oYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MsIHtmb3JjZUh0dHA6IHRydWV9KVxuICAgIClcblxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXNVcGRhdGVyID0gU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpXG5cbiAgICBpZiAocmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMpIHtcbiAgICAgIHNlc3Npb25TdGF0dXNVcGRhdGVyLmFwcGx5UmVzdWx0KHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsb2NhbGx5IGNhY2hlZCBjdXJyZW50IG1vZGVsIGZvciBvbmUgc2NvcGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlQ3VycmVudFNjb3BlfSBtb2RlbFxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHVwZGF0ZVNlc3Npb24obW9kZWwsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXG5cbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbY2FtZWxpemVkU2NvcGVOYW1lXSA9IG1vZGVsXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBjdXJyZW50IHNjb3BlIGNhY2hlIGhhcyBiZWVuIGluaXRpYWxpemVkIGxvY2FsbHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0N1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGNvbnN0IGNhbWVsaXplZFNjb3BlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUsIHRydWUpXG5cbiAgICByZXR1cm4gY2FtZWxpemVkU2NvcGVOYW1lIGluIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIG9uZSBzY29wZSBhcyBzaWduZWQgb3V0IGluIHRoZSBsb2NhbCBjdXJyZW50LW1vZGVsIGNhY2hlLlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHNldFNpZ25lZE91dChhcmdzKSB7XG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2luZmxlY3Rpb24uY2FtZWxpemUoYXJncy5zY29wZSwgdHJ1ZSldID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIG91dCBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHNpZ25PdXQoYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSB7XG4gICAgICBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IC8qKiBAdHlwZSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gKi8gKFxuICAgICAgYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpTaWduT3V0XCIsIHthcmdzfSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBhd2FpdCBBcGlNYWtlckRldmlzZS5zeW5jU2Vzc2lvblN0YXR1c0FuZFJlZnJlc2hXZWJzb2NrZXQoe1xuICAgICAgaHR0cFJlc3BvbnNlOiByZXNwb25zZSxcbiAgICAgIHNjb3BlOiBhcmdzLnNjb3BlLFxuICAgICAgd2Vic29ja2V0QXJnczoge1xuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IGZhbHNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICghc2Vzc2lvblN0YXR1cy5zY29wZXM/LlthcmdzLnNjb3BlXT8uc2lnbmVkX2luKSB7XG4gICAgICBBcGlNYWtlckRldmlzZS5zZXRTaWduZWRPdXQoYXJncylcbiAgICAgIEFwaU1ha2VyRGV2aXNlLmNhbGxTaWduT3V0RXZlbnQoYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBsYXRlc3QgSFRUUCBzZXNzaW9uIHN0YXR1cyBsb2NhbGx5LCB0aGVuIHJlZnJlc2hlcyB0aGVcbiAgICogZXhpc3Rpbmcgd2Vic29ja2V0IGNvbm5lY3Rpb24gc28gQXBpTWFrZXIgY29tbWFuZHMgdXNlIHRoZSBzYW1lIGF1dGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3luY1Nlc3Npb25BcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzQW5kUmVmcmVzaFdlYnNvY2tldChhcmdzKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1cyA9IGF3YWl0IEFwaU1ha2VyRGV2aXNlLnN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShhcmdzLmh0dHBSZXNwb25zZSlcbiAgICBjb25zdCB3ZWJzb2NrZXRBcmdzID0ge1xuICAgICAgLi4uYXJncy53ZWJzb2NrZXRBcmdzLFxuICAgICAgc2hhZG93U2Vzc2lvblRva2VuOiBzZXNzaW9uU3RhdHVzLnNoYWRvd19zZXNzaW9uX3Rva2VuXG4gICAgfVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2UucmVmcmVzaFdlYnNvY2tldFNlc3Npb24od2Vic29ja2V0QXJncylcbiAgICBhd2FpdCBBcGlNYWtlckRldmlzZS5yZWZyZXNoU3Vic2NyaXB0aW9uQXV0aGVudGljYXRpb24od2Vic29ja2V0QXJncylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBsb2NhbCBzZXNzaW9uIHN0YXR1cyBmcm9tIG9uZSBIVFRQIHJlc3BvbnNlIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gaHR0cFJlc3BvbnNlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShodHRwUmVzcG9uc2UpIHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzVXBkYXRlciA9IFNlc3Npb25TdGF0dXNVcGRhdGVyLmN1cnJlbnQoKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBodHRwUmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMgfHwgYXdhaXQgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuc2Vzc2lvblN0YXR1cygpXG5cbiAgICBzZXNzaW9uU3RhdHVzVXBkYXRlci5hcHBseVJlc3VsdChzZXNzaW9uU3RhdHVzKVxuXG4gICAgcmV0dXJuIHNlc3Npb25TdGF0dXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgQXBpTWFrZXIgYXV0aCBpbnNpZGUgdGhlIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hXZWJzb2NrZXRTZXNzaW9uKGFyZ3MpIHtcbiAgICByZXR1cm4gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpQZXJzaXN0U2Vzc2lvblwiLCBhcmdzKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgYXV0aCBvbiB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9ucyBjaGFubmVsIHBvb2xzLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbihhcmdzKSB7XG4gICAgYXdhaXQgQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkucmVmcmVzaEF1dGhlbnRpY2F0aW9uKGFyZ3MpXG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIERldmlzZUN1cnJlbnRTY29wZT59ICovICh7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsIGNhY2hlZCBmb3Igb25lIHNjb3BlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGdldEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmICghKHNjb3BlIGluIHRoaXMuY3VycmVudHMpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRzW3Njb3BlXSA9IHRoaXMubG9hZEN1cnJlbnRTY29wZShzY29wZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50c1tzY29wZV1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNlcnZlciByZW5kZXJlZCBjdXJyZW50LXNjb3BlIHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHRoZSBjdXJyZW50IHNjb3BlIG1vZGVsIGZyb20gdGhlIHNlcnZlciByZW5kZXJlZCBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGxvYWRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZURhdGEgPSBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudFtzY29wZV1cblxuICAgIGlmICghc2NvcGVEYXRhKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGFyc2VkU2NvcGVEYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHNjb3BlRGF0YSlcblxuICAgIC8vIE1pZ2h0IGJlIGEgY29sbGVjdGlvbiB3aXRoIHByZWxvYWRlZCByZWxhdGlvbnNoaXBzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkU2NvcGVEYXRhKSkgcmV0dXJuIHBhcnNlZFNjb3BlRGF0YVswXVxuXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKHNjb3BlKVxuICAgIGNvbnN0IG1vZGVsSW5zdGFuY2UgPSBuZXcgTW9kZWxDbGFzcyh7ZGF0YTogcGFyc2VkU2NvcGVEYXRhfSlcblxuICAgIHJldHVybiBtb2RlbEluc3RhbmNlXG4gIH1cbn1cbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBLENBQUMsbUNBQW1DO0FBQzVFLE9BQU8sbUJBQW1CLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQSxDQUFDLG1DQUFtQztBQUNoRixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBLENBQUMsbUNBQW1DO0FBQ2xHLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQSxDQUFDLG1DQUFtQztBQUV4RSxpSEFBaUg7QUFDakgsK0RBQStEO0FBQy9EOzs7Ozs7R0FNRztBQUNILHVIQUF1SDtBQUN2SCxvSkFBb0o7QUFDcEosMEhBQTBIO0FBQzFILDZFQUE2RTtBQUU3RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7SUFBRSxVQUFVLENBQUMsY0FBYyxHQUFHLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFBO0FBRXhFLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTlFLG1CQUFtQjtBQUNuQixNQUFNLFdBQVc7SUFDZjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFB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SSxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQTtRQUU3RCxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IENhYmxlQ29ubmVjdGlvblBvb2wgZnJvbSBcIi4vY2FibGUtY29ubmVjdGlvbi1wb29sLmpzXCJcbmltcG9ydCB7Y3JlYXRlQ29udGV4dH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXNlcmlhbGl6ZXIgZnJvbSBcIi4vZGVzZXJpYWxpemVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBldmVudHMgZnJvbSBcIi4vZXZlbnRzLmpzXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcbmltcG9ydCBTZXNzaW9uU3RhdHVzVXBkYXRlciBmcm9tIFwiLi9zZXNzaW9uLXN0YXR1cy11cGRhdGVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlcy5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5cbi8qKiBAdHlwZWRlZiB7e3Njb3Blcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+LCBjdXJyZW50QXBpTWFrZXJEZXZpc2U/OiBBcGlNYWtlckRldmlzZX19IEFwaU1ha2VyRGV2aXNlU2hhcmVkICovXG4vKiogQHR5cGVkZWYge3tzaWduZWRfaW46IGJvb2xlYW59fSBEZXZpc2VTZXNzaW9uU3RhdHVzU2NvcGUgKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gRGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjc3JmX3Rva2VuXVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBEZXZpc2VTZXNzaW9uU3RhdHVzU2NvcGU+fSBzY29wZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc2hhZG93X3Nlc3Npb25fdG9rZW5dXG4gKiBAcHJvcGVydHkge0RldmlzZVNlc3Npb25TdGF0dXNSZXN1bHR9IFtzZXNzaW9uX3N0YXR1c11cbiAqL1xuLyoqIEB0eXBlZGVmIHt7cmVtZW1iZXJNZT86IGJvb2xlYW4sIHNjb3BlPzogc3RyaW5nLCBzaWduZWRJbj86IGJvb2xlYW4sIHNraXBTaWduSW5FdmVudD86IGJvb2xlYW59fSBEZXZpc2VTY29wZUFyZ3MgKi9cbi8qKiBAdHlwZWRlZiB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdCAmIHttb2RlbD86IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IHwgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHRbXX19IERldmlzZVNpZ25JblJlc3BvbnNlICovXG4vKiogQHR5cGVkZWYge3todHRwUmVzcG9uc2U6IERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQsIHNjb3BlOiBzdHJpbmcsIHdlYnNvY2tldEFyZ3M6IERldmlzZVNjb3BlQXJnc319IFN5bmNTZXNzaW9uQXJncyAqL1xuLyoqIEB0eXBlZGVmIHtpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IG51bGx9IERldmlzZUN1cnJlbnRTY29wZSAqL1xuXG5pZiAoIWdsb2JhbFRoaXMuQXBpTWFrZXJEZXZpc2UpIGdsb2JhbFRoaXMuQXBpTWFrZXJEZXZpc2UgPSB7c2NvcGVzOiB7fX1cblxuY29uc3Qgc2hhcmVkID0gLyoqIEB0eXBlIHtBcGlNYWtlckRldmlzZVNoYXJlZH0gKi8gKGdsb2JhbFRoaXMuQXBpTWFrZXJEZXZpc2UpXG5cbi8qKiBEZXZpc2VTY29wZS4gKi9cbmNsYXNzIERldmlzZVNjb3BlIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlLCBhcmdzKSB7XG4gICAgdGhpcy5hcmdzID0gYXJnc1xuICAgIHRoaXMuY29udGV4dCA9IGNyZWF0ZUNvbnRleHQodW5kZWZpbmVkKVxuICAgIHRoaXMuc2NvcGUgPSBzY29wZVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBQcm92aWRlciB3cml0ZXMgYSBge2xvYWRlZCwgbW9kZWx9YCB3cmFwcGVyIChzZWVcbiAgICogYFVzZUN1cnJlbnRVc2VyQ29udGV4dGApOyBgdXNlQ3VycmVudFVzZXJgIHVud3JhcHMgaXQgb24gcmVhZC4gVGhlXG4gICAqIGNvbnRleHQgdHlwZSBpcyB0aGUgd3JhcHBlciwgbm90IHRoZSByYXcgbW9kZWwuXG4gICAqXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCJyZWFjdFwiKS5Db250ZXh0PGltcG9ydChcIi4vdXNlLWN1cnJlbnQtdXNlci5qc1wiKS5DdXJyZW50VXNlckNvbnRleHRWYWx1ZSB8IHVuZGVmaW5lZD59XG4gICAqL1xuICBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5jb250ZXh0XG59XG5cbi8qKiBBcGlNYWtlckRldmlzZS4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyRGV2aXNlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzaGFyZWQgc2lnbi1vdXQgZXZlbnQgcGF5bG9hZCBmb3Igb25lIHNjb3BlLlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyBjYWxsU2lnbk91dEV2ZW50KGFyZ3MpIHtcbiAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbk91dFwiLCB7YXJnc30pXG4gIH1cblxuICAvKiogQHJldHVybnMge0FwaU1ha2VyRGV2aXNlfSAqL1xuICBzdGF0aWMgY3VycmVudCgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UpIHtcbiAgICAgIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UgPSBuZXcgQXBpTWFrZXJEZXZpc2UoKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2hhcmVkIGV2ZW50IGVtaXR0ZXIgdXNlZCBmb3IgRGV2aXNlIGxpZmVjeWNsZSBldmVudHMuXG4gICAqIEByZXR1cm5zIHt0eXBlb2YgZXZlbnRzfVxuICAgKi9cbiAgc3RhdGljIGV2ZW50cygpIHtcbiAgICByZXR1cm4gZXZlbnRzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIG9uZSBEZXZpc2Ugc2NvcGUgYW5kIGl0cyBoZWxwZXIgYWNjZXNzb3JzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICovXG4gIHN0YXRpYyBhZGRVc2VyU2NvcGUoc2NvcGUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IHNjb3BlQ2FtZWxpemVkID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSlcbiAgICBjb25zdCBjdXJyZW50TWV0aG9kTmFtZSA9IGBjdXJyZW50JHtzY29wZUNhbWVsaXplZH1gXG4gICAgY29uc3QgaXNTaWduZWRJbk1ldGhvZE5hbWUgPSBgaXMke3Njb3BlQ2FtZWxpemVkfVNpZ25lZEluYFxuICAgIGNvbnN0IGdldEFyZ3NNZXRob2ROYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9QXJnc2BcbiAgICBjb25zdCBnZXRTY29wZU5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1TY29wZWBcbiAgICBjb25zdCBzY29wZUluc3RhbmNlID0gbmV3IERldmlzZVNjb3BlKHNjb3BlLCBhcmdzKVxuXG4gICAgc2hhcmVkLnNjb3Blc1tzY29wZV0gPSB0cnVlXG4gICAgQXBpTWFrZXJEZXZpc2VbY3VycmVudE1ldGhvZE5hbWVdID0gKCkgPT4gQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmdldEN1cnJlbnRTY29wZShzY29wZSlcbiAgICBBcGlNYWtlckRldmlzZVtpc1NpZ25lZEluTWV0aG9kTmFtZV0gPSAoKSA9PiBCb29sZWFuKEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpKVxuICAgIEFwaU1ha2VyRGV2aXNlW2dldEFyZ3NNZXRob2ROYW1lXSA9ICgpID0+IGFyZ3NcbiAgICBBcGlNYWtlckRldmlzZVtnZXRTY29wZU5hbWVdID0gKCkgPT4gc2NvcGVJbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlZ2lzdGVyZWQgc2NvcGUgaGVscGVyIGZvciBvbmUgc2NvcGUgbmFtZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtEZXZpc2VTY29wZX1cbiAgICovXG4gIHN0YXRpYyBnZXRTY29wZShzY29wZSkge1xuICAgIGNvbnN0IHNjb3BlQ2FtZWxpemVkID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSlcbiAgICBjb25zdCBnZXRTY29wZU5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1TY29wZWBcblxuICAgIHJldHVybiBBcGlNYWtlckRldmlzZVtnZXRTY29wZU5hbWVdKClcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nW119ICovXG4gIHN0YXRpYyByZWdpc3RlcmVkU2NvcGVzKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzaGFyZWQuc2NvcGVzKVxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGluIG9uZSBzY29wZSBvdmVyIEhUVFAgYW5kIHJlZnJlc2hlcyB3ZWJzb2NrZXQgYXV0aCBzdGF0ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHVzZXJuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXNzd29yZFxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7bW9kZWw6IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0LCByZXNwb25zZTogRGV2aXNlU2lnbkluUmVzcG9uc2V9Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzaWduSW4odXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgY29uc3QgcG9zdERhdGEgPSB7dXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzfVxuXG4gICAgLy8gU2lnbiBpbiBvdmVyIEhUVFAgZmlyc3Qgc28gRGV2aXNlIGNhbiB3cml0ZSB0aGUgcmVhbCBzZXNzaW9uIGNvb2tpZSBhbmRcbiAgICAvLyByZW1lbWJlci1tZSB0b2tlbiBpbiB0aGUgSFRUUCByZXNwb25zZS5cbiAgICBjb25zdCByZXNwb25zZSA9IC8qKiBAdHlwZSB7RGV2aXNlU2lnbkluUmVzcG9uc2V9ICovIChcbiAgICAgIGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbkluXCIsIHBvc3REYXRhLCB7Zm9yY2VIdHRwOiB0cnVlfSlcbiAgICApXG5cbiAgICBsZXQgbW9kZWwgPSByZXNwb25zZS5tb2RlbFxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobW9kZWwpKSBtb2RlbCA9IG1vZGVsWzBdXG5cbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERldmlzZS5zaWduSW46IERldmlzZTo6U2lnbkluIHJlc3BvbnNlIGZvciBzY29wZSBcIiR7YXJncy5zY29wZX1cIiBkaWQgbm90IGluY2x1ZGUgYSBtb2RlbGApXG4gICAgfVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgcmVtZW1iZXJNZTogYXJncy5yZW1lbWJlck1lLFxuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcblxuICAgIGlmICghYXJncy5za2lwU2lnbkluRXZlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduSW5cIiwge3VzZXJuYW1lLCAuLi5hcmdzfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbml6ZXMgdGhlIGN1cnJlbnQgYmFja2VuZCBhdXRoIHN0YXRlIGludG8gcmVhbCBIVFRQIHJlc3BvbnNlIGNvb2tpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdD59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcGVyc2lzdFNlc3Npb24oYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MsIHtmb3JjZUh0dHA6IHRydWV9KVxuICAgIClcblxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXNVcGRhdGVyID0gU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpXG5cbiAgICBpZiAocmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMpIHtcbiAgICAgIHNlc3Npb25TdGF0dXNVcGRhdGVyLmFwcGx5UmVzdWx0KHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsb2NhbGx5IGNhY2hlZCBjdXJyZW50IG1vZGVsIGZvciBvbmUgc2NvcGUuXG4gICAqXG4gICAqIEFsd2F5cyByZXF1aXJlcyBhIHJlYWwgbW9kZWwgaW5zdGFuY2UuIFdyaXRpbmcgYSBmYWxzeSB2YWx1ZSBoZXJlIHVzZWQgdG9cbiAgICogYmUgYSBzaWxlbnQgZm9vdC1ndW46IHdoZW4gYSBjYWxsZXIgYXdhaXRlZCBhIHF1ZXJ5IHRoYXQgcmV0dXJuZWRcbiAgICogYHVuZGVmaW5lZGAgKGZvciBleGFtcGxlIGBDb2xsZWN0aW9uI2ZpcnN0KClgIG9uIGFuIGVtcHR5IHJlc3VsdCkgYW5kXG4gICAqIHBhc3NlZCB0aGUgdmFsdWUgdGhyb3VnaCwgdGhlIHNjb3BlIGNhY2hlIGZsaXBwZWQgdG8gXCJzaWduZWQgb3V0XCIgd2l0aG91dFxuICAgKiBhbnkgaW5kaWNhdGlvbiwgZHJvcHBpbmcgdGhlIHVzZXIgYmFjayBvbiB0aGUgc2lnbi1pbiBzY3JlZW4gcmlnaHQgYWZ0ZXJcbiAgICogYSBzdWNjZXNzZnVsIHNpZ24taW4uIFVzZSBgRGV2aXNlLnNldFNpZ25lZE91dCh7c2NvcGV9KWAgdG8gc2lnbiBvdXQuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9uTnVsbGFibGU8RGV2aXNlQ3VycmVudFNjb3BlPn0gbW9kZWxcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICovXG4gIHN0YXRpYyB1cGRhdGVTZXNzaW9uKG1vZGVsLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRGV2aXNlLnVwZGF0ZVNlc3Npb24gd2FzIGNhbGxlZCB3aXRoIGEgZmFsc3kgbW9kZWwgZm9yIHNjb3BlIFwiJHthcmdzLnNjb3BlfVwiLiBgICtcbiAgICAgICAgXCJVc2UgRGV2aXNlLnNldFNpZ25lZE91dCh7c2NvcGV9KSB0byBzaWduIG91dCBpbnN0ZWFkLlwiXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY2FtZWxpemVkU2NvcGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhcmdzLnNjb3BlLCB0cnVlKVxuXG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2NhbWVsaXplZFNjb3BlTmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgY3VycmVudCBzY29wZSBjYWNoZSBoYXMgYmVlbiBpbml0aWFsaXplZCBsb2NhbGx5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBoYXNDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlLCB0cnVlKVxuXG4gICAgcmV0dXJuIGNhbWVsaXplZFNjb3BlTmFtZSBpbiBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyBvbmUgc2NvcGUgYXMgc2lnbmVkIG91dCBpbiB0aGUgbG9jYWwgY3VycmVudC1tb2RlbCBjYWNoZS5cbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICovXG4gIHN0YXRpYyBzZXRTaWduZWRPdXQoYXJncykge1xuICAgIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1tpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXSA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBvdXQgb25lIHNjb3BlIG92ZXIgSFRUUCBhbmQgcmVmcmVzaGVzIHdlYnNvY2tldCBhdXRoIHN0YXRlLlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzaWduT3V0KGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkge1xuICAgICAgYXJncy5zY29wZSA9IFwidXNlclwiXG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSAvKiogQHR5cGUge0RldmlzZVNlc3Npb25TdGF0dXNSZXN1bHR9ICovIChcbiAgICAgIGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbk91dFwiLCB7YXJnc30sIHtmb3JjZUh0dHA6IHRydWV9KVxuICAgIClcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICAgIHNpZ25lZEluOiBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoIXNlc3Npb25TdGF0dXMuc2NvcGVzPy5bYXJncy5zY29wZV0/LnNpZ25lZF9pbikge1xuICAgICAgQXBpTWFrZXJEZXZpc2Uuc2V0U2lnbmVkT3V0KGFyZ3MpXG4gICAgICBBcGlNYWtlckRldmlzZS5jYWxsU2lnbk91dEV2ZW50KGFyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgbGF0ZXN0IEhUVFAgc2Vzc2lvbiBzdGF0dXMgbG9jYWxseSwgdGhlbiByZWZyZXNoZXMgdGhlXG4gICAqIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uIHNvIEFwaU1ha2VyIGNvbW1hbmRzIHVzZSB0aGUgc2FtZSBhdXRoLlxuICAgKlxuICAgKiBAcGFyYW0ge1N5bmNTZXNzaW9uQXJnc30gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzeW5jU2Vzc2lvblN0YXR1c0FuZFJlZnJlc2hXZWJzb2NrZXQoYXJncykge1xuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBhd2FpdCBBcGlNYWtlckRldmlzZS5zeW5jU2Vzc2lvblN0YXR1c0Zyb21IdHRwUmVzcG9uc2UoYXJncy5odHRwUmVzcG9uc2UpXG4gICAgY29uc3Qgd2Vic29ja2V0QXJncyA9IHtcbiAgICAgIC4uLmFyZ3Mud2Vic29ja2V0QXJncyxcbiAgICAgIHNoYWRvd1Nlc3Npb25Ub2tlbjogc2Vzc2lvblN0YXR1cy5zaGFkb3dfc2Vzc2lvbl90b2tlblxuICAgIH1cblxuICAgIGF3YWl0IEFwaU1ha2VyRGV2aXNlLnJlZnJlc2hXZWJzb2NrZXRTZXNzaW9uKHdlYnNvY2tldEFyZ3MpXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2UucmVmcmVzaFN1YnNjcmlwdGlvbkF1dGhlbnRpY2F0aW9uKHdlYnNvY2tldEFyZ3MpXG5cbiAgICByZXR1cm4gc2Vzc2lvblN0YXR1c1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgbG9jYWwgc2Vzc2lvbiBzdGF0dXMgZnJvbSBvbmUgSFRUUCByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge0RldmlzZVNlc3Npb25TdGF0dXNSZXN1bHR9IGh0dHBSZXNwb25zZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzeW5jU2Vzc2lvblN0YXR1c0Zyb21IdHRwUmVzcG9uc2UoaHR0cFJlc3BvbnNlKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1c1VwZGF0ZXIgPSBTZXNzaW9uU3RhdHVzVXBkYXRlci5jdXJyZW50KClcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gaHR0cFJlc3BvbnNlLnNlc3Npb25fc3RhdHVzIHx8IGF3YWl0IHNlc3Npb25TdGF0dXNVcGRhdGVyLnNlc3Npb25TdGF0dXMoKVxuXG4gICAgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuYXBwbHlSZXN1bHQoc2Vzc2lvblN0YXR1cylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIEFwaU1ha2VyIGF1dGggaW5zaWRlIHRoZSBleGlzdGluZyB3ZWJzb2NrZXQgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3MgJiB7c2hhZG93U2Vzc2lvblRva2VuPzogc3RyaW5nfX0gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyByZWZyZXNoV2Vic29ja2V0U2Vzc2lvbihhcmdzKSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gKi8gKGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6UGVyc2lzdFNlc3Npb25cIiwgYXJncykpXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIGF1dGggb24gdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgY2hhbm5lbCBwb29scy5cbiAgICpcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3MgJiB7c2hhZG93U2Vzc2lvblRva2VuPzogc3RyaW5nfX0gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyByZWZyZXNoU3Vic2NyaXB0aW9uQXV0aGVudGljYXRpb24oYXJncykge1xuICAgIGF3YWl0IENhYmxlQ29ubmVjdGlvblBvb2wuY3VycmVudCgpLnJlZnJlc2hBdXRoZW50aWNhdGlvbihhcmdzKVxuICB9XG5cbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmN1cnJlbnRzID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBEZXZpc2VDdXJyZW50U2NvcGU+fSAqLyAoe30pXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBtb2RlbCBjYWNoZWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtEZXZpc2VDdXJyZW50U2NvcGV9XG4gICAqL1xuICBnZXRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIShzY29wZSBpbiB0aGlzLmN1cnJlbnRzKSkge1xuICAgICAgdGhpcy5jdXJyZW50c1tzY29wZV0gPSB0aGlzLmxvYWRDdXJyZW50U2NvcGUoc2NvcGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudHNbc2NvcGVdXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBzZXJ2ZXIgcmVuZGVyZWQgY3VycmVudC1zY29wZSBwYXlsb2FkIGZvciBvbmUgc2NvcGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0dsb2JhbEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmIChnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudCAmJiBzY29wZSBpbiBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBIeWRyYXRlcyB0aGUgY3VycmVudCBzY29wZSBtb2RlbCBmcm9tIHRoZSBzZXJ2ZXIgcmVuZGVyZWQgcGF5bG9hZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtEZXZpc2VDdXJyZW50U2NvcGV9XG4gICAqL1xuICBsb2FkQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKCF0aGlzLmhhc0dsb2JhbEN1cnJlbnRTY29wZShzY29wZSkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3Qgc2NvcGVEYXRhID0gZ2xvYmFsVGhpcy5hcGlNYWtlckRldmlzZUN1cnJlbnRbc2NvcGVdXG5cbiAgICBpZiAoIXNjb3BlRGF0YSkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHBhcnNlZFNjb3BlRGF0YSA9IERlc2VyaWFsaXplci5wYXJzZShzY29wZURhdGEpXG5cbiAgICAvLyBNaWdodCBiZSBhIGNvbGxlY3Rpb24gd2l0aCBwcmVsb2FkZWQgcmVsYXRpb25zaGlwc1xuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcnNlZFNjb3BlRGF0YSkpIHJldHVybiBwYXJzZWRTY29wZURhdGFbMF1cblxuICAgIGNvbnN0IE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzUmVxdWlyZShzY29wZSlcbiAgICBjb25zdCBtb2RlbEluc3RhbmNlID0gbmV3IE1vZGVsQ2xhc3Moe2RhdGE6IHBhcnNlZFNjb3BlRGF0YX0pXG5cbiAgICByZXR1cm4gbW9kZWxJbnN0YW5jZVxuICB9XG59XG4iXX0=
@@ -2,12 +2,7 @@ export default class ApiMakerEventConnection extends React.PureComponent<any, an
2
2
  static defaultProps: {
3
3
  active: boolean;
4
4
  };
5
- static propTypes: PropTypes.ValidationMap<{
6
- active: boolean;
7
- model: object;
8
- event: string;
9
- onCall: (...args: any[]) => any;
10
- }>;
5
+ static propTypes: ValidationMap<T>;
11
6
  constructor(props: any);
12
7
  componentDidMount(): void;
13
8
  subscription: import("./cable-subscription.js").default;
@@ -16,5 +11,4 @@ export default class ApiMakerEventConnection extends React.PureComponent<any, an
16
11
  onCall(...args: any[]): void;
17
12
  }
18
13
  import React from "react";
19
- import PropTypes from "prop-types";
20
14
  //# sourceMappingURL=event-connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-connection.d.ts","sourceRoot":"/src/","sources":["event-connection.jsx"],"names":[],"mappings":"AAMA;IACE;;MAEC;IAED;;;;;OAKE;;IAEF,0BAEC;IADC,wDAA8G;IAGhH,6BAIC;IAED,cAEC;IAED,6BAIC;CACF;kBAlCiB,OAAO;sBADH,YAAY"}
1
+ {"version":3,"file":"event-connection.d.ts","sourceRoot":"/src/","sources":["event-connection.jsx"],"names":[],"mappings":"AAMA;IACE;;MAEC;IAED,mCAKE;;IAEF,0BAEC;IADC,wDAA8G;IAGhH,6BAIC;IAED,cAEC;IAED,6BAIC;CACF;kBAlCiB,OAAO"}
@@ -1,9 +1,5 @@
1
1
  export default class ApiMakerEventModelClass extends React.PureComponent<any, any, any> {
2
- static propTypes: PropTypes.ValidationMap<{
3
- event: string;
4
- modelClass: (...args: any[]) => any;
5
- onCall: (...args: any[]) => any;
6
- }>;
2
+ static propTypes: ValidationMap<T>;
7
3
  constructor(props: any);
8
4
  componentDidMount(): void;
9
5
  componentWillUnmount(): void;
@@ -12,5 +8,4 @@ export default class ApiMakerEventModelClass extends React.PureComponent<any, an
12
8
  render(): any;
13
9
  }
14
10
  import React from "react";
15
- import PropTypes from "prop-types";
16
11
  //# sourceMappingURL=event-model-class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-model-class.d.ts","sourceRoot":"/src/","sources":["event-model-class.jsx"],"names":[],"mappings":"AAMA;IACE;;;;OAIE;;IAEF,0BAEC;IAED,6BAIC;IAED,gBAEC;IADC,sDAA2G;IAG7G,cAEC;CACF;kBA3BiB,OAAO;sBADH,YAAY"}
1
+ {"version":3,"file":"event-model-class.d.ts","sourceRoot":"/src/","sources":["event-model-class.jsx"],"names":[],"mappings":"AAMA;IACE,mCAIE;;IAEF,0BAEC;IAED,6BAIC;IAED,gBAEC;IADC,sDAA2G;IAG7G,cAEC;CACF;kBA3BiB,OAAO"}
@@ -1,9 +1,5 @@
1
1
  export default class ApiMakerUpdatedAttribute extends React.PureComponent<any, any, any> {
2
- static propTypes: PropTypes.ValidationMap<{
3
- attribute: string;
4
- model: object;
5
- onValue: (...args: any[]) => any;
6
- }>;
2
+ static propTypes: ValidationMap<T>;
7
3
  constructor(props: any);
8
4
  state: {
9
5
  model: any;
@@ -17,5 +13,4 @@ export default class ApiMakerUpdatedAttribute extends React.PureComponent<any, a
17
13
  render(): any;
18
14
  }
19
15
  import React from "react";
20
- import PropTypes from "prop-types";
21
16
  //# sourceMappingURL=updated-attribute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updated-attribute.d.ts","sourceRoot":"/src/","sources":["updated-attribute.jsx"],"names":[],"mappings":"AAQA;IACE;;;;OAIE;IAEF,wBAKC;IAHC;;MAEC;IAGH,0BAGC;IAED,6BAKC;IAED,gBAWC;IAVC,0DASE;IAIJ,wCAqBC;IAED,qBAgBC;IAED,cAIC;CACF;kBAxFiB,OAAO;sBAFH,YAAY"}
1
+ {"version":3,"file":"updated-attribute.d.ts","sourceRoot":"/src/","sources":["updated-attribute.jsx"],"names":[],"mappings":"AAQA;IACE,mCAIE;IAEF,wBAKC;IAHC;;MAEC;IAGH,0BAGC;IAED,6BAKC;IAED,gBAWC;IAVC,0DASE;IAIJ,wCAqBC;IAED,qBAgBC;IAED,cAIC;CACF;kBAxFiB,OAAO"}
@@ -4,12 +4,20 @@ export type WithDefaultStyleProps = {
4
4
  children?: React.ReactNode;
5
5
  style: DefaultStyleMap;
6
6
  };
7
+ /**
8
+ * Pure helper: collapse the inherited default for a slot plus the caller's
9
+ * style into a flat list ready to pass to the underlying RN element.
10
+ * @param {DefaultStyleValue | undefined} defaultElementStyle
11
+ * @param {DefaultStyleValue | undefined} style
12
+ * @returns {DefaultStyleValue[]}
13
+ */
14
+ export function computeSlotStylesList(defaultElementStyle: DefaultStyleValue | undefined, style: DefaultStyleValue | undefined): DefaultStyleValue[];
7
15
  export function useDefaultStyle(): DefaultStyleMap;
8
16
  export function useMergedStyle(style: any, elementType: any): {
9
17
  newDefaultStyle: {
10
18
  [x: string]: DefaultStyleValue;
11
19
  };
12
- stylesList: (import("react-native").ViewStyle | import("react-native").Falsy | import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").RegisteredStyle<import("react-native").ViewStyle | import("react-native").ImageStyle | import("react-native").TextStyle> | import("react-native").RecursiveArray<import("react-native").ViewStyle | import("react-native").Falsy | import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").RegisteredStyle<import("react-native").ViewStyle | import("react-native").ImageStyle | import("react-native").TextStyle>> | readonly (import("react-native").ViewStyle | import("react-native").Falsy | import("react-native").ImageStyle | import("react-native").TextStyle | import("react-native").RegisteredStyle<import("react-native").ViewStyle | import("react-native").ImageStyle | import("react-native").TextStyle>)[])[];
20
+ stylesList: DefaultStyleValue[];
13
21
  };
14
22
  export const WithDefaultStyle: React.NamedExoticComponent<WithDefaultStyleProps>;
15
23
  import React from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"default-style.d.ts","sourceRoot":"/src/","sources":["utils/default-style.jsx"],"names":[],"mappings":"gCAMa,OAAO,cAAc,EAAE,SAAS,CAC5C,OAAW,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,UAAU,CACxG;8BAEU,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;oCACjC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAC;AAMlE,mDAIC;AAED;;;;;EAmCC;AAED,iFA2BE;kBAtFsD,OAAO"}
1
+ {"version":3,"file":"default-style.d.ts","sourceRoot":"/src/","sources":["utils/default-style.jsx"],"names":[],"mappings":"gCAMa,OAAO,cAAc,EAAE,SAAS,CAC5C,OAAW,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,SAAS,GAAG,OAAO,cAAc,EAAE,UAAU,CACxG;8BAEU,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;oCACjC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAC;AAUlE;;;;;;GAMG;AACH,2DAJW,iBAAiB,GAAG,SAAS,SAC7B,iBAAiB,GAAG,SAAS,GAC3B,iBAAiB,EAAE,CAsB/B;AAjCD,mDAIC;AA+BD;;;;;EAiBC;AAED,iFAoBE;kBAxFsD,OAAO"}
@@ -10,37 +10,42 @@ import memo from "set-state-compare/build/memo.js";
10
10
  */
11
11
  /** @typedef {Record<string, DefaultStyleValue>} DefaultStyleMap */
12
12
  /** @typedef {{children?: React.ReactNode, style: DefaultStyleMap}} WithDefaultStyleProps */
13
- const DefaultStyleContext = createContext(/** @type {DefaultStyleMap} */ ({
14
- Text: []
15
- }));
13
+ const DefaultStyleContext = createContext(/** @type {DefaultStyleMap} */ ({}));
16
14
  const useDefaultStyle = () => {
17
15
  const defaultStyle = useContext(DefaultStyleContext);
18
16
  return defaultStyle;
19
17
  };
18
+ /**
19
+ * Pure helper: collapse the inherited default for a slot plus the caller's
20
+ * style into a flat list ready to pass to the underlying RN element.
21
+ * @param {DefaultStyleValue | undefined} defaultElementStyle
22
+ * @param {DefaultStyleValue | undefined} style
23
+ * @returns {DefaultStyleValue[]}
24
+ */
25
+ const computeSlotStylesList = (defaultElementStyle, style) => {
26
+ let stylesList;
27
+ if (defaultElementStyle === undefined || defaultElementStyle === null) {
28
+ stylesList = [];
29
+ }
30
+ else if (Array.isArray(defaultElementStyle)) {
31
+ stylesList = [...defaultElementStyle];
32
+ }
33
+ else {
34
+ stylesList = [defaultElementStyle];
35
+ }
36
+ if (style && Array.isArray(style)) {
37
+ for (const styleI of style) {
38
+ stylesList.push(styleI);
39
+ }
40
+ }
41
+ else if (style) {
42
+ stylesList.push(style);
43
+ }
44
+ return stylesList;
45
+ };
20
46
  const useMergedStyle = (style, elementType) => {
21
47
  const defaultStyle = useDefaultStyle();
22
- const stylesList = useMemo(() => {
23
- const defaultElementStyle = defaultStyle[elementType];
24
- let stylesList;
25
- if (Array.isArray(defaultElementStyle)) {
26
- stylesList = [...defaultElementStyle];
27
- }
28
- else if (typeof defaultElementStyle == "object") {
29
- stylesList = [defaultElementStyle];
30
- }
31
- else {
32
- throw new Error(`Unknown type for default element type: ${typeof defaultElementStyle}`);
33
- }
34
- if (style && Array.isArray(style)) {
35
- for (const styleI of style) {
36
- stylesList.push(styleI);
37
- }
38
- }
39
- else if (style) {
40
- stylesList.push(style);
41
- }
42
- return stylesList;
43
- }, [defaultStyle, elementType, style]);
48
+ const stylesList = useMemo(() => computeSlotStylesList(defaultStyle[elementType], style), [defaultStyle, elementType, style]);
44
49
  const actualNewDefaultStyle = useMemo(() => {
45
50
  const actualNewDefaultStyle = { ...defaultStyle };
46
51
  actualNewDefaultStyle[elementType] = stylesList;
@@ -54,17 +59,11 @@ const WithDefaultStyle = memo((/** @type {WithDefaultStyleProps} */ { children,
54
59
  }
55
60
  const defaultStyle = useContext(DefaultStyleContext);
56
61
  const newDefaultStyle = useMemo(() => {
57
- for (const key in style) {
58
- if (!(key in defaultStyle)) {
59
- throw new Error(`Invalid element type given: ${key}`);
60
- }
61
- }
62
- /** @type {DefaultStyleMap} */
63
- const newDefaultStyle = {};
62
+ const newDefaultStyle = /** @type {DefaultStyleMap} */ ({});
64
63
  incorporate(newDefaultStyle, defaultStyle, style);
65
64
  return newDefaultStyle;
66
65
  }, [defaultStyle, style]);
67
66
  return (_jsx(DefaultStyleContext.Provider, { value: newDefaultStyle, children: children }));
68
67
  });
69
- export { useDefaultStyle, useMergedStyle, WithDefaultStyle };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXRpbHMvZGVmYXVsdC1zdHlsZS5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVk7QUFDWixPQUFPLEtBQUssRUFBRSxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFFbEQ7Ozs7R0FJRztBQUNILG1FQUFtRTtBQUNuRSw0RkFBNEY7QUFFNUYsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN4RSxJQUFJLEVBQUUsRUFBRTtDQUNULENBQUMsQ0FBQyxDQUFBO0FBRUgsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBRXBELE9BQU8sWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO0lBQzVDLE1BQU0sWUFBWSxHQUFHLGVBQWUsRUFBRSxDQUFBO0lBRXRDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDckQsSUFBSSxVQUFVLENBQUE7UUFFZCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLFVBQVUsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sSUFBSSxPQUFPLG1CQUFtQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2xELFVBQVUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxPQUFPLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtRQUN6RixDQUFDO1FBRUQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDekIsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEIsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUV0QyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDekMsTUFBTSxxQkFBcUIsR0FBRyxFQUFDLEdBQUcsWUFBWSxFQUFDLENBQUE7UUFFL0MscUJBQXFCLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFBO1FBRS9DLE9BQU8scUJBQXFCLENBQUE7SUFDOUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFDLENBQUE7QUFDN0QsQ0FBQyxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxTQUFTLEVBQUMsRUFBRSxFQUFFO0lBQ3JHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVwRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEdBQUcsRUFBRSxDQUFDLENBQUE7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFFRCw4QkFBOEI7UUFDOUIsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFBO1FBRTFCLFdBQVcsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRWpELE9BQU8sZUFBZSxDQUFBO0lBQ3hCLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBRXpCLE9BQU8sQ0FDTCxLQUFDLG1CQUFtQixDQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUUsZUFBZSxZQUNqRCxRQUFRLEdBQ29CLENBQ2hDLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCBSZWFjdCwge2NyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlN0eWxlUHJvcDxcbiAqICAgaW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlRleHRTdHlsZSB8IGltcG9ydChcInJlYWN0LW5hdGl2ZVwiKS5WaWV3U3R5bGUgfCBpbXBvcnQoXCJyZWFjdC1uYXRpdmVcIikuSW1hZ2VTdHlsZVxuICogPn0gRGVmYXVsdFN0eWxlVmFsdWVcbiAqL1xuLyoqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBEZWZhdWx0U3R5bGVWYWx1ZT59IERlZmF1bHRTdHlsZU1hcCAqL1xuLyoqIEB0eXBlZGVmIHt7Y2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGUsIHN0eWxlOiBEZWZhdWx0U3R5bGVNYXB9fSBXaXRoRGVmYXVsdFN0eWxlUHJvcHMgKi9cblxuY29uc3QgRGVmYXVsdFN0eWxlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoLyoqIEB0eXBlIHtEZWZhdWx0U3R5bGVNYXB9ICovICh7XG4gIFRleHQ6IFtdXG59KSlcblxuY29uc3QgdXNlRGVmYXVsdFN0eWxlID0gKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0U3R5bGUgPSB1c2VDb250ZXh0KERlZmF1bHRTdHlsZUNvbnRleHQpXG5cbiAgcmV0dXJuIGRlZmF1bHRTdHlsZVxufVxuXG5jb25zdCB1c2VNZXJnZWRTdHlsZSA9IChzdHlsZSwgZWxlbWVudFR5cGUpID0+IHtcbiAgY29uc3QgZGVmYXVsdFN0eWxlID0gdXNlRGVmYXVsdFN0eWxlKClcblxuICBjb25zdCBzdHlsZXNMaXN0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEVsZW1lbnRTdHlsZSA9IGRlZmF1bHRTdHlsZVtlbGVtZW50VHlwZV1cbiAgICBsZXQgc3R5bGVzTGlzdFxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmYXVsdEVsZW1lbnRTdHlsZSkpIHtcbiAgICAgIHN0eWxlc0xpc3QgPSBbLi4uZGVmYXVsdEVsZW1lbnRTdHlsZV1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0RWxlbWVudFN0eWxlID09IFwib2JqZWN0XCIpIHtcbiAgICAgIHN0eWxlc0xpc3QgPSBbZGVmYXVsdEVsZW1lbnRTdHlsZV1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHR5cGUgZm9yIGRlZmF1bHQgZWxlbWVudCB0eXBlOiAke3R5cGVvZiBkZWZhdWx0RWxlbWVudFN0eWxlfWApXG4gICAgfVxuXG4gICAgaWYgKHN0eWxlICYmIEFycmF5LmlzQXJyYXkoc3R5bGUpKSB7XG4gICAgICBmb3IgKGNvbnN0IHN0eWxlSSBvZiBzdHlsZSkge1xuICAgICAgICBzdHlsZXNMaXN0LnB1c2goc3R5bGVJKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3R5bGUpIHtcbiAgICAgIHN0eWxlc0xpc3QucHVzaChzdHlsZSlcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVzTGlzdFxuICB9LCBbZGVmYXVsdFN0eWxlLCBlbGVtZW50VHlwZSwgc3R5bGVdKVxuXG4gIGNvbnN0IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSA9IHsuLi5kZWZhdWx0U3R5bGV9XG5cbiAgICBhY3R1YWxOZXdEZWZhdWx0U3R5bGVbZWxlbWVudFR5cGVdID0gc3R5bGVzTGlzdFxuXG4gICAgcmV0dXJuIGFjdHVhbE5ld0RlZmF1bHRTdHlsZVxuICB9LCBbZGVmYXVsdFN0eWxlLCBlbGVtZW50VHlwZSwgc3R5bGVzTGlzdF0pXG5cbiAgcmV0dXJuIHtuZXdEZWZhdWx0U3R5bGU6IGFjdHVhbE5ld0RlZmF1bHRTdHlsZSwgc3R5bGVzTGlzdH1cbn1cblxuY29uc3QgV2l0aERlZmF1bHRTdHlsZSA9IG1lbW8oKC8qKiBAdHlwZSB7V2l0aERlZmF1bHRTdHlsZVByb3BzfSAqLyB7Y2hpbGRyZW4sIHN0eWxlLCAuLi5yZXN0UHJvcHN9KSA9PiB7XG4gIGlmIChPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCBwcm9wczogJHtPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgZGVmYXVsdFN0eWxlID0gdXNlQ29udGV4dChEZWZhdWx0U3R5bGVDb250ZXh0KVxuXG4gIGNvbnN0IG5ld0RlZmF1bHRTdHlsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHN0eWxlKSB7XG4gICAgICBpZiAoIShrZXkgaW4gZGVmYXVsdFN0eWxlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZWxlbWVudCB0eXBlIGdpdmVuOiAke2tleX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7RGVmYXVsdFN0eWxlTWFwfSAqL1xuICAgIGNvbnN0IG5ld0RlZmF1bHRTdHlsZSA9IHt9XG5cbiAgICBpbmNvcnBvcmF0ZShuZXdEZWZhdWx0U3R5bGUsIGRlZmF1bHRTdHlsZSwgc3R5bGUpXG5cbiAgICByZXR1cm4gbmV3RGVmYXVsdFN0eWxlXG4gIH0sIFtkZWZhdWx0U3R5bGUsIHN0eWxlXSlcblxuICByZXR1cm4gKFxuICAgIDxEZWZhdWx0U3R5bGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXdEZWZhdWx0U3R5bGV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRGVmYXVsdFN0eWxlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufSlcblxuZXhwb3J0IHt1c2VEZWZhdWx0U3R5bGUsIHVzZU1lcmdlZFN0eWxlLCBXaXRoRGVmYXVsdFN0eWxlfVxuIl19
68
+ export { computeSlotStylesList, useDefaultStyle, useMergedStyle, WithDefaultStyle };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXRpbHMvZGVmYXVsdC1zdHlsZS5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFlBQVk7QUFDWixPQUFPLEtBQUssRUFBRSxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDeEMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFFbEQ7Ozs7R0FJRztBQUNILG1FQUFtRTtBQUNuRSw0RkFBNEY7QUFFNUYsTUFBTSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsOEJBQThCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBRTlFLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVwRCxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDM0QsSUFBSSxVQUFVLENBQUE7SUFFZCxJQUFJLG1CQUFtQixLQUFLLFNBQVMsSUFBSSxtQkFBbUIsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN0RSxVQUFVLEdBQUcsRUFBRSxDQUFBO0lBQ2pCLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1FBQzlDLFVBQVUsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQTtJQUN2QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7U0FBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUMsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO0lBQzVDLE1BQU0sWUFBWSxHQUFHLGVBQWUsRUFBRSxDQUFBO0lBRXRDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FDeEIsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUM3RCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQ25DLENBQUE7SUFFRCxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDekMsTUFBTSxxQkFBcUIsR0FBRyxFQUFDLEdBQUcsWUFBWSxFQUFDLENBQUE7UUFFL0MscUJBQXFCLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFBO1FBRS9DLE9BQU8scUJBQXFCLENBQUE7SUFDOUIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBRTNDLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFDLENBQUE7QUFDN0QsQ0FBQyxDQUFBO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxTQUFTLEVBQUMsRUFBRSxFQUFFO0lBQ3JHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVwRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ25DLE1BQU0sZUFBZSxHQUFHLDhCQUE4QixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFM0QsV0FBVyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFakQsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFekIsT0FBTyxDQUNMLEtBQUMsbUJBQW1CLENBQUMsUUFBUSxJQUFDLEtBQUssRUFBRSxlQUFlLFlBQ2pELFFBQVEsR0FDb0IsQ0FDaEMsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsT0FBTyxFQUFDLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7aW5jb3Jwb3JhdGV9IGZyb20gXCJpbmNvcnBvcmF0b3JcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL21lbW8uanNcIlxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoXCJyZWFjdC1uYXRpdmVcIikuU3R5bGVQcm9wPFxuICogICBpbXBvcnQoXCJyZWFjdC1uYXRpdmVcIikuVGV4dFN0eWxlIHwgaW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlZpZXdTdHlsZSB8IGltcG9ydChcInJlYWN0LW5hdGl2ZVwiKS5JbWFnZVN0eWxlXG4gKiA+fSBEZWZhdWx0U3R5bGVWYWx1ZVxuICovXG4vKiogQHR5cGVkZWYge1JlY29yZDxzdHJpbmcsIERlZmF1bHRTdHlsZVZhbHVlPn0gRGVmYXVsdFN0eWxlTWFwICovXG4vKiogQHR5cGVkZWYge3tjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSwgc3R5bGU6IERlZmF1bHRTdHlsZU1hcH19IFdpdGhEZWZhdWx0U3R5bGVQcm9wcyAqL1xuXG5jb25zdCBEZWZhdWx0U3R5bGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCgvKiogQHR5cGUge0RlZmF1bHRTdHlsZU1hcH0gKi8gKHt9KSlcblxuY29uc3QgdXNlRGVmYXVsdFN0eWxlID0gKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0U3R5bGUgPSB1c2VDb250ZXh0KERlZmF1bHRTdHlsZUNvbnRleHQpXG5cbiAgcmV0dXJuIGRlZmF1bHRTdHlsZVxufVxuXG4vKipcbiAqIFB1cmUgaGVscGVyOiBjb2xsYXBzZSB0aGUgaW5oZXJpdGVkIGRlZmF1bHQgZm9yIGEgc2xvdCBwbHVzIHRoZSBjYWxsZXInc1xuICogc3R5bGUgaW50byBhIGZsYXQgbGlzdCByZWFkeSB0byBwYXNzIHRvIHRoZSB1bmRlcmx5aW5nIFJOIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0RlZmF1bHRTdHlsZVZhbHVlIHwgdW5kZWZpbmVkfSBkZWZhdWx0RWxlbWVudFN0eWxlXG4gKiBAcGFyYW0ge0RlZmF1bHRTdHlsZVZhbHVlIHwgdW5kZWZpbmVkfSBzdHlsZVxuICogQHJldHVybnMge0RlZmF1bHRTdHlsZVZhbHVlW119XG4gKi9cbmNvbnN0IGNvbXB1dGVTbG90U3R5bGVzTGlzdCA9IChkZWZhdWx0RWxlbWVudFN0eWxlLCBzdHlsZSkgPT4ge1xuICBsZXQgc3R5bGVzTGlzdFxuXG4gIGlmIChkZWZhdWx0RWxlbWVudFN0eWxlID09PSB1bmRlZmluZWQgfHwgZGVmYXVsdEVsZW1lbnRTdHlsZSA9PT0gbnVsbCkge1xuICAgIHN0eWxlc0xpc3QgPSBbXVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGVmYXVsdEVsZW1lbnRTdHlsZSkpIHtcbiAgICBzdHlsZXNMaXN0ID0gWy4uLmRlZmF1bHRFbGVtZW50U3R5bGVdXG4gIH0gZWxzZSB7XG4gICAgc3R5bGVzTGlzdCA9IFtkZWZhdWx0RWxlbWVudFN0eWxlXVxuICB9XG5cbiAgaWYgKHN0eWxlICYmIEFycmF5LmlzQXJyYXkoc3R5bGUpKSB7XG4gICAgZm9yIChjb25zdCBzdHlsZUkgb2Ygc3R5bGUpIHtcbiAgICAgIHN0eWxlc0xpc3QucHVzaChzdHlsZUkpXG4gICAgfVxuICB9IGVsc2UgaWYgKHN0eWxlKSB7XG4gICAgc3R5bGVzTGlzdC5wdXNoKHN0eWxlKVxuICB9XG5cbiAgcmV0dXJuIHN0eWxlc0xpc3Rcbn1cblxuY29uc3QgdXNlTWVyZ2VkU3R5bGUgPSAoc3R5bGUsIGVsZW1lbnRUeXBlKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHVzZURlZmF1bHRTdHlsZSgpXG5cbiAgY29uc3Qgc3R5bGVzTGlzdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gY29tcHV0ZVNsb3RTdHlsZXNMaXN0KGRlZmF1bHRTdHlsZVtlbGVtZW50VHlwZV0sIHN0eWxlKSxcbiAgICBbZGVmYXVsdFN0eWxlLCBlbGVtZW50VHlwZSwgc3R5bGVdXG4gIClcblxuICBjb25zdCBhY3R1YWxOZXdEZWZhdWx0U3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhY3R1YWxOZXdEZWZhdWx0U3R5bGUgPSB7Li4uZGVmYXVsdFN0eWxlfVxuXG4gICAgYWN0dWFsTmV3RGVmYXVsdFN0eWxlW2VsZW1lbnRUeXBlXSA9IHN0eWxlc0xpc3RcblxuICAgIHJldHVybiBhY3R1YWxOZXdEZWZhdWx0U3R5bGVcbiAgfSwgW2RlZmF1bHRTdHlsZSwgZWxlbWVudFR5cGUsIHN0eWxlc0xpc3RdKVxuXG4gIHJldHVybiB7bmV3RGVmYXVsdFN0eWxlOiBhY3R1YWxOZXdEZWZhdWx0U3R5bGUsIHN0eWxlc0xpc3R9XG59XG5cbmNvbnN0IFdpdGhEZWZhdWx0U3R5bGUgPSBtZW1vKCgvKiogQHR5cGUge1dpdGhEZWZhdWx0U3R5bGVQcm9wc30gKi8ge2NoaWxkcmVuLCBzdHlsZSwgLi4ucmVzdFByb3BzfSkgPT4ge1xuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgcHJvcHM6ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHVzZUNvbnRleHQoRGVmYXVsdFN0eWxlQ29udGV4dClcblxuICBjb25zdCBuZXdEZWZhdWx0U3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBuZXdEZWZhdWx0U3R5bGUgPSAvKiogQHR5cGUge0RlZmF1bHRTdHlsZU1hcH0gKi8gKHt9KVxuXG4gICAgaW5jb3Jwb3JhdGUobmV3RGVmYXVsdFN0eWxlLCBkZWZhdWx0U3R5bGUsIHN0eWxlKVxuXG4gICAgcmV0dXJuIG5ld0RlZmF1bHRTdHlsZVxuICB9LCBbZGVmYXVsdFN0eWxlLCBzdHlsZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8RGVmYXVsdFN0eWxlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmV3RGVmYXVsdFN0eWxlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0RlZmF1bHRTdHlsZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn0pXG5cbmV4cG9ydCB7Y29tcHV0ZVNsb3RTdHlsZXNMaXN0LCB1c2VEZWZhdWx0U3R5bGUsIHVzZU1lcmdlZFN0eWxlLCBXaXRoRGVmYXVsdFN0eWxlfVxuIl19
@@ -0,0 +1,27 @@
1
+ export default ApiMakerUtilsTextInput;
2
+ export type TextInputProps = import("react-native").TextInputProps & {
3
+ style?: import("react-native").StyleProp<import("react-native").TextStyle>;
4
+ };
5
+ /**
6
+ * @typedef {import("react-native").TextInputProps & {
7
+ * style?: import("react-native").StyleProp<import("react-native").TextStyle>
8
+ * }} TextInputProps
9
+ */
10
+ /**
11
+ * RN TextInput wired into the api-maker default-style context under the
12
+ * `"TextInput"` slot. RN's `TextInput` does not subscribe to the api-maker
13
+ * `Text` slot, so apps that want consistent text colour and font sizing for
14
+ * inputs need this wrapper alongside `<Text>`.
15
+ *
16
+ * Wrap the consumer tree once and inputs pick up the defaults:
17
+ *
18
+ * ```jsx
19
+ * <WithDefaultStyle style={{TextInput: {color: colors.text, fontSize: 14}}}>
20
+ * <TextInput value={value} onChangeText={onChange} />
21
+ * </WithDefaultStyle>
22
+ * ```
23
+ */
24
+ declare const ApiMakerUtilsTextInput: React.MemoExoticComponent<React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<RnTextInput>>>;
25
+ import React from "react";
26
+ import { TextInput as RnTextInput } from "react-native";
27
+ //# sourceMappingURL=text-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-input.d.ts","sourceRoot":"/src/","sources":["utils/text-input.jsx"],"names":[],"mappings":";6BAMa,OAAO,cAAc,EAAE,cAAc,GAAG;IAChD,KAAK,CAAC,EAAE,OAAO,cAAc,EAAE,SAAS,CAAC,OAAO,cAAc,EAAE,SAAS,CAAC,CAAA;CAC3E;AAHJ;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AACH,sCAA0C,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,yBAAyB,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAKtJ;kBA7BiB,OAAO;yCACc,cAAc"}
@@ -0,0 +1,27 @@
1
+ // @ts-check
2
+ import React from "react";
3
+ import { TextInput as RnTextInput } from "react-native";
4
+ import withDefaultStyleSlot from "./with-default-style-slot";
5
+ /**
6
+ * @typedef {import("react-native").TextInputProps & {
7
+ * style?: import("react-native").StyleProp<import("react-native").TextStyle>
8
+ * }} TextInputProps
9
+ */
10
+ /**
11
+ * RN TextInput wired into the api-maker default-style context under the
12
+ * `"TextInput"` slot. RN's `TextInput` does not subscribe to the api-maker
13
+ * `Text` slot, so apps that want consistent text colour and font sizing for
14
+ * inputs need this wrapper alongside `<Text>`.
15
+ *
16
+ * Wrap the consumer tree once and inputs pick up the defaults:
17
+ *
18
+ * ```jsx
19
+ * <WithDefaultStyle style={{TextInput: {color: colors.text, fontSize: 14}}}>
20
+ * <TextInput value={value} onChangeText={onChange} />
21
+ * </WithDefaultStyle>
22
+ * ```
23
+ */
24
+ const ApiMakerUtilsTextInput = /** @type {React.MemoExoticComponent<React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<RnTextInput>>>} */ (withDefaultStyleSlot(
25
+ /** @type {React.ComponentType<TextInputProps>} */ (RnTextInput), "TextInput"));
26
+ export default ApiMakerUtilsTextInput;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXRpbHMvdGV4dC1pbnB1dC5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUMsU0FBUyxJQUFJLFdBQVcsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUNyRCxPQUFPLG9CQUFvQixNQUFNLDJCQUEyQixDQUFBO0FBRTVEOzs7O0dBSUc7QUFFSDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyw0SEFBNEgsQ0FBQyxDQUMxSixvQkFBb0I7QUFDbEIsa0RBQWtELENBQUMsQ0FBQyxXQUFXLENBQUMsRUFDaEUsV0FBVyxDQUNaLENBQ0YsQ0FBQTtBQUVELGVBQWUsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtUZXh0SW5wdXQgYXMgUm5UZXh0SW5wdXR9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IHdpdGhEZWZhdWx0U3R5bGVTbG90IGZyb20gXCIuL3dpdGgtZGVmYXVsdC1zdHlsZS1zbG90XCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlRleHRJbnB1dFByb3BzICYge1xuICogICBzdHlsZT86IGltcG9ydChcInJlYWN0LW5hdGl2ZVwiKS5TdHlsZVByb3A8aW1wb3J0KFwicmVhY3QtbmF0aXZlXCIpLlRleHRTdHlsZT5cbiAqIH19IFRleHRJbnB1dFByb3BzXG4gKi9cblxuLyoqXG4gKiBSTiBUZXh0SW5wdXQgd2lyZWQgaW50byB0aGUgYXBpLW1ha2VyIGRlZmF1bHQtc3R5bGUgY29udGV4dCB1bmRlciB0aGVcbiAqIGBcIlRleHRJbnB1dFwiYCBzbG90LiBSTidzIGBUZXh0SW5wdXRgIGRvZXMgbm90IHN1YnNjcmliZSB0byB0aGUgYXBpLW1ha2VyXG4gKiBgVGV4dGAgc2xvdCwgc28gYXBwcyB0aGF0IHdhbnQgY29uc2lzdGVudCB0ZXh0IGNvbG91ciBhbmQgZm9udCBzaXppbmcgZm9yXG4gKiBpbnB1dHMgbmVlZCB0aGlzIHdyYXBwZXIgYWxvbmdzaWRlIGA8VGV4dD5gLlxuICpcbiAqIFdyYXAgdGhlIGNvbnN1bWVyIHRyZWUgb25jZSBhbmQgaW5wdXRzIHBpY2sgdXAgdGhlIGRlZmF1bHRzOlxuICpcbiAqIGBgYGpzeFxuICogPFdpdGhEZWZhdWx0U3R5bGUgc3R5bGU9e3tUZXh0SW5wdXQ6IHtjb2xvcjogY29sb3JzLnRleHQsIGZvbnRTaXplOiAxNH19fT5cbiAqICAgPFRleHRJbnB1dCB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlVGV4dD17b25DaGFuZ2V9IC8+XG4gKiA8L1dpdGhEZWZhdWx0U3R5bGU+XG4gKiBgYGBcbiAqL1xuY29uc3QgQXBpTWFrZXJVdGlsc1RleHRJbnB1dCA9IC8qKiBAdHlwZSB7UmVhY3QuTWVtb0V4b3RpY0NvbXBvbmVudDxSZWFjdC5Gb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50PFRleHRJbnB1dFByb3BzICYgUmVhY3QuUmVmQXR0cmlidXRlczxSblRleHRJbnB1dD4+Pn0gKi8gKFxuICB3aXRoRGVmYXVsdFN0eWxlU2xvdChcbiAgICAvKiogQHR5cGUge1JlYWN0LkNvbXBvbmVudFR5cGU8VGV4dElucHV0UHJvcHM+fSAqLyAoUm5UZXh0SW5wdXQpLFxuICAgIFwiVGV4dElucHV0XCJcbiAgKVxuKVxuXG5leHBvcnQgZGVmYXVsdCBBcGlNYWtlclV0aWxzVGV4dElucHV0XG4iXX0=
@@ -0,0 +1,28 @@
1
+ export default withDefaultStyleSlot;
2
+ /**
3
+ * Wires `Component` into the api-maker default-style context as a slot.
4
+ * Inherits accumulated defaults for `slotKey`, merges them with the caller's
5
+ * `style` prop, and re-provides the merged list so nested instances of the
6
+ * same component continue to inherit.
7
+ *
8
+ * Caller usage mirrors the built-in `Text` wrapper:
9
+ *
10
+ * ```jsx
11
+ * import {Link as ExpoLink} from "expo-router"
12
+ * import withDefaultStyleSlot from "@kaspernj/api-maker/build/utils/with-default-style-slot"
13
+ *
14
+ * const Link = withDefaultStyleSlot(ExpoLink, "Link")
15
+ *
16
+ * // …consumer tree wraps in <WithDefaultStyle style={{Link: {color: "red"}}}> …
17
+ * ```
18
+ *
19
+ * @template {object} P
20
+ * @template T
21
+ * @param {React.ComponentType<P> | React.ForwardRefExoticComponent<P & React.RefAttributes<T>>} Component
22
+ * Underlying component to wrap.
23
+ * @param {string} slotKey Slot name to register defaults under.
24
+ * @returns {React.MemoExoticComponent<React.ForwardRefExoticComponent<P & React.RefAttributes<T>>>}
25
+ */
26
+ declare function withDefaultStyleSlot<P extends unknown, T>(Component: React.ComponentType<P> | React.ForwardRefExoticComponent<P & React.RefAttributes<T>>, slotKey: string): React.MemoExoticComponent<React.ForwardRefExoticComponent<P & React.RefAttributes<T>>>;
27
+ import React from "react";
28
+ //# sourceMappingURL=with-default-style-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-default-style-slot.d.ts","sourceRoot":"/src/","sources":["utils/with-default-style-slot.jsx"],"names":[],"mappings":";AAKA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,sCAPsB,CAAC,kBACV,CAAC,aACH,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAEpF,MAAM,GACJ,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CA4BlG;kBAtD+B,OAAO"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // @ts-check
3
+ import React, { forwardRef } from "react";
4
+ import { WithDefaultStyle, useMergedStyle } from "./default-style";
5
+ import memo from "set-state-compare/build/memo.js";
6
+ /**
7
+ * Wires `Component` into the api-maker default-style context as a slot.
8
+ * Inherits accumulated defaults for `slotKey`, merges them with the caller's
9
+ * `style` prop, and re-provides the merged list so nested instances of the
10
+ * same component continue to inherit.
11
+ *
12
+ * Caller usage mirrors the built-in `Text` wrapper:
13
+ *
14
+ * ```jsx
15
+ * import {Link as ExpoLink} from "expo-router"
16
+ * import withDefaultStyleSlot from "@kaspernj/api-maker/build/utils/with-default-style-slot"
17
+ *
18
+ * const Link = withDefaultStyleSlot(ExpoLink, "Link")
19
+ *
20
+ * // …consumer tree wraps in <WithDefaultStyle style={{Link: {color: "red"}}}> …
21
+ * ```
22
+ *
23
+ * @template {object} P
24
+ * @template T
25
+ * @param {React.ComponentType<P> | React.ForwardRefExoticComponent<P & React.RefAttributes<T>>} Component
26
+ * Underlying component to wrap.
27
+ * @param {string} slotKey Slot name to register defaults under.
28
+ * @returns {React.MemoExoticComponent<React.ForwardRefExoticComponent<P & React.RefAttributes<T>>>}
29
+ */
30
+ const withDefaultStyleSlot = (Component, slotKey) => {
31
+ const RenderComponent = /** @type {React.ComponentType<Record<string, unknown>>} */ (
32
+ /** @type {unknown} */ (Component));
33
+ const Wrapped = forwardRef((/** @type {Record<string, unknown>} */ props, ref) => {
34
+ const { style, ...restProps } = props;
35
+ const { newDefaultStyle, stylesList } = useMergedStyle(style, slotKey);
36
+ return (_jsx(WithDefaultStyle, { style: newDefaultStyle, children: _jsx(RenderComponent, { ref: ref, style: stylesList, ...restProps }) }));
37
+ });
38
+ const displayName = `WithDefaultStyleSlot(${Component.displayName || Component.name || slotKey})`;
39
+ Wrapped.displayName = displayName;
40
+ const Memoized = /** @type {React.MemoExoticComponent<React.ForwardRefExoticComponent<P & React.RefAttributes<T>>>} */ (
41
+ /** @type {unknown} */ (memo(Wrapped)));
42
+ Memoized.displayName = displayName;
43
+ return Memoized;
44
+ };
45
+ export default withDefaultStyleSlot;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZWZhdWx0LXN0eWxlLXNsb3QuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInV0aWxzL3dpdGgtZGVmYXVsdC1zdHlsZS1zbG90LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxFQUFFLEVBQUMsVUFBVSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRSxPQUFPLElBQUksTUFBTSxpQ0FBaUMsQ0FBQTtBQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ2xELE1BQU0sZUFBZSxHQUFHLDJEQUEyRCxDQUFDO0lBQ2xGLHNCQUFzQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQ25DLENBQUE7SUFDRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDL0UsTUFBTSxFQUFDLEtBQUssRUFBRSxHQUFHLFNBQVMsRUFBQyxHQUFHLEtBQUssQ0FBQTtRQUNuQyxNQUFNLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFcEUsT0FBTyxDQUNMLEtBQUMsZ0JBQWdCLElBQUMsS0FBSyxFQUFFLGVBQWUsWUFDdEMsS0FBQyxlQUFlLElBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxLQUFNLFNBQVMsR0FBSSxHQUM5QyxDQUNwQixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLFdBQVcsR0FBRyx3QkFBd0IsU0FBUyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLE9BQU8sR0FBRyxDQUFBO0lBRWpHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBRWpDLE1BQU0sUUFBUSxHQUFHLHFHQUFxRyxDQUFDO0lBQ3JILHNCQUFzQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3ZDLENBQUE7SUFFRCxRQUFRLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtJQUVsQyxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRCxlQUFlLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5pbXBvcnQgUmVhY3QsIHtmb3J3YXJkUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtXaXRoRGVmYXVsdFN0eWxlLCB1c2VNZXJnZWRTdHlsZX0gZnJvbSBcIi4vZGVmYXVsdC1zdHlsZVwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5cbi8qKlxuICogV2lyZXMgYENvbXBvbmVudGAgaW50byB0aGUgYXBpLW1ha2VyIGRlZmF1bHQtc3R5bGUgY29udGV4dCBhcyBhIHNsb3QuXG4gKiBJbmhlcml0cyBhY2N1bXVsYXRlZCBkZWZhdWx0cyBmb3IgYHNsb3RLZXlgLCBtZXJnZXMgdGhlbSB3aXRoIHRoZSBjYWxsZXInc1xuICogYHN0eWxlYCBwcm9wLCBhbmQgcmUtcHJvdmlkZXMgdGhlIG1lcmdlZCBsaXN0IHNvIG5lc3RlZCBpbnN0YW5jZXMgb2YgdGhlXG4gKiBzYW1lIGNvbXBvbmVudCBjb250aW51ZSB0byBpbmhlcml0LlxuICpcbiAqIENhbGxlciB1c2FnZSBtaXJyb3JzIHRoZSBidWlsdC1pbiBgVGV4dGAgd3JhcHBlcjpcbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7TGluayBhcyBFeHBvTGlua30gZnJvbSBcImV4cG8tcm91dGVyXCJcbiAqIGltcG9ydCB3aXRoRGVmYXVsdFN0eWxlU2xvdCBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC91dGlscy93aXRoLWRlZmF1bHQtc3R5bGUtc2xvdFwiXG4gKlxuICogY29uc3QgTGluayA9IHdpdGhEZWZhdWx0U3R5bGVTbG90KEV4cG9MaW5rLCBcIkxpbmtcIilcbiAqXG4gKiAvLyDigKZjb25zdW1lciB0cmVlIHdyYXBzIGluIDxXaXRoRGVmYXVsdFN0eWxlIHN0eWxlPXt7TGluazoge2NvbG9yOiBcInJlZFwifX19PiDigKZcbiAqIGBgYFxuICpcbiAqIEB0ZW1wbGF0ZSB7b2JqZWN0fSBQXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHtSZWFjdC5Db21wb25lbnRUeXBlPFA+IHwgUmVhY3QuRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQICYgUmVhY3QuUmVmQXR0cmlidXRlczxUPj59IENvbXBvbmVudFxuICogICBVbmRlcmx5aW5nIGNvbXBvbmVudCB0byB3cmFwLlxuICogQHBhcmFtIHtzdHJpbmd9IHNsb3RLZXkgU2xvdCBuYW1lIHRvIHJlZ2lzdGVyIGRlZmF1bHRzIHVuZGVyLlxuICogQHJldHVybnMge1JlYWN0Lk1lbW9FeG90aWNDb21wb25lbnQ8UmVhY3QuRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxQICYgUmVhY3QuUmVmQXR0cmlidXRlczxUPj4+fVxuICovXG5jb25zdCB3aXRoRGVmYXVsdFN0eWxlU2xvdCA9IChDb21wb25lbnQsIHNsb3RLZXkpID0+IHtcbiAgY29uc3QgUmVuZGVyQ29tcG9uZW50ID0gLyoqIEB0eXBlIHtSZWFjdC5Db21wb25lbnRUeXBlPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pn0gKi8gKFxuICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi8gKENvbXBvbmVudClcbiAgKVxuICBjb25zdCBXcmFwcGVkID0gZm9yd2FyZFJlZigoLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gcHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHtzdHlsZSwgLi4ucmVzdFByb3BzfSA9IHByb3BzXG4gICAgY29uc3Qge25ld0RlZmF1bHRTdHlsZSwgc3R5bGVzTGlzdH0gPSB1c2VNZXJnZWRTdHlsZShzdHlsZSwgc2xvdEtleSlcblxuICAgIHJldHVybiAoXG4gICAgICA8V2l0aERlZmF1bHRTdHlsZSBzdHlsZT17bmV3RGVmYXVsdFN0eWxlfT5cbiAgICAgICAgPFJlbmRlckNvbXBvbmVudCByZWY9e3JlZn0gc3R5bGU9e3N0eWxlc0xpc3R9IHsuLi5yZXN0UHJvcHN9IC8+XG4gICAgICA8L1dpdGhEZWZhdWx0U3R5bGU+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGRpc3BsYXlOYW1lID0gYFdpdGhEZWZhdWx0U3R5bGVTbG90KCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8IHNsb3RLZXl9KWBcblxuICBXcmFwcGVkLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVcblxuICBjb25zdCBNZW1vaXplZCA9IC8qKiBAdHlwZSB7UmVhY3QuTWVtb0V4b3RpY0NvbXBvbmVudDxSZWFjdC5Gb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50PFAgJiBSZWFjdC5SZWZBdHRyaWJ1dGVzPFQ+Pj59ICovIChcbiAgICAvKiogQHR5cGUge3Vua25vd259ICovIChtZW1vKFdyYXBwZWQpKVxuICApXG5cbiAgTWVtb2l6ZWQuZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZVxuXG4gIHJldHVybiBNZW1vaXplZFxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoRGVmYXVsdFN0eWxlU2xvdFxuIl19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
3
  "type": "module",
4
- "version": "1.0.2166",
4
+ "version": "1.0.2168",
5
5
  "description": "My new module",
6
6
  "files": [
7
7
  "build/**"