Add build and allow dist

This commit is contained in:
2022-02-14 16:15:32 +07:00
parent 3d8f9c5d78
commit 3c12c69606
39 changed files with 11173 additions and 3 deletions

12
dist/crypto/core/default.crypto.d.ts vendored Normal file
View File

@@ -0,0 +1,12 @@
/// <reference types="node" />
declare const encrypt: (
data: string | Buffer,
key: string | Buffer,
iv?: string | Buffer | null | undefined
) => string
declare const decrypt: (
data: string | Buffer,
key: string | Buffer,
iv?: string | Buffer | null | undefined
) => string
export { encrypt, decrypt }

82
dist/crypto/core/default.crypto.js vendored Normal file
View File

@@ -0,0 +1,82 @@
"use strict"
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k
Object.defineProperty(o, k2, {
enumerable: true,
get: function () {
return m[k]
},
})
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k
o[k2] = m[k]
})
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, "default", {
enumerable: true,
value: v,
})
}
: function (o, v) {
o["default"] = v
})
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod
var result = {}
if (mod != null)
for (var k in mod)
if (
k !== "default" &&
Object.prototype.hasOwnProperty.call(mod, k)
)
__createBinding(result, mod, k)
__setModuleDefault(result, mod)
return result
}
Object.defineProperty(exports, "__esModule", { value: true })
exports.decrypt = exports.encrypt = void 0
var crypto = __importStar(require("crypto"))
var config_1 = require("../../config")
var util_1 = require("../../util")
var encrypt = function (data, key, iv) {
var cipher = crypto.createCipheriv(
config_1.DEFAULT_AES_ALGORITHM,
(0, util_1.stringToBuffer)(key),
(0, util_1.stringToBuffer)(iv || key)
)
var _data = (0, util_1.bufferToString)(data)
var encrypted = cipher.update(
_data,
config_1.DEFAULT_ENCODING_TYPE,
config_1.DEFAULT_BUFFER_TYPE
)
encrypted += cipher.final(config_1.DEFAULT_BUFFER_TYPE)
return encrypted
}
exports.encrypt = encrypt
var decrypt = function (data, key, iv) {
var decipher = crypto.createDecipheriv(
config_1.DEFAULT_AES_ALGORITHM,
(0, util_1.stringToBuffer)(key),
(0, util_1.stringToBuffer)(iv || key)
)
var _data = (0, util_1.bufferToString)(data)
var decrypted = decipher.update(
_data,
config_1.DEFAULT_BUFFER_TYPE,
config_1.DEFAULT_ENCODING_TYPE
)
decrypted += decipher.final(config_1.DEFAULT_ENCODING_TYPE)
return decrypted
}
exports.decrypt = decrypt
//# sourceMappingURL=default.crypto.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"default.crypto.js","sourceRoot":"","sources":["../../../src/crypto/core/default.crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgC;AAChC,uCAIqB;AACrB,mCAA2D;AAE3D,IAAM,OAAO,GAAG,UACZ,IAAqB,EACrB,GAAoB,EACpB,EAA2B;IAE3B,IAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAChC,8BAAqB,EACrB,IAAA,qBAAc,EAAC,GAAG,CAAC,EACnB,IAAA,qBAAc,EAAC,EAAE,IAAI,GAAG,CAAC,CAC5B,CAAA;IACD,IAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAA;IAClC,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CACzB,KAAK,EACL,8BAAqB,EACrB,4BAAmB,CACtB,CAAA;IACD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,4BAAmB,CAAC,CAAA;IAC9C,OAAO,SAAS,CAAA;AACpB,CAAC,CAAA;AAsBQ,0BAAO;AApBhB,IAAM,OAAO,GAAG,UACZ,IAAqB,EACrB,GAAoB,EACpB,EAA2B;IAE3B,IAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACpC,8BAAqB,EACrB,IAAA,qBAAc,EAAC,GAAG,CAAC,EACnB,IAAA,qBAAc,EAAC,EAAE,IAAI,GAAG,CAAC,CAC5B,CAAA;IACD,IAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAA;IAClC,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC3B,KAAK,EACL,4BAAmB,EACnB,8BAAqB,CACxB,CAAA;IACD,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,8BAAqB,CAAC,CAAA;IAClD,OAAO,SAAS,CAAA;AACpB,CAAC,CAAA;AAEiB,0BAAO"}

11
dist/crypto/core/e2e.crypto.d.ts vendored Normal file
View File

