@spinajs/fs 2.0.218 → 2.0.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.d.ts +8 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +40 -28
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/index.d.ts +8 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +40 -29
- package/lib/mjs/index.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/lib/cjs/config/fs.d.ts +0 -34
- package/lib/cjs/config/fs.d.ts.map +0 -1
- package/lib/cjs/config/fs.js +0 -51
- package/lib/cjs/config/fs.js.map +0 -1
- package/lib/mjs/config/fs.d.ts +0 -34
- package/lib/mjs/config/fs.d.ts.map +0 -1
- package/lib/mjs/config/fs.js +0 -49
- package/lib/mjs/config/fs.js.map +0 -1
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
import { AsyncService } from '@spinajs/di';
|
|
1
2
|
import { Bootstrapper } from '@spinajs/di';
|
|
3
|
+
import { IFsConfiguration } from './interfaces.js';
|
|
4
|
+
import { Log } from '@spinajs/log-common';
|
|
2
5
|
export * from './interfaces.js';
|
|
3
6
|
export * from './local-provider.js';
|
|
4
7
|
export * from './local-temp-provider.js';
|
|
5
8
|
export * from './decorators.js';
|
|
6
9
|
export * from './file-hasher.js';
|
|
7
10
|
export * from './file-info.js';
|
|
11
|
+
export declare class fsService extends AsyncService {
|
|
12
|
+
protected Logger: Log;
|
|
13
|
+
protected Config: IFsConfiguration;
|
|
14
|
+
resolve(): Promise<void>;
|
|
15
|
+
}
|
|
8
16
|
export declare class FsBootsrapper extends Bootstrapper {
|
|
9
17
|
bootstrap(): void;
|
|
10
18
|
}
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAM,gBAAgB,EAA0B,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAE/B,qBAAa,SAAU,SAAQ,YAAY;IAGzC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAGtB,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEtB,OAAO;CAgCrB;AAED,qBACa,aAAc,SAAQ,YAAY;IACtC,SAAS;CAMjB"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -19,47 +19,59 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
19
19
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
20
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
21
|
};
|
|
22
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
23
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
24
|
+
};
|
|
22
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.FsBootsrapper = void 0;
|
|
26
|
+
exports.FsBootsrapper = exports.fsService = void 0;
|
|
24
27
|
const configuration_1 = require("@spinajs/configuration");
|
|
25
28
|
const di_1 = require("@spinajs/di");
|
|
26
29
|
const di_2 = require("@spinajs/di");
|
|
27
30
|
const interfaces_js_1 = require("./interfaces.js");
|
|
31
|
+
const log_common_1 = require("@spinajs/log-common");
|
|
28
32
|
__exportStar(require("./interfaces.js"), exports);
|
|
29
33
|
__exportStar(require("./local-provider.js"), exports);
|
|
30
34
|
__exportStar(require("./local-temp-provider.js"), exports);
|
|
31
35
|
__exportStar(require("./decorators.js"), exports);
|
|
32
36
|
__exportStar(require("./file-hasher.js"), exports);
|
|
33
37
|
__exportStar(require("./file-info.js"), exports);
|
|
38
|
+
class fsService extends di_1.AsyncService {
|
|
39
|
+
async resolve() {
|
|
40
|
+
if (this.Config.defaultProvider === undefined) {
|
|
41
|
+
throw new configuration_1.InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
42
|
+
}
|
|
43
|
+
const providers = new Map();
|
|
44
|
+
// collapse provider config
|
|
45
|
+
// when name is the same, addes last is created
|
|
46
|
+
// eg fs-temp can have default config from package
|
|
47
|
+
// but is overriden in application
|
|
48
|
+
this.Config.providers.forEach((x) => {
|
|
49
|
+
providers.set(x.name, x);
|
|
50
|
+
});
|
|
51
|
+
const rProviders = di_2.DI.RootContainer.Registry.getTypes(interfaces_js_1.fs);
|
|
52
|
+
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
53
|
+
for (const cProvider of list) {
|
|
54
|
+
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
55
|
+
if (!type) {
|
|
56
|
+
throw new di_1.ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
57
|
+
}
|
|
58
|
+
const fs = await di_2.DI.resolve(type, [cProvider.value]);
|
|
59
|
+
di_2.DI.register(fs).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
60
|
+
this.Logger.info(`File provider ${cProvider.value.name} registered, type: ${cProvider.value.service}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.fsService = fsService;
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, log_common_1.Logger)('fs'),
|
|
67
|
+
__metadata("design:type", log_common_1.Log)
|
|
68
|
+
], fsService.prototype, "Logger", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
(0, configuration_1.Config)('fs'),
|
|
71
|
+
__metadata("design:type", Object)
|
|
72
|
+
], fsService.prototype, "Config", void 0);
|
|
34
73
|
let FsBootsrapper = class FsBootsrapper extends di_2.Bootstrapper {
|
|
35
74
|
bootstrap() {
|
|
36
|
-
const listener = (container) => {
|
|
37
|
-
const cfg = container.get(configuration_1.Configuration).get('fs');
|
|
38
|
-
const defaultProvider = cfg.defaultProvider;
|
|
39
|
-
if (!defaultProvider) {
|
|
40
|
-
throw new configuration_1.InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
41
|
-
}
|
|
42
|
-
const providers = new Map();
|
|
43
|
-
// collapse provider config
|
|
44
|
-
// when name is the same, addes last is created
|
|
45
|
-
// eg fs-temp can have default config from package
|
|
46
|
-
// but is overriden in application
|
|
47
|
-
cfg.providers.forEach((x) => {
|
|
48
|
-
providers.set(x.name, x);
|
|
49
|
-
});
|
|
50
|
-
const rProviders = di_2.DI.RootContainer.Registry.getTypes(interfaces_js_1.fs);
|
|
51
|
-
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
52
|
-
for (const cProvider of list) {
|
|
53
|
-
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
54
|
-
if (!type) {
|
|
55
|
-
throw new di_1.ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
56
|
-
}
|
|
57
|
-
di_2.DI.resolve(type, [cProvider.value]).then((result) => {
|
|
58
|
-
di_2.DI.register(result).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
di_2.DI.once('di.resolved.Configuration', listener);
|
|
63
75
|
di_2.DI.register((_container, name) => {
|
|
64
76
|
const provider = di_2.DI.get('__file_provider_instance_' + name);
|
|
65
77
|
return provider;
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAsE;AACtE,oCAA6D;AAC7D,oCAAuE;AACvE,mDAA+E;AAC/E,oDAAkD;AAElD,kDAAgC;AAChC,sDAAoC;AACpC,2DAAyC;AACzC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAE/B,MAAa,SAAU,SAAQ,iBAAY;IAQlC,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE;YAC7C,MAAM,IAAI,oCAAoB,CAAC,mEAAmE,CAAC,CAAC;SACrG;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC5D,2BAA2B;QAC3B,+CAA+C;QAC/C,kDAAkD;QAClD,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,OAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEzE,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE;YAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE7E,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,qBAAgB,CACxB,QAAQ,SAAS,CAAC,KAAK,CAAC,OAAO,4DAA4D,CAC5F,CAAC;aACH;YAED,MAAM,EAAE,GAAG,MAAM,OAAE,CAAC,OAAO,CAAK,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,OAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,IAAI,sBAAsB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACxG;IACH,CAAC;CACF;AAxCD,8BAwCC;AArCW;IADT,IAAA,mBAAM,EAAC,IAAI,CAAC;8BACK,gBAAG;yCAAC;AAGZ;IADT,IAAA,sBAAM,EAAC,IAAI,CAAC;;yCACsB;AAqC9B,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iBAAY;IACtC,SAAS;QACd,OAAE,CAAC,QAAQ,CAAC,CAAC,UAAsB,EAAE,IAAa,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,OAAE,CAAC,GAAG,CAAK,2BAA2B,GAAG,IAAI,CAAC,CAAC;YAChE,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAPY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,aAAa,CAOzB"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
import { AsyncService } from '@spinajs/di';
|
|
1
2
|
import { Bootstrapper } from '@spinajs/di';
|
|
3
|
+
import { IFsConfiguration } from './interfaces.js';
|
|
4
|
+
import { Log } from '@spinajs/log-common';
|
|
2
5
|
export * from './interfaces.js';
|
|
3
6
|
export * from './local-provider.js';
|
|
4
7
|
export * from './local-temp-provider.js';
|
|
5
8
|
export * from './decorators.js';
|
|
6
9
|
export * from './file-hasher.js';
|
|
7
10
|
export * from './file-info.js';
|
|
11
|
+
export declare class fsService extends AsyncService {
|
|
12
|
+
protected Logger: Log;
|
|
13
|
+
protected Config: IFsConfiguration;
|
|
14
|
+
resolve(): Promise<void>;
|
|
15
|
+
}
|
|
8
16
|
export declare class FsBootsrapper extends Bootstrapper {
|
|
9
17
|
bootstrap(): void;
|
|
10
18
|
}
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAc,YAAY,EAAkB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAM,gBAAgB,EAA0B,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAE/B,qBAAa,SAAU,SAAQ,YAAY;IAGzC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IAGtB,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAEtB,OAAO;CAgCrB;AAED,qBACa,aAAc,SAAQ,YAAY;IACtC,SAAS;CAMjB"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -4,45 +4,56 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Config, InvalidConfiguration } from '@spinajs/configuration';
|
|
11
|
+
import { AsyncService, ResolveException } from '@spinajs/di';
|
|
9
12
|
import { Injectable, Bootstrapper, DI } from '@spinajs/di';
|
|
10
13
|
import { fs } from './interfaces.js';
|
|
14
|
+
import { Log, Logger } from '@spinajs/log-common';
|
|
11
15
|
export * from './interfaces.js';
|
|
12
16
|
export * from './local-provider.js';
|
|
13
17
|
export * from './local-temp-provider.js';
|
|
14
18
|
export * from './decorators.js';
|
|
15
19
|
export * from './file-hasher.js';
|
|
16
20
|
export * from './file-info.js';
|
|
21
|
+
export class fsService extends AsyncService {
|
|
22
|
+
async resolve() {
|
|
23
|
+
if (this.Config.defaultProvider === undefined) {
|
|
24
|
+
throw new InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
25
|
+
}
|
|
26
|
+
const providers = new Map();
|
|
27
|
+
// collapse provider config
|
|
28
|
+
// when name is the same, addes last is created
|
|
29
|
+
// eg fs-temp can have default config from package
|
|
30
|
+
// but is overriden in application
|
|
31
|
+
this.Config.providers.forEach((x) => {
|
|
32
|
+
providers.set(x.name, x);
|
|
33
|
+
});
|
|
34
|
+
const rProviders = DI.RootContainer.Registry.getTypes(fs);
|
|
35
|
+
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
36
|
+
for (const cProvider of list) {
|
|
37
|
+
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
38
|
+
if (!type) {
|
|
39
|
+
throw new ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
40
|
+
}
|
|
41
|
+
const fs = await DI.resolve(type, [cProvider.value]);
|
|
42
|
+
DI.register(fs).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
43
|
+
this.Logger.info(`File provider ${cProvider.value.name} registered, type: ${cProvider.value.service}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
__decorate([
|
|
48
|
+
Logger('fs'),
|
|
49
|
+
__metadata("design:type", Log)
|
|
50
|
+
], fsService.prototype, "Logger", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
Config('fs'),
|
|
53
|
+
__metadata("design:type", Object)
|
|
54
|
+
], fsService.prototype, "Config", void 0);
|
|
17
55
|
let FsBootsrapper = class FsBootsrapper extends Bootstrapper {
|
|
18
56
|
bootstrap() {
|
|
19
|
-
const listener = (container) => {
|
|
20
|
-
const cfg = container.get(Configuration).get('fs');
|
|
21
|
-
const defaultProvider = cfg.defaultProvider;
|
|
22
|
-
if (!defaultProvider) {
|
|
23
|
-
throw new InvalidConfiguration('fs default provider is not set. Please set default file provider ');
|
|
24
|
-
}
|
|
25
|
-
const providers = new Map();
|
|
26
|
-
// collapse provider config
|
|
27
|
-
// when name is the same, addes last is created
|
|
28
|
-
// eg fs-temp can have default config from package
|
|
29
|
-
// but is overriden in application
|
|
30
|
-
cfg.providers.forEach((x) => {
|
|
31
|
-
providers.set(x.name, x);
|
|
32
|
-
});
|
|
33
|
-
const rProviders = DI.RootContainer.Registry.getTypes(fs);
|
|
34
|
-
const list = Array.from(providers, ([name, value]) => ({ name, value }));
|
|
35
|
-
for (const cProvider of list) {
|
|
36
|
-
const type = rProviders.find((x) => x.name === cProvider.value.service);
|
|
37
|
-
if (!type) {
|
|
38
|
-
throw new ResolveException(`Type ${cProvider.value.service} not registered, make sure all fs providers are registered`);
|
|
39
|
-
}
|
|
40
|
-
DI.resolve(type, [cProvider.value]).then((result) => {
|
|
41
|
-
DI.register(result).asValue('__file_provider_instance_' + cProvider.value.name);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
DI.once('di.resolved.Configuration', listener);
|
|
46
57
|
DI.register((_container, name) => {
|
|
47
58
|
const provider = DI.get('__file_provider_instance_' + name);
|
|
48
59
|
return provider;
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAc,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,EAAE,EAA4C,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAE/B,MAAM,OAAO,SAAU,SAAQ,YAAY;IAQlC,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE;YAC7C,MAAM,IAAI,oBAAoB,CAAC,mEAAmE,CAAC,CAAC;SACrG;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC5D,2BAA2B;QAC3B,+CAA+C;QAC/C,kDAAkD;QAClD,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEzE,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE;YAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE7E,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,IAAI,gBAAgB,CACxB,QAAQ,SAAS,CAAC,KAAK,CAAC,OAAO,4DAA4D,CAC5F,CAAC;aACH;YAED,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,OAAO,CAAK,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,IAAI,sBAAsB,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACxG;IACH,CAAC;CACF;AArCW;IADT,MAAM,CAAC,IAAI,CAAC;8BACK,GAAG;yCAAC;AAGZ;IADT,MAAM,CAAC,IAAI,CAAC;;yCACsB;AAqC9B,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IACtC,SAAS;QACd,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAsB,EAAE,IAAa,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAK,2BAA2B,GAAG,IAAI,CAAC,CAAC;YAChE,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAPY,aAAa;IADzB,UAAU,CAAC,YAAY,CAAC;GACZ,aAAa,CAOzB"}
|