@draggable/i18n 1.1.2 → 1.2.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/README.md +207 -8
- package/dist/i18n.cjs +9 -0
- package/dist/i18n.cjs.min.js +3 -3
- package/dist/i18n.cjs.min.js.gz +0 -0
- package/dist/i18n.d.cts +131 -0
- package/dist/i18n.d.ts +131 -0
- package/dist/i18n.es.min.js +3 -3
- package/dist/i18n.es.min.js.gz +0 -0
- package/dist/i18n.iife.min.js +3 -3
- package/dist/i18n.iife.min.js.gz +0 -0
- package/dist/i18n.umd.min.js +3 -3
- package/dist/i18n.umd.min.js.gz +0 -0
- package/package.json +25 -3
package/dist/i18n.umd.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
3
|
@draggable/i18n - https://github.com/Draggable/i18n
|
|
4
|
-
Version: 1.1.
|
|
4
|
+
Version: 1.1.2
|
|
5
5
|
Author: Draggable https://draggable.io
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).i18n={})}(this,function(t){Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Object.freeze({method:"GET",body:""});var e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}},n=null,s=new Proxy(class t{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwibmFtZXMiOlsiZ2xvYmFsIiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJnbG9iYWxUaGlzIiwic2VsZiIsImkxOG4iLCJ0aGlzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsIl9fZXNNb2R1bGUiLCJ2YWx1ZSIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiZnJlZXplIiwibWV0aG9kIiwiYm9keSIsIkRFRkFVTFRfQ09ORklHIiwiZXh0ZW5zaW9uIiwibG9jYXRpb24iLCJsYW5ncyIsImxvY2FsZSIsIm92ZXJyaWRlIiwiaW5zdGFuY2UiLCJJMThOIiwiUHJveHkiLCJJMThOQmFzZSIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImNyZWF0ZSIsImxvYWRlZCIsInByb2Nlc3NDb25maWciLCJyZXN0T3B0aW9ucyIsInBhcnNlZExvY2F0aW9uIiwiZW5kc1dpdGgiLCJjb25maWciLCJwcmVsb2FkZWQiLCJhbGxMb2NhbGVzIiwiU2V0Iiwia2V5cyIsIm1lcmdlZExhbmciLCJhcHBseUxhbmd1YWdlIiwiaW5pdCIsInNldEN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsImxhbmciLCJwcm9jZXNzRmlsZSIsInB1c2giLCJnZXRWYWx1ZSIsImtleSIsImdldEZhbGxiYWNrVmFsdWUiLCJ2YWx1ZXMiLCJmaW5kIiwibWFrZVNhZmUiLCJzdHIiLCJtYXBPYmoiLCJTdHJpbmciLCJyYXciLCJlc2NhcGVkU3RyIiwicmVwbGFjZUFsbCIsIm1hdGNoZWQiLCJSZWdFeHAiLCJwdXQiLCJzdHJpbmciLCJjdXJyZW50IiwiZ2V0IiwiYXJncyIsInRva2VucyIsIm1hdGNoIiwidG9rZW4iLCJ0b2tlbktleSIsInNsaWNlIiwicmVwbGFjZSIsInJlc3BvbnNlIiwiZnJvbUZpbGUiLCJyYXdUZXh0IiwibGluZXMiLCJzcGxpdCIsIm1hdGNoZXMiLCJpIiwibGVuZ3RoIiwiZXhlYyIsInRyaW0iLCJnZXRJbnN0YW5jZSIsInJlc2V0SW5zdGFuY2UiLCJsb2FkTGFuZyIsInVzZUNhY2hlIiwiaW5jbHVkZXMiLCJsYW5nRmlsZSIsImFzeW5jIiwidXJsIiwiZmV0Y2giLCJvayIsIkVycm9yIiwic3RhdHVzIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJwcm9jZXNzZWRGaWxlIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJhcHBseSIsInRhcmdldCIsInRoaXNBcmciLCJjb25zdHJ1Y3QiLCJwcm9wIiwibWkxOG5fZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvZmV0Y2guanMiLCIuLi9zcmMvbWkxOG4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iLCJpbXBvcnQgeyBmZXRjaERhdGEgfSBmcm9tICcuL2ZldGNoLmpzJ1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgZXh0ZW5zaW9uOiAnLmxhbmcnLFxuICAvLyBsb2NhbCBvciByZW1vdGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGFuZ3VhZ2UgZmlsZXNcbiAgbG9jYXRpb246ICdhc3NldHMvbGFuZy8nLFxuICAvLyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLCBoYW5keSBmb3IgcG9wdWxhdGluZyBzZWxlY3Rvci5cbiAgbGFuZ3M6IFsnZW4tVVMnXSxcbiAgbG9jYWxlOiAnZW4tVVMnLCAvLyBpbml0IHdpdGggdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZVxuICBvdmVycmlkZToge30sXG59XG5cbi8vIFNpbmdsZXRvbiBpbnN0YW5jZSBob2xkZXJcbmxldCBpbnN0YW5jZSA9IG51bGxcblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOQmFzZVxuICogQGNsYXNzZGVzYyBtZXRob2RzIGFuZCBkYXRhIHN0b3JlIGZvciBpMThuXG4gKi9cbmNsYXNzIEkxOE5CYXNlIHtcbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3B0aW9ucyBhbmQgc3RhcnQgdGhlIG1vZHVsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IERFRkFVTFRfQ09ORklHKSB7XG4gICAgdGhpcy5sYW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICB0aGlzLmxvYWRlZCA9IFtdXG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogcGFyc2UgYW5kIGZvcm1hdCBjb25maWdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIHByb2Nlc3NDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH0gPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH1cbiAgICAvLyBFbnN1cmUgbG9jYXRpb24gZW5kcyB3aXRoIGEgc2xhc2hcbiAgICBjb25zdCBwYXJzZWRMb2NhdGlvbiA9IGxvY2F0aW9uLmVuZHNXaXRoKCcvJykgPyBsb2NhdGlvbiA6IGAke2xvY2F0aW9ufS9gXG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuXG4gICAgY29uc3QgeyBwcmVsb2FkZWQgPSB7fSwgb3ZlcnJpZGUgPSB7fSB9ID0gdGhpcy5jb25maWdcblxuICAgIC8vIE1lcmdlIGxvY2FsZXMgZnJvbSBib3RoIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGVcbiAgICAvLyBUaGlzIHN1cHBvcnRzIGxlZ2FjeSB1c2FnZSB3aGVyZSBvdmVycmlkZSBkZWZpbmVkIGVudGlyZSBsYW5ndWFnZXNcbiAgICBjb25zdCBhbGxMb2NhbGVzID0gbmV3IFNldChbLi4uT2JqZWN0LmtleXMocHJlbG9hZGVkKSwgLi4uT2JqZWN0LmtleXMob3ZlcnJpZGUpXSlcblxuICAgIC8vIEFwcGx5IGxhbmd1YWdlcyBmcm9tIGJvdGggcHJlbG9hZGVkIGFuZCBvdmVycmlkZVxuICAgIC8vIGFwcGx5TGFuZ3VhZ2Ugd2lsbCBtZXJnZSB0aGVtIHByb3Blcmx5IChleGlzdGluZyArIHByZWxvYWRlZCArIG92ZXJyaWRlKVxuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIGFsbExvY2FsZXMpIHtcbiAgICAgIGNvbnN0IHByZWxvYWRlZExhbmcgPSBwcmVsb2FkZWRbbG9jYWxlXSB8fCB7fVxuICAgICAgY29uc3Qgb3ZlcnJpZGVMYW5nID0gb3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgICAgLy8gTWVyZ2UgcHJlbG9hZGVkIGFuZCBvdmVycmlkZSBmb3IgdGhpcyBsb2NhbGVcbiAgICAgIGNvbnN0IG1lcmdlZExhbmcgPSB7IC4uLnByZWxvYWRlZExhbmcsIC4uLm92ZXJyaWRlTGFuZyB9XG4gICAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBtZXJnZWRMYW5nKVxuICAgIH1cblxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsYW5ndWFnZSB0byB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBsYW5nXG4gICAqL1xuICBhZGRMYW5ndWFnZShsb2NhbGUsIGxhbmcgPSB7fSkge1xuICAgIGxhbmcgPSB0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycgPyBJMThOQmFzZS5wcm9jZXNzRmlsZShsYW5nKSA6IGxhbmdcbiAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nKVxuICAgIHRoaXMubG9hZGVkLnB1c2gobG9jYWxlKVxuICAgIHRoaXMuY29uZmlnLmxhbmdzLnB1c2gobG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubGFuZ3NbbG9jYWxlXT8uW2tleV1cbiAgICByZXR1cm4gdmFsdWUgfHwgdGhpcy5nZXRGYWxsYmFja1ZhbHVlKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiBTdHJpbmcucmF3YFxce2AsXG4gICAgICAnfSc6IFN0cmluZy5yYXdgXFx9YCxcbiAgICAgICd8JzogU3RyaW5nLnJhd2BcXHxgLFxuICAgIH1cblxuICAgIGNvbnN0IGVzY2FwZWRTdHIgPSBzdHIucmVwbGFjZUFsbCgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChlc2NhcGVkU3RyLCAnZycpXG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgcHV0IGEgc3RyaW5nIGludG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgbGFuZ3VhZ2VcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXlcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJpbmdcbiAgICogQHJldHVybiB7U3RyaW5nfSBzdHJpbmcgaW4gY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgcHV0KGtleSwgc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJyZW50W2tleV0gPSBzdHJpbmdcblxuICAgIHJldHVybiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhcmd1bWVudHMgZm9yIHRoZSByZXF1ZXN0ZWQgc3RyaW5nXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICB0aGUga2V5IHdlIHVzZSB0byBsb29rdXAgb3VyIHRyYW5zbGF0aW9uXG4gICAqIEBwYXJhbSAge211bHRpfSAgYXJncyAgc3RyaW5nLCBudW1iZXIgb3Igb2JqZWN0IGNvbnRhaW5pbmcgb3VyIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICAgdXBkYXRlZCBzdHJpbmcgdHJhbnNsYXRpb25cbiAgICovXG4gIGdldChrZXksIGFyZ3MpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSlcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBObyByZXBsYWNlbWVudCBuZWVkZWQgaWYgbm8gYXJncyBwcm92aWRlZFxuICAgIGlmICghYXJncykge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW5zID0gdmFsdWUubWF0Y2goL1xce1tefV0rP1xcfS9nKVxuXG4gICAgLy8gTm8gdG9rZW5zIHRvIHJlcGxhY2VcbiAgICBpZiAoIXRva2Vucykge1xuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfVxuXG4gICAgLy8gT2JqZWN0IGFyZ3M6IHJlcGxhY2UgZWFjaCB0b2tlbiB3aXRoIGNvcnJlc3BvbmRpbmcga2V5XG4gICAgaWYgKHR5cGVvZiBhcmdzID09PSAnb2JqZWN0Jykge1xuICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgY29uc3QgdG9rZW5LZXkgPSB0b2tlbi5zbGljZSgxLCAtMSlcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMubWFrZVNhZmUodG9rZW4pLCBhcmdzW3Rva2VuS2V5XSA/PyAnJylcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUHJpbWl0aXZlIGFyZ3M6IHJlcGxhY2UgYWxsIHRva2VucyB3aXRoIHNhbWUgdmFsdWVcbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZUFsbCgvXFx7W159XSs/XFx9L2csIGFyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogUHJvY2VzcyBhIGxhbmd1YWdlIGZpbGUgZnJvbSByYXcgdGV4dFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHJlc3BvbnNlXG4gICAqIEByZXR1cm4ge09iamVjdH0gcHJvY2Vzc2VkIGxhbmd1YWdlXG4gICAqL1xuICBzdGF0aWMgcHJvY2Vzc0ZpbGUocmVzcG9uc2UpIHtcbiAgICByZXR1cm4gSTE4Ti5mcm9tRmlsZShyZXNwb25zZS5yZXBsYWNlQWxsKCdcXG5cXG4nLCAnXFxuJykpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogQHBhcmFtICB7U3RyaW5nfSByYXdUZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gY29udmVydGVkIGxhbmd1YWdlIGZpbGVcbiAgICovXG4gIHN0YXRpYyBmcm9tRmlsZShyYXdUZXh0KSB7XG4gICAgY29uc3QgbGluZXMgPSByYXdUZXh0LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IGxhbmcgPSB7fVxuXG4gICAgZm9yIChsZXQgbWF0Y2hlcywgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcmVnZXggPSAvXiguKz8pICo/PSAqPyhbXlxcbl0rKS9cbiAgICAgIG1hdGNoZXMgPSByZWdleC5leGVjKGxpbmVzW2ldKVxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgbGFuZ1ttYXRjaGVzWzFdXSA9IG1hdGNoZXNbMl0udHJpbSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHtJMThOQmFzZX0gc2luZ2xldG9uIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0SW5zdGFuY2Uob3B0aW9ucykge1xuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgIGluc3RhbmNlID0gbmV3IEkxOE5CYXNlKG9wdGlvbnMpXG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2UgKHVzZWZ1bCBmb3IgdGVzdGluZylcbiAgICovXG4gIHN0YXRpYyByZXNldEluc3RhbmNlKCkge1xuICAgIGluc3RhbmNlID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSByZW1vdGVseSBzdG9yZWQgbGFuZ3VhZ2UgZmlsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcGFyYW0gIHtCb29sZWFufSB1c2VDYWNoZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgICAgICByZXNvbHZlcyByZXNwb25zZVxuICAgKi9cbiAgYXN5bmMgbG9hZExhbmcobG9jYWxlLCB1c2VDYWNoZSA9IHRydWUpIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIGxhbmd1YWdlIGlmIGFscmVhZHkgbG9hZGVkXG4gICAgaWYgKHRoaXMubG9hZGVkLmluY2x1ZGVzKGxvY2FsZSkgJiYgdXNlQ2FjaGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgICB9XG4gICAgLy8gRmV0Y2ggYW5kIHByb2Nlc3MgbGFuZ3VhZ2UgZmlsZVxuICAgIGNvbnN0IGxhbmdGaWxlID0gYCR7dGhpcy5jb25maWcubG9jYXRpb259JHtsb2NhbGV9JHt0aGlzLmNvbmZpZy5leHRlbnNpb259YFxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxhbmcgPSBhd2FpdCBmZXRjaERhdGEobGFuZ0ZpbGUpXG4gICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gSTE4TkJhc2UucHJvY2Vzc0ZpbGUobGFuZylcbiAgICAgIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUsIHByb2Nlc3NlZEZpbGUpXG4gICAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIHJldHVybiB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBhcHBsaWVzIG92ZXJyaWRlcyBmcm9tIGNvbmZpZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBsYW5nXG4gICAqIEByZXR1cm4ge09iamVjdH0gb3ZlcnJpZGVuIGxhbmd1YWdlXG4gICAqL1xuICBhcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZyA9IHt9KSB7XG4gICAgY29uc3Qgb3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZVtsb2NhbGVdIHx8IHt9XG4gICAgY29uc3QgZXhpc3RpbmdMYW5nID0gdGhpcy5sYW5nc1tsb2NhbGVdIHx8IHt9XG4gICAgdGhpcy5sYW5nc1tsb2NhbGVdID0geyAuLi5leGlzdGluZ0xhbmcsIC4uLmxhbmcsIC4uLm92ZXJyaWRlIH1cbiAgICB0aGlzLmxvYWRlZC5wdXNoKGxvY2FsZSlcbiAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGN1cnJlbnRseSBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gICAqIEByZXR1cm4ge09iamVjdH0gYWxsIGNvbmZpZ3VyZWQgbGFuZ3VhZ2VzXG4gICAqL1xuICBnZXQgZ2V0TGFuZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmxhbmdzXG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdCB0byBzZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdG8gdGhlIGxvY2FsIHByb3ZpZGVkXG4gICAqIEBwYXJhbSB7U3RyaW5nfSAgIGxvY2FsZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBsYW5ndWFnZVxuICAgKi9cbiAgYXN5bmMgc2V0Q3VycmVudChsb2NhbGUgPSAnZW4tVVMnKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRlZC5pbmNsdWRlcyhsb2NhbGUpKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRMYW5nKGxvY2FsZSlcbiAgICB9XG5cbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICB9XG59XG5cbi8qKlxuICogUHJveHkgd3JhcHBlciB0aGF0IGVuYWJsZXMgc2luZ2xldG9uIHBhdHRlcm46XG4gKiAtIEkxOE4oKSByZXR1cm5zIHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAqIC0gbmV3IEkxOE4oKSBjcmVhdGVzIGEgbmV3IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBjb25zdCBJMThOID0gbmV3IFByb3h5KEkxOE5CYXNlLCB7XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBJMThOKCkgaXMgaW52b2tlZCBhcyBhIGZ1bmN0aW9uICh3aXRob3V0IG5ldylcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gICAqL1xuICBhcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ3MpIHtcbiAgICByZXR1cm4gdGFyZ2V0LmdldEluc3RhbmNlKC4uLmFyZ3MpXG4gIH0sXG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIG5ldyBJMThOKCkgaXMgaW52b2tlZFxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3QodGFyZ2V0LCBhcmdzKSB7XG4gICAgcmV0dXJuIG5ldyB0YXJnZXQoLi4uYXJncylcbiAgfSxcblxuICAvKipcbiAgICogUHJveHkgcHJvcGVydHkgYWNjZXNzIHRvIHRoZSBiYXNlIGNsYXNzXG4gICAqL1xuICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgcmV0dXJuIHRhcmdldFtwcm9wXVxuICB9LFxufSlcblxuZXhwb3J0IGRlZmF1bHQgSTE4Ti5nZXRJbnN0YW5jZSgpXG4iXSwibWFwcGluZ3MiOiJDLHNUQUF1QlUsT0FBT00sT0FBTyxDQUFFQyxPQUFRLE1BQU9DLEtBQU0sS0NFNUQsSUFBTUMsRUFBaUIsQ0FDckJDLFVBQVcsUUFFWEMsU0FBVSxlQUVWQyxNQUFPLENBQUMsU0FDUkMsT0FBUSxRQUNSQyxTQUFVLENBQUMsR0FJVEMsRUFBVyxLQWtSRkMsRUFBTyxJQUFJQyxNQTNReEIsTUFBTUMsRUFLSixXQUFBQyxDQUFZQyxFQUFVWCxHQUNwQlYsS0FBS2EsTUFBUVosT0FBT3FCLE9BQU8sTUFDM0J0QixLQUFLdUIsT0FBUyxHQUNkdkIsS0FBS3dCLGNBQWNILEVBQ3JCLENBTUEsYUFBQUcsQ0FBY0gsR0FDWixNQUFNVCxTQUFFQSxLQUFhYSxHQUFnQixJQUFLZixLQUFtQlcsR0FFdkRLLEVBQWlCZCxFQUFTZSxTQUFTLEtBQU9mLEVBQVcsR0FBR0EsS0FDOURaLEtBQUs0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
|
|
8
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).i18n={})}(this,function(t){Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),Object.freeze({method:"GET",body:""});var e={extension:".lang",location:"assets/lang/",langs:["en-US"],locale:"en-US",override:{}},n=null,s=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),l=(t,e)=>{Array.isArray(t)&&!t.includes(e)&&t.push(e)},i=(t,e)=>e?null!=t:Boolean(t),a=new Map,o=(t,e)=>{const n=new Set;return 0===t&&n.add("zero"),n.add(((t,e)=>{const n=1===e?"one":"other";if("undefined"==typeof Intl||"function"!=typeof Intl.PluralRules)return n;if(!a.has(t)){let e=null;try{e=new Intl.PluralRules(String(t).replaceAll("_","-"))}catch{}a.set(t,e)}const s=a.get(t);return s?s.select(e):n})(e,t)),n.add("other"),[...n]},r=new Proxy(class t{constructor(t=e){this.langs=Object.create(null),this.loaded=[],this.processConfig(t)}processConfig(t){const{location:n,...s}={...e,...t},l=n.endsWith("/")?n:`${n}/`;Array.isArray(s.langs)&&(s.langs=[...new Set(s.langs)]),this.config={location:l,...s};const{preloaded:i={},override:a={}}=this.config,o=new Set([...Object.keys(i),...Object.keys(a)]);for(const e of o){const t={...i[e]||{},...a[e]||{}};this.applyLanguage(e,t)}this.locale=this.config.locale||this.config.langs[0]}init(t){this.processConfig({...this.config,...t});const e=this.getFallbackLocales().filter(t=>!this.loaded.includes(t));return e.length?Promise.all([this.setCurrent(this.locale),...e.map(t=>this.loadLang(t))]).then(([t])=>t):this.setCurrent(this.locale)}addLanguage(e,n={}){n="string"==typeof n?t.processFile(n):n,this.applyLanguage(e,n),l(this.loaded,e),l(this.config.langs,e)}getFallbackLocales(){const{fallbackLocale:t}=this.config;return[].concat(t??[]).filter(t=>"string"==typeof t&&t)}getLocaleChain(t=this.locale){const e=[t],n=String(t).split(/[-_]/)[0];return n&&this.langs[n]&&e.push(n),e.push(...this.getFallbackLocales()),[...new Set(e)]}getValue(t,e=this.locale){if(!this.config.fallbackLocale)return this.langs[e]?.[t]||this.getFallbackValue(t);for(const n of this.getLocaleChain(e)){const e=this.langs[n];if(e&&s(e,t)&&i(e[t],!0))return e[t]}}getPluralValue(t,e,n=this.locale){const l=Boolean(this.config.fallbackLocale),a=l?this.getLocaleChain(n):new Set([n,...Object.keys(this.langs)]);for(const r of a){const n=this.langs[r];if(n)for(const a of o(e,r)){const e=`${t}.${a}`;if(s(n,e)&&i(n[e],l))return n[e]}}}handleMissing(t){const{onMissing:e}=this.config;if("function"==typeof e){const n=e(t);if("string"==typeof n)return n}}getFallbackValue(t){return Object.values(this.langs).find(e=>e[t])?.[t]}makeSafe(t){const e={"{":String.raw`\{`,"}":String.raw`\}`,"|":String.raw`\|`},n=t.replaceAll(/[{}|]/g,t=>e[t]);return new RegExp(n,"g")}put(t,e,n){let s;return s=void 0===n?this.current||(this.langs[this.locale]??={}):this.langs[n]??={},s[t]=e,e}get(t,e,n=this.locale){const s=Boolean(this.config.fallbackLocale);let l=this.getValue(t,n);if(!i(l,s)){const s=(t=>"number"==typeof t?t:t&&"object"==typeof t&&"number"==typeof t.count?t.count:void 0)(e);l=void 0===s?void 0:this.getPluralValue(t,s,n)}if(!i(l,s))return this.handleMissing({key:t,locale:n,type:"key"});if(!e&&0!==e)return l;const a=l.match(/\{[^}]+?\}/g);if(!a)return l;if("object"==typeof e)for(const i of a){const s=i.slice(1,-1);let a=e[s];null==a&&(a=this.handleMissing({key:t,locale:n,type:"arg",arg:s})??""),l=l.replace(this.makeSafe(i),a)}else l=l.replaceAll(/\{[^}]+?\}/g,e);return l}t(t,e,n){const s=this.get(t,e,n);return void 0===s?t:s}forLocale(t){return(e,n)=>this.t(e,n,t)}static processFile(t){return r.fromFile(t)}static fromFile(t){const e=String(t).replaceAll("\r\n","\n").split("\n"),n={},s=/^(.+?) *?= *?([^\n]+)/,l=t=>{const e=s.exec(t),l=e?.[1].trim();l&&(n[l]=e[2].trim())};let i=null;for(const a of e){let t=a;if(null!==i)t=i+a.trimStart(),i=null;else if(/^\s*[#;]/.test(a))continue;/(^|[^\\])\\$/.test(t)?i=t.slice(0,-1):l(t)}return null!==i&&l(i),n}static parse(t){return r.processFile(t)}static getInstance(e){return n||(n=new t(e)),n}static resetInstance(){n=null}async loadLang(e,n=!0){if(this.loaded.includes(e)&&n)return this.langs[e];const s=`${this.config.location}${e}${this.config.extension}`;try{const n=await async function(t){try{const e=await fetch(t);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e[t.endsWith(".lang")?"text":"json"]()}catch(e){throw e}}(s),l="string"==typeof n?t.processFile(n):n;return this.applyLanguage(e,l),this.langs[e]}catch(l){return this.applyLanguage(e)}}applyLanguage(t,e={}){const n=this.config.override[t]||{},s=this.langs[t]||{};return this.langs[t]={...s,...e,...n},this.current&&t===this.locale&&(this.current=this.langs[t]),l(this.loaded,t),this.langs[t]}get getLangs(){return this.config.langs}async setCurrent(t="en-US"){return this.loaded.includes(t)||await this.loadLang(t),this.locale=t,this.current=this.langs[t],this.current}},{apply:(t,e,n)=>t.getInstance(...n),construct:(t,e)=>new t(...e),get:(t,e)=>t[e]}),c=r.getInstance();t.I18N=r,t.default=c});
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi51bWQubWluLmpzIiwibmFtZXMiOlsiZ2xvYmFsIiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJnbG9iYWxUaGlzIiwic2VsZiIsImkxOG4iLCJ0aGlzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsIl9fZXNNb2R1bGUiLCJ2YWx1ZSIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwiZnJlZXplIiwibWV0aG9kIiwiYm9keSIsIkRFRkFVTFRfQ09ORklHIiwiZXh0ZW5zaW9uIiwibG9jYXRpb24iLCJsYW5ncyIsImxvY2FsZSIsIm92ZXJyaWRlIiwiaW5zdGFuY2UiLCJoYXNPd24iLCJvYmoiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJwdXNoVW5pcXVlIiwiYXJyIiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsImluY2x1ZGVzIiwicHVzaCIsImlzUHJlc2VudCIsInN0cmljdCIsIkJvb2xlYW4iLCJwbHVyYWxSdWxlc0NhY2hlIiwiTWFwIiwiZ2V0UGx1cmFsU3VmZml4ZXMiLCJjb3VudCIsInN1ZmZpeGVzIiwiU2V0IiwiYWRkIiwiYmFzaWNDYXRlZ29yeSIsIkludGwiLCJQbHVyYWxSdWxlcyIsImhhcyIsInJ1bGVzIiwiU3RyaW5nIiwicmVwbGFjZUFsbCIsInNldCIsImdldCIsInNlbGVjdCIsImdldFBsdXJhbENhdGVnb3J5IiwiSTE4TiIsIlByb3h5IiwiSTE4TkJhc2UiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJjcmVhdGUiLCJsb2FkZWQiLCJwcm9jZXNzQ29uZmlnIiwicmVzdE9wdGlvbnMiLCJwYXJzZWRMb2NhdGlvbiIsImVuZHNXaXRoIiwiY29uZmlnIiwicHJlbG9hZGVkIiwiYWxsTG9jYWxlcyIsImtleXMiLCJtZXJnZWRMYW5nIiwiYXBwbHlMYW5ndWFnZSIsImluaXQiLCJmYWxsYmFja3MiLCJnZXRGYWxsYmFja0xvY2FsZXMiLCJmaWx0ZXIiLCJsZW5ndGgiLCJQcm9taXNlIiwiYWxsIiwic2V0Q3VycmVudCIsIm1hcCIsImxvYWRMYW5nIiwidGhlbiIsImN1cnJlbnQiLCJhZGRMYW5ndWFnZSIsImxhbmciLCJwcm9jZXNzRmlsZSIsImZhbGxiYWNrTG9jYWxlIiwiY29uY2F0IiwiZ2V0TG9jYWxlQ2hhaW4iLCJjaGFpbiIsImJhc2VMb2NhbGUiLCJzcGxpdCIsImdldFZhbHVlIiwiZ2V0RmFsbGJhY2tWYWx1ZSIsImNoYWluTG9jYWxlIiwiZ2V0UGx1cmFsVmFsdWUiLCJsb2NhbGVzIiwicGx1cmFsTG9jYWxlIiwic3VmZml4IiwicGx1cmFsS2V5IiwiaGFuZGxlTWlzc2luZyIsImluZm8iLCJvbk1pc3NpbmciLCJyZXN1bHQiLCJ2YWx1ZXMiLCJmaW5kIiwibWFrZVNhZmUiLCJzdHIiLCJtYXBPYmoiLCJyYXciLCJlc2NhcGVkU3RyIiwibWF0Y2hlZCIsIlJlZ0V4cCIsInB1dCIsInN0cmluZyIsImFyZ3MiLCJnZXRDb3VudCIsInR5cGUiLCJ0b2tlbnMiLCJtYXRjaCIsInRva2VuIiwidG9rZW5LZXkiLCJzbGljZSIsInJlcGxhY2VtZW50IiwiYXJnIiwicmVwbGFjZSIsInQiLCJmb3JMb2NhbGUiLCJyZXNwb25zZSIsImZyb21GaWxlIiwicmF3VGV4dCIsImxpbmVzIiwicmVnZXgiLCJwYXJzZUxpbmUiLCJsaW5lIiwibWF0Y2hlcyIsImV4ZWMiLCJ0cmltIiwiY29udGludWVkIiwibG9naWNhbExpbmUiLCJ0cmltU3RhcnQiLCJ0ZXN0IiwicGFyc2UiLCJ0ZXh0IiwiZ2V0SW5zdGFuY2UiLCJyZXNldEluc3RhbmNlIiwidXNlQ2FjaGUiLCJsYW5nRmlsZSIsImFzeW5jIiwidXJsIiwiZmV0Y2giLCJvayIsIkVycm9yIiwic3RhdHVzIiwiZXJyb3IiLCJmZXRjaERhdGEiLCJwcm9jZXNzZWRGaWxlIiwiZXJyIiwiZXhpc3RpbmdMYW5nIiwiZ2V0TGFuZ3MiLCJhcHBseSIsInRhcmdldCIsInRoaXNBcmciLCJjb25zdHJ1Y3QiLCJwcm9wIiwibWkxOG5fZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvZmV0Y2guanMiLCIuLi9zcmMvbWkxOG4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHsgbWV0aG9kOiAnR0VUJywgYm9keTogJycgfSlcbi8qKlxuICogRmV0Y2hlcyBhIHJlc291cmNlIGZyb20gdGhlIG5ldHdvcmsuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gZmV0Y2guXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZldGNoIHJlcXVlc3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW2ZldGNoT3B0aW9ucy5oZWFkZXJzXSAtIEhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZmV0Y2hPcHRpb25zLm1ldGhvZF0gLSBUaGUgSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCAnR0VUJywgJ1BPU1QnKS5cbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gW2ZldGNoT3B0aW9ucy5ib2R5XSAtIFRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybiB7UHJvbWlzZTxPYmplY3Q+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0LlxuICogQHJldHVybiB7Ym9vbGVhbn0gcmV0dXJuLm9rIC0gSW5kaWNhdGVzIGlmIHRoZSByZXNwb25zZSBzdGF0dXMgaXMgaW4gdGhlIHJhbmdlIDIwMC0yOTkuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IHJldHVybi5zdGF0dXMgLSBUaGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHJldHVybi5zdGF0dXNUZXh0IC0gVGhlIEhUVFAgc3RhdHVzIG1lc3NhZ2Ugb2YgdGhlIHJlc3BvbnNlLlxuICogQHJldHVybiB7TWFwPHN0cmluZywgc3RyaW5nPn0gcmV0dXJuLmhlYWRlcnMgLSBUaGUgaGVhZGVycyBvZiB0aGUgcmVzcG9uc2UuXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHJldHVybi5ib2R5IC0gVGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlIGFzIGEgQnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxCdWZmZXI+fSByZXR1cm4uYXJyYXlCdWZmZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBib2R5IGFzIGFuIEFycmF5QnVmZmVyLlxuICogQHJldHVybiB7ZnVuY3Rpb24oKTogUHJvbWlzZTxPYmplY3Q+fSByZXR1cm4uanNvbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGJvZHkgcGFyc2VkIGFzIEpTT04uXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICB9XG4gICAgY29uc3QgaGFuZGxlciA9IHVybC5lbmRzV2l0aCgnLmxhbmcnKSA/ICd0ZXh0JyA6ICdqc29uJ1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZVtoYW5kbGVyXSgpXG4gICAgcmV0dXJuIGRhdGFcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBoYXMgYmVlbiBhIHByb2JsZW0gd2l0aCB5b3VyIGZldGNoIG9wZXJhdGlvbjonLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iLCJpbXBvcnQgeyBmZXRjaERhdGEgfSBmcm9tICcuL2ZldGNoLmpzJ1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRyA9IHtcbiAgZXh0ZW5zaW9uOiAnLmxhbmcnLFxuICAvLyBsb2NhbCBvciByZW1vdGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGFuZ3VhZ2UgZmlsZXNcbiAgbG9jYXRpb246ICdhc3NldHMvbGFuZy8nLFxuICAvLyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLCBoYW5keSBmb3IgcG9wdWxhdGluZyBzZWxlY3Rvci5cbiAgbGFuZ3M6IFsnZW4tVVMnXSxcbiAgbG9jYWxlOiAnZW4tVVMnLCAvLyBpbml0IHdpdGggdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZVxuICBvdmVycmlkZToge30sXG59XG5cbi8vIFNpbmdsZXRvbiBpbnN0YW5jZSBob2xkZXJcbmxldCBpbnN0YW5jZSA9IG51bGxcblxuY29uc3QgaGFzT3duID0gKG9iaiwga2V5KSA9PiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpXG5cbi8qKlxuICogQWRkIGFuIGl0ZW0gdG8gYW4gYXJyYXkgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudFxuICogQHBhcmFtIHtBcnJheX0gYXJyXG4gKiBAcGFyYW0geyp9IGl0ZW1cbiAqL1xuY29uc3QgcHVzaFVuaXF1ZSA9IChhcnIsIGl0ZW0pID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSAmJiAhYXJyLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgYXJyLnB1c2goaXRlbSlcbiAgfVxufVxuXG4vKipcbiAqIFdoZXRoZXIgYSBsb29rZWQgdXAgdmFsdWUgY291bnRzIGFzIHByZXNlbnQuXG4gKiBMZWdhY3kgbG9va3VwcyB0cmVhdCBlbXB0eSBzdHJpbmdzIGFzIG1pc3NpbmcsIGZhbGxiYWNrTG9jYWxlIGxvb2t1cHMgZG8gbm90LlxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICogQHBhcmFtIHtCb29sZWFufSBzdHJpY3QgdHJ1ZSB3aGVuIGZhbGxiYWNrTG9jYWxlIGlzIGNvbmZpZ3VyZWRcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmNvbnN0IGlzUHJlc2VudCA9ICh2YWx1ZSwgc3RyaWN0KSA9PiAoc3RyaWN0ID8gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCA6IEJvb2xlYW4odmFsdWUpKVxuXG4vKipcbiAqIEV4dHJhY3QgdGhlIHBsdXJhbCBjb3VudCBmcm9tIGdldC90IGFyZ3NcbiAqIEBwYXJhbSB7Kn0gYXJnc1xuICogQHJldHVybiB7TnVtYmVyfHVuZGVmaW5lZH1cbiAqL1xuY29uc3QgZ2V0Q291bnQgPSBhcmdzID0+IHtcbiAgaWYgKHR5cGVvZiBhcmdzID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBhcmdzXG4gIH1cbiAgaWYgKGFyZ3MgJiYgdHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiBhcmdzLmNvdW50ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBhcmdzLmNvdW50XG4gIH1cbn1cblxuY29uc3QgcGx1cmFsUnVsZXNDYWNoZSA9IG5ldyBNYXAoKVxuXG4vKipcbiAqIEdldCB0aGUgQ0xEUiBwbHVyYWwgY2F0ZWdvcnkgZm9yIGEgY291bnQgaW4gYSBsb2NhbGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudFxuICogQHJldHVybiB7U3RyaW5nfSBwbHVyYWwgY2F0ZWdvcnksIGVnLiAnb25lJywgJ2ZldycsICdvdGhlcidcbiAqL1xuY29uc3QgZ2V0UGx1cmFsQ2F0ZWdvcnkgPSAobG9jYWxlLCBjb3VudCkgPT4ge1xuICBjb25zdCBiYXNpY0NhdGVnb3J5ID0gY291bnQgPT09IDEgPyAnb25lJyA6ICdvdGhlcidcbiAgaWYgKHR5cGVvZiBJbnRsID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgSW50bC5QbHVyYWxSdWxlcyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBiYXNpY0NhdGVnb3J5XG4gIH1cbiAgaWYgKCFwbHVyYWxSdWxlc0NhY2hlLmhhcyhsb2NhbGUpKSB7XG4gICAgbGV0IHJ1bGVzID0gbnVsbFxuICAgIHRyeSB7XG4gICAgICBydWxlcyA9IG5ldyBJbnRsLlBsdXJhbFJ1bGVzKFN0cmluZyhsb2NhbGUpLnJlcGxhY2VBbGwoJ18nLCAnLScpKVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaW52YWxpZCBsb2NhbGUgdGFnXG4gICAgfVxuICAgIHBsdXJhbFJ1bGVzQ2FjaGUuc2V0KGxvY2FsZSwgcnVsZXMpXG4gIH1cbiAgY29uc3QgcnVsZXMgPSBwbHVyYWxSdWxlc0NhY2hlLmdldChsb2NhbGUpXG4gIHJldHVybiBydWxlcyA/IHJ1bGVzLnNlbGVjdChjb3VudCkgOiBiYXNpY0NhdGVnb3J5XG59XG5cbi8qKlxuICogUGx1cmFsIGtleSBzdWZmaXhlcyB0byB0cnksIGluIG9yZGVyXG4gKiBAcGFyYW0ge051bWJlcn0gY291bnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAqIEByZXR1cm4ge1N0cmluZ1tdfVxuICovXG5jb25zdCBnZXRQbHVyYWxTdWZmaXhlcyA9IChjb3VudCwgbG9jYWxlKSA9PiB7XG4gIGNvbnN0IHN1ZmZpeGVzID0gbmV3IFNldCgpXG4gIGlmIChjb3VudCA9PT0gMCkge1xuICAgIHN1ZmZpeGVzLmFkZCgnemVybycpXG4gIH1cbiAgc3VmZml4ZXMuYWRkKGdldFBsdXJhbENhdGVnb3J5KGxvY2FsZSwgY291bnQpKVxuICBzdWZmaXhlcy5hZGQoJ290aGVyJylcbiAgcmV0dXJuIFsuLi5zdWZmaXhlc11cbn1cblxuLyoqXG4gKiBNYWluIGkxOG4gY2xhc3NcbiAqIEBjbGFzcyBJMThOQmFzZVxuICogQGNsYXNzZGVzYyBtZXRob2RzIGFuZCBkYXRhIHN0b3JlIGZvciBpMThuXG4gKi9cbmNsYXNzIEkxOE5CYXNlIHtcbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3B0aW9ucyBhbmQgc3RhcnQgdGhlIG1vZHVsZVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IERFRkFVTFRfQ09ORklHKSB7XG4gICAgdGhpcy5sYW5ncyA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICB0aGlzLmxvYWRlZCA9IFtdXG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogcGFyc2UgYW5kIGZvcm1hdCBjb25maWdcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICovXG4gIHByb2Nlc3NDb25maWcob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIC4uLnJlc3RPcHRpb25zIH0gPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH1cbiAgICAvLyBFbnN1cmUgbG9jYXRpb24gZW5kcyB3aXRoIGEgc2xhc2hcbiAgICBjb25zdCBwYXJzZWRMb2NhdGlvbiA9IGxvY2F0aW9uLmVuZHNXaXRoKCcvJykgPyBsb2NhdGlvbiA6IGAke2xvY2F0aW9ufS9gXG4gICAgLy8gQ29weSBsYW5ncyBzbyB0aGUgZGVmYXVsdHMgYW5kIHVzZXIgc3VwcGxpZWQgYXJyYXlzIGFyZSBuZXZlciBtdXRhdGVkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdE9wdGlvbnMubGFuZ3MpKSB7XG4gICAgICByZXN0T3B0aW9ucy5sYW5ncyA9IFsuLi5uZXcgU2V0KHJlc3RPcHRpb25zLmxhbmdzKV1cbiAgICB9XG4gICAgdGhpcy5jb25maWcgPSB7IGxvY2F0aW9uOiBwYXJzZWRMb2NhdGlvbiwgLi4ucmVzdE9wdGlvbnMgfVxuXG4gICAgY29uc3QgeyBwcmVsb2FkZWQgPSB7fSwgb3ZlcnJpZGUgPSB7fSB9ID0gdGhpcy5jb25maWdcblxuICAgIC8vIE1lcmdlIGxvY2FsZXMgZnJvbSBib3RoIHByZWxvYWRlZCBhbmQgb3ZlcnJpZGVcbiAgICAvLyBUaGlzIHN1cHBvcnRzIGxlZ2FjeSB1c2FnZSB3aGVyZSBvdmVycmlkZSBkZWZpbmVkIGVudGlyZSBsYW5ndWFnZXNcbiAgICBjb25zdCBhbGxMb2NhbGVzID0gbmV3IFNldChbLi4uT2JqZWN0LmtleXMocHJlbG9hZGVkKSwgLi4uT2JqZWN0LmtleXMob3ZlcnJpZGUpXSlcblxuICAgIC8vIEFwcGx5IGxhbmd1YWdlcyBmcm9tIGJvdGggcHJlbG9hZGVkIGFuZCBvdmVycmlkZVxuICAgIC8vIGFwcGx5TGFuZ3VhZ2Ugd2lsbCBtZXJnZSB0aGVtIHByb3Blcmx5IChleGlzdGluZyArIHByZWxvYWRlZCArIG92ZXJyaWRlKVxuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIGFsbExvY2FsZXMpIHtcbiAgICAgIGNvbnN0IHByZWxvYWRlZExhbmcgPSBwcmVsb2FkZWRbbG9jYWxlXSB8fCB7fVxuICAgICAgY29uc3Qgb3ZlcnJpZGVMYW5nID0gb3ZlcnJpZGVbbG9jYWxlXSB8fCB7fVxuICAgICAgLy8gTWVyZ2UgcHJlbG9hZGVkIGFuZCBvdmVycmlkZSBmb3IgdGhpcyBsb2NhbGVcbiAgICAgIGNvbnN0IG1lcmdlZExhbmcgPSB7IC4uLnByZWxvYWRlZExhbmcsIC4uLm92ZXJyaWRlTGFuZyB9XG4gICAgICB0aGlzLmFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBtZXJnZWRMYW5nKVxuICAgIH1cblxuICAgIHRoaXMubG9jYWxlID0gdGhpcy5jb25maWcubG9jYWxlIHx8IHRoaXMuY29uZmlnLmxhbmdzWzBdXG4gIH1cblxuICAvKipcbiAgICogTG9hZCBsYW5ndWFnZSBhbmQgc2V0IGRlZmF1bHRcbiAgICogQHBhcmFtICB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICAgICByZXNvbHZlcyBsYW5ndWFnZVxuICAgKi9cbiAgaW5pdChvcHRpb25zKSB7XG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnKHsgLi4udGhpcy5jb25maWcsIC4uLm9wdGlvbnMgfSlcbiAgICAvLyBGYWxsYmFjayBsb2NhbGVzIGFyZSBsb2FkZWQgYWxvbmdzaWRlIHRoZSBjdXJyZW50IGxvY2FsZSBzbyBsb29rdXBzIGNhbiBmYWxsIGJhY2sgdG8gdGhlbVxuICAgIGNvbnN0IGZhbGxiYWNrcyA9IHRoaXMuZ2V0RmFsbGJhY2tMb2NhbGVzKCkuZmlsdGVyKGxvY2FsZSA9PiAhdGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSlcbiAgICBpZiAoIWZhbGxiYWNrcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnQodGhpcy5sb2NhbGUpXG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5zZXRDdXJyZW50KHRoaXMubG9jYWxlKSwgLi4uZmFsbGJhY2tzLm1hcChsb2NhbGUgPT4gdGhpcy5sb2FkTGFuZyhsb2NhbGUpKV0pLnRoZW4oXG4gICAgICAoW2N1cnJlbnRdKSA9PiBjdXJyZW50LFxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbGFuZ3VhZ2UgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gbGFuZ1xuICAgKi9cbiAgYWRkTGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBsYW5nID0gdHlwZW9mIGxhbmcgPT09ICdzdHJpbmcnID8gSTE4TkJhc2UucHJvY2Vzc0ZpbGUobGFuZykgOiBsYW5nXG4gICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgbGFuZylcbiAgICBwdXNoVW5pcXVlKHRoaXMubG9hZGVkLCBsb2NhbGUpXG4gICAgcHVzaFVuaXF1ZSh0aGlzLmNvbmZpZy5sYW5ncywgbG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZWQgZmFsbGJhY2sgbG9jYWxlc1xuICAgKiBAcmV0dXJuIHtTdHJpbmdbXX1cbiAgICovXG4gIGdldEZhbGxiYWNrTG9jYWxlcygpIHtcbiAgICBjb25zdCB7IGZhbGxiYWNrTG9jYWxlIH0gPSB0aGlzLmNvbmZpZ1xuICAgIHJldHVybiBbXS5jb25jYXQoZmFsbGJhY2tMb2NhbGUgPz8gW10pLmZpbHRlcihsb2NhbGUgPT4gdHlwZW9mIGxvY2FsZSA9PT0gJ3N0cmluZycgJiYgbG9jYWxlKVxuICB9XG5cbiAgLyoqXG4gICAqIExvY2FsZXMgY2hlY2tlZCwgaW4gb3JkZXIsIHdoZW4gbG9va2luZyB1cCBhIGtleSB3aXRoIGZhbGxiYWNrTG9jYWxlIGNvbmZpZ3VyZWQ6XG4gICAqIHJlcXVlc3RlZCBsb2NhbGUsIGl0cyBiYXNlIGxhbmd1YWdlIChpZiBsb2FkZWQpLCB0aGVuIGVhY2ggZmFsbGJhY2sgbG9jYWxlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlXG4gICAqIEByZXR1cm4ge1N0cmluZ1tdfVxuICAgKi9cbiAgZ2V0TG9jYWxlQ2hhaW4obG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBjb25zdCBjaGFpbiA9IFtsb2NhbGVdXG4gICAgY29uc3QgYmFzZUxvY2FsZSA9IFN0cmluZyhsb2NhbGUpLnNwbGl0KC9bLV9dLylbMF1cbiAgICBpZiAoYmFzZUxvY2FsZSAmJiB0aGlzLmxhbmdzW2Jhc2VMb2NhbGVdKSB7XG4gICAgICBjaGFpbi5wdXNoKGJhc2VMb2NhbGUpXG4gICAgfVxuICAgIGNoYWluLnB1c2goLi4udGhpcy5nZXRGYWxsYmFja0xvY2FsZXMoKSlcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQoY2hhaW4pXVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCBhIHN0cmluZyBmcm9tIGEgbG9hZGVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXkgIC0gdGhlIGtleSBmb3IgdGhlIHN0cmluZyB3ZSBhcmUgdHJ5aW5nIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gbG9jYWxlIC0gbG9jYWxlIHRvIGNoZWNrIGZvciB2YWx1ZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGxhbmd1YWdlIHN0cmluZyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldFZhbHVlKGtleSwgbG9jYWxlID0gdGhpcy5sb2NhbGUpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZmFsbGJhY2tMb2NhbGUpIHtcbiAgICAgIGZvciAoY29uc3QgY2hhaW5Mb2NhbGUgb2YgdGhpcy5nZXRMb2NhbGVDaGFpbihsb2NhbGUpKSB7XG4gICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmdzW2NoYWluTG9jYWxlXVxuICAgICAgICBpZiAobGFuZyAmJiBoYXNPd24obGFuZywga2V5KSAmJiBpc1ByZXNlbnQobGFuZ1trZXldLCB0cnVlKSkge1xuICAgICAgICAgIHJldHVybiBsYW5nW2tleV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmxhbmdzW2xvY2FsZV0/LltrZXldXG4gICAgcmV0dXJuIHZhbHVlIHx8IHRoaXMuZ2V0RmFsbGJhY2tWYWx1ZShrZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZCBhIHBsdXJhbCBmb3JtIG9mIGtleSwgZWcuIGBrZXkuemVyb2AsIGBrZXkub25lYCwgYGtleS5vdGhlcmBcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXlcbiAgICogQHBhcmFtICB7TnVtYmVyfSBjb3VudFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHBsdXJhbCBzdHJpbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBnZXRQbHVyYWxWYWx1ZShrZXksIGNvdW50LCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHN0cmljdCA9IEJvb2xlYW4odGhpcy5jb25maWcuZmFsbGJhY2tMb2NhbGUpXG4gICAgY29uc3QgbG9jYWxlcyA9IHN0cmljdCA/IHRoaXMuZ2V0TG9jYWxlQ2hhaW4obG9jYWxlKSA6IG5ldyBTZXQoW2xvY2FsZSwgLi4uT2JqZWN0LmtleXModGhpcy5sYW5ncyldKVxuXG4gICAgZm9yIChjb25zdCBwbHVyYWxMb2NhbGUgb2YgbG9jYWxlcykge1xuICAgICAgY29uc3QgbGFuZyA9IHRoaXMubGFuZ3NbcGx1cmFsTG9jYWxlXVxuICAgICAgaWYgKCFsYW5nKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHN1ZmZpeCBvZiBnZXRQbHVyYWxTdWZmaXhlcyhjb3VudCwgcGx1cmFsTG9jYWxlKSkge1xuICAgICAgICBjb25zdCBwbHVyYWxLZXkgPSBgJHtrZXl9LiR7c3VmZml4fWBcbiAgICAgICAgaWYgKGhhc093bihsYW5nLCBwbHVyYWxLZXkpICYmIGlzUHJlc2VudChsYW5nW3BsdXJhbEtleV0sIHN0cmljdCkpIHtcbiAgICAgICAgICByZXR1cm4gbGFuZ1twbHVyYWxLZXldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IGEgbWlzc2luZyBrZXkgb3IgYXJndW1lbnQgdG8gdGhlIG9uTWlzc2luZyBoYW5kbGVyXG4gICAqIEBwYXJhbSAge09iamVjdH0gaW5mbyB7IGtleSwgbG9jYWxlLCB0eXBlLCBhcmcgfVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHJlcGxhY2VtZW50IHN0cmluZyByZXR1cm5lZCBieSBvbk1pc3Npbmcgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBoYW5kbGVNaXNzaW5nKGluZm8pIHtcbiAgICBjb25zdCB7IG9uTWlzc2luZyB9ID0gdGhpcy5jb25maWdcbiAgICBpZiAodHlwZW9mIG9uTWlzc2luZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gb25NaXNzaW5nKGluZm8pXG4gICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgbGFuZ3VhZ2UgdGhhdCBoYXMgZGVzaXJlZCBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSB2YWx1ZSBrZXlcbiAgICogQHJldHVybiB7U3RyaW5nfSBmb3VuZCB2YWx1ZSBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZhbGxiYWNrVmFsdWUoa2V5KSB7XG4gICAgY29uc3QgZmFsbGJhY2tMYW5nID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxhbmdzKS5maW5kKGxhbmcgPT4gbGFuZ1trZXldKVxuICAgIHJldHVybiBmYWxsYmFja0xhbmc/LltrZXldXG4gIH1cblxuICAvKipcbiAgICogRXNjYXBlIHZhcmlhYmxlIHN5bnRheFxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IHN0clxuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICBlc2NhcGVkIHN0clxuICAgKi9cbiAgbWFrZVNhZmUoc3RyKSB7XG4gICAgY29uc3QgbWFwT2JqID0ge1xuICAgICAgJ3snOiBTdHJpbmcucmF3YFxce2AsXG4gICAgICAnfSc6IFN0cmluZy5yYXdgXFx9YCxcbiAgICAgICd8JzogU3RyaW5nLnJhd2BcXHxgLFxuICAgIH1cblxuICAgIGNvbnN0IGVzY2FwZWRTdHIgPSBzdHIucmVwbGFjZUFsbCgvW3t9fF0vZywgbWF0Y2hlZCA9PiBtYXBPYmpbbWF0Y2hlZF0pXG5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChlc2NhcGVkU3RyLCAnZycpXG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJpbHkgcHV0IGEgc3RyaW5nIGludG8gdGhlIGN1cnJlbnRseSBsb2FkZWQgbGFuZ3VhZ2UsIG9yIHRoZSBnaXZlbiBsb2NhbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBrZXlcbiAgICogQHBhcmFtICB7U3RyaW5nfSBzdHJpbmdcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgb3B0aW9uYWwgbG9jYWxlIHRvIHdyaXRlIHRvXG4gICAqIEByZXR1cm4ge1N0cmluZ30gc3RyaW5nIGluIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIHB1dChrZXksIHN0cmluZywgbG9jYWxlKSB7XG4gICAgbGV0IGxhbmdcbiAgICBpZiAobG9jYWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxhbmcgPSB0aGlzLmN1cnJlbnQgfHwgKHRoaXMubGFuZ3NbdGhpcy5sb2NhbGVdID8/PSB7fSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGFuZyA9IHRoaXMubGFuZ3NbbG9jYWxlXSA/Pz0ge31cbiAgICB9XG4gICAgbGFuZ1trZXldID0gc3RyaW5nXG5cbiAgICByZXR1cm4gc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYXJndW1lbnRzIGZvciB0aGUgcmVxdWVzdGVkIHN0cmluZ1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGtleSAgdGhlIGtleSB3ZSB1c2UgdG8gbG9va3VwIG91ciB0cmFuc2xhdGlvblxuICAgKiBAcGFyYW0gIHttdWx0aX0gIGFyZ3MgIHN0cmluZywgbnVtYmVyIG9yIG9iamVjdCBjb250YWluaW5nIG91ciBhcmd1bWVudHNcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGUgb3B0aW9uYWwgbG9jYWxlLCBkZWZhdWx0cyB0byB0aGUgY3VycmVudCBsb2NhbGVcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgIHVwZGF0ZWQgc3RyaW5nIHRyYW5zbGF0aW9uXG4gICAqL1xuICBnZXQoa2V5LCBhcmdzLCBsb2NhbGUgPSB0aGlzLmxvY2FsZSkge1xuICAgIGNvbnN0IHN0cmljdCA9IEJvb2xlYW4odGhpcy5jb25maWcuZmFsbGJhY2tMb2NhbGUpXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZShrZXksIGxvY2FsZSlcblxuICAgIGlmICghaXNQcmVzZW50KHZhbHVlLCBzdHJpY3QpKSB7XG4gICAgICBjb25zdCBjb3VudCA9IGdldENvdW50KGFyZ3MpXG4gICAgICB2YWx1ZSA9IGNvdW50ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB0aGlzLmdldFBsdXJhbFZhbHVlKGtleSwgY291bnQsIGxvY2FsZSlcbiAgICB9XG5cbiAgICBpZiAoIWlzUHJlc2VudCh2YWx1ZSwgc3RyaWN0KSkge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlTWlzc2luZyh7IGtleSwgbG9jYWxlLCB0eXBlOiAna2V5JyB9KVxuICAgIH1cblxuICAgIC8vIE5vIHJlcGxhY2VtZW50IG5lZWRlZCBpZiBubyBhcmdzIHByb3ZpZGVkXG4gICAgaWYgKCFhcmdzICYmIGFyZ3MgIT09IDApIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIGNvbnN0IHRva2VucyA9IHZhbHVlLm1hdGNoKC9cXHtbXn1dKz9cXH0vZylcblxuICAgIC8vIE5vIHRva2VucyB0byByZXBsYWNlXG4gICAgaWYgKCF0b2tlbnMpIHtcbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH1cblxuICAgIC8vIE9iamVjdCBhcmdzOiByZXBsYWNlIGVhY2ggdG9rZW4gd2l0aCBjb3JyZXNwb25kaW5nIGtleVxuICAgIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5zKSB7XG4gICAgICAgIGNvbnN0IHRva2VuS2V5ID0gdG9rZW4uc2xpY2UoMSwgLTEpXG4gICAgICAgIGxldCByZXBsYWNlbWVudCA9IGFyZ3NbdG9rZW5LZXldXG4gICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdW5kZWZpbmVkIHx8IHJlcGxhY2VtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgcmVwbGFjZW1lbnQgPSB0aGlzLmhhbmRsZU1pc3NpbmcoeyBrZXksIGxvY2FsZSwgdHlwZTogJ2FyZycsIGFyZzogdG9rZW5LZXkgfSkgPz8gJydcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UodGhpcy5tYWtlU2FmZSh0b2tlbiksIHJlcGxhY2VtZW50KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmltaXRpdmUgYXJnczogcmVwbGFjZSBhbGwgdG9rZW5zIHdpdGggc2FtZSB2YWx1ZVxuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlQWxsKC9cXHtbXn1dKz9cXH0vZywgYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWtlIGdldCgpIGJ1dCBhbHdheXMgcmV0dXJucyBhIHN0cmluZywgZmFsbGluZyBiYWNrIHRvIHRoZSBrZXkgaXRzZWxmXG4gICAqIEBwYXJhbSAge1N0cmluZ30ga2V5ICB0aGUga2V5IHdlIHVzZSB0byBsb29rdXAgb3VyIHRyYW5zbGF0aW9uXG4gICAqIEBwYXJhbSAge211bHRpfSAgYXJncyAgc3RyaW5nLCBudW1iZXIgb3Igb2JqZWN0IGNvbnRhaW5pbmcgb3VyIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZSBvcHRpb25hbCBsb2NhbGUsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGxvY2FsZVxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IHRyYW5zbGF0ZWQgc3RyaW5nIG9yIGtleVxuICAgKi9cbiAgdChrZXksIGFyZ3MsIGxvY2FsZSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5LCBhcmdzLCBsb2NhbGUpXG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyBrZXkgOiB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHRyYW5zbGF0ZSBmdW5jdGlvbiBib3VuZCB0byBhIGxvY2FsZVxuICAgKiBAcGFyYW0gIHtTdHJpbmd9IGxvY2FsZVxuICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gKGtleSwgYXJncykgPT4gc3RyaW5nXG4gICAqL1xuICBmb3JMb2NhbGUobG9jYWxlKSB7XG4gICAgcmV0dXJuIChrZXksIGFyZ3MpID0+IHRoaXMudChrZXksIGFyZ3MsIGxvY2FsZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kOiBQcm9jZXNzIGEgbGFuZ3VhZ2UgZmlsZSBmcm9tIHJhdyB0ZXh0XG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmVzcG9uc2VcbiAgICogQHJldHVybiB7T2JqZWN0fSBwcm9jZXNzZWQgbGFuZ3VhZ2VcbiAgICovXG4gIHN0YXRpYyBwcm9jZXNzRmlsZShyZXNwb25zZSkge1xuICAgIC8vIGJsYW5rIGxpbmVzIGFyZSBpZ25vcmVkIGJ5IGZyb21GaWxlXG4gICAgcmV0dXJuIEkxOE4uZnJvbUZpbGUocmVzcG9uc2UpXG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZDogVHVybiByYXcgdGV4dCBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlcyBpbnRvIGZhbmN5IEpTT05cbiAgICogU3VwcG9ydHMgYCNgIGFuZCBgO2AgZnVsbC1saW5lIGNvbW1lbnRzIGFuZCB0cmFpbGluZyBgXFxgIGxpbmUgY29udGludWF0aW9uXG4gICAqIEBwYXJhbSAge1N0cmluZ30gcmF3VGV4dFxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGNvbnZlcnRlZCBsYW5ndWFnZSBmaWxlXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGUocmF3VGV4dCkge1xuICAgIGNvbnN0IGxpbmVzID0gU3RyaW5nKHJhd1RleHQpLnJlcGxhY2VBbGwoJ1xcclxcbicsICdcXG4nKS5zcGxpdCgnXFxuJylcbiAgICBjb25zdCBsYW5nID0ge31cbiAgICBjb25zdCByZWdleCA9IC9eKC4rPykgKj89ICo/KFteXFxuXSspL1xuICAgIGNvbnN0IHBhcnNlTGluZSA9IGxpbmUgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IHJlZ2V4LmV4ZWMobGluZSlcbiAgICAgIGNvbnN0IGtleSA9IG1hdGNoZXM/LlsxXS50cmltKClcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgbGFuZ1trZXldID0gbWF0Y2hlc1syXS50cmltKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgY29udGludWVkID0gbnVsbFxuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgbGV0IGxvZ2ljYWxMaW5lID0gbGluZVxuICAgICAgaWYgKGNvbnRpbnVlZCAhPT0gbnVsbCkge1xuICAgICAgICBsb2dpY2FsTGluZSA9IGNvbnRpbnVlZCArIGxpbmUudHJpbVN0YXJ0KClcbiAgICAgICAgY29udGludWVkID0gbnVsbFxuICAgICAgfSBlbHNlIGlmICgvXlxccypbIztdLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIGEgc2luZ2xlIHRyYWlsaW5nIGJhY2tzbGFzaCBqb2lucyB0aGUgbmV4dCBsaW5lXG4gICAgICBpZiAoLyhefFteXFxcXF0pXFxcXCQvLnRlc3QobG9naWNhbExpbmUpKSB7XG4gICAgICAgIGNvbnRpbnVlZCA9IGxvZ2ljYWxMaW5lLnNsaWNlKDAsIC0xKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBwYXJzZUxpbmUobG9naWNhbExpbmUpXG4gICAgfVxuXG4gICAgaWYgKGNvbnRpbnVlZCAhPT0gbnVsbCkge1xuICAgICAgcGFyc2VMaW5lKGNvbnRpbnVlZClcbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZ1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2Q6IFBhcnNlIHRoZSBjb250ZW50cyBvZiBhIGAubGFuZ2AgZmlsZSwgYWxpYXMgb2YgcHJvY2Vzc0ZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSB0ZXh0XG4gICAqIEByZXR1cm4ge09iamVjdH0gcHJvY2Vzc2VkIGxhbmd1YWdlXG4gICAqL1xuICBzdGF0aWMgcGFyc2UodGV4dCkge1xuICAgIHJldHVybiBJMThOLnByb2Nlc3NGaWxlKHRleHQpXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHJldHVybiB7STE4TkJhc2V9IHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldEluc3RhbmNlKG9wdGlvbnMpIHtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZSA9IG5ldyBJMThOQmFzZShvcHRpb25zKVxuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc2luZ2xldG9uIGluc3RhbmNlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gICAqL1xuICBzdGF0aWMgcmVzZXRJbnN0YW5jZSgpIHtcbiAgICBpbnN0YW5jZSA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGEgcmVtb3RlbHkgc3RvcmVkIGxhbmd1YWdlIGZpbGVcbiAgICogQHBhcmFtICB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtICB7Qm9vbGVhbn0gdXNlQ2FjaGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gICAgICAgcmVzb2x2ZXMgcmVzcG9uc2VcbiAgICovXG4gIGFzeW5jIGxvYWRMYW5nKGxvY2FsZSwgdXNlQ2FjaGUgPSB0cnVlKSB7XG4gICAgLy8gUmV0dXJuIGNhY2hlZCBsYW5ndWFnZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgIGlmICh0aGlzLmxvYWRlZC5pbmNsdWRlcyhsb2NhbGUpICYmIHVzZUNhY2hlKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nc1tsb2NhbGVdXG4gICAgfVxuICAgIC8vIEZldGNoIGFuZCBwcm9jZXNzIGxhbmd1YWdlIGZpbGVcbiAgICBjb25zdCBsYW5nRmlsZSA9IGAke3RoaXMuY29uZmlnLmxvY2F0aW9ufSR7bG9jYWxlfSR7dGhpcy5jb25maWcuZXh0ZW5zaW9ufWBcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYW5nID0gYXdhaXQgZmV0Y2hEYXRhKGxhbmdGaWxlKVxuICAgICAgY29uc3QgcHJvY2Vzc2VkRmlsZSA9IHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJyA/IEkxOE5CYXNlLnByb2Nlc3NGaWxlKGxhbmcpIDogbGFuZ1xuICAgICAgdGhpcy5hcHBseUxhbmd1YWdlKGxvY2FsZSwgcHJvY2Vzc2VkRmlsZSlcbiAgICAgIHJldHVybiB0aGlzLmxhbmdzW2xvY2FsZV1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgcmV0dXJuIHRoaXMuYXBwbHlMYW5ndWFnZShsb2NhbGUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGFwcGxpZXMgb3ZlcnJpZGVzIGZyb20gY29uZmlnXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbGVcbiAgICogQHBhcmFtIHtPYmplY3R9IGxhbmdcbiAgICogQHJldHVybiB7T2JqZWN0fSBvdmVycmlkZW4gbGFuZ3VhZ2VcbiAgICovXG4gIGFwcGx5TGFuZ3VhZ2UobG9jYWxlLCBsYW5nID0ge30pIHtcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuY29uZmlnLm92ZXJyaWRlW2xvY2FsZV0gfHwge31cbiAgICBjb25zdCBleGlzdGluZ0xhbmcgPSB0aGlzLmxhbmdzW2xvY2FsZV0gfHwge31cbiAgICB0aGlzLmxhbmdzW2xvY2FsZV0gPSB7IC4uLmV4aXN0aW5nTGFuZywgLi4ubGFuZywgLi4ub3ZlcnJpZGUgfVxuICAgIC8vIGtlZXAgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgcmVmZXJlbmNlIGluIHN5bmNcbiAgICBpZiAodGhpcy5jdXJyZW50ICYmIGxvY2FsZSA9PT0gdGhpcy5sb2NhbGUpIHtcbiAgICAgIHRoaXMuY3VycmVudCA9IHRoaXMubGFuZ3NbbG9jYWxlXVxuICAgIH1cbiAgICBwdXNoVW5pcXVlKHRoaXMubG9hZGVkLCBsb2NhbGUpXG4gICAgcmV0dXJuIHRoaXMubGFuZ3NbbG9jYWxlXVxuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiBjdXJyZW50bHkgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAcmV0dXJuIHtPYmplY3R9IGFsbCBjb25maWd1cmVkIGxhbmd1YWdlc1xuICAgKi9cbiAgZ2V0IGdldExhbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5sYW5nc1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHQgdG8gc2V0IHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBsb2NhbCBwcm92aWRlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gICBsb2NhbGVcbiAgICogQHJldHVybiB7UHJvbWlzZX0gbGFuZ3VhZ2VcbiAgICovXG4gIGFzeW5jIHNldEN1cnJlbnQobG9jYWxlID0gJ2VuLVVTJykge1xuICAgIGlmICghdGhpcy5sb2FkZWQuaW5jbHVkZXMobG9jYWxlKSkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkTGFuZyhsb2NhbGUpXG4gICAgfVxuXG4gICAgdGhpcy5sb2NhbGUgPSBsb2NhbGVcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLmxhbmdzW2xvY2FsZV1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRcbiAgfVxufVxuXG4vKipcbiAqIFByb3h5IHdyYXBwZXIgdGhhdCBlbmFibGVzIHNpbmdsZXRvbiBwYXR0ZXJuOlxuICogLSBJMThOKCkgcmV0dXJucyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXG4gKiAtIG5ldyBJMThOKCkgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICovXG5leHBvcnQgY29uc3QgSTE4TiA9IG5ldyBQcm94eShJMThOQmFzZSwge1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gSTE4TigpIGlzIGludm9rZWQgYXMgYSBmdW5jdGlvbiAod2l0aG91dCBuZXcpXG4gICAqIFJldHVybnMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdzKSB7XG4gICAgcmV0dXJuIHRhcmdldC5nZXRJbnN0YW5jZSguLi5hcmdzKVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBuZXcgSTE4TigpIGlzIGludm9rZWRcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0KHRhcmdldCwgYXJncykge1xuICAgIHJldHVybiBuZXcgdGFyZ2V0KC4uLmFyZ3MpXG4gIH0sXG5cbiAgLyoqXG4gICAqIFByb3h5IHByb3BlcnR5IGFjY2VzcyB0byB0aGUgYmFzZSBjbGFzc1xuICAgKi9cbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIHJldHVybiB0YXJnZXRbcHJvcF1cbiAgfSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEkxOE4uZ2V0SW5zdGFuY2UoKVxuIl0sIm1hcHBpbmdzIjoiQyxzVEFBdUJVLE9BQU9NLE9BQU8sQ0FBRUMsT0FBUSxNQUFPQyxL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
|
package/dist/i18n.umd.min.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draggable/i18n",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A simple yet robust i18n solution for universal JavaScript apps.",
|
|
5
5
|
"main": "dist/i18n.es.min.js",
|
|
6
|
+
"module": "dist/i18n.es.min.js",
|
|
7
|
+
"types": "dist/i18n.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./dist/i18n.d.ts",
|
|
12
|
+
"default": "./dist/i18n.es.min.js"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./dist/i18n.d.cts",
|
|
16
|
+
"default": "./dist/i18n.cjs"
|
|
17
|
+
},
|
|
18
|
+
"default": "./dist/i18n.es.min.js"
|
|
19
|
+
},
|
|
20
|
+
"./dist/*": "./dist/*",
|
|
21
|
+
"./package.json": "./package.json"
|
|
22
|
+
},
|
|
6
23
|
"type": "module",
|
|
7
24
|
"files": [
|
|
8
25
|
"dist/"
|
|
@@ -11,14 +28,18 @@
|
|
|
11
28
|
"access": "public"
|
|
12
29
|
},
|
|
13
30
|
"scripts": {
|
|
14
|
-
"test": "
|
|
15
|
-
"test:
|
|
31
|
+
"test": "npm run test:unit && npm run test:types",
|
|
32
|
+
"test:unit": "node --test src/**/*.test.js",
|
|
33
|
+
"test:types": "tsc -p test/types/tsconfig.json",
|
|
34
|
+
"test:dist": "node test/dist.test.js",
|
|
35
|
+
"test:watch": "node --test --watch src/**/*.test.js",
|
|
16
36
|
"lint": "biome lint ./src",
|
|
17
37
|
"lint:fix": "biome format ./src --write",
|
|
18
38
|
"start": "webpack-dev-server --mode development",
|
|
19
39
|
"semantic-release": "semantic-release",
|
|
20
40
|
"dev": "vite",
|
|
21
41
|
"build": "vite build",
|
|
42
|
+
"postbuild": "npm run test:dist",
|
|
22
43
|
"preview": "vite preview"
|
|
23
44
|
},
|
|
24
45
|
"repository": {
|
|
@@ -52,6 +73,7 @@
|
|
|
52
73
|
"lint-staged": "^17.0.3",
|
|
53
74
|
"semantic-release": "^25.0.3",
|
|
54
75
|
"terser": "^5.47.1",
|
|
76
|
+
"typescript": "^5.9.3",
|
|
55
77
|
"vite": "^8.1.6",
|
|
56
78
|
"vite-plugin-banner": "^0.8.0",
|
|
57
79
|
"vite-plugin-compression": "^0.5.1"
|