@@ -0,0 +1,11 @@
/// <reference types="node" />
declare const encrypt: (
data: string | Buffer,
privateOrPublicKey: string
) => string
declare const decrypt: (
data: string | Buffer,
privateKey: string,
passphrase?: string | null | undefined
) => string
export { encrypt, decrypt }

68
dist/crypto/core/e2e.crypto.js vendored Normal file
View File

@@ -0,0 +1,68 @@
"use strict"
var __createBinding =
(this && this.__createBinding) ||
(Object.create
? function (o, m, k, k2) {
if (k2 === undefined) k2 = k
Object.defineProperty(o, k2, {
enumerable: true,
get: function () {
return m[k]
},
})
}
: function (o, m, k, k2) {
if (k2 === undefined) k2 = k
o[k2] = m[k]
})
var __setModuleDefault =
(this && this.__setModuleDefault) ||
(Object.create
? function (o, v) {
Object.defineProperty(o, "default", {
enumerable: true,
value: v,
})
}
: function (o, v) {
o["default"] = v
})
var __importStar =
(this && this.__importStar) ||
function (mod) {
if (mod && mod.__esModule) return mod
var result = {}
if (mod != null)
for (var k in mod)
if (
k !== "default" &&
Object.prototype.hasOwnProperty.call(mod, k)
)
__createBinding(result, mod, k)
__setModuleDefault(result, mod)
return result
}
Object.defineProperty(exports, "__esModule", { value: true })
exports.decrypt = exports.encrypt = void 0
var crypto = __importStar(require("crypto"))
var config_1 = require("../../config")
var util_1 = require("../../util")
var encrypt = function (data, privateOrPublicKey) {
var buffer = (0, util_1.stringToBuffer)(data)
var encrypted = crypto.publicEncrypt(privateOrPublicKey, buffer)
return encrypted.toString(config_1.DEFAULT_BUFFER_TYPE)
}
exports.encrypt = encrypt
var decrypt = function (data, privateKey, passphrase) {
var buffer = (0, util_1.stringToBuffer)(data)
var decrypted = crypto.privateDecrypt(
{
key: privateKey,
passphrase: passphrase || "",
},
buffer
)
return decrypted.toString(config_1.DEFAULT_ENCODING_TYPE)
}
exports.decrypt = decrypt
//# sourceMappingURL=e2e.crypto.js.map

1
dist/crypto/core/e2e.crypto.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"e2e.crypto.js","sourceRoot":"","sources":["../../../src/crypto/core/e2e.crypto.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgC;AAEhC,uCAAyE;AACzE,mCAA2C;AAE3C,IAAM,OAAO,GAAG,UAAC,IAAqB,EAAE,kBAA0B;IAC9D,IAAM,MAAM,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAA;IACnC,IAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;IAClE,OAAO,SAAS,CAAC,QAAQ,CAAC,4BAAmB,CAAC,CAAA;AAClD,CAAC,CAAA;AAkBQ,0BAAO;AAhBhB,IAAM,OAAO,GAAG,UACZ,IAAqB,EACrB,UAAkB,EAClB,UAA0B;IAE1B,IAAM,MAAM,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAA;IACnC,IAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CACnC;QACI,GAAG,EAAE,UAAU;QACf,UAAU,EAAE,UAAU,IAAI,EAAE;KAC/B,EACD,MAAM,CACT,CAAA;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC,8BAAqB,CAAC,CAAA;AACpD,CAAC,CAAA;AAEiB,0BAAO"}

10
dist/crypto/crypto.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
/// <reference types="node" />
import { ICryptoProvider } from "./provider.crypto"
export declare class CryptoProvider {
private readonly provider
constructor(provider: ICryptoProvider)
encrypt(data: string | Buffer): string
decrypt(data: string): string
private static _instance
static newInstance(provider: ICryptoProvider): CryptoProvider
}

23
dist/crypto/crypto.js vendored Normal file
View File

@@ -0,0 +1,23 @@
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.CryptoProvider = void 0
var CryptoProvider = /** @class */ (function () {
function CryptoProvider(provider) {
this.provider = provider
}
CryptoProvider.prototype.encrypt = function (data) {
return this.provider.encrypt(data)
}
CryptoProvider.prototype.decrypt = function (data) {
return this.provider.decrypt(data)
}
CryptoProvider.newInstance = function (provider) {
if (!CryptoProvider._instance) {
CryptoProvider._instance = new CryptoProvider(provider)
}
return CryptoProvider._instance
}
return CryptoProvider
})()
exports.CryptoProvider = CryptoProvider
//# sourceMappingURL=crypto.js.map

1
dist/crypto/crypto.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/crypto/crypto.ts"],"names":[],"mappings":";;;AAEA;IACI,wBAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAEnD,gCAAO,GAAd,UAAe,IAAqB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAEM,gCAAO,GAAd,UAAe,IAAY;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAGa,0BAAW,GAAzB,UAA0B,QAAyB;QAC/C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;YAC3B,cAAc,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;SAC1D;QACD,OAAO,cAAc,CAAC,SAAS,CAAA;IACnC,CAAC;IACL,qBAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,wCAAc"}

16
dist/crypto/index.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
import { decrypt, encrypt } from "./core/default.crypto"
import { encrypt as e2eEncrypt, decrypt as e2eDecrypt } from "./core/e2e.crypto"
import { CryptoProvider } from "./crypto"
import { ICryptoProvider } from "./provider.crypto"
import { DefaultCryptoProvider } from "./provider/default.provider"
import { E2ECryptoProvider } from "./provider/e2e.provider"
export {
encrypt,
decrypt,
e2eEncrypt,
e2eDecrypt,
ICryptoProvider,
DefaultCryptoProvider,
E2ECryptoProvider,
CryptoProvider,
}

58
dist/crypto/index.js vendored Normal file
View File

@@ -0,0 +1,58 @@
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.CryptoProvider =
exports.E2ECryptoProvider =
exports.DefaultCryptoProvider =
exports.e2eDecrypt =
exports.e2eEncrypt =
exports.decrypt =
exports.encrypt =
void 0
var default_crypto_1 = require("./core/default.crypto")
Object.defineProperty(exports, "decrypt", {
enumerable: true,
get: function () {
return default_crypto_1.decrypt
},
})
Object.defineProperty(exports, "encrypt", {
enumerable: true,
get: function () {
return default_crypto_1.encrypt
},
})
var e2e_crypto_1 = require("./core/e2e.crypto")
Object.defineProperty(exports, "e2eEncrypt", {
enumerable: true,
get: function () {
return e2e_crypto_1.encrypt
},
})
Object.defineProperty(exports, "e2eDecrypt", {
enumerable: true,
get: function () {
return e2e_crypto_1.decrypt
},
})
var crypto_1 = require("./crypto")
Object.defineProperty(exports, "CryptoProvider", {
enumerable: true,
get: function () {
return crypto_1.CryptoProvider
},
})
var default_provider_1 = require("./provider/default.provider")
Object.defineProperty(exports, "DefaultCryptoProvider", {
enumerable: true,
get: function () {
return default_provider_1.DefaultCryptoProvider
},
})
var e2e_provider_1 = require("./provider/e2e.provider")
Object.defineProperty(exports, "E2ECryptoProvider", {
enumerable: true,
get: function () {
return e2e_provider_1.E2ECryptoProvider
},
})
//# sourceMappingURL=index.js.map

1
dist/crypto/index.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AASpD,wFATK,wBAAO,OASL;AADP,wFARc,wBAAO,OAQd;AAPX,gDAAgF;AAS5E,2FATgB,oBAAU,OAShB;AACV,2FAVuC,oBAAU,OAUvC;AATd,mCAAyC;AAerC,+FAfK,uBAAc,OAeL;AAblB,gEAAmE;AAU/D,sGAVK,wCAAqB,OAUL;AATzB,wDAA2D;AAUvD,kGAVK,gCAAiB,OAUL"}

5
dist/crypto/provider.crypto.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
/// <reference types="node" />
export interface ICryptoProvider {
encrypt(data: string | Buffer): string
decrypt(data: string): string
}

3
dist/crypto/provider.crypto.js vendored Normal file
View File

@@ -0,0 +1,3 @@
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
//# sourceMappingURL=provider.crypto.js.map

1
dist/crypto/provider.crypto.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"provider.crypto.js","sourceRoot":"","sources":["../../src/crypto/provider.crypto.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,16 @@
/// <reference types="node" />
import { ICryptoProvider } from "../provider.crypto"
interface DefaultCryptoProviderOptions {
key?: string | Buffer | null | undefined
iv?: string | Buffer | null | undefined
keyiVPath?: string | null | undefined
jsonPath?: string | null | undefined
}
export declare class DefaultCryptoProvider implements ICryptoProvider {
private _key
private _iv
constructor(options: DefaultCryptoProviderOptions)
encrypt(data: string | Buffer): string
decrypt(data: string): string
}
export {}

View File

@@ -0,0 +1,35 @@
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.DefaultCryptoProvider = void 0
var util_1 = require("../../util")
var default_crypto_1 = require("./../core/default.crypto")
var DefaultCryptoProvider = /** @class */ (function () {
function DefaultCryptoProvider(options) {
var key = options.key,
iv = options.iv,
keyiVPath = options.keyiVPath,
jsonPath = options.jsonPath
if (keyiVPath) {
var json = (0, util_1.readFileToJson)(keyiVPath)
this._key = json.key
this._iv = json.iv
} else if (jsonPath) {
var json = (0, util_1.readFileToJson)(jsonPath)
this._key = (0, util_1.readFileToString)(json.keyPath)
this._iv = (0, util_1.readFileToString)(json.ivPath)
} else {
this._key = key
this._iv = iv || key
}
;(0, util_1.assertNotNullOrUndefined)(this._key, "key is required")
}
DefaultCryptoProvider.prototype.encrypt = function (data) {
return (0, default_crypto_1.encrypt)(data, this._key, this._iv)
}
DefaultCryptoProvider.prototype.decrypt = function (data) {
return (0, default_crypto_1.decrypt)(data, this._key, this._iv)
}
return DefaultCryptoProvider
})()
exports.DefaultCryptoProvider = DefaultCryptoProvider
//# sourceMappingURL=default.provider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"default.provider.js","sourceRoot":"","sources":["../../../src/crypto/provider/default.provider.ts"],"names":[],"mappings":";;;AAAA,mCAImB;AAEnB,2DAAyE;AASzE;IAII,+BAAY,OAAqC;QACrC,IAAA,GAAG,GAA8B,OAAO,IAArC,EAAE,EAAE,GAA0B,OAAO,GAAjC,EAAE,SAAS,GAAe,OAAO,UAAtB,EAAE,QAAQ,GAAK,OAAO,SAAZ,CAAY;QAEhD,IAAI,SAAS,EAAE;YACX,IAAM,IAAI,GAAQ,IAAA,qBAAc,EAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;YACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAA;SACrB;aAAM,IAAI,QAAQ,EAAE;YACjB,IAAM,IAAI,GAAQ,IAAA,qBAAc,EAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,CAAC,IAAI,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,CAAC,GAAG,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAC3C;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;YACf,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,CAAA;SACvB;QAED,IAAA,+BAAwB,EAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IAED,uCAAO,GAAP,UAAQ,IAAqB;QACzB,OAAO,IAAA,wBAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,uCAAO,GAAP,UAAQ,IAAY;QAChB,OAAO,IAAA,wBAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IACL,4BAAC;AAAD,CAAC,AA9BD,IA8BC;AA9BY,sDAAqB"}

17
dist/crypto/provider/e2e.provider.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
/// <reference types="node" />
import { ICryptoProvider } from "../provider.crypto"
interface E2ECryptoProviderOptions {
privateKey?: string | Buffer | null | undefined
publicKey?: string | Buffer | null | undefined
privateKeyPath?: string | null | undefined
publicKeyPath?: string | null | undefined
jsonPath?: string | null | undefined
}
export declare class E2ECryptoProvider implements ICryptoProvider {
private privateKey
private publicKey
constructor(options: E2ECryptoProviderOptions)
encrypt(data: string | Buffer): string
decrypt(data: string): string
}
export {}

79
dist/crypto/provider/e2e.provider.js vendored Normal file
View File

@@ -0,0 +1,79 @@
"use strict"
Object.defineProperty(exports, "__esModule", { value: true })
exports.E2ECryptoProvider = void 0
var __1 = require("..")
var util_1 = require("../../util")
var E2ECryptoProvider = /** @class */ (function () {
function E2ECryptoProvider(options) {
var privateKey = options.privateKey,
publicKey = options.publicKey,
privateKeyPath = options.privateKeyPath,
publicKeyPath = options.publicKeyPath,
jsonPath = options.jsonPath
var isPrivateKeyInitialized = false
var isPublicKeyInitialized = false
if (privateKeyPath) {
this.privateKey = (0, util_1.readFileToString)(privateKeyPath)
isPrivateKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.privateKey
)
}
if (publicKeyPath) {
this.publicKey = (0, util_1.readFileToString)(publicKeyPath)
isPublicKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.publicKey
)
}
if (!isPrivateKeyInitialized && !isPublicKeyInitialized && jsonPath) {
var json = (0, util_1.readFileToJson)(jsonPath)
if (json.privateKey) {
this.privateKey = json.privateKey
isPrivateKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.privateKey
)
}
if (json.publicKey) {
this.publicKey = json.publicKey
isPublicKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.publicKey
)
}
if (!isPrivateKeyInitialized && json.privateKeyPath) {
this.privateKey = (0, util_1.readFileToString)(
json.privateKeyPath
)
isPrivateKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.privateKey
)
}
if (!isPublicKeyInitialized && json.publicKeyPath) {
this.publicKey = (0, util_1.readFileToString)(
json.publicKeyPath
)
isPublicKeyInitialized = !(0, util_1.isNullOrUndefinedOrEmpty)(
this.publicKey
)
}
}
if (!isPrivateKeyInitialized) {
this.privateKey = privateKey
}
if (!isPublicKeyInitialized) {
this.publicKey = publicKey
}
;(0, util_1.assertNotNullOrUndefined)(
this.privateKey,
"Private key is required"
)
}
E2ECryptoProvider.prototype.encrypt = function (data) {
var key = this.publicKey || this.privateKey
return (0, __1.e2eEncrypt)(data, key.toString())
}
E2ECryptoProvider.prototype.decrypt = function (data) {
return (0, __1.e2eDecrypt)(data, this.privateKey.toString())
}
return E2ECryptoProvider
})()
exports.E2ECryptoProvider = E2ECryptoProvider
//# sourceMappingURL=e2e.provider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"e2e.provider.js","sourceRoot":"","sources":["../../../src/crypto/provider/e2e.provider.ts"],"names":[],"mappings":";;;AAAA,wBAA2C;AAC3C,mCAKmB;AAWnB;IAII,2BAAY,OAAiC;QAErC,IAAA,UAAU,GAKV,OAAO,WALG,EACV,SAAS,GAIT,OAAO,UAJE,EACT,cAAc,GAGd,OAAO,eAHO,EACd,aAAa,GAEb,OAAO,cAFM,EACb,QAAQ,GACR,OAAO,SADC,CACD;QAEX,IAAI,uBAAuB,GAAG,KAAK,CAAA;QACnC,IAAI,sBAAsB,GAAG,KAAK,CAAA;QAClC,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAA,uBAAgB,EAAC,cAAc,CAAC,CAAA;YAClD,uBAAuB,GAAG,CAAC,IAAA,+BAAwB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACvE;QAED,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,IAAA,uBAAgB,EAAC,aAAa,CAAC,CAAA;YAChD,sBAAsB,GAAG,CAAC,IAAA,+BAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SACrE;QAED,IAAI,CAAC,uBAAuB,IAAI,CAAC,sBAAsB,IAAI,QAAQ,EAAE;YACjE,IAAM,IAAI,GAAG,IAAA,qBAAc,EAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;gBACjC,uBAAuB,GAAG,CAAC,IAAA,+BAAwB,EAC/C,IAAI,CAAC,UAAU,CAClB,CAAA;aACJ;YAED,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;gBAC/B,sBAAsB,GAAG,CAAC,IAAA,+BAAwB,EAC9C,IAAI,CAAC,SAAS,CACjB,CAAA;aACJ;YAED,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACjD,IAAI,CAAC,UAAU,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBACvD,uBAAuB,GAAG,CAAC,IAAA,+BAAwB,EAC/C,IAAI,CAAC,UAAU,CAClB,CAAA;aACJ;YAED,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,aAAa,EAAE;gBAC/C,IAAI,CAAC,SAAS,GAAG,IAAA,uBAAgB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBACrD,sBAAsB,GAAG,CAAC,IAAA,+BAAwB,EAC9C,IAAI,CAAC,SAAS,CACjB,CAAA;aACJ;SACJ;QAED,IAAI,CAAC,uBAAuB,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;SAC/B;QAED,IAAI,CAAC,sBAAsB,EAAE;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;SAC7B;QAED,IAAA,+BAAwB,EAAC,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAA;IACxE,CAAC;IAED,mCAAO,GAAP,UAAQ,IAAqB;QACzB,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAA;QAC7C,OAAO,IAAA,cAAU,EAAC,IAAI,EAAE,GAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,mCAAO,GAAP,UAAQ,IAAY;QAChB,OAAO,IAAA,cAAU,EAAC,IAAI,EAAE,IAAI,CAAC,UAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC;IACL,wBAAC;AAAD,CAAC,AA3ED,IA2EC;AA3EY,8CAAiB"